61{
62 try
63 {
64
65
66
67
69 const size_t c = C->
n_cols();
70 const size_t r = C->
n_rows();
71
72 auto rays = libnormaliz::Matrix<Integer>(r, c);
73 for (size_t i = 0; i < r; i++)
74 for (size_t j = 0; j < c; j++)
76
77 auto cone = libnormaliz::Cone<Integer>(libnormaliz::Type::cone, rays);
78
79
80 auto HB = cone.getHilbertBasis();
81 size_t n = HB.size();
82
84 for (size_t i = 0; i < n; i++)
85 for (size_t j = 0; j < c; j++)
86 {
87 mpz_ptr z =
newitem(__mpz_struct);
88 mpz_init_set(z, HB[i][j].get_mpz_t());
91 }
92
93 return mat.to_matrix();
95 {
97 return nullptr;
98 }
99}
const Ring * get_ring() const
ring_elem elem(int i, int j) const
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
virtual FreeModule * make_FreeModule() const
void mpz_reallocate_limbs(mpz_ptr _z)
mpz_srcptr get_mpz() const