Macaulay2 Engine
Loading...
Searching...
No Matches
sagbi.hpp
Go to the documentation of this file.
1// Copyright 1997 Michael E. Stillman
2
3#ifndef _sagbi_hh_
4#define _sagbi_hh_
5
40
41#include "matrix.hpp"
42#include "comp-gb.hpp"
43
49
50class sagbi
51{
52 public:
53 static ring_elem subduct(int numslots,
54 const PolyRing *R,
55 ring_elem f,
56 const RingMap *phi,
57 GBComputation *J);
58
59 static Matrix *subduct(int numparts, const Matrix *m, const RingMap *phi, GBComputation *J);
60
61 static ring_elem subduct1(int numslots,
62 const PolyRing *T, // this is the tensor ring
63 const PolyRing *S, // this is the poly ring
64 ring_elem a,
65 const RingMap *inclusionAmbient,
66 const RingMap *fullSubstitution,
67 const RingMap *substitutionInclusion,
68 GBComputation *gbI,
69 GBComputation *gbReductionIdeal);
70
71 static Matrix *subduct1(int numparts,
72 const Ring *rawT,
73 const Ring *rawS,
74 const Matrix *m,
75 const RingMap *inclusionAmbient,
76 const RingMap *fullSubstitution,
77 const RingMap *substitutionInclusion,
78 GBComputation *gbI,
79 GBComputation *gbReductionIdeal);
80};
81
82#if 0
83// #include "matrix.hpp"
84// #include "comp.hpp"
85// #include "gb_comp.hpp"
86//
87//
88// class pending_list
89// {
90// const FreeModule *F;
91// int _n_held;
92// int _base_degree;
93// int _lo_degree;
94// array<Matrix *> pending;
95// public:
96// pending_list(Matrix *m);
97// ~pending_list();
98//
99// void insert(Matrix *m); // removes m?
100// Matrix *take_lowest_matrix();
101// int lo_degree() { return _lo_degree; }
102// int n_left() { return _n_held; }
103// };
104//
105// class sagbi_comp : public gb_comp
106// {
107// #if 0
108// // struct sagbi_elem {
109// // sagbi_elem *next;
110// // vec elem;
111// // };
112// //
113// // int _n_iterations;
114// // int _max_degree;
115// // int _current_degree;
116// //
117// // pending_list Pending; // Over R
118// //
119// // FreeModule *F;
120// // Matrix G; // Sagbi basis as so far computed, over R.
121// // PolynomialRing *RS;
122// // binomialGB_comp *J;
123// // RingMap *Gmap;
124// // RingMap *RtoRS;
125// // RingMap *RStoR;
126// //
127// // void append_to_basis(Matrix &m); // Adds to G, also modifies J,RS,...
128// // Matrix grab_lowest_degree();
129// // void row_reduce(Matrix &m); // Modifies m.
130// #endif
131// public:
132// // creation
133// sagbi_comp(const Matrix *m);
134// ~sagbi_comp();
135//
136// void enlarge(const Ring *R, int *wts);
137// void add_generators(const Matrix *m);
138// int calc(const int *deg, const intarray &stop_conditions);
139//
140// Matrix *reduce(const Matrix *m, Matrix *&lift);
141//
142// virtual int contains(const Matrix *m);
143// virtual bool is_equal(const gb_comp *q);
144//
145// // obtaining: mingens matrix, GB matrix, change of basis matrix, stats.
146// Matrix *min_gens_matrix();
147// Matrix *initial_matrix(int n);
148// Matrix *gb_matrix();
149// Matrix *change_matrix();
150// Matrix *syz_matrix();
151// void stats() const;
152//
153// public:
154// sagbi_comp * cast_to_sagbi_comp() { return this; }
155// const sagbi_comp * cast_to_sagbi_comp() const { return this; }
156// };
157#endif
158#endif
159// Local Variables:
160// compile-command: "make -C $M2BUILDDIR/Macaulay2/e "
161// indent-tabs-mode: nil
162// End:
base class for Groebner basis computations.
Definition comp-gb.hpp:69
Concrete PolyRingFlat subclass implementing ordinary commutative polynomial rings K[x_1,...
Definition poly.hpp:64
xxx xxx xxx
Definition ring.hpp:102
Engine-side ring homomorphism: stores, for each source-ring variable, the target-ring element it maps...
Definition ringmap.hpp:60
static ring_elem subduct(int numslots, const PolyRing *R, ring_elem f, const RingMap *phi, GBComputation *J)
Definition sagbi.cpp:7
static ring_elem subduct1(int numslots, const PolyRing *T, const PolyRing *S, ring_elem a, const RingMap *inclusionAmbient, const RingMap *fullSubstitution, const RingMap *substitutionInclusion, GBComputation *gbI, GBComputation *gbReductionIdeal)
Definition sagbi.cpp:71
Helper routines for computing Sagbi bases. Not currently functional?
Definition sagbi.hpp:51
GBComputation — abstract base of every Groebner-basis algorithm in the engine.
#define Matrix
Definition factory.cpp:14
Matrix — the engine's immutable homomorphism F -> G between free modules.
#define T
Definition table.c:13