Macaulay2 Engine
Loading...
Searching...
No Matches
util-polyring-creation.hpp
Go to the documentation of this file.
1#pragma once
2
28
29#include <iostream>
30#include <memory>
31#include <gtest/gtest.h>
32#include <vector>
33
35#include "monordering.hpp"
36#include "interface/ring.h"
37#include "interface/aring.h"
38#include "monoid.hpp"
39#include "poly.hpp"
40#include "polyring.hpp"
41
42const Monoid* degreeMonoid(const std::vector<std::string>& names);
43
44const PolynomialRing* degreeRing(const std::vector<std::string>& names);
45
46const PolynomialRing* degreeRing(int ndegrees);// TODO: currently requires ndegrees is 1!
47
48// This create a polynomial ring with all degrees 1.
50 const std::vector<std::string>& names,
51 MonomialOrdering* monorder);
52
53// This create a polynomial ring with all degrees 1, and with GRevLex order
54const PolynomialRing* simplePolynomialRing(int p, const std::vector<std::string>& names);
55
56// Local Variables:
57// indent-tabs-mode: nil
58// End:
Engine-boundary C API for constructing aring-backed coefficient rings.
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Definition monoid.hpp:89
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
xxx xxx xxx
Definition ring.hpp:102
int p
Monoid — variable count, naming, grading, and monomial order of a polynomial ring.
Engine-boundary C API for assembling block-level MonomialOrderings from declarative pieces.
MonomialOrderings — C++ factories for the declarative MonomialOrdering blocks.
Concrete commutative PolyRing — standard polynomial ring inheriting from PolyRingFlat.
PolynomialRing — abstract polynomial-ring base, the engine's most-reused class.
Engine-boundary C API for the legacy Ring hierarchy — coefficient, polynomial, and composite rings.
Front-end-side description of a monomial ordering as a list of mon_part blocks.
const Monoid * degreeMonoid(const std::vector< std::string > &names)
const PolynomialRing * degreeRing(const std::vector< std::string > &names)
const PolynomialRing * simplePolynomialRing(const Ring *kk, const std::vector< std::string > &names, MonomialOrdering *monorder)