Public Member Functions | Data Fields
sLObject Class Reference

#include <kutil.h>

Public Member Functions

KINLINE void Init (ring tailRing=currRing)
 
KINLINE sLObject (ring tailRing=currRing)
 
KINLINE sLObject (poly p, ring tailRing=currRing)
 
KINLINE sLObject (poly p, ring c_r, ring tailRing)
 
KINLINE void Delete ()
 
KINLINE void Clear ()
 
KINLINE void LmDeleteAndIter ()
 
KINLINE poly LmExtractAndIter ()
 
KINLINE void PrepareRed (BOOLEAN use_bucket)
 
KINLINE void SetLmTail (poly lm, poly new_p, int length, int use_bucket, ring r)
 
KINLINE void Tail_Minus_mm_Mult_qq (poly m, poly qq, int lq, poly spNoether)
 
KINLINE void Tail_Mult_nn (number n)
 
KINLINE poly GetP (omBin lmBin=NULL)
 
KINLINE poly GetTP ()
 
KINLINE poly CanonicalizeP ()
 
KINLINE void Copy ()
 
KINLINE poly CopyGetP ()
 
KINLINE int GetpLength ()
 
KINLINE long pLDeg (BOOLEAN use_last)
 
KINLINE long pLDeg ()
 
KINLINE int SetLength (BOOLEAN lengt_pLength=FALSE)
 
KINLINE long SetDegStuffReturnLDeg ()
 
KINLINE long SetDegStuffReturnLDeg (BOOLEAN use_last)
 
KINLINE long MinComp ()
 
KINLINE long Comp ()
 
KINLINE void ShallowCopyDelete (ring new_tailRing, pShallowCopyDeleteProc p_shallow_copy_delete)
 
KINLINE void SetShortExpVector ()
 
KINLINE sLObjectoperator= (const sTObject &)
 
KINLINE TObjectT_1 (const skStrategy *strat)
 
KINLINE TObjectT_2 (const skStrategy *strat)
 
KINLINE void T_1_2 (const skStrategy *strat, TObject *&T_1, TObject *&T_2)
 
KINLINE void Normalize ()
 
KINLINE void HeadNormalize ()
 
- Public Member Functions inherited from sTObject
KINLINE void Init (ring r=currRing)
 
KINLINE sTObject (ring tailRing=currRing)
 
KINLINE sTObject (poly p, ring tailRing=currRing)
 
KINLINE sTObject (poly p, ring c_r, ring tailRing)
 
KINLINE sTObject (sTObject *T, int copy)
 
KINLINE void Set (ring r=currRing)
 
KINLINE void Set (poly p_in, ring r=currRing)
 
KINLINE void Set (poly p_in, ring c_r, ring t_r)
 
KINLINE void Delete ()
 
KINLINE void Clear ()
 
KINLINE void Copy ()
 
KINLINE poly GetLmCurrRing ()
 
KINLINE poly GetLmTailRing ()
 
KINLINE poly GetLm (ring r)
 
KINLINE void GetLm (poly &p, ring &r) const
 
KINLINE BOOLEAN IsNull () const
 
KINLINE int GetpLength ()
 
KINLINE void SetLmCurrRing ()
 
KINLINE poly Next ()
 
KINLINE void LmDeleteAndIter ()
 
KINLINE long pTotalDeg () const
 
KINLINE long pFDeg () const
 
KINLINE long SetpFDeg ()
 
KINLINE long GetpFDeg () const
 
KINLINE long pLDeg ()
 
KINLINE long SetDegStuffReturnLDeg ()
 
KINLINE void Mult_nn (number n)
 
KINLINE void ShallowCopyDelete (ring new_tailRing, omBin new_tailBin, pShallowCopyDeleteProc p_shallow_copy_delete, BOOLEAN set_max=TRUE)
 
KINLINE void pNorm ()
 
KINLINE void pCleardenom ()
 

Data Fields

unsigned long sev
 
poly p1
 
poly p2
 
poly lcm
 
kBucket_pt bucket
 
int i_r1
 
int i_r2
 
unsigned checked
 
BOOLEAN prod_crit
 
- Data Fields inherited from sTObject
unsigned long sevSig
 
poly sig
 
poly p
 
poly t_p
 
poly max
 
ring tailRing
 
long FDeg
 
int ecart
 
int length
 
int pLength
 
int i_r
 
BOOLEAN is_normalized
 
BOOLEAN is_redundant
 
BOOLEAN is_sigsafe
 
BOOLEAN is_special
 

Detailed Description

Definition at line 179 of file kutil.h.

Constructor & Destructor Documentation

KINLINE sLObject::sLObject ( ring  tailRing = currRing)

Definition at line 510 of file kInline.h.

511 {
512  Init(r);
513 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:502
const ring r
Definition: syzextra.cc:208
KINLINE sLObject::sLObject ( poly  p,
ring  tailRing = currRing 
)

Definition at line 514 of file kInline.h.

515 {
516  Init(r);
517  Set(p_in, r);
518 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:502
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
const ring r
Definition: syzextra.cc:208
KINLINE sLObject::sLObject ( poly  p,
ring  c_r,
ring  tailRing 
)

Definition at line 520 of file kInline.h.

521 {
522  Init(t_r);
523  Set(p_in, c_r, t_r);
524 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:502
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103

Member Function Documentation

KINLINE poly sLObject::CanonicalizeP ( )

Definition at line 644 of file kInline.h.

645 {
646  //kTest_L(this);
647  int i = -1;
648 
649  if (bucket != NULL)
651 
652  if (p == NULL)
654 
655  if (i >= 0) pNext(p) = bucket->buckets[i];
656  return p;
657 }
kBucket_pt bucket
Definition: kutil.h:188
KINLINE poly k_LmInit_tailRing_2_currRing(poly p, ring tailRing, omBin lmBin)
Definition: kInline.h:910
poly t_p
Definition: kutil.h:76
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE void sLObject::Clear ( )

Definition at line 489 of file kInline.h.

490 {
491  sTObject::Clear();
492  sev = 0;
493 }
KINLINE void Clear()
Definition: kInline.h:189
unsigned long sev
Definition: kutil.h:183
KINLINE long sLObject::Comp ( )

Definition at line 837 of file kInline.h.

838 {
839  poly pp;
840  ring r;
841  GetLm(pp, r);
842  assume(pp != NULL);
843  return p_GetComp(pp, r);
844 }
#define p_GetComp(p, r)
Definition: monomials.h:72
poly pp
Definition: myNF.cc:296
const ring r
Definition: syzextra.cc:208
#define assume(x)
Definition: mod2.h:405
#define NULL
Definition: omList.c:10
KINLINE poly GetLm(ring r)
Definition: kInline.h:237
polyrec * poly
Definition: hilb.h:10
KINLINE void sLObject::Copy ( )

Definition at line 725 of file kInline.h.

726 {
727  if (bucket != NULL)
728  {
730  kBucket_pt new_bucket = kBucketCreate(tailRing);
731  kBucketInit(new_bucket,
732  p_Copy(bucket->buckets[i], tailRing),
733  bucket->buckets_length[i]);
734  bucket = new_bucket;
735  if (t_p != NULL) pNext(t_p) = NULL;
736  if (p != NULL) pNext(p) = NULL;
737  }
738  TObject::Copy();
739 }
static number Copy(number a, const coeffs r)
Definition: flintcf_Q.cc:233
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:471
kBucket_pt bucket
Definition: kutil.h:188
static poly p_Copy(poly p, const ring r)
returns a copy of p
Definition: p_polys.h:810
poly t_p
Definition: kutil.h:76
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
Definition: kbuckets.cc:197
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE poly sLObject::CopyGetP ( )

Definition at line 741 of file kInline.h.

742 {
743  if (bucket != NULL)
744  {
746  poly bp = p_Copy(bucket->buckets[i], tailRing);
747  pLength = bucket->buckets_length[i] + 1;
748  if (bp != NULL)
749  {
750  assume(t_p != NULL || p != NULL);
751  if (t_p != NULL) pNext(t_p) = bp;
752  else pNext(p) = bp;
753  }
754  bucket = NULL;
755  }
756  return sLObject::GetP();
757 }
KINLINE poly GetP(omBin lmBin=NULL)
Definition: kInline.h:675
kBucket_pt bucket
Definition: kutil.h:188
static poly p_Copy(poly p, const ring r)
returns a copy of p
Definition: p_polys.h:810
poly t_p
Definition: kutil.h:76
#define assume(x)
Definition: mod2.h:405
int i
Definition: cfEzgcd.cc:123
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE void sLObject::Delete ( )

Definition at line 495 of file kInline.h.

496 {
498  if (bucket != NULL)
500 }
kBucket_pt bucket
Definition: kutil.h:188
#define NULL
Definition: omList.c:10
void kBucketDeleteAndDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:211
KINLINE void Delete()
Definition: kInline.h:175
KINLINE poly sLObject::GetP ( omBin  lmBin = NULL)

Definition at line 675 of file kInline.h.

676 {
677  //kTest_L(this);
678  if (p == NULL)
679  {
681  (lmBin!=NULL?lmBin:currRing->PolyBin));
682  FDeg = pFDeg();
683  }
684  else if (lmBin != NULL && lmBin != currRing->PolyBin)
685  {
687  FDeg = pFDeg();
688  }
689 
690  if (bucket != NULL)
691  {
694  pLength++;
695  if (t_p != NULL) pNext(t_p) = pNext(p);
696  }
697  //kTest_L(this);
698  return p;
699 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:499
kBucket_pt bucket
Definition: kutil.h:188
KINLINE poly k_LmInit_tailRing_2_currRing(poly p, ring tailRing, omBin lmBin)
Definition: kInline.h:910
static poly p_LmShallowCopyDelete(poly p, const ring r)
Definition: p_polys.h:1322
poly t_p
Definition: kutil.h:76
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:204
long FDeg
Definition: kutil.h:79
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
KINLINE long pFDeg() const
Definition: kInline.h:395
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE int sLObject::GetpLength ( )

Definition at line 805 of file kInline.h.

806 {
807  if (bucket == NULL)
808  return sTObject::GetpLength();
810  return bucket->buckets_length[i] + 1;
811 }
kBucket_pt bucket
Definition: kutil.h:188
KINLINE int GetpLength()
Definition: kInline.h:268
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
int kBucketCanonicalize(kBucket_pt bucket)
KINLINE poly sLObject::GetTP ( )

Definition at line 659 of file kInline.h.

660 {
661  //kTest_L(this);
662  poly tp = GetLmTailRing();
663  assume(tp != NULL);
664 
665  if (bucket != NULL)
666  {
667  kBucketClear(bucket, &pNext(tp), &pLength);
669  pLength++;
670  }
671  return tp;
672 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:499
kBucket_pt bucket
Definition: kutil.h:188
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:204
#define assume(x)
Definition: mod2.h:405
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
KINLINE void sLObject::HeadNormalize ( )

Definition at line 334 of file kInline.h.

335 {
336  if (t_p != NULL)
337  {
339  if (p != NULL) pSetCoeff0(p, pGetCoeff(t_p));
340  }
341  else
342  {
344  }
345 }
#define nNormalize(n)
Definition: numbers.h:30
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
Definition: monomials.h:51
poly t_p
Definition: kutil.h:76
#define NULL
Definition: omList.c:10
#define pSetCoeff0(p, n)
Definition: monomials.h:67
poly p
Definition: kutil.h:75
KINLINE void sLObject::Init ( ring  tailRing = currRing)

Definition at line 502 of file kInline.h.

503 {
504  memset(this, 0, sizeof(sLObject));
505  i_r1 = -1;
506  i_r2 = -1;
507  i_r = -1;
508  Set(r);
509 }
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
int i_r1
Definition: kutil.h:189
int i_r
Definition: kutil.h:80
const ring r
Definition: syzextra.cc:208
int i_r2
Definition: kutil.h:189
KINLINE void sLObject::LmDeleteAndIter ( )

Definition at line 598 of file kInline.h.

599 {
601  if (bucket != NULL)
602  {
604  if (_p == NULL)
605  {
607  p = t_p = NULL;
608  return;
609  }
610  Set(_p, tailRing);
611  }
612  else
613  {
614  pLength--;
615  }
616 }
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
kBucket_pt bucket
Definition: kutil.h:188
poly kBucketExtractLm(kBucket_pt bucket)
Definition: kbuckets.cc:489
KINLINE void LmDeleteAndIter()
Definition: kInline.h:288
poly t_p
Definition: kutil.h:76
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:204
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
polyrec * poly
Definition: hilb.h:10
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE poly sLObject::LmExtractAndIter ( )

Definition at line 618 of file kInline.h.

619 {
620  poly ret = GetLmTailRing();
621  poly pn;
622 
623  assume(p != NULL || t_p != NULL);
624 
625  if (bucket != NULL)
626  {
627  pn = kBucketExtractLm(bucket);
628  if (pn == NULL)
630  }
631  else
632  {
633  pn = pNext(ret);
634  }
635  pLength--;
636  pNext(ret) = NULL;
637  if (p != NULL && t_p != NULL)
638  p_LmFree(p, currRing);
639 
640  Set(pn, tailRing);
641  return ret;
642 }
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
kBucket_pt bucket
Definition: kutil.h:188
static void p_LmFree(poly p, ring)
Definition: p_polys.h:678
poly kBucketExtractLm(kBucket_pt bucket)
Definition: kbuckets.cc:489
poly t_p
Definition: kutil.h:76
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:204
#define assume(x)
Definition: mod2.h:405
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE long sLObject::MinComp ( )

Definition at line 822 of file kInline.h.

823 {
824  poly tp = GetLmTailRing();
825  assume(tp != NULL);
826  if (bucket != NULL)
827  {
829  pNext(tp) = bucket->buckets[i];
830  long m = p_MinComp(tp, tailRing);
831  pNext(tp) = NULL;
832  return m;
833  }
834  else
835  return p_MinComp(tp, tailRing);
836 }
kBucket_pt bucket
Definition: kutil.h:188
#define assume(x)
Definition: mod2.h:405
int m
Definition: cfEzgcd.cc:119
int i
Definition: cfEzgcd.cc:123
static long p_MinComp(poly p, ring lmRing, ring tailRing)
Definition: p_polys.h:308
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:78
KINLINE void sLObject::Normalize ( )

Definition at line 321 of file kInline.h.

322 {
323  if (t_p != NULL)
324  {
325  pNormalize(t_p);
326  if (p != NULL) pSetCoeff0(p, pGetCoeff(t_p));
327  }
328  else
329  {
330  pNormalize(p);
331  }
332 }
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
Definition: monomials.h:51
poly t_p
Definition: kutil.h:76
pNormalize(P.p)
#define NULL
Definition: omList.c:10
#define pSetCoeff0(p, n)
Definition: monomials.h:67
poly p
Definition: kutil.h:75
KINLINE sLObject & sLObject::operator= ( const sTObject t)

Definition at line 846 of file kInline.h.

847 {
848  memset(this, 0, sizeof(*this));
849  memcpy(this, &t, sizeof(sTObject));
850  return *this;
851 }
Definition: kutil.h:70
KINLINE long sLObject::pLDeg ( BOOLEAN  use_last)

Definition at line 775 of file kInline.h.

776 {
777  if (! deg_last || bucket != NULL) return sLObject::pLDeg();
778 
779  long ldeg;
780  ldeg = tailRing->pLDeg(GetLmTailRing(), &length, tailRing);
781 #ifdef HAVE_ASSUME
782  if ( pLength == 0)
785 #else
786  pLength=length;
787 #endif
788  return ldeg;
789 }
kBucket_pt bucket
Definition: kutil.h:188
static BOOLEAN rIsSyzIndexRing(const ring r)
Definition: ring.h:711
int length
Definition: kutil.h:80
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
KINLINE long pLDeg()
Definition: kInline.h:760
#define assume(x)
Definition: mod2.h:405
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
poly p_Last(const poly p, int &l, const ring r)
Definition: p_polys.cc:4427
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
ring tailRing
Definition: kutil.h:78
KINLINE long sLObject::pLDeg ( )

Definition at line 760 of file kInline.h.

761 {
762  poly tp = GetLmTailRing();
763  assume(tp != NULL);
764  if (bucket != NULL)
765  {
767  pNext(tp) = bucket->buckets[i];
768  long ldeg = tailRing->pLDeg(tp, &length, tailRing);
769  pNext(tp) = NULL;
770  return ldeg;
771  }
772  else
773  return tailRing->pLDeg(tp, &length, tailRing);
774 }
kBucket_pt bucket
Definition: kutil.h:188
int length
Definition: kutil.h:80
#define assume(x)
Definition: mod2.h:405
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:78
KINLINE void sLObject::PrepareRed ( BOOLEAN  use_bucket)

Definition at line 526 of file kInline.h.

527 {
528  if (bucket == NULL)
529  {
530  int l = GetpLength();
531  if (use_bucket && (l > 1))
532  {
533  poly tp = GetLmTailRing();
534  assume(l == ::pLength(tp));
536  kBucketInit(bucket, pNext(tp), l-1);
537  pNext(tp) = NULL;
538  if (p != NULL) pNext(p) = NULL;
539  pLength = 0;
540  }
541  }
542 }
KINLINE int GetpLength()
Definition: kInline.h:805
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:471
kBucket_pt bucket
Definition: kutil.h:188
#define assume(x)
Definition: mod2.h:405
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
Definition: kbuckets.cc:197
int l
Definition: cfEzgcd.cc:94
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE long sLObject::SetDegStuffReturnLDeg ( )

Definition at line 791 of file kInline.h.

792 {
793  FDeg = this->pFDeg();
794  long d = this->pLDeg();
795  ecart = d - FDeg;
796  return d;
797 }
KINLINE long pLDeg()
Definition: kInline.h:760
long FDeg
Definition: kutil.h:79
KINLINE long pFDeg() const
Definition: kInline.h:395
int ecart
Definition: kutil.h:80
KINLINE long sLObject::SetDegStuffReturnLDeg ( BOOLEAN  use_last)

Definition at line 798 of file kInline.h.

799 {
800  FDeg = this->pFDeg();
801  long d = this->pLDeg(use_last);
802  ecart = d - FDeg;
803  return d;
804 }
KINLINE long pLDeg()
Definition: kInline.h:760
long FDeg
Definition: kutil.h:79
KINLINE long pFDeg() const
Definition: kInline.h:395
int ecart
Definition: kutil.h:80
KINLINE int sLObject::SetLength ( BOOLEAN  lengt_pLength = FALSE)

Definition at line 812 of file kInline.h.

813 {
814  if (length_pLength)
815  {
816  length = this->GetpLength();
817  }
818  else
819  this->pLDeg();
820  return length;
821 }
KINLINE int GetpLength()
Definition: kInline.h:805
int length
Definition: kutil.h:80
KINLINE long pLDeg()
Definition: kInline.h:760
KINLINE void sLObject::SetLmTail ( poly  lm,
poly  new_p,
int  length,
int  use_bucket,
ring  r 
)

Definition at line 544 of file kInline.h.

545 {
546 
547  Set(lm, _tailRing);
548  if (use_bucket)
549  {
550  bucket = kBucketCreate(_tailRing);
551  kBucketInit(bucket, p_tail, p_Length);
552  pNext(lm) = NULL;
553  pLength = 0;
554  }
555  else
556  {
557  pNext(lm) = p_tail;
558  pLength = p_Length + 1;
559  }
560 }
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:471
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
kBucket_pt bucket
Definition: kutil.h:188
p_Length
Definition: p_Procs_Impl.h:122
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
Definition: kbuckets.cc:197
KINLINE void sLObject::SetShortExpVector ( )

Definition at line 713 of file kInline.h.

714 {
715  if (t_p != NULL)
716  {
718  }
719  else
720  {
722  }
723 }
poly t_p
Definition: kutil.h:76
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
unsigned long p_GetShortExpVector(const poly p, const ring r)
Definition: p_polys.cc:4586
#define NULL
Definition: omList.c:10
unsigned long sev
Definition: kutil.h:183
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE void sLObject::ShallowCopyDelete ( ring  new_tailRing,
pShallowCopyDeleteProc  p_shallow_copy_delete 
)

Definition at line 702 of file kInline.h.

704 {
705  if (bucket != NULL)
706  kBucketShallowCopyDelete(bucket, new_tailRing, new_tailRing->PolyBin,
707  p_shallow_copy_delete);
708  sTObject::ShallowCopyDelete(new_tailRing,
709  new_tailRing->PolyBin,p_shallow_copy_delete,
710  FALSE);
711 }
void kBucketShallowCopyDelete(kBucket_pt bucket, ring new_tailRing, omBin new_tailBin, pShallowCopyDeleteProc p_shallow_copy_delete)
For changing the ring of the Bpoly to new_tailBin.
Definition: kbuckets.cc:513
kBucket_pt bucket
Definition: kutil.h:188
#define FALSE
Definition: auxiliary.h:140
KINLINE void ShallowCopyDelete(ring new_tailRing, omBin new_tailBin, pShallowCopyDeleteProc p_shallow_copy_delete, BOOLEAN set_max=TRUE)
Definition: kInline.h:348
#define NULL
Definition: omList.c:10
KINLINE TObject * sLObject::T_1 ( const skStrategy strat)

Definition at line 853 of file kInline.h.

854 {
855  if (p1 == NULL) return NULL;
856  if (i_r1 == -1) i_r1 = kFindInT(p1, s->T, s->tl);
857  assume(i_r1 >= 0 && i_r1 <= s->tl);
858  TObject* T = s->R[i_r1];
859  assume(T->p == p1);
860  return T;
861 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
int i_r1
Definition: kutil.h:189
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:617
poly p1
Definition: kutil.h:184
#define assume(x)
Definition: mod2.h:405
#define NULL
Definition: omList.c:10
static jList * T
Definition: janet.cc:37
class sTObject TObject
Definition: kutil.h:59
KINLINE void sLObject::T_1_2 ( const skStrategy strat,
TObject *&  T_1,
TObject *&  T_2 
)

Definition at line 874 of file kInline.h.

876 {
877  if (p1 == NULL)
878  {
879  T_1 = NULL;
880  T_2 = NULL;
881  return;
882  }
883  assume(p1 != NULL && p2 != NULL);
884  if (i_r1 == -1) i_r1 = kFindInT(p1, strat->T, strat->tl);
885  if (i_r2 == -1) i_r2 = kFindInT(p2, strat->T, strat->tl);
886  assume(i_r1 >= 0 && i_r1 <= strat->tl);
887  assume(i_r2 >= 0 && i_r2 <= strat->tl);
888  T_1 = strat->R[i_r1];
889  T_2 = strat->R[i_r2];
890  assume(T_1->p == p1);
891  assume(T_2->p == p2);
892  return;
893 }
int i_r1
Definition: kutil.h:189
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:617
int tl
Definition: kutil.h:348
poly p1
Definition: kutil.h:184
#define assume(x)
Definition: mod2.h:405
KINLINE TObject * T_2(const skStrategy *strat)
Definition: kInline.h:863
TObject ** R
Definition: kutil.h:338
poly p2
Definition: kutil.h:184
#define NULL
Definition: omList.c:10
TSet T
Definition: kutil.h:322
int i_r2
Definition: kutil.h:189
KINLINE TObject * T_1(const skStrategy *strat)
Definition: kInline.h:853
KINLINE TObject * sLObject::T_2 ( const skStrategy strat)

Definition at line 863 of file kInline.h.

864 {
865  if (p1 == NULL) return NULL;
866  assume(p2 != NULL);
867  if (i_r2 == -1) i_r2 = kFindInT(p2, strat->T, strat->tl);
868  assume(i_r2 >= 0 && i_r2 <= strat->tl);
869  TObject* T = strat->R[i_r2];
870  assume(T->p == p2);
871  return T;
872 }
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:617
int tl
Definition: kutil.h:348
poly p1
Definition: kutil.h:184
#define assume(x)
Definition: mod2.h:405
TObject ** R
Definition: kutil.h:338
poly p2
Definition: kutil.h:184
#define NULL
Definition: omList.c:10
TSet T
Definition: kutil.h:322
int i_r2
Definition: kutil.h:189
static jList * T
Definition: janet.cc:37
class sTObject TObject
Definition: kutil.h:59
KINLINE void sLObject::Tail_Minus_mm_Mult_qq ( poly  m,
poly  qq,
int  lq,
poly  spNoether 
)

Definition at line 576 of file kInline.h.

578 {
579  if (bucket != NULL)
580  {
581  kBucket_Minus_m_Mult_p(bucket, m, q, &lq, spNoether);
582  }
583  else
584  {
585  if (lq<=0) lq= ::pLength(q);
586  poly _p = (t_p != NULL ? t_p : p);
587  assume(_p != NULL);
588 
589  int lp=pLength-1;
590  pNext(_p) = p_Minus_mm_Mult_qq( pNext(_p), m, q, lp, lq,
591  spNoether, tailRing );
592  pLength=lp+1;
593 // tailRing->p_Procs->p_Minus_mm_Mult_qq(pNext(_p), m, q, shorter,spNoether, tailRing, last);
594 // pLength += lq - shorter;
595  }
596 }
kBucket_pt bucket
Definition: kutil.h:188
poly t_p
Definition: kutil.h:76
#define assume(x)
Definition: mod2.h:405
int m
Definition: cfEzgcd.cc:119
void kBucket_Minus_m_Mult_p(kBucket_pt bucket, poly m, poly p, int *l, poly spNoether)
Bpoly == Bpoly - m*p; where m is a monom Does not destroy p and m assume (*l <= 0 || pLength(p) == *l...
Definition: kbuckets.cc:698
int pLength
Definition: kutil.h:80
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
static poly p_Minus_mm_Mult_qq(poly p, const poly m, const poly q, int &lp, int lq, const poly spNoether, const ring r)
Definition: p_polys.h:982
polyrec * poly
Definition: hilb.h:10
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE void sLObject::Tail_Mult_nn ( number  n)

Definition at line 562 of file kInline.h.

563 {
564  if (bucket != NULL)
565  {
567  }
568  else
569  {
570  poly _p = (t_p != NULL ? t_p : p);
571  assume(_p != NULL);
572  pNext(_p) = p_Mult_nn(pNext(_p), n, tailRing);
573  }
574 }
kBucket_pt bucket
Definition: kutil.h:188
void kBucket_Mult_n(kBucket_pt bucket, number n)
Multiply Bucket by number ,i.e. Bpoly == n*Bpoly.
Definition: kbuckets.cc:576
poly t_p
Definition: kutil.h:76
#define assume(x)
Definition: mod2.h:405
static poly p_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:901
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75

Field Documentation

kBucket_pt sLObject::bucket

Definition at line 188 of file kutil.h.

unsigned sLObject::checked

Definition at line 190 of file kutil.h.

int sLObject::i_r1

Definition at line 189 of file kutil.h.

int sLObject::i_r2

Definition at line 189 of file kutil.h.

poly sLObject::lcm

Definition at line 187 of file kutil.h.

poly sLObject::p1

Definition at line 184 of file kutil.h.

poly sLObject::p2

Definition at line 184 of file kutil.h.

BOOLEAN sLObject::prod_crit

Definition at line 195 of file kutil.h.

unsigned long sLObject::sev

Definition at line 183 of file kutil.h.


The documentation for this class was generated from the following files: