Skip to content
/ razin Public

My integer linear algebra software library/research log

Notifications You must be signed in to change notification settings

krisk0/razin

Repository files navigation

RAZIN - Rigorous algebraic zero impeding numeration

For now, I offer
  1. The fastest subroutine to calculate determinant of big matrice with big entries;
  2. A subroutine to calculate HNF of a matrice whose determinant is small in absolute value;
  3. PLU decomposition and inversion of a matrice modulo 2^64;
  4. Inversion of an integer upper-triangular matrice with small determinant and positive diagonal;
  5. Python binding to some methods of FLINT, called flint_sage;
  6. A subroutine to count an integer matrice determinant.

Where are the files?

See filelist.txt. For build instructions, see flint.binding/python.flint.sage.README.

My new algorithm to compute integer matrice determinant: fmpz_mat_det_hermitian_decomposition()

Small-det HNF: nmod_mat_HNF_nonsquare() and nmod_mat_HNF()

What's the target?

Mid-range target of the project is fast HNF computation with a new algorithm inspired by W.Stein double-determinant. Python wrapper is minimalistic and only contains functions required to reach the goal or to test/benchmark subroutines/algorithms.

The fastest in the open-source world subroutines to count big matrice determinant and small-det matrice Hermite form are a by-product.

FLINT and GMP data structures and subroutines are used.

Bug?

If you find out that some subroutine of Razin produces bad result or crashes, your bug-report is welcome. If it includes the following data: sample code including input data, description of what happens, expected result (in case you think output is wrong). For instance, if you think that fmpz_mat_hermite_form() works incorrectly, provide
  1. your code forming input matrice,
  2. output matrice,
  3. the correct output

Glossary

FLINT:C numerical/matrice library with save-every-penny approach to arithmetic. Here
krisk0/razin:a research log and software package with quickest subroutines for integer linear algebra
NTL:C++ numerical/matrice library with gluttonous bigint constructor. Here
Captain Flint:fictional Caribbean adventurer (who said pirate?)
Stepan Razin:16??-1671, kozak, rebel leader (who said gangster?)