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 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
 
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

§ sLObject() [1/3]

KINLINE sLObject::sLObject ( ring  tailRing = currRing)

Definition at line 504 of file kInline.h.

505 {
506  Init(r);
507 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:496
const ring r
Definition: syzextra.cc:208

§ sLObject() [2/3]

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

Definition at line 508 of file kInline.h.

509 {
510  Init(r);
511  Set(p_in, r);
512 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:496
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103
const ring r
Definition: syzextra.cc:208

§ sLObject() [3/3]

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

Definition at line 514 of file kInline.h.

515 {
516  Init(t_r);
517  Set(p_in, c_r, t_r);
518 }
KINLINE void Init(ring tailRing=currRing)
Definition: kInline.h:496
KINLINE void Set(ring r=currRing)
Definition: kInline.h:103

Member Function Documentation

§ CanonicalizeP()

KINLINE poly sLObject::CanonicalizeP ( )

Definition at line 638 of file kInline.h.

639 {
640  //kTest_L(this);
641  int i = -1;
642 
643  if (bucket != NULL)
645 
646  if (p == NULL)
648 
649  if (i >= 0) pNext(p) = bucket->buckets[i];
650  return p;
651 }
kBucket_pt bucket
Definition: kutil.h:188
KINLINE poly k_LmInit_tailRing_2_currRing(poly p, ring tailRing, omBin lmBin)
Definition: kInline.h:885
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

§ Clear()

KINLINE void sLObject::Clear ( )

Definition at line 483 of file kInline.h.

484 {
485  sTObject::Clear();
486  sev = 0;
487 }
KINLINE void Clear()
Definition: kInline.h:189
unsigned long sev
Definition: kutil.h:183

§ Comp()

KINLINE long sLObject::Comp ( )

Definition at line 812 of file kInline.h.

813 {
814  poly pp;
815  ring r;
816  GetLm(pp, r);
817  assume(pp != NULL);
818  return p_GetComp(pp, r);
819 }
#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:394
#define NULL
Definition: omList.c:10
KINLINE poly GetLm(ring r)
Definition: kInline.h:237
polyrec * poly
Definition: hilb.h:10

§ Copy()

KINLINE void sLObject::Copy ( )

Definition at line 719 of file kInline.h.

720 {
721  if (bucket != NULL)
722  {
724  kBucket_pt new_bucket = kBucketCreate(tailRing);
725  kBucketInit(new_bucket,
726  p_Copy(bucket->buckets[i], tailRing),
727  bucket->buckets_length[i]);
728  bucket = new_bucket;
729  if (t_p != NULL) pNext(t_p) = NULL;
730  if (p != NULL) pNext(p) = NULL;
731  }
732  TObject::Copy();
733 }
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:467
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:804
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:193
int kBucketCanonicalize(kBucket_pt bucket)
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75

§ Delete()

KINLINE void sLObject::Delete ( )

Definition at line 489 of file kInline.h.

490 {
492  if (bucket != NULL)
494 }
kBucket_pt bucket
Definition: kutil.h:188
#define NULL
Definition: omList.c:10
void kBucketDeleteAndDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:207
KINLINE void Delete()
Definition: kInline.h:175

§ GetP()

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

Definition at line 669 of file kInline.h.

670 {
671  //kTest_L(this);
672  if (p == NULL)
673  {
675  (lmBin!=NULL?lmBin:currRing->PolyBin));
676  FDeg = pFDeg();
677  }
678  else if (lmBin != NULL && lmBin != currRing->PolyBin)
679  {
681  FDeg = pFDeg();
682  }
683 
684  if (bucket != NULL)
685  {
688  pLength++;
689  if (t_p != NULL) pNext(t_p) = pNext(p);
690  }
691  //kTest_L(this);
692  return p;
693 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:495
kBucket_pt bucket
Definition: kutil.h:188
KINLINE poly k_LmInit_tailRing_2_currRing(poly p, ring tailRing, omBin lmBin)
Definition: kInline.h:885
static poly p_LmShallowCopyDelete(poly p, const ring r)
Definition: p_polys.h:1316
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:10
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:200
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
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75
KINLINE long pFDeg() const
Definition: kInline.h:389

§ GetpLength()

KINLINE int sLObject::GetpLength ( )

Definition at line 780 of file kInline.h.

781 {
782  if (bucket == NULL)
783  return sTObject::GetpLength();
785  return bucket->buckets_length[i] + 1;
786 }
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)

§ GetTP()

KINLINE poly sLObject::GetTP ( )

Definition at line 653 of file kInline.h.

654 {
655  //kTest_L(this);
656  poly tp = GetLmTailRing();
657  assume(tp != NULL);
658 
659  if (bucket != NULL)
660  {
661  kBucketClear(bucket, &pNext(tp), &pLength);
663  pLength++;
664  }
665  return tp;
666 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:495
kBucket_pt bucket
Definition: kutil.h:188
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:200
#define assume(x)
Definition: mod2.h:394
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

§ HeadNormalize()

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

§ Init()

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

Definition at line 496 of file kInline.h.

497 {
498  memset(this, 0, sizeof(sLObject));
499  i_r1 = -1;
500  i_r2 = -1;
501  i_r = -1;
502  Set(r);
503 }
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

§ LmDeleteAndIter()

KINLINE void sLObject::LmDeleteAndIter ( )

Definition at line 592 of file kInline.h.

593 {
595  if (bucket != NULL)
596  {
598  if (_p == NULL)
599  {
601  p = t_p = NULL;
602  return;
603  }
604  Set(_p, tailRing);
605  }
606  else
607  {
608  pLength--;
609  }
610 }
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:485
KINLINE void LmDeleteAndIter()
Definition: kInline.h:288
poly t_p
Definition: kutil.h:76
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:200
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

§ LmExtractAndIter()

KINLINE poly sLObject::LmExtractAndIter ( )

Definition at line 612 of file kInline.h.

613 {
614  poly ret = GetLmTailRing();
615  poly pn;
616 
617  assume(p != NULL || t_p != NULL);
618 
619  if (bucket != NULL)
620  {
621  pn = kBucketExtractLm(bucket);
622  if (pn == NULL)
624  }
625  else
626  {
627  pn = pNext(ret);
628  }
629  pLength--;
630  pNext(ret) = NULL;
631  if (p != NULL && t_p != NULL)
632  p_LmFree(p, currRing);
633 
634  Set(pn, tailRing);
635  return ret;
636 }
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:485
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:10
void kBucketDestroy(kBucket_pt *bucket_pt)
Definition: kbuckets.cc:200
#define assume(x)
Definition: mod2.h:394
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

§ MinComp()

KINLINE long sLObject::MinComp ( )

Definition at line 797 of file kInline.h.

798 {
799  poly tp = GetLmTailRing();
800  assume(tp != NULL);
801  if (bucket != NULL)
802  {
804  pNext(tp) = bucket->buckets[i];
805  long m = p_MinComp(tp, tailRing);
806  pNext(tp) = NULL;
807  return m;
808  }
809  else
810  return p_MinComp(tp, tailRing);
811 }
kBucket_pt bucket
Definition: kutil.h:188
#define assume(x)
Definition: mod2.h:394
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

§ Normalize()

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

§ operator=()

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

Definition at line 821 of file kInline.h.

822 {
823  memset(this, 0, sizeof(*this));
824  memcpy(this, &t, sizeof(sTObject));
825  return *this;
826 }
Definition: kutil.h:70

§ pLDeg() [1/2]

KINLINE long sLObject::pLDeg ( BOOLEAN  use_last)

Definition at line 750 of file kInline.h.

751 {
752  if (! deg_last || bucket != NULL) return sLObject::pLDeg();
753 
754  long ldeg;
755  ldeg = tailRing->pLDeg(GetLmTailRing(), &length, tailRing);
756 #ifdef HAVE_ASSUME
757  if ( pLength == 0)
760 #else
761  pLength=length;
762 #endif
763  return ldeg;
764 }
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:10
KINLINE long pLDeg()
Definition: kInline.h:735
#define assume(x)
Definition: mod2.h:394
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:4429
KINLINE poly GetLmTailRing()
Definition: kInline.h:224
ring tailRing
Definition: kutil.h:78

§ pLDeg() [2/2]

KINLINE long sLObject::pLDeg ( )

Definition at line 735 of file kInline.h.

736 {
737  poly tp = GetLmTailRing();
738  assume(tp != NULL);
739  if (bucket != NULL)
740  {
742  pNext(tp) = bucket->buckets[i];
743  long ldeg = tailRing->pLDeg(tp, &length, tailRing);
744  pNext(tp) = NULL;
745  return ldeg;
746  }
747  else
748  return tailRing->pLDeg(tp, &length, tailRing);
749 }
kBucket_pt bucket
Definition: kutil.h:188
int length
Definition: kutil.h:80
#define assume(x)
Definition: mod2.h:394
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

§ PrepareRed()

KINLINE void sLObject::PrepareRed ( BOOLEAN  use_bucket)

Definition at line 520 of file kInline.h.

521 {
522  if (bucket == NULL)
523  {
524  int l = GetpLength();
525  if (use_bucket && (l > 1))
526  {
527  poly tp = GetLmTailRing();
528  assume(l == ::pLength(tp));
530  kBucketInit(bucket, pNext(tp), l-1);
531  pNext(tp) = NULL;
532  if (p != NULL) pNext(p) = NULL;
533  pLength = 0;
534  }
535  }
536 }
KINLINE int GetpLength()
Definition: kInline.h:780
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:467
kBucket_pt bucket
Definition: kutil.h:188
#define assume(x)
Definition: mod2.h:394
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:193
int l
Definition: cfEzgcd.cc:94
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75

§ SetDegStuffReturnLDeg() [1/2]

KINLINE long sLObject::SetDegStuffReturnLDeg ( )

Definition at line 766 of file kInline.h.

767 {
768  FDeg = this->pFDeg();
769  long d = this->pLDeg();
770  ecart = d - FDeg;
771  return d;
772 }
KINLINE long pLDeg()
Definition: kInline.h:735
long FDeg
Definition: kutil.h:79
int ecart
Definition: kutil.h:80
KINLINE long pFDeg() const
Definition: kInline.h:389

§ SetDegStuffReturnLDeg() [2/2]

KINLINE long sLObject::SetDegStuffReturnLDeg ( BOOLEAN  use_last)

Definition at line 773 of file kInline.h.

774 {
775  FDeg = this->pFDeg();
776  long d = this->pLDeg(use_last);
777  ecart = d - FDeg;
778  return d;
779 }
KINLINE long pLDeg()
Definition: kInline.h:735
long FDeg
Definition: kutil.h:79
int ecart
Definition: kutil.h:80
KINLINE long pFDeg() const
Definition: kInline.h:389

§ SetLength()

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

Definition at line 787 of file kInline.h.

788 {
789  if (length_pLength)
790  {
791  length = this->GetpLength();
792  }
793  else
794  this->pLDeg();
795  return length;
796 }
KINLINE int GetpLength()
Definition: kInline.h:780
int length
Definition: kutil.h:80
KINLINE long pLDeg()
Definition: kInline.h:735

§ SetLmTail()

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

Definition at line 538 of file kInline.h.

539 {
540 
541  Set(lm, _tailRing);
542  if (use_bucket)
543  {
544  bucket = kBucketCreate(_tailRing);
545  kBucketInit(bucket, p_tail, p_Length);
546  pNext(lm) = NULL;
547  pLength = 0;
548  }
549  else
550  {
551  pNext(lm) = p_tail;
552  pLength = p_Length + 1;
553  }
554 }
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:467
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:193

§ SetShortExpVector()

KINLINE void sLObject::SetShortExpVector ( )

Definition at line 707 of file kInline.h.

708 {
709  if (t_p != NULL)
710  {
712  }
713  else
714  {
716  }
717 }
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:10
unsigned long p_GetShortExpVector(const poly p, const ring r)
Definition: p_polys.cc:4588
#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

§ ShallowCopyDelete()

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

Definition at line 696 of file kInline.h.

698 {
699  if (bucket != NULL)
700  kBucketShallowCopyDelete(bucket, new_tailRing, new_tailRing->PolyBin,
701  p_shallow_copy_delete);
702  sTObject::ShallowCopyDelete(new_tailRing,
703  new_tailRing->PolyBin,p_shallow_copy_delete,
704  FALSE);
705 }
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:509
kBucket_pt bucket
Definition: kutil.h:188
#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:348
#define NULL
Definition: omList.c:10

§ T_1()

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

Definition at line 828 of file kInline.h.

829 {
830  if (p1 == NULL) return NULL;
831  if (i_r1 == -1) i_r1 = kFindInT(p1, s->T, s->tl);
832  assume(i_r1 >= 0 && i_r1 <= s->tl);
833  TObject* T = s->R[i_r1];
834  assume(T->p == p1);
835  return T;
836 }
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:717
poly p1
Definition: kutil.h:184
#define assume(x)
Definition: mod2.h:394
#define NULL
Definition: omList.c:10
static jList * T
Definition: janet.cc:37
class sTObject TObject
Definition: kutil.h:59

§ T_1_2()

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

Definition at line 849 of file kInline.h.

851 {
852  if (p1 == NULL)
853  {
854  T_1 = NULL;
855  T_2 = NULL;
856  return;
857  }
858  assume(p1 != NULL && p2 != NULL);
859  if (i_r1 == -1) i_r1 = kFindInT(p1, strat->T, strat->tl);
860  if (i_r2 == -1) i_r2 = kFindInT(p2, strat->T, strat->tl);
861  assume(i_r1 >= 0 && i_r1 <= strat->tl);
862  assume(i_r2 >= 0 && i_r2 <= strat->tl);
863  T_1 = strat->R[i_r1];
864  T_2 = strat->R[i_r2];
865  assume(T_1->p == p1);
866  assume(T_2->p == p2);
867  return;
868 }
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:717
int tl
Definition: kutil.h:346
poly p1
Definition: kutil.h:184
#define assume(x)
Definition: mod2.h:394
KINLINE TObject * T_2(const skStrategy *strat)
Definition: kInline.h:838
TObject ** R
Definition: kutil.h:336
poly p2
Definition: kutil.h:184
#define NULL
Definition: omList.c:10
TSet T
Definition: kutil.h:320
int i_r2
Definition: kutil.h:189
KINLINE TObject * T_1(const skStrategy *strat)
Definition: kInline.h:828

§ T_2()

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

Definition at line 838 of file kInline.h.

839 {
840  if (p1 == NULL) return NULL;
841  assume(p2 != NULL);
842  if (i_r2 == -1) i_r2 = kFindInT(p2, strat->T, strat->tl);
843  assume(i_r2 >= 0 && i_r2 <= strat->tl);
844  TObject* T = strat->R[i_r2];
845  assume(T->p == p2);
846  return T;
847 }
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
Definition: kutil.cc:717
int tl
Definition: kutil.h:346
poly p1
Definition: kutil.h:184
#define assume(x)
Definition: mod2.h:394
TObject ** R
Definition: kutil.h:336
poly p2
Definition: kutil.h:184
#define NULL
Definition: omList.c:10
TSet T
Definition: kutil.h:320
int i_r2
Definition: kutil.h:189
static jList * T
Definition: janet.cc:37
class sTObject TObject
Definition: kutil.h:59

§ Tail_Minus_mm_Mult_qq()

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

Definition at line 570 of file kInline.h.

572 {
573  if (bucket != NULL)
574  {
575  kBucket_Minus_m_Mult_p(bucket, m, q, &lq, spNoether);
576  }
577  else
578  {
579  if (lq<=0) lq= ::pLength(q);
580  poly _p = (t_p != NULL ? t_p : p);
581  assume(_p != NULL);
582 
583  int lp=pLength-1;
584  pNext(_p) = p_Minus_mm_Mult_qq( pNext(_p), m, q, lp, lq,
585  spNoether, tailRing );
586  pLength=lp+1;
587 // tailRing->p_Procs->p_Minus_mm_Mult_qq(pNext(_p), m, q, shorter,spNoether, tailRing, last);
588 // pLength += lq - shorter;
589  }
590 }
kBucket_pt bucket
Definition: kutil.h:188
poly t_p
Definition: kutil.h:76
#define assume(x)
Definition: mod2.h:394
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:690
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:976
polyrec * poly
Definition: hilb.h:10
ring tailRing
Definition: kutil.h:78
poly p
Definition: kutil.h:75

§ Tail_Mult_nn()

KINLINE void sLObject::Tail_Mult_nn ( number  n)

Definition at line 556 of file kInline.h.

557 {
558  if (bucket != NULL)
559  {
561  }
562  else
563  {
564  poly _p = (t_p != NULL ? t_p : p);
565  assume(_p != NULL);
566  pNext(_p) = p_Mult_nn(pNext(_p), n, tailRing);
567  }
568 }
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:572
poly t_p
Definition: kutil.h:76
#define assume(x)
Definition: mod2.h:394
static poly p_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:895
#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

§ bucket

kBucket_pt sLObject::bucket

Definition at line 188 of file kutil.h.

§ checked

unsigned sLObject::checked

Definition at line 190 of file kutil.h.

§ i_r1

int sLObject::i_r1

Definition at line 189 of file kutil.h.

§ i_r2

int sLObject::i_r2

Definition at line 189 of file kutil.h.

§ lcm

poly sLObject::lcm

Definition at line 187 of file kutil.h.

§ p1

poly sLObject::p1

Definition at line 184 of file kutil.h.

§ p2

poly sLObject::p2

Definition at line 184 of file kutil.h.

§ prod_crit

BOOLEAN sLObject::prod_crit

Definition at line 195 of file kutil.h.

§ sev

unsigned long sLObject::sev

Definition at line 183 of file kutil.h.


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