符号计算
This paper contributes to the verification of programs written in Bitcoin's smart contract language SCRIPT in the interactive theorem prover Agda. It focuses on the security property of access control for SCRIPT programs that govern the…
The free algebra is an interesting and useful algebraic object. Here I introduce "freealg", an R package which furnishes computational support for free algebras. The package uses the standard template library's "map" class for efficiency,…
This paper gives a detailed overview and a number of worked out examples illustrating the Kovacic \cite{Kovacic86} algorithm for solving second order linear differential equation ${A(x) y"+ B(x) y' + C(x) y=0}$ where $A,B,C$ are rational…
In this short article I introduce the stokes package which provides functionality for working with tensors, alternating forms, wedge products, and related concepts from the exterior calculus. Notation and spirit follow Spivak. Stokes's…
In this short article I introduce the mvp package, which provides some functionality for handling multivariate polynomials. The package uses the C++ Standard Template Library's map class to store and retrieve elements; it conforms to…
Some aspects of Computer Algebra (notably Computation Group Theory and Computational Number Theory) have some good databases of examples, typically of the form "all the X up to size n". But most of the others, especially on the polynomial…
Computers are good at evaluating finite sums in closed form, but there are finite sums which do not have closed forms. Summands which do not produce a closed form can often be ``fixed'' by multiplying them by a suitable polynomial. We…
In this short article I introduce the spray package, which provides some functionality for handling sparse arrays. The package uses the C++ Standard Template Library's map class to store and retrieve elements. One natural application for…
Objects in the {\tt stl map} class of {\tt C++} associate a value to each of a set of keys. Accessing values or keys of such an object is problematic in the R programming language because the value-key pairs are not stored in a well-defined…
In response to a recent Nature article which announced an algorithm for multiplying $5\times5$-matrices over $\mathbb{Z}_2$ with only 96 multiplications, two fewer than the previous record, we present an algorithm that does the job with…
We consider resultant-based methods for elimination of indeterminates of Ore polynomial systems in Ore algebra. We start with defining the concept of resultant for bivariate Ore polynomials then compute it by the Dieudonne determinant of…
We describe algorithms to represent and compute groups of Hecke characters. We make use of an id{\`e}lic point of view and obtain the whole family of such characters, including transcendental ones. We also show how to isolate the algebraic…
A Las Vegas randomized algorithm is given to compute the Smith multipliers for a nonsingular integer matrix $A$, that is, unimodular matrices $U$ and $V$ such that $AV=US$, with $S$ the Smith normal form of $A$. The expected running time of…
Cuspidal robots are robots with at least two inverse kinematic solutions that can be connected by a singularity-free path. Deciding the cuspidality of generic 3R robots has been studied in the past, but extending the study to…
The Games-Chan algorithm finds the minimal period of a periodic binary sequence of period $2^n$, in $n$ iterations. We generalise this to periodic $q$-ary sequences (where $q$ is a prime power) using generating functions and polynomials and…
It is well known that the variable ordering can be critical to the efficiency or even tractability of the cylindrical algebraic decomposition (CAD) algorithm. We propose new heuristics inspired by complexity analysis of CAD to choose the…
Simplification of expressions in computer algebra systems often involves a step known as "canonicalisation", which reduces equivalent expressions to the same form. However, such forms may not be natural from the perspective of a…
We present an algorithm for factoring linear differential operators with coefficients in a finite separable extension of F p (x). Our methods rely on specific tools arising in positive characteristic: p-curvature, structure of simple…
Sturm's Theorem is a fundamental 19th century result relating the number of real roots of a polynomial $f$ in an interval to the number of sign alternations in a sequence of polynomial division-like calculations. We provide a short direct…
An input- and output-sensitive GCD algorithm for multi-variate polynomials over finite fields is proposed by combining the modular method with the Ben-Or/Tiwari sparse interpolation. The bit complexity of the algorithm is given and is…