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.
|
| |
| CMR_EXPORT CMR_ERROR | CMRequimodularStatsInit (CMR_EQUIMODULAR_STATS *stats) |
| | Initializes all statistics for recognition algorithm for equimodular matrices.
|
| |
| CMR_EXPORT CMR_ERROR | CMRequimodularStatsPrint (FILE *stream, CMR_EQUIMODULAR_STATS *stats, const char *prefix) |
| | Prints statistics for recognition algorithm for equimodular matrices.
|
| |
| 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 \)).
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
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. |