9,763 research outputs found

    High Performance Sparse Multivariate Polynomials: Fundamental Data Structures and Algorithms

    Get PDF
    Polynomials may be represented sparsely in an effort to conserve memory usage and provide a succinct and natural representation. Moreover, polynomials which are themselves sparse – have very few non-zero terms – will have wasted memory and computation time if represented, and operated on, densely. This waste is exacerbated as the number of variables increases. We provide practical implementations of sparse multivariate data structures focused on data locality and cache complexity. We look to develop high-performance algorithms and implementations of fundamental polynomial operations, using these sparse data structures, such as arithmetic (addition, subtraction, multiplication, and division) and interpolation. We revisit a sparse arithmetic scheme introduced by Johnson in 1974, adapting and optimizing these algorithms for modern computer architectures, with our implementations over the integers and rational numbers vastly outperforming the current wide-spread implementations. We develop a new algorithm for sparse pseudo-division based on the sparse polynomial division algorithm, with very encouraging results. Polynomial interpolation is explored through univariate, dense multivariate, and sparse multivariate methods. Arithmetic and interpolation together form a solid high-performance foundation from which many higher-level and more interesting algorithms can be built

    Reconstructing Rational Functions with FireFly\texttt{FireFly}

    Full text link
    We present the open-source C++\texttt{C++} library FireFly\texttt{FireFly} for the reconstruction of multivariate rational functions over finite fields. We discuss the involved algorithms and their implementation. As an application, we use FireFly\texttt{FireFly} in the context of integration-by-parts reductions and compare runtime and memory consumption to a fully algebraic approach with the program Kira\texttt{Kira}.Comment: 46 pages, 3 figures, 6 tables; v2: matches published versio

    Implicitization of curves and (hyper)surfaces using predicted support

    Get PDF
    We reduce implicitization of rational planar parametric curves and (hyper)surfaces to linear algebra, by interpolating the coefficients of the implicit equation. For predicting the implicit support, we focus on methods that exploit input and output structure in the sense of sparse (or toric) elimination theory, namely by computing the Newton polytope of the implicit polynomial, via sparse resultant theory. Our algorithm works even in the presence of base points but, in this case, the implicit equation shall be obtained as a factor of the produced polynomial. We implement our methods on Maple, and some on Matlab as well, and study their numerical stability and efficiency on several classes of curves and surfaces. We apply our approach to approximate implicitization, and quantify the accuracy of the approximate output, which turns out to be satisfactory on all tested examples; we also relate our measures to Hausdorff distance. In building a square or rectangular matrix, an important issue is (over)sampling the given curve or surface: we conclude that unitary complexes offer the best tradeoff between speed and accuracy when numerical methods are employed, namely SVD, whereas for exact kernel computation random integers is the method of choice. We compare our prototype to existing software and find that it is rather competitive

    Effective partitioning method for computing weighted Moore-Penrose inverse

    Get PDF
    We introduce a method and an algorithm for computing the weighted Moore-Penrose inverse of multiple-variable polynomial matrix and the related algorithm which is appropriated for sparse polynomial matrices. These methods and algorithms are generalizations of algorithms developed in [M.B. Tasic, P.S. Stanimirovic, M.D. Petkovic, Symbolic computation of weighted Moore-Penrose inverse using partitioning method, Appl. Math. Comput. 189 (2007) 615-640] to multiple-variable rational and polynomial matrices and improvements of these algorithms on sparse matrices. Also, these methods are generalizations of the partitioning method for computing the Moore-Penrose inverse of rational and polynomial matrices introduced in [P.S. Stanimirovic, M.B. Tasic, Partitioning method for rational and polynomial matrices, Appl. Math. Comput. 155 (2004) 137-163; M.D. Petkovic, P.S. Stanimirovic, Symbolic computation of the Moore-Penrose inverse using partitioning method, Internat. J. Comput. Math. 82 (2005) 355-367] to the case of weighted Moore-Penrose inverse. Algorithms are implemented in the symbolic computational package MATHEMATICA
    corecore