Home Online Manual
Back: pause
Forward: modular
Up: Singular Manual
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.6 modular_lib

An abstraction layer for modular techniques
Andreas Steenpass, e-mail: steenpass@mathematik.uni-kl.de

This library is an abstraction layer for modular techniques which are well-known to speed up many computations and to be easy parallelizable.
The basic idea is to execute some computation modulo several primes and then to lift the result back to characteristic zero via the farey rational map and chinese remaindering. It is thus possible to overcome the often problematic coefficient swell and to run the modular computations in parallel.
In Singular, modular techniques have been quite successfully employed for several applications. A first implementation was done for Groebner bases in Singular's modstd_lib, a pioneering work by Stefan Steidel. Since the algorithm is basically the same for all applications, this library aims at preventing library authors from writing the same code over and over again by providing an appropriate abstraction layer. It also offers one-line commands for ordinary Singular users who want to take advantage of modular techniques for their own calculations. Thus modular techniques can be regarded as a parallel skeleton of their own.
The terminology (such as 'pTest' and 'finalTest') follows Singular's modstd_lib and [1].

[1] Nazeran Idrees, Gerhard Pfister, Stefan Steidel: Parallelization of Modular Algorithms. Journal of Symbolic Computation 46, 672-684 (2011). http://arxiv.org/abs/1005.5663


D.2.6.1 modular  execute a command modulo several primes and lift the result back to characteristic zero
See also: assprimeszerodim_lib; link; modstd_lib; parallel_lib; tasks_lib.