Recognition of (strongly) equimodular matrices.
More...
#include <cmr/env.h>
#include <cmr/matrix.h>
#include <cmr/tu.h>
Go to the source code of this file.
|
CMR_EXPORT CMR_ERROR | CMRequimodularParamsInit (CMR_EQUIMODULAR_PARAMS *params) |
| Initializes the default parameters for recognition of equimodular matrices. More...
|
|
CMR_EXPORT CMR_ERROR | CMRequimodularStatsInit (CMR_EQUIMODULAR_STATS *stats) |
| Initializes all statistics for recognition algorithm for equimodular matrices. More...
|
|
CMR_EXPORT CMR_ERROR | CMRequimodularStatsPrint (FILE *stream, CMR_EQUIMODULAR_STATS *stats, const char *prefix) |
| Prints statistics for recognition algorithm for equimodular matrices. More...
|
|
CMR_EXPORT CMR_ERROR | CMRequimodularTest (CMR *cmr, CMR_INTMAT *matrix, bool *pisEquimodular, int64_t *pgcdDet, CMR_EQUIMODULAR_PARAMS *params, CMR_EQUIMODULAR_STATS *stats, double timeLimit) |
| Tests a matrix \( M \) for being equimodular (for determinant gcd \( k \)). More...
|
|
CMR_EXPORT CMR_ERROR | CMRequimodularTestStrong (CMR *cmr, CMR_INTMAT *matrix, bool *pisStronglyEquimodular, int64_t *pgcdDet, CMR_EQUIMODULAR_PARAMS *params, CMR_EQUIMODULAR_STATS *stats, double timeLimit) |
| Tests a matrix \( M \) for being strongly equimodular. More...
|
|
CMR_EXPORT CMR_ERROR | CMRunimodularTest (CMR *cmr, CMR_INTMAT *matrix, bool *pisUnimodular, CMR_EQUIMODULAR_PARAMS *params, CMR_EQUIMODULAR_STATS *stats, double timeLimit) |
| Tests a matrix \( M \) for being unimodular. More...
|
|
CMR_EXPORT CMR_ERROR | CMRunimodularTestStrong (CMR *cmr, CMR_INTMAT *matrix, bool *pisStronglyUnimodular, CMR_EQUIMODULAR_PARAMS *params, CMR_EQUIMODULAR_STATS *stats, double timeLimit) |
| Tests a matrix \( M \) for being strongly unimodular. More...
|
|
Recognition of (strongly) equimodular matrices.
- Author
- Matthias Walter and Klaus Truemper
◆ CMRequimodularParamsInit()
Initializes the default parameters for recognition of equimodular matrices.
These are selected for minimum running time.
- Parameters
-
params | Pointer to parameters. |
◆ CMRequimodularStatsInit()
Initializes all statistics for recognition algorithm for equimodular matrices.
- Parameters
-
stats | Pointer to statistics. |
◆ CMRequimodularStatsPrint()
Prints statistics for recognition algorithm for equimodular matrices.
- Parameters
-
stream | File stream to print to. |
stats | Pointer to statistics. |
prefix | Prefix string to prepend to each printed line (may be NULL ). |
◆ CMRequimodularTest()
Tests a matrix \( M \) for being equimodular (for determinant gcd \( k \)).
Tests if matrix \( M \) is equimodular for determinant gcd \( k \) and sets *pisEquimodular
accordingly. If pgcdDet
is not NULL
, the behavior is as follows. If *pgcdDet
is positive, then it tests only for that particular value of \( k \). Otherwise, *pgcdDet
is set to \( k \) if \( M \) is equimodular for determinant gcd \( k \), and to \( 0 \) if \( M \) is not equimodular.
- Parameters
-
cmr | CMR environment |
matrix | Matrix \( M \). |
pisEquimodular | Pointer for storing whether \( M \) is equimodular. |
pgcdDet | Pointer for supplying/storing the determinant gcd (may be NULL ). |
params | Parameters for the computation (may be NULL for defaults). |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
◆ CMRequimodularTestStrong()
Tests a matrix \( M \) for being strongly equimodular.
Tests if matrix \( M \) is strongly equimodular and sets *pisStronglyEquimodular
accordingly. If pgcdDet
is not NULL
, the behavior is as follows. If *pgcdDet
is positive, then it tests only for that particular value of \( k \). Otherwise, *pgcdDet
is set to \( k \) if \( M \) is strongly equimodular for determinant gcd \( k \), and to \( 0 \) if \( M \) is not strongly equimodular.
- Parameters
-
cmr | CMR environment |
matrix | Matrix \( M \). |
pisStronglyEquimodular | Pointer for storing whether \( M \) is strongly equimodular. |
pgcdDet | Pointer for supplying/storing the determinant gcd (may be NULL ). |
params | Parameters for the computation (may be NULL for defaults). |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
◆ CMRunimodularTest()
Tests a matrix \( M \) for being unimodular.
Tests if matrix \( M \) is unimodular and sets *pisUnimodular
accordingly.
- Parameters
-
cmr | CMR environment |
matrix | Matrix \( M \). |
pisUnimodular | Pointer for storing whether \( M \) is unimodular. |
params | Parameters for the computation (may be NULL for defaults). |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
◆ CMRunimodularTestStrong()
Tests a matrix \( M \) for being strongly unimodular.
Tests if matrix \( M \) is strongly unimodular and sets *pisStronglyUnimodular
accordingly.
- Parameters
-
cmr | CMR environment |
matrix | Matrix \( M \). |
pisStronglyUnimodular | Pointer for storing whether \( M \) is strongly unimodular. |
params | Parameters for the computation (may be NULL for defaults). |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |