polylib: Matop.c File Reference

# Matop.c File Reference

`#include <stdlib.h>`
`#include <polylib/polylib.h>`

Go to the source code of this file.

## Functions
void | Lcm3 (Value a, Value b, Value *c)
Value * | Lcm (Value i, Value j)
Matrix * | Identity (unsigned size)
void | ExchangeRows (Matrix *M, int Row1, int Row2)
void | ExchangeColumns (Matrix *M, int Column1, int Column2)
Matrix * | Transpose (Matrix *A)
Matrix * | Matrix_Copy (Matrix const *Src)
Bool | isIntegral (Matrix *A)
Bool | isinHnf (Matrix *A)
void | PutRowLast (Matrix *X, int Rownumber)
void | PutRowFirst (Matrix *X, int Rownumber)
void | PutColumnFirst (Matrix *X, int Columnnumber)
void | PutColumnLast (Matrix *X, int Columnnumber)
Matrix * | AddANullRow (Matrix *M)
Matrix * | AddANullColumn (Matrix *M)
Matrix * | RemoveRow (Matrix *M, int Rownumber)
Matrix * | RemoveNColumns (Matrix *M, int FirstColumnnumber, int NumColumns)
Matrix * | RemoveColumn (Matrix *M, int Columnnumber)
int | findHermiteBasis (Matrix *M, Matrix **Result)

## Function Documentation

Matrix* AddANullColumn | ( | Matrix * | M | ) |

Definition at line 286 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, and value_set_si.

Referenced by findHermiteBasis(), homogenize(), and main().

Matrix* AddANullRow | ( | Matrix * | M | ) |

Definition at line 268 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, and value_set_si.

Referenced by findHermiteBasis(), and RearrangeMatforSolveDio().

void ExchangeColumns | ( | Matrix * | M,
|  | int | Column1,
|  | int | Column2 |
| ) |  |  |

Definition at line 90 of file Matop.c.

References matrix::NbRows, matrix::p, and value_swap.

void ExchangeRows | ( | Matrix * | M,
|  | int | Row1,
|  | int | Row2 |
| ) |  |  |

Definition at line 72 of file Matop.c.

References matrix::NbColumns, matrix::p, value_assign, value_clear, and value_init.

Referenced by Constraints2Polyhedron(), and RearrangeMatforSolveDio().

int findHermiteBasis | ( | Matrix * | M,
|  | Matrix ** | Result |
| ) |  |  |

Definition at line 361 of file Matop.c.

References AddANullColumn(), AddANullRow(), Hermite(), Identity(), Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, matrix::p, RemoveRow(), SolveDiophantine(), Transpose(), value_assign, value_notzero_p, value_zero_p, and Vector_Free().

Referenced by FindHermiteBasisofDomain().

Matrix* Identity | ( | unsigned | size | ) |

Definition at line 58 of file Matop.c.

References Matrix_Alloc(), matrix::p, and value_set_si.

Referenced by CanonicalForm(), findHermiteBasis(), FindHermiteBasisofDomain(), IntegraliseLattice(), and Smith().

Bool isinHnf | ( | Matrix * | A | ) |

Definition at line 157 of file Matop.c.

References False, Homogenise(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, matrix::p, True, value_assign, value_clear, value_ge, value_init, and value_notzero_p.

Referenced by LatticeDifference(), LatticeIntersection(), and SplitZpolyhedron().

Bool isIntegral | ( | Matrix * | A | ) |

Definition at line 134 of file Matop.c.

References False, matrix::NbColumns, matrix::NbRows, matrix::p, True, value_assign, value_clear, value_init, value_modulus, and value_notzero_p.

Value* Lcm | ( | Value | i,
|  | Value | j |
| ) |  |  |

Definition at line 45 of file Matop.c.

References Lcm3(), and value_init.

void Lcm3 | ( | Value | a,
|  | Value | b,
|  | Value * | c |
| ) |  |  |

Definition at line 22 of file Matop.c.

References Gcd(), value_absolute, value_assign, value_clear, value_division, value_init, value_multiply, and value_zero_p.

Referenced by Lcm().

Matrix* Matrix_Copy | ( | Matrix const * | Src | ) |

Definition at line 118 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, and value_assign.

Referenced by AddLattice(), AffineHermite(), AffineSmith(), CanonicalForm(), Constraints_EhrhartQuickApx(), eliminable_vars(), findHermiteBasis(), FindHermiteBasisofDomain(), Hermite(), Homogenise(), Lattice2LatticeUnion(), Lattice_extractSubLattice(), LatticeDifference(), LatticeImage(), LatticeIntersection(), LexSmaller(), main(), mtransformation_inverse(), Polyhedron_Image(), Polyhedron_Image_Enumerate(), RearrangeMatforSolveDio(), Simplify(), Smith(), SolveDiophantine(), SplitZpolyhedron(), test_Constraints_fullDimensionize(), test_Constraints_Remove_parm_eqs(), test_Polyhedron_Remove_parm_eqs(), ZDomainSimplify(), and ZPolyhedron_Alloc().

void PutColumnFirst | ( | Matrix * | X,
|  | int | Columnnumber |
| ) |  |  |

Definition at line 230 of file Matop.c.

References matrix::NbRows, matrix::p, value_assign, value_clear, and value_init.

Referenced by Homogenise().

void PutColumnLast | ( | Matrix * | X,
|  | int | Columnnumber |
| ) |  |  |

Definition at line 249 of file Matop.c.

References matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, value_clear, and value_init.

Referenced by Homogenise().

void PutRowFirst | ( | Matrix * | X,
|  | int | Rownumber |
| ) |  |  |

Definition at line 210 of file Matop.c.

References matrix::NbColumns, matrix::p, value_assign, value_clear, and value_init.

Referenced by Homogenise().

void PutRowLast | ( | Matrix * | X,
|  | int | Rownumber |
| ) |  |  |

Definition at line 188 of file Matop.c.

References matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, value_clear, and value_init.

Referenced by Homogenise().

Matrix* RemoveColumn | ( | Matrix * | M,
|  | int | Columnnumber |
| ) |  |  |

Definition at line 340 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, and Vector_Copy().

Referenced by FindHermiteBasisofDomain().

Matrix* RemoveNColumns | ( | Matrix * | M,
|  | int | FirstColumnnumber,
|  | int | NumColumns |
| ) |  |  |

Definition at line 322 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, and Vector_Copy().

Matrix* RemoveRow | ( | Matrix * | M,
|  | int | Rownumber |
| ) |  |  |

Definition at line 303 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, and Vector_Copy().

Referenced by findHermiteBasis().

Matrix* Transpose | ( | Matrix * | A | ) |

Definition at line 103 of file Matop.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, transpose(), and value_assign.

Referenced by findHermiteBasis(), Hermite(), and Polyhedron_Image_Enumerate().