|
Macaulay2 Engine
|
LU decomposition over a domain using fraction-free Gaussian elimination. More...
#include <fractionfreeLU.hpp>
Static Public Member Functions | |
| static M2_arrayintOrNull | DO (MutableMatrix *M) |
Private Member Functions | |
| FF_LUComputation (MutableMatrix *M) | |
| ~FF_LUComputation () | |
| bool | choose_pivot_column (int lo, int hi, int &result) |
| void | do_pivots (int lo, int hi, int pivot_col) |
| bool | calc () |
| M2_arrayint | get_column_permutation () |
Private Attributes | |
| const Ring * | R |
| MutableMatrix * | M |
| int * | col_perm |
| bool * | need_div |
| int | pivot_col |
| ring_elem | lastpivot |
| ring_elem | pivot |
LU decomposition over a domain using fraction-free Gaussian elimination.
The classical Bareiss-style algorithm: at each step, the new entry is (pivot * a - factor * b) / lastpivot, where the division is exact because the ring is a domain. Tracks col_perm for the column permutation and need_div[i] for which columns still need the trailing division. Used by the engine wherever an integer-coefficient LU is needed without introducing fractions.
Definition at line 53 of file fractionfreeLU.hpp.