My Project  debian-1:4.1.1-p2+ds-4
Public Member Functions | Data Fields
interval Struct Reference

#include <interval.h>

Public Member Functions

 interval (const ring r=currRing)
 
 interval (number, const ring r=currRing)
 
 interval (number, number, const ring r=currRing)
 
 interval (interval *)
 
 ~interval ()
 
intervalsetRing (ring)
 

Data Fields

number lower
 
number upper
 
ring R
 

Detailed Description

Definition at line 6 of file interval.h.

Constructor & Destructor Documentation

◆ interval() [1/4]

interval::interval ( const ring  r = currRing)

Definition at line 14 of file interval.cc.

15 {
16  lower = n_Init(0, r->cf);
17  upper = n_Init(0, r->cf);
18  R = r;
19  R->ref++;
20 }

◆ interval() [2/4]

interval::interval ( number  a,
const ring  r = currRing 
)

Definition at line 22 of file interval.cc.

23 {
24  // dangerous: check if a is in coefs r->cf
25  lower = a;
26  upper = n_Copy(a, r->cf);
27  R = r;
28  R->ref++;
29 }

◆ interval() [3/4]

interval::interval ( number  a,
number  b,
const ring  r = currRing 
)

Definition at line 31 of file interval.cc.

32 {
33  lower = a;
34  upper = b;
35  R = r;
36  R->ref++;
37 }

◆ interval() [4/4]

interval::interval ( interval I)

Definition at line 39 of file interval.cc.

40 {
41  lower = n_Copy(I->lower, I->R->cf);
42  upper = n_Copy(I->upper, I->R->cf);
43  R = I->R;
44  R->ref++;
45 }

◆ ~interval()

interval::~interval ( )

Definition at line 47 of file interval.cc.

48 {
49  n_Delete(&lower, R->cf);
50  n_Delete(&upper, R->cf);
51  R->ref--;
52 }

Member Function Documentation

◆ setRing()

interval & interval::setRing ( ring  r)

Definition at line 54 of file interval.cc.

55 {
56  if (R != r)
57  {
58  // check if coefficient fields are equal
59  // if not pass numbers to new cf-field
60  if (R->cf != r->cf)
61  {
62  nMapFunc fun = n_SetMap(R->cf, r->cf);
63  number lo = fun(lower, R->cf, r->cf),
64  up = fun(upper, R->cf, r->cf);
65  n_Delete(&lower, R->cf);
66  n_Delete(&upper, R->cf);
67  lower = lo;
68  upper = up;
69  }
70  R->ref--;
71  r->ref++;
72  R = r;
73  }
74 
75  return *this;
76 }

Field Documentation

◆ lower

number interval::lower

Definition at line 8 of file interval.h.

◆ R

ring interval::R

Definition at line 10 of file interval.h.

◆ upper

number interval::upper

Definition at line 9 of file interval.h.


The documentation for this struct was generated from the following files:
interval::lower
number lower
Definition: interval.h:8
n_Delete
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
Definition: coeffs.h:455
interval::upper
number upper
Definition: interval.h:9
b
CanonicalForm b
Definition: cfModGcd.cc:4044
nMapFunc
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
Definition: coeffs.h:73
n_Init
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
Definition: coeffs.h:538
n_Copy
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
Definition: coeffs.h:451
n_SetMap
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
Definition: coeffs.h:721
interval::R
ring R
Definition: interval.h:10