Related papers: An Improved Algorithm for hypot(a,b)
We consider the problem of estimating the partition function $Z(\beta)=\sum_x \exp(-\beta(H(x))$ of a Gibbs distribution with a Hamilton $H(\cdot)$, or more precisely the logarithm of the ratio $q=\ln Z(0)/Z(\beta)$. It has been recently…
We present a classical enhancement to improve the accuracy of the Hybrid variant (Hybrid HHL) of the quantum algorithm for solving linear systems of equations proposed by Harrow, Hassidim, and Lloyd (HHL). We achieve this by using higher…
We study the bit complexity of two methods, related to the Euclidean algorithm, for computing cubic and quartic analogs of the Jacobi symbol. The main bottleneck in such procedures is computation of a quotient for long division. We give…
We introduce two efficient algorithms for computing the partial Fourier transforms in one and two dimensions. Our study is motivated by the wave extrapolation procedure in reflection seismology. In both algorithms, the main idea is to…
There are now several comprehensive web applications, stand-alone computer programs and computer algebra functions that, given a floating point number such as 6.518670730718491, can return concise nonfloat constants such as 3 arctan 2 + ln…
This paper presents bsort, a non-comparison-based sorting algorithm for signed and unsigned integers, and floating-point values. The algorithm unifies these cases through an approach derived from binary quicksort, achieving $O(wn)$ runtime…
This paper proposes a geometric interpretation of the angles and scales which the orientation- and scale-covariant feature detectors, e.g. SIFT, provide. Two new general constraints are derived on the scales and rotations which can be used…
This remark describes efficiency improvements to Algorithm 916 [Zaghloul and Ali 2011]. It is shown that the execution time required by the algorithm, when run at its highest accuracy, may be improved by more than a factor of two. A better…
Given a polynomial $f(x_1,x_2,\ldots, x_t)$ in $t$ variables with integer coefficients and a positive integer $n$, let $\alpha(n)$ be the number of integers $0\leq a<n$ such that the polynomial congruence $f(x_1, x_2, \ldots, x_t)\equiv a\…
We argue that the Julia programming language is a compelling alternative to implementations in Python and C++ for common data analysis workflows in high energy physics. We compare the speed of implementations of different workflows in Julia…
Symbolic computation systems suffer from memory inefficiencies due to redundant storage of structurally identical subexpressions, commonly known as expression swell, which degrades performance in both classical computer algebra and emerging…
In recent work, Lemire (2021) presented a fast algorithm to convert number strings into binary floating-point numbers. The algorithm has been adopted by several important systems: e.g., it is part of the runtime libraries of GCC 12, Rust…
We present new iterative algorithms for solving a square linear system $Ax=b$ in dimension $n$ by employing the {\it Triangle Algorithm} \cite{kal12}, a fully polynomial-time approximation scheme for testing if the convex hull of a finite…
We introduce the notion of quadratic hull of a linear code, and give some of its properties. We then show that any symmetric bilinear multiplication algorithm for a finite-dimensional algebra over a field can be obtained by…
Generating 2-by-2 unitary matrices in floating-precision arithmetic is a delicate task. One way to reduce the accumulation error is to use less floating-point operations to compute each of the entries in the 2-by-2 unitary matrix. This…
We consider the problem of solving floating-point constraints obtained from software verification. We present UppSAT --- a new implementation of a systematic approximation refinement framework [ZWR17] as an abstract SMT solver. Provided…
As applications grow in capability, they also grow in complexity. This complexity in turn gets pushed into modules and libraries. In addition, hardware configurations become increasingly elaborate, too. These two trends make understanding,…
We present FastGPL, a C++ library for the fast evaluation of generalized polylogarithms which appear in many multi-loop Feynman integrals. We implement the iterative algorithm proposed by Vollinga and Weinzierl in a two-step approach, i.e.,…
We present the Julia package HomotopyContinuation.jl, which provides an algorithmic framework for solving polynomial systems by numerical homotopy continuation. We introduce the basic capabilities of the package and demonstrate the software…
The problem of exactly summing n floating-point numbers is a fundamental problem that has many applications in large-scale simulations and computational geometry. Unfortunately, due to the round-off error in standard floating-point…