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=(omBin) NULL)
 
KINLINE poly GetTP ()
 
KINLINE poly CanonicalizeP ()
 
KINLINE void Copy ()
 
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_exp
 
ring tailRing
 
long FDeg
 
int ecart
 
int length
 
int pLength
 
int i_r
 
char is_normalized
 
char is_redundant
 
char is_sigsafe
 
char is_special
 

Detailed Description

Definition at line 173 of file kutil.h.

Constructor & Destructor Documentation

◆ sLObject() [1/3]

KINLINE sLObject::sLObject ( ring  tailRing = currRing)

Definition at line 508 of file kInline.h.

509 {
510  Init(r);
511 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:500

◆ sLObject() [2/3]

KINLINE sLObject::sLObject ( poly  p,
ring  tailRing = currRing 
)

Definition at line 512 of file kInline.h.

513 {
514  Init(r);
515  Set(p_in, r);
516 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:500
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103

◆ sLObject() [3/3]

KINLINE sLObject::sLObject ( poly  p,
ring  c_r,
ring  tailRing 
)

Definition at line 518 of file kInline.h.

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

Member Function Documentation

◆ CanonicalizeP()

KINLINE poly sLObject::CanonicalizeP ( )

Definition at line 642 of file kInline.h.

643 {
644  //kTest_L(this);
645  int i = -1;
646 
647  if (bucket != NULL)
649 
650  if (p == NULL)
652 
653  if (i >= 0) pNext(p) = bucket->buckets[i];
654  return p;
655 }
kBucket_pt bucket
Definition: kutil.h:182
poly t_p
Definition: kutil.h:70
int i
Definition: cfEzgcd.cc:125
KINLINE poly k_LmInit_tailRing_2_currRing(poly t_p, ring tailRing, omBin lmBin)
Definition: kInline.h:889
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ Clear()

KINLINE void sLObject::Clear ( )

Definition at line 487 of file kInline.h.

488 {
489  sTObject::Clear();
490  sev = 0;
491 }
KINLINE void Clear()
Definition: kInline.h:191
unsigned long sev
Definition: kutil.h:177

◆ Comp()

KINLINE long sLObject::Comp ( )

Definition at line 816 of file kInline.h.

817 {
818  poly pp;
819  ring r;
820  GetLm(pp, r);
821  assume(pp != NULL);
822  return p_GetComp(pp, r);
823 }
#define p_GetComp(p, r)
Definition: monomials.h:71
#define assume(x)
Definition: mod2.h:390
CanonicalForm pp(const CanonicalForm &)
CanonicalForm pp ( const CanonicalForm & f )
Definition: cf_gcd.cc:253
#define NULL
Definition: omList.c:10
KINLINE poly GetLm(ring r)
Definition: kInline.h:240

◆ Copy()

KINLINE void sLObject::Copy ( )

Definition at line 723 of file kInline.h.

724 {
725  if (bucket != NULL)
726  {
728  kBucket_pt new_bucket = kBucketCreate(tailRing);
729  kBucketInit(new_bucket,
730  p_Copy(bucket->buckets[i], tailRing),
731  bucket->buckets_length[i]);
732  bucket = new_bucket;
733  if (t_p != NULL) pNext(t_p) = NULL;
734  if (p != NULL) pNext(p) = NULL;
735  }
736  TObject::Copy();
737 }
static number Copy(number a, const coeffs r)
Definition: flintcf_Q.cc:229
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:475
kBucket_pt bucket
Definition: kutil.h:182
static poly p_Copy(poly p, const ring r)
returns a copy of p
Definition: p_polys.h:812
poly t_p
Definition: kutil.h:70
int i
Definition: cfEzgcd.cc:125
#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:206
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ Delete()

KINLINE void sLObject::Delete ( )

Definition at line 493 of file kInline.h.

494 {
496  if (bucket != NULL)
498 }
kBucket_pt bucket
Definition: kutil.h:182
#define NULL
Definition: omList.c:10
void kBucketDeleteAndDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:220
KINLINE void Delete()
Definition: kInline.h:177

◆ GetP()

KINLINE poly sLObject::GetP ( omBin  lmBin = (omBin)NULL)

Definition at line 673 of file kInline.h.

674 {
675  //kTest_L(this);
676  if (p == NULL)
677  {
679  (lmBin!=NULL?lmBin:currRing->PolyBin));
680  FDeg = pFDeg();
681  }
682  else if (lmBin != NULL && lmBin != currRing->PolyBin)
683  {
685  FDeg = pFDeg();
686  }
687 
688  if (bucket != NULL)
689  {
692  pLength++;
693  if (t_p != NULL) pNext(t_p) = pNext(p);
694  }
695  //kTest_L(this);
696  return p;
697 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:503
kBucket_pt bucket
Definition: kutil.h:182
static poly p_LmShallowCopyDelete(poly p, const ring r)
Definition: p_polys.h:1339
poly t_p
Definition: kutil.h:70
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:213
long FDeg
Definition: kutil.h:73
KINLINE poly k_LmInit_tailRing_2_currRing(poly t_p, ring tailRing, omBin lmBin)
Definition: kInline.h:889
int pLength
Definition: kutil.h:74
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:13
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69
KINLINE long pFDeg() const
Definition: kInline.h:393

◆ GetpLength()

KINLINE int sLObject::GetpLength ( )

Definition at line 784 of file kInline.h.

785 {
786  if (bucket == NULL)
787  return sTObject::GetpLength();
789  return bucket->buckets_length[i] + 1;
790 }
kBucket_pt bucket
Definition: kutil.h:182
KINLINE int GetpLength()
Definition: kInline.h:271
int i
Definition: cfEzgcd.cc:125
#define NULL
Definition: omList.c:10
int kBucketCanonicalize(kBucket_pt bucket)

◆ GetTP()

KINLINE poly sLObject::GetTP ( )

Definition at line 657 of file kInline.h.

658 {
659  //kTest_L(this);
660  poly tp = GetLmTailRing();
661  assume(tp != NULL);
662 
663  if (bucket != NULL)
664  {
665  kBucketClear(bucket, &pNext(tp), &pLength);
667  pLength++;
668  }
669  return tp;
670 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:503
kBucket_pt bucket
Definition: kutil.h:182
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:213
#define assume(x)
Definition: mod2.h:390
int pLength
Definition: kutil.h:74
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:227
#define pNext(p)
Definition: monomials.h:43

◆ HeadNormalize()

KINLINE void sLObject::HeadNormalize ( )

Definition at line 338 of file kInline.h.

339 {
340  if (t_p != NULL)
341  {
343  if (p != NULL) pSetCoeff0(p, pGetCoeff(t_p));
344  }
345  else
346  {
348  }
349 }
#define nNormalize(n)
Definition: numbers.h:31
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:70
#define NULL
Definition: omList.c:10
#define pSetCoeff0(p, n)
Definition: monomials.h:66
poly p
Definition: kutil.h:69

◆ Init()

KINLINE void sLObject::Init ( ring  tailRing = currRing)

Definition at line 500 of file kInline.h.

501 {
502  memset(this, 0, sizeof(sLObject));
503  i_r1 = -1;
504  i_r2 = -1;
505  i_r = -1;
506  Set(r);
507 }
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
int i_r1
Definition: kutil.h:183
int i_r
Definition: kutil.h:74
int i_r2
Definition: kutil.h:183

◆ LmDeleteAndIter()

KINLINE void sLObject::LmDeleteAndIter ( )

Definition at line 596 of file kInline.h.

597 {
599  if (bucket != NULL)
600  {
601  poly _p = kBucketExtractLm(bucket);
602  if (_p == NULL)
603  {
605  p = t_p = NULL;
606  return;
607  }
608  Set(_p, tailRing);
609  }
610  else
611  {
612  pLength--;
613  }
614 }
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
kBucket_pt bucket
Definition: kutil.h:182
poly kBucketExtractLm(kBucket_pt bucket)
Definition: kbuckets.cc:493
KINLINE void LmDeleteAndIter()
Definition: kInline.h:291
poly t_p
Definition: kutil.h:70
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:213
int pLength
Definition: kutil.h:74
#define NULL
Definition: omList.c:10
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ LmExtractAndIter()

KINLINE poly sLObject::LmExtractAndIter ( )

Definition at line 616 of file kInline.h.

617 {
618  poly ret = GetLmTailRing();
619  poly pn;
620 
621  assume(p != NULL || t_p != NULL);
622 
623  if (bucket != NULL)
624  {
625  pn = kBucketExtractLm(bucket);
626  if (pn == NULL)
628  }
629  else
630  {
631  pn = pNext(ret);
632  }
633  pLength--;
634  pNext(ret) = NULL;
635  if (p != NULL && t_p != NULL)
636  p_LmFree(p, currRing);
637 
638  Set(pn, tailRing);
639  return ret;
640 }
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
kBucket_pt bucket
Definition: kutil.h:182
static void p_LmFree(poly p, ring)
Definition: p_polys.h:683
poly kBucketExtractLm(kBucket_pt bucket)
Definition: kbuckets.cc:493
poly t_p
Definition: kutil.h:70
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:213
#define assume(x)
Definition: mod2.h:390
int pLength
Definition: kutil.h:74
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:227
#define pNext(p)
Definition: monomials.h:43
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:13
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ MinComp()

KINLINE long sLObject::MinComp ( )

Definition at line 801 of file kInline.h.

802 {
803  poly tp = GetLmTailRing();
804  assume(tp != NULL);
805  if (bucket != NULL)
806  {
808  pNext(tp) = bucket->buckets[i];
809  long m = p_MinComp(tp, tailRing);
810  pNext(tp) = NULL;
811  return m;
812  }
813  else
814  return p_MinComp(tp, tailRing);
815 }
kBucket_pt bucket
Definition: kutil.h:182
#define assume(x)
Definition: mod2.h:390
int m
Definition: cfEzgcd.cc:121
int i
Definition: cfEzgcd.cc:125
static long p_MinComp(poly p, ring lmRing, ring tailRing)
Definition: p_polys.h:313
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:227
#define pNext(p)
Definition: monomials.h:43
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:72

◆ Normalize()

KINLINE void sLObject::Normalize ( )

Definition at line 325 of file kInline.h.

326 {
327  if (t_p != NULL)
328  {
329  pNormalize(t_p);
330  if (p != NULL) pSetCoeff0(p, pGetCoeff(t_p));
331  }
332  else
333  {
334  pNormalize(p);
335  }
336 }
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:70
#define NULL
Definition: omList.c:10
#define pSetCoeff0(p, n)
Definition: monomials.h:66
poly p
Definition: kutil.h:69
#define pNormalize(p)
Definition: polys.h:303

◆ operator=()

KINLINE sLObject & sLObject::operator= ( const sTObject t)

Definition at line 825 of file kInline.h.

826 {
827  memset(this, 0, sizeof(*this));
828  memcpy(this, &t, sizeof(sTObject));
829  return *this;
830 }
Definition: kutil.h:64

◆ pLDeg() [1/2]

KINLINE long sLObject::pLDeg ( BOOLEAN  use_last)

Definition at line 754 of file kInline.h.

755 {
756  if (! deg_last || bucket != NULL) return sLObject::pLDeg();
757 
758  long ldeg;
759  ldeg = tailRing->pLDeg(GetLmTailRing(), &length, tailRing);
760 #ifndef SING_NDEBUG
761  if ( pLength == 0)
764 #else
765  pLength=length;
766 #endif
767  return ldeg;
768 }
kBucket_pt bucket
Definition: kutil.h:182
static BOOLEAN rIsSyzIndexRing(const ring r)
Definition: ring.h:711
int length
Definition: kutil.h:74
KINLINE long pLDeg()
Definition: kInline.h:739
#define assume(x)
Definition: mod2.h:390
int pLength
Definition: kutil.h:74
#define NULL
Definition: omList.c:10
poly p_Last(const poly p, int &l, const ring r)
Definition: p_polys.cc:4505
KINLINE poly GetLmTailRing()
Definition: kInline.h:227
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:13
ring tailRing
Definition: kutil.h:72

◆ pLDeg() [2/2]

KINLINE long sLObject::pLDeg ( )

Definition at line 739 of file kInline.h.

740 {
741  poly tp = GetLmTailRing();
742  assume(tp != NULL);
743  if (bucket != NULL)
744  {
746  pNext(tp) = bucket->buckets[i];
747  long ldeg = tailRing->pLDeg(tp, &length, tailRing);
748  pNext(tp) = NULL;
749  return ldeg;
750  }
751  else
752  return tailRing->pLDeg(tp, &length, tailRing);
753 }
kBucket_pt bucket
Definition: kutil.h:182
int length
Definition: kutil.h:74
#define assume(x)
Definition: mod2.h:390
int i
Definition: cfEzgcd.cc:125
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:227
#define pNext(p)
Definition: monomials.h:43
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:72

◆ PrepareRed()

KINLINE void sLObject::PrepareRed ( BOOLEAN  use_bucket)

Definition at line 524 of file kInline.h.

525 {
526  if (bucket == NULL)
527  {
528  unsigned l = GetpLength();
529  if (use_bucket && (l > 1))
530  {
531  poly tp = GetLmTailRing();
532  assume(l == ::pLength(tp));
534  kBucketInit(bucket, pNext(tp), l-1);
535  pNext(tp) = NULL;
536  if (p != NULL) pNext(p) = NULL;
537  pLength = 0;
538  }
539  }
540 }
KINLINE int GetpLength()
Definition: kInline.h:784
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:475
kBucket_pt bucket
Definition: kutil.h:182
#define assume(x)
Definition: mod2.h:390
int pLength
Definition: kutil.h:74
#define NULL
Definition: omList.c:10
KINLINE poly GetLmTailRing()
Definition: kInline.h:227
#define pNext(p)
Definition: monomials.h:43
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
Definition: kbuckets.cc:206
int l
Definition: cfEzgcd.cc:93
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ SetDegStuffReturnLDeg() [1/2]

KINLINE long sLObject::SetDegStuffReturnLDeg ( )

Definition at line 770 of file kInline.h.

771 {
772  FDeg = this->pFDeg();
773  long d = this->pLDeg();
774  ecart = d - FDeg;
775  return d;
776 }
KINLINE long pLDeg()
Definition: kInline.h:739
long FDeg
Definition: kutil.h:73
int ecart
Definition: kutil.h:74
KINLINE long pFDeg() const
Definition: kInline.h:393

◆ SetDegStuffReturnLDeg() [2/2]

KINLINE long sLObject::SetDegStuffReturnLDeg ( BOOLEAN  use_last)

Definition at line 777 of file kInline.h.

778 {
779  FDeg = this->pFDeg();
780  long d = this->pLDeg(use_last);
781  ecart = d - FDeg;
782  return d;
783 }
KINLINE long pLDeg()
Definition: kInline.h:739
long FDeg
Definition: kutil.h:73
int ecart
Definition: kutil.h:74
KINLINE long pFDeg() const
Definition: kInline.h:393

◆ SetLength()

KINLINE int sLObject::SetLength ( BOOLEAN  lengt_pLength = FALSE)

Definition at line 791 of file kInline.h.

792 {
793  if (length_pLength)
794  {
795  length = this->GetpLength();
796  }
797  else
798  this->pLDeg();
799  return length;
800 }
KINLINE int GetpLength()
Definition: kInline.h:784
int length
Definition: kutil.h:74
KINLINE long pLDeg()
Definition: kInline.h:739

◆ SetLmTail()

KINLINE void sLObject::SetLmTail ( poly  lm,
poly  new_p,
int  length,
int  use_bucket,
ring  r 
)

Definition at line 542 of file kInline.h.

543 {
544 
545  Set(lm, _tailRing);
546  if (use_bucket)
547  {
548  bucket = kBucketCreate(_tailRing);
549  kBucketInit(bucket, p_tail, p_Length);
550  pNext(lm) = NULL;
551  pLength = 0;
552  }
553  else
554  {
555  pNext(lm) = p_tail;
556  pLength = p_Length + 1;
557  }
558 }
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:475
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
kBucket_pt bucket
Definition: kutil.h:182
p_Length
Definition: p_Procs_Impl.h:122
int pLength
Definition: kutil.h:74
#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:206

◆ SetShortExpVector()

KINLINE void sLObject::SetShortExpVector ( )

Definition at line 711 of file kInline.h.

712 {
713  if (t_p != NULL)
714  {
716  }
717  else
718  {
720  }
721 }
poly t_p
Definition: kutil.h:70
unsigned long p_GetShortExpVector(const poly p, const ring r)
Definition: p_polys.cc:4665
#define NULL
Definition: omList.c:10
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:13
unsigned long sev
Definition: kutil.h:177
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ ShallowCopyDelete()

KINLINE void sLObject::ShallowCopyDelete ( ring  new_tailRing,
pShallowCopyDeleteProc  p_shallow_copy_delete 
)

Definition at line 700 of file kInline.h.

702 {
703  if (bucket != NULL)
704  kBucketShallowCopyDelete(bucket, new_tailRing, new_tailRing->PolyBin,
705  p_shallow_copy_delete);
706  sTObject::ShallowCopyDelete(new_tailRing,
707  new_tailRing->PolyBin,p_shallow_copy_delete,
708  FALSE);
709 }
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:517
kBucket_pt bucket
Definition: kutil.h:182
#define FALSE
Definition: auxiliary.h:94
KINLINE void ShallowCopyDelete(ring new_tailRing, omBin new_tailBin, pShallowCopyDeleteProc p_shallow_copy_delete, BOOLEAN set_max=TRUE)
Definition: kInline.h:352
#define NULL
Definition: omList.c:10

◆ T_1()

KINLINE TObject * sLObject::T_1 ( const skStrategy strat)

Definition at line 832 of file kInline.h.

833 {
834  if (p1 == NULL) return NULL;
835  if (i_r1 == -1) i_r1 = kFindInT(p1, s->T, s->tl);
836  assume(i_r1 >= 0 && i_r1 <= s->tl);
837  TObject* T = s->R[i_r1];
838  assume(T->p == p1);
839  return T;
840 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
int i_r1
Definition: kutil.h:183
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:704
poly p1
Definition: kutil.h:178
#define assume(x)
Definition: mod2.h:390
#define NULL
Definition: omList.c:10
static jList * T
Definition: janet.cc:31
class sTObject TObject
Definition: kutil.h:53

◆ T_1_2()

KINLINE void sLObject::T_1_2 ( const skStrategy strat,
TObject *&  T_1,
TObject *&  T_2 
)

Definition at line 853 of file kInline.h.

855 {
856  if (p1 == NULL)
857  {
858  T_1 = NULL;
859  T_2 = NULL;
860  return;
861  }
862  assume(p1 != NULL && p2 != NULL);
863  if (i_r1 == -1) i_r1 = kFindInT(p1, strat->T, strat->tl);
864  if (i_r2 == -1) i_r2 = kFindInT(p2, strat->T, strat->tl);
865  assume(i_r1 >= 0 && i_r1 <= strat->tl);
866  assume(i_r2 >= 0 && i_r2 <= strat->tl);
867  T_1 = strat->R[i_r1];
868  T_2 = strat->R[i_r2];
869  assume(T_1->p == p1);
870  assume(T_2->p == p2);
871  return;
872 }
int i_r1
Definition: kutil.h:183
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:704
int tl
Definition: kutil.h:343
poly p1
Definition: kutil.h:178
#define assume(x)
Definition: mod2.h:390
KINLINE TObject * T_2(const skStrategy *strat)
Definition: kInline.h:842
TObject ** R
Definition: kutil.h:333
poly p2
Definition: kutil.h:178
#define NULL
Definition: omList.c:10
TSet T
Definition: kutil.h:317
int i_r2
Definition: kutil.h:183
KINLINE TObject * T_1(const skStrategy *strat)
Definition: kInline.h:832

◆ T_2()

KINLINE TObject * sLObject::T_2 ( const skStrategy strat)

Definition at line 842 of file kInline.h.

843 {
844  if (p1 == NULL) return NULL;
845  assume(p2 != NULL);
846  if (i_r2 == -1) i_r2 = kFindInT(p2, strat->T, strat->tl);
847  assume(i_r2 >= 0 && i_r2 <= strat->tl);
848  TObject* T = strat->R[i_r2];
849  assume(T->p == p2);
850  return T;
851 }
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:704
int tl
Definition: kutil.h:343
poly p1
Definition: kutil.h:178
#define assume(x)
Definition: mod2.h:390
TObject ** R
Definition: kutil.h:333
poly p2
Definition: kutil.h:178
#define NULL
Definition: omList.c:10
TSet T
Definition: kutil.h:317
int i_r2
Definition: kutil.h:183
static jList * T
Definition: janet.cc:31
class sTObject TObject
Definition: kutil.h:53

◆ Tail_Minus_mm_Mult_qq()

KINLINE void sLObject::Tail_Minus_mm_Mult_qq ( poly  m,
poly  qq,
int  lq,
poly  spNoether 
)

Definition at line 574 of file kInline.h.

576 {
577  if (bucket != NULL)
578  {
579  kBucket_Minus_m_Mult_p(bucket, m, q, &lq, spNoether);
580  }
581  else
582  {
583  if (lq<=0) lq= ::pLength(q);
584  poly _p = (t_p != NULL ? t_p : p);
585  assume(_p != NULL);
586 
587  int lp=pLength-1;
588  pNext(_p) = p_Minus_mm_Mult_qq( pNext(_p), m, q, lp, lq,
589  spNoether, tailRing );
590  pLength=lp+1;
591 // tailRing->p_Procs->p_Minus_mm_Mult_qq(pNext(_p), m, q, shorter,spNoether, tailRing, last);
592 // pLength += lq - shorter;
593  }
594 }
kBucket_pt bucket
Definition: kutil.h:182
poly t_p
Definition: kutil.h:70
#define assume(x)
Definition: mod2.h:390
int m
Definition: cfEzgcd.cc:121
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:74
#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:1006
Definition: lq.h:39
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

◆ Tail_Mult_nn()

KINLINE void sLObject::Tail_Mult_nn ( number  n)

Definition at line 560 of file kInline.h.

561 {
562  if (bucket != NULL)
563  {
565  }
566  else
567  {
568  poly _p = (t_p != NULL ? t_p : p);
569  assume(_p != NULL);
570  pNext(_p) = __p_Mult_nn(pNext(_p), n, tailRing);
571  }
572 }
kBucket_pt bucket
Definition: kutil.h:182
void kBucket_Mult_n(kBucket_pt bucket, number n)
Multiply Bucket by number ,i.e. Bpoly == n*Bpoly.
Definition: kbuckets.cc:580
poly t_p
Definition: kutil.h:70
#define assume(x)
Definition: mod2.h:390
#define __p_Mult_nn(p, n, r)
Definition: p_polys.h:927
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
ring tailRing
Definition: kutil.h:72
poly p
Definition: kutil.h:69

Field Documentation

◆ bucket

kBucket_pt sLObject::bucket

Definition at line 182 of file kutil.h.

◆ checked

unsigned sLObject::checked

Definition at line 184 of file kutil.h.

◆ i_r1

int sLObject::i_r1

Definition at line 183 of file kutil.h.

◆ i_r2

int sLObject::i_r2

Definition at line 183 of file kutil.h.

◆ lcm

poly sLObject::lcm

Definition at line 181 of file kutil.h.

◆ p1

poly sLObject::p1

Definition at line 178 of file kutil.h.

◆ p2

poly sLObject::p2

Definition at line 178 of file kutil.h.

◆ prod_crit

BOOLEAN sLObject::prod_crit

Definition at line 189 of file kutil.h.

◆ sev

unsigned long sLObject::sev

Definition at line 177 of file kutil.h.


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