995{
997 if (R == nullptr)
998 {
999 ERROR(
"expected polynomial ring");
1000 return nullptr;
1001 }
1004 for (
int i = 0; i <
n_cols(); i++)
1005 {
1010 if (v == nullptr)
1011 cons_monoms.append(v);
1012 else
1013 {
1014 ring_elem b;
1015 if (var < R->n_vars())
1016 {
1017 ring_elem a = R->
var(var);
1018 b = R->
power(a, exp);
1019 }
1020 else
1021 {
1023 }
1025 cons_monoms.append(w);
1026 }
1027 }
1028 monoms = cons_monoms.to_matrix();
1029 return result.to_matrix();
1030}
const Ring * get_ring() const
ring_elem elem(int i, int j) const
friend class MatrixConstructor
const FreeModule * rows() const
virtual ring_elem var(int v) const =0
virtual vec vec_top_coefficient(const vec v, int &var, int &exp) const =0
virtual FreeModule * make_FreeModule() const
vec make_vec(int r, ring_elem a) const
virtual ring_elem from_long(long n) const =0
virtual const PolynomialRing * cast_to_PolynomialRing() const
virtual ring_elem power(const ring_elem f, mpz_srcptr n) const
Exponentiation. This is the default function, if a class doesn't define this.
VALGRIND_MAKE_MEM_DEFINED & result(result)
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())