Go to the source code of this file.
◆ IMATELEM
◆ ivTest
◆ ivAdd()
Definition at line 249 of file intvec.cc.
250{
257 {
259 for (
i=0;
i<
mn;
i++) (*iv)[
i] = (*a)[
i] + (*b)[
i];
261 {
263 {
265 }
266 else
267 {
269 }
270 }
271 return iv;
272 }
275 for (
i=0;
i<
mn*a->
cols();
i++) { (*iv)[
i] += (*b)[
i]; }
276 return iv;
277}
static int si_max(const int a, const int b)
static int si_min(const int a, const int b)
◆ ivAddShift()
Definition at line 279 of file intvec.cc.
280{
283 {
290 for(
i=
b->rows()+
s-1;
i>=
s;
i--)
291 (*iv)[
i] += (*b)[
i-
s];
292 return iv;
293 }
295}
const CanonicalForm int s
◆ ivConcat()
Definition at line 822 of file intvec.cc.
823{
827
830 {
833 }
834 for (
i=1;
i<=
b->rows();
i++)
835 {
836 for(
j=1;
j<=
b->cols();
j++)
838 }
840}
#define IMATELEM(M, I, J)
◆ ivCopy()
◆ ivMult()
Definition at line 349 of file intvec.cc.
350{
353 rb =
b->rows(),
cb =
b->cols();
358 {
360 {
365 }
366 }
367 return iv;
368}
◆ ivSolveKern()
Definition at line 442 of file intvec.cc.
443{
449 int c, cp, r, t;
450
452 c = 1;
453 for (r=1;r<=
dimtr;r++)
454 {
456 (*perm)[r] = c;
457 c++;
458 }
459 c = d;
460 for (r=
dimtr;r>0;r--)
461 {
462 cp = (*perm)[r];
463 if (cp!=c)
464 {
466 t -= (c-cp);
467 if (t==0)
468 break;
469 c = cp-1;
470 }
471 else
472 c--;
473 }
476 else
479 delete perm;
481}
static intvec * ivOptimizeKern(intvec *)
static void ivKernFromRow(intvec *, intvec *, intvec *, int, int, int)
intvec * ivTranp(intvec *o)
◆ ivSub()
Definition at line 297 of file intvec.cc.
298{
305 {
307 for (
i=0;
i<
mn;
i++) (*iv)[
i] = (*a)[
i] - (*b)[
i];
309 {
311 {
313 }
314 else
315 {
316 for(
i=
mn;
i<
ma;
i++) (*iv)[
i] = -(*b)[
i];
317 }
318 }
319 return iv;
320 }
323 for (
i=0;
i<
mn*a->
cols();
i++) { (*iv)[
i] -= (*b)[
i]; }
324 return iv;
325}
◆ ivTrace()
◆ ivTranp()
Definition at line 327 of file intvec.cc.
328{
332 {
334 (*iv)[
j*r+
i] = (*o)[
i*c+
j];
335 }
336 return iv;
337}
◆ ivTriangIntern()
Definition at line 404 of file intvec.cc.
405{
407 int ia=ready,
ie=
all;
408
409 do
410 {
412 do
413 {
416 } while (rpiv==0);
417 if (rpiv>ia)
418 {
420 {
425 }
426 ia++;
427 if (ia==
imat->cols())
428 {
429 ready = ia;
431 return;
432 }
433 }
437 ready = ia;
439}
static int ivColPivot(intvec *, int, int, int, int)
static void ivSetRow(intvec *, int, int)
static void ivFreeRow(intvec *, int, int)
static void ivZeroElim(intvec *, int, int, int &)
static void ivSaveRow(intvec *, int)
static void ivReduce(intvec *, int, int, int, int)