#include <stdlib.h>
#include <polylib/polylib.h>
Go to the source code of this file.
Functions | |
static void | RearrangeMatforSolveDio (Matrix *M) |
int | SolveDiophantine (Matrix *M, Matrix **U, Vector **X) |
static void RearrangeMatforSolveDio | ( | Matrix * | M | ) | [static] |
Definition at line 248 of file SolveDio.c.
References AddANullRow(), ExchangeRows(), Hermite(), Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), min, matrix::NbColumns, matrix::NbRows, matrix::p, True, value_assign, value_notzero_p, and value_zero_p.
Referenced by SolveDiophantine().
Case when rank < Number of Columns;
Solved the equtions
When rank < hermi->NbRows; Verifying whether the solution agrees with the remaining n-rank rows as well.
Definition at line 81 of file SolveDio.c.
References Hermite(), Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), min, matrix::NbColumns, matrix::NbRows, p, matrix::p, RearrangeMatforSolveDio(), value_addmul, value_assign, value_clear, value_division, value_init, value_modulus, value_ne, value_notzero_p, value_oppose, value_set_si, value_subtract, and Vector_Alloc().
Referenced by findHermiteBasis(), LatticeIntersection(), LatticePreimage(), and main().