Macaulay2 Engine
Loading...
Searching...
No Matches

◆ bounds()

void SchurRing::bounds ( int & lo,
int & hi )
private

Definition at line 137 of file schur.cpp.

138{
139 int i, k;
140 int x = _SMfilled.xloc[_SMcurrent];
141 int y = _SMfilled.yloc[_SMcurrent];
142
143 // First set the high bound, using info from the "one to the right"
144 // in the reverse lex filled skew tableau.
145
146 if (y == _SMfilled.p[x]) // There is not one to the right
147 {
148 hi = nvars_;
149 for (k = 1; k <= nvars_; k++)
150 if (_SMtab.p[k] == 0)
151 {
152 hi = k;
153 break;
154 }
155 }
156 else // note that the case _SMcurrent==1 will be handled
157 { // in the previous statement.
158 hi = _SMtab.xloc[_SMcurrent - 1];
159 }
160
161 // Now we set the lo bound, using info from the "one above"
162
163 if (x == 1 || y <= _SMfilled.lambda[x - 1])
164 lo = 1; // There is not one above
165 else
166 {
167 int above = _SMcurrent - _SMfilled.p[x] + _SMfilled.lambda[x - 1];
168 int xabove = _SMtab.xloc[above];
169 int yabove = _SMtab.yloc[above];
170 for (i = xabove + 1; i <= hi; i++)
171 if (_SMtab.p[i] < yabove) break;
172 lo = i;
173 }
174}
int _SMcurrent
Definition schur.hpp:88
tableau _SMtab
Definition schur.hpp:86
tableau _SMfilled
Definition schur.hpp:87
volatile int x

References _SMcurrent, _SMfilled, _SMtab, PolynomialRing::nvars_, and x.

Referenced by SM().