Results 1 -
2 of
2
Number Theory Meets Cache Locality – Efficient Implementation of a Small Prime FFT for the GNU Multiple Precision Arithmetic Library
"... When multiplying really large integer operands, the GNU Multiple Precision Arithmetic Library uses a method based on the Fast Fourier Transform. To make an algorithm execute quickly on a modern computer, data has to be available in the cache memory. If that is not the case, a large portion of the ex ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
When multiplying really large integer operands, the GNU Multiple Precision Arithmetic Library uses a method based on the Fast Fourier Transform. To make an algorithm execute quickly on a modern computer, data has to be available in the cache memory. If that is not the case, a large portion of the execution time will be spent accessing the main memory. It might pay off to perform much extra work to achieve good cache locality. In extreme cases, 500 primitive operations may be performed in the time of a single memory access. This report describes the implementation of a cache friendly variant of the Fast Fourier Transform and its application to integer multiplication. The variant uses arithmetic modulo primes near machine word-size. The multiplication method is shown to be competitive with its counterpart in version 4.1.4 of the GNU Multiple Precision Arithmetic Library for interesting platforms. Talteori möter cachelokalitet Effektiv implementation av småprimtals-FFT
On the Sum of Square Roots of Polynomials and Related Problems
, 2011
"... The sum of square roots problem over integers is the task of deciding the sign of a non-zero sum, S = ∑n i=1 δi · √ ai, where δi ∈ {+1, −1} and ai’s are positive integers that are upper bounded by N (say). A fundamental open question in numerical analysis and computational (n·log N)O(1) geometry is ..."
Abstract
- Add to MetaCart
The sum of square roots problem over integers is the task of deciding the sign of a non-zero sum, S = ∑n i=1 δi · √ ai, where δi ∈ {+1, −1} and ai’s are positive integers that are upper bounded by N (say). A fundamental open question in numerical analysis and computational (n·log N)O(1) geometry is whether |S | ≥ 1/2 when S ̸ = 0. We study a formulation of this problem over polynomials: Given an expression S = ∑n i=1 ci · √ fi(x), where ci’s belong to a field of characteristic 0 and fi’s are univariate polynomials with degree bounded by d and fi(0) ̸ = 0 for all i, is it true that the minimum exponent of x which has a nonzero coefficient in the power series S is upper bounded by (n · d) O(1) , unless S = 0? We answer this question affirmatively. Further, we show that this result over polynomials can be used to settle (positively) the sum of square roots problem for a special class of integers: Suppose each integer ai is of the form, ai = Xdi + bi1X di−1 +... + bidi, di> 0, where X is a positive real number and bij’s are integers. Let B = maxi,j{|bij|} and d = maxi{di}. If X> (B + 1) (n·d)O(1) then a non-zero S = ∑n i=1 δi · √ ai is lower bounded as |S | ≥ 1/X (n·d)O(1). The constant in the O(1) notation, as fixed by our analysis, is roughly 2. We then consider the following more general problem: given an arithmetic circuit computing a multivariate polynomial f(X) and integer d, is the degree of f(X) less than or equal to d? We give a coRP PP-algorithm for this problem, improving previous results of [ABKPM09] and [KP07].

