Data Structures | Enumerations | Functions
Number.h File Reference
#include <boost/intrusive_ptr.hpp>
#include <kernel/mod2.h>
#include <coeffs/numbers.h>
#include <kernel/polys.h>
#include <polys/monomials/ring.h>

Go to the source code of this file.

Data Structures

class  PolyBase< variant, create_type_input, error_handle_traits >
 
class  Number
 

Enumerations

enum  poly_variant { POLY_VARIANT_RING, POLY_VARIANT_MODUL }
 

Functions

void intrusive_ptr_add_ref (ring r)
 
void intrusive_ptr_release (ring r)
 
Number operator+ (const Number &n1, const Number &n2)
 
Number operator* (const Number &n1, const Number &n2)
 
Number operator- (const Number &n1, const Number &n2)
 
Number operator/ (const Number &n1, const Number &n2)
 
bool operator== (const Number &n1, const Number &n2)
 
Number operator+ (const Number &n1, int n2)
 
Number operator* (const Number &n1, int n2)
 
Number operator- (const Number &n1, int n2)
 
Number operator/ (const Number &n1, int n2)
 
bool operator== (const Number &n1, int n2)
 
Number operator+ (int n1, const Number &n2)
 
Number operator- (int n1, const Number &n2)
 
Number operator/ (int n1, const Number &n2)
 
Number operator* (int n1, const Number &n2)
 
bool operator== (int n1, const Number &n2)
 

Enumeration Type Documentation

◆ poly_variant

Enumerator
POLY_VARIANT_RING 
POLY_VARIANT_MODUL 

Definition at line 25 of file Number.h.

Function Documentation

◆ intrusive_ptr_add_ref()

void intrusive_ptr_add_ref ( ring  r)
inline

Definition at line 10 of file Number.h.

11 {
12  r->ref++;
13  //Print("ref count after add: %d", r->ref);
14 }
const ring r
Definition: syzextra.cc:208

◆ intrusive_ptr_release()

void intrusive_ptr_release ( ring  r)
inline

Definition at line 15 of file Number.h.

16 {
17  if (r->ref<=0) rDelete(r);
18  else
19  {
20  r->ref--;
21  }
22  //Print("ref count after release: %d", r->ref);
23 }
const ring r
Definition: syzextra.cc:208
void rDelete(ring r)
unconditionally deletes fields in r
Definition: ring.cc:448

◆ operator*() [1/3]

Number operator* ( const Number n1,
const Number n2 
)
inline

Definition at line 228 of file Number.h.

229 {
230  Number erg(n1);
231  erg*=n2;
232  return erg;
233 }
Definition: Number.h:34

◆ operator*() [2/3]

Number operator* ( const Number n1,
int  n2 
)
inline

Definition at line 258 of file Number.h.

259 {
260  Number erg(n1);
261  erg*=Number(n2,n1.r);
262  return erg;
263 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator*() [3/3]

Number operator* ( int  n1,
const Number n2 
)
inline

Definition at line 295 of file Number.h.

296 {
297  Number erg(n2);
298  return erg*=Number(n1,n2.r);
299 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator+() [1/3]

Number operator+ ( const Number n1,
const Number n2 
)
inline

Definition at line 222 of file Number.h.

223 {
224  Number erg(n1);
225  erg+=n2;
226  return erg;
227 }
Definition: Number.h:34

◆ operator+() [2/3]

Number operator+ ( const Number n1,
int  n2 
)
inline

Definition at line 252 of file Number.h.

253 {
254  Number erg(n1);
255  erg+=Number(n2,n1.r);
256  return erg;
257 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator+() [3/3]

Number operator+ ( int  n1,
const Number n2 
)
inline

Definition at line 280 of file Number.h.

281 {
282  Number erg(n2);
283  return erg+=Number(n1,n2.r);
284 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator-() [1/3]

Number operator- ( const Number n1,
const Number n2 
)
inline

Definition at line 234 of file Number.h.

235 {
236  Number erg(n1);
237  erg-=n2;
238  return erg;
239 }
Definition: Number.h:34

◆ operator-() [2/3]

Number operator- ( const Number n1,
int  n2 
)
inline

Definition at line 264 of file Number.h.

265 {
266  Number erg(n1);
267  erg-=Number(n2,n1.r);
268  return erg;
269 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator-() [3/3]

Number operator- ( int  n1,
const Number n2 
)
inline

Definition at line 285 of file Number.h.

286 {
287  Number erg(n1,n2.r);
288  return erg-=n2;
289 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator/() [1/3]

Number operator/ ( const Number n1,
const Number n2 
)
inline

Definition at line 240 of file Number.h.

241 {
242  Number erg(n1);
243  erg/=n2;
244  return erg;
245 }
Definition: Number.h:34

◆ operator/() [2/3]

Number operator/ ( const Number n1,
int  n2 
)
inline

Definition at line 270 of file Number.h.

271 {
272  Number erg(n1);
273  erg/=Number(n2,n1.r);
274  return erg;
275 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator/() [3/3]

Number operator/ ( int  n1,
const Number n2 
)
inline

Definition at line 290 of file Number.h.

291 {
292  Number erg(n1,n2.r);
293  return erg/=n2;
294 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34

◆ operator==() [1/3]

bool operator== ( const Number n1,
const Number n2 
)
inline

Definition at line 246 of file Number.h.

247 {
248  if(n1.r!=n2.r)
249  return false;
250  return n_Equal(n1.n,n2.n,n1.r.get()->cf);
251 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
static FORCE_INLINE BOOLEAN n_Equal(number a, number b, const coeffs r)
TRUE iff &#39;a&#39; and &#39;b&#39; represent the same number; they may have different representations.
Definition: coeffs.h:464
number n
Definition: Number.h:218

◆ operator==() [2/3]

bool operator== ( const Number n1,
int  n2 
)
inline

Definition at line 276 of file Number.h.

277 {
278  return n_Equal(n1.n,Number(n2,n1.r).n,n1.r.get()->cf);
279 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34
static FORCE_INLINE BOOLEAN n_Equal(number a, number b, const coeffs r)
TRUE iff &#39;a&#39; and &#39;b&#39; represent the same number; they may have different representations.
Definition: coeffs.h:464
number n
Definition: Number.h:218

◆ operator==() [3/3]

bool operator== ( int  n1,
const Number n2 
)
inline

Definition at line 300 of file Number.h.

301 {
302  return n2==Number(n1,n2.r);
303 }
intrusive_ptr< ip_sring > r
Definition: Number.h:219
Definition: Number.h:34