Macaulay2 Engine
Loading...
Searching...
No Matches
solvable.hpp
Go to the documentation of this file.
1// Copyright 2003 Michael E. Stillman
2
3#ifndef _solvable_hh_
4#define _solvable_hh_
5
37
38#include "poly.hpp"
39
41
57{
58 const Matrix *Q_;
59
60 static SolvableAlgebra *create(const Ring *K,
61 const Monoid *M,
62 const Matrix *Q);
63
64 protected:
65 bool initialize_solvable(const Matrix *Q);
67 virtual ~SolvableAlgebra();
68
69 public:
70 static SolvableAlgebra *create(const PolynomialRing *R, const Matrix *Q);
71
72 virtual bool is_commutative_ring() const { return false; }
73 virtual bool is_solvable_algebra() const { return true; }
75 {
76 return this;
77 }
78 virtual SolvableAlgebra *cast_to_SolvableAlgebra() { return this; }
79 virtual ring_elem power(const ring_elem f, mpz_srcptr n) const;
80 virtual ring_elem power(const ring_elem f, int n) const;
81
82 public:
83 virtual ring_elem mult_by_term(const ring_elem f,
84 const ring_elem c,
85 const int *m) const;
86};
87#endif
88
89// Local Variables:
90// compile-command: "make -C $M2BUILDDIR/Macaulay2/e "
91// indent-tabs-mode: nil
92// End:
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Definition monoid.hpp:89
PolyRing()
Definition poly.hpp:82
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
xxx xxx xxx
Definition ring.hpp:102
virtual const SolvableAlgebra * cast_to_SolvableAlgebra() const
Definition solvable.hpp:74
virtual bool is_solvable_algebra() const
Definition solvable.hpp:73
static SolvableAlgebra * create(const Ring *K, const Monoid *M, const Matrix *Q)
Definition solvable.cpp:16
bool initialize_solvable(const Matrix *Q)
Definition solvable.cpp:10
virtual ring_elem mult_by_term(const ring_elem f, const ring_elem c, const int *m) const
Definition solvable.cpp:53
virtual SolvableAlgebra * cast_to_SolvableAlgebra()
Definition solvable.hpp:78
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.
Definition solvable.cpp:68
const Matrix * Q_
Definition solvable.hpp:58
virtual ~SolvableAlgebra()
Definition solvable.cpp:6
virtual bool is_commutative_ring() const
Definition solvable.hpp:72
PolyRing subclass for solvable polynomial algebras (PBW-type non-commutative rings where each pair of...
Definition solvable.hpp:57
#define Matrix
Definition factory.cpp:14
Concrete commutative PolyRing — standard polynomial ring inheriting from PolyRingFlat.