CMR
1.3.0
|
Consider a matrix \( M \in \mathbb{Z}^{m \times n} \) of rank \( r \). The matrix \( M \) is called equimodular with determinant gcd \( k \in \{1,2,\dotsc \} \) if these two conditions are satisfied:
In case \( M \) has full row-rank, the first property requires that the determinant of any basis matrix shall be \( \pm k \), while the second property requires that \( M_{\star,B}^{-1} M \) is totally unimodular. Otherwise, \( M_{\star,B} \) is not square, and hence the property is more technical.
Additionally, \( M \) is called strongly equimodular if \( M \) and \( M^{\textsf{T}} \) are both equimodular, which implies that they are equimodular for the same gcd determinants. The special cases with \( k = 1 \) are called unimodular and strongly unimodular, respectively.
The executable cmr-equimodular
determines whether a given matrix \( M \) with determinant gcd \( k \).
./cmr-equimodular IN-MAT [OPTION]...
Options:
-i FORMAT
Format of of file IN-MAT
; default: dense.-t
Test \( M^{\textsf{T}} \) instead.-s
Test for strong equimodularity.-u
Test only for unimodularity, i.e., \( k = 1 \).Advanced options:
--stats
Print statistics about the computation to stderr.--time-limit LIMIT
Allow at most LIMIT
seconds for the computation.Formats for matrices: dense, sparse If IN-MAT
is -
, then the input will be read from stdin.
The functionality is defined in equimodular.h. The main functions are: