163 research outputs found
Resolving zero-divisors using Hensel lifting
Algorithms which compute modulo triangular sets must respect the presence of
zero-divisors. We present Hensel lifting as a tool for dealing with them. We
give an application: a modular algorithm for computing GCDs of univariate
polynomials with coefficients modulo a radical triangular set over the
rationals. Our modular algorithm naturally generalizes previous work from
algebraic number theory. We have implemented our algorithm using Maple's RECDEN
package. We compare our implementation with the procedure RegularGcd in the
RegularChains package.Comment: Shorter version to appear in Proceedings of SYNASC 201
Computing Tutte Polynomials
We present a new edge selection heuristic and vertex ordering heuristic that together enable one to compute the Tutte polynomial of much larger sparse graphs than was previously doable. As a specific example, we are able to compute the Tutte polynomial of the truncated icosahedron graph using our Maple implementation in under 4 minutes on a single CPU. This compares with a recent result of Haggard, Pearce and Royle whose special purpose C++ software took one week on 150 computers
High performance SIMD modular arithmetic for polynomial evaluation
Two essential problems in Computer Algebra, namely polynomial factorization
and polynomial greatest common divisor computation, can be efficiently solved
thanks to multiple polynomial evaluations in two variables using modular
arithmetic. In this article, we focus on the efficient computation of such
polynomial evaluations on one single CPU core. We first show how to leverage
SIMD computing for modular arithmetic on AVX2 and AVX-512 units, using both
intrinsics and OpenMP compiler directives. Then we manage to increase the
operational intensity and to exploit instruction-level parallelism in order to
increase the compute efficiency of these polynomial evaluations. All this
results in the end to performance gains up to about 5x on AVX2 and 10x on
AVX-512
Some results on counting roots of polynomials and the Sylvester resultant.
We present two results, the first on the distribution of the roots of a polynomial over the ring of integers modulo n and the second on the distribution of the roots of the Sylvester resultant of two multivariate polynomials. The second result has application to polynomial GCD computation and solving polynomial diophantine equations
The Design of Maple's Sum-of-Products and POLY Data Structures for Representing Mathematical Objects
Maximal quotient rational reconstruction: an almost optimal algorithm for rational reconstruction
Let n/d ∈ Q, mbe a positive integer and let u = n/d mod m. Thus u is the image of a rational number modulo m. The rational reconstruction problem is; given u and m find n/d. A solution was first given by Wang in 1981. Wang’s algorithm outputs n/d when m>2M 2 where M =max(|n|,d). Because of the wide application of this algorithm in computer algebra, several authors have investigated its practical efficiency and asymptotic time complexity. In this paper we present a new solution which is almost optimal in the following sense; with controllable high probability, our algorithm will output n/d when m is a modest number of bits longer than 2|n|d. This means that in a modular algorithm where m is a product of primes, the modular algorithm will need one or two primes more than the minimum necessary to reconstruct n/d; thusif|n | ≪d or d ≪|n| the new algorithm saves up to half the number of primes. Further, our algorithm will fail with high probability when m<2|n|d
How to program with formulas in Maple: Formulas in Maple
Maple's main strength is its ability to compute with mathematical formulasand not just with numbers. It can multiply and factor, differentiate and integrate, and simplify formulas. In this article, using differentiation as an example, I explain how to program with formulas in Maple. The key is the data representation that Maple uses for a formula and the operations Maple provides for operating on formulas. I will also discuss Automatic Differentiation as an alternative which differentiates programs
- …
