Loading...
Searching...
No Matches
singext.cc File Reference
`#include "config.h"`
`#include "cf_assert.h"`
`#include "cf_defs.h"`
`#include "singext.h"`
`#include "int_cf.h"`
`#include "int_int.h"`
`#include "int_rat.h"`
`#include "imm.h"`
`#include "cf_factory.h"`
`#include "factory/cf_gmp.h"`

Go to the source code of this file.

## Functions

void | gmp_numerator (const CanonicalForm &f, mpz_ptr result)
void | gmp_denominator (const CanonicalForm &f, mpz_ptr result)
int | gf_value (const CanonicalForm &f)
CanonicalForm | make_cf (const mpz_ptr n)
CanonicalForm | make_cf (const mpz_ptr n, const mpz_ptr d, bool normalize)
CanonicalForm | make_cf_from_gf (const int z)

## Function Documentation

## gf_value()

int gf_value | ( | const CanonicalForm & | f | ) |

Definition at line 60 of file singext.cc.

{
InternalCF * ff = f.getval();
return ((intptr_t)ff) >>2;
}
f
FILE * f
Definition checklibs.c:9
InternalCF
virtual class for internal CanonicalForm's
Definition int_cf.h:47

## gmp_denominator()

void gmp_denominator | ( | const CanonicalForm & | f,
|  | mpz_ptr | result )

Definition at line 40 of file singext.cc.

{
InternalCF * ff = f.getval();
ASSERT( ! is_imm( ff ), "illegal type" );
if ( ff->levelcoeff() == IntegerDomain )
{
mpz_init_set_si( result, 1 );
ff->deleteObject();
}
else if ( ff->levelcoeff() == RationalDomain )
{
mpz_init_set( result, (InternalRational::MPQDEN( ff )) );
ff->deleteObject();
}
else
{
ASSERT( 0, "illegal type" );
}
}
is_imm
int is_imm(const InternalCF *const ptr)
Definition canonicalform.h:65
ASSERT
#define ASSERT(expression, message)
Definition cf_assert.h:99
RationalDomain
#define RationalDomain
Definition cf_defs.h:20
IntegerDomain
#define IntegerDomain
Definition cf_defs.h:21
InternalCF::levelcoeff
virtual int levelcoeff() const
Definition int_cf.h:68
InternalCF::deleteObject
int deleteObject()
Definition int_cf.h:61
InternalRational::MPQDEN
static mpz_ptr MPQDEN(const InternalCF *const c)
Definition int_rat.h:143
result
return result
Definition facAbsBiFact.cc:76

## gmp_numerator()

void gmp_numerator | ( | const CanonicalForm & | f,
|  | mpz_ptr | result )

Definition at line 20 of file singext.cc.

{
InternalCF * ff = f.getval();
ASSERT( ! is_imm( ff ), "illegal type" );
if ( ff->levelcoeff() == IntegerDomain )
{
mpz_init_set( result, (InternalInteger::MPI( ff )) );
ff->deleteObject();
}
else if ( ff->levelcoeff() == RationalDomain )
{
mpz_init_set( result, (InternalRational::MPQNUM( ff )) );
ff->deleteObject();
}
else
{
ASSERT( 0, "illegal type" );
}
}
InternalInteger::MPI
static mpz_ptr MPI(const InternalCF *const c)
uiNormalizeMPI()' is the same as normalizeMPI()' except that aMpi' is expected to be non-begative.
Definition int_int.h:252
InternalRational::MPQNUM
static mpz_ptr MPQNUM(const InternalCF *const c)
Definition int_rat.h:138

## make_cf() [1/2]

CanonicalForm make_cf | ( | const mpz_ptr | n | ) |

Definition at line 66 of file singext.cc.

{
return CanonicalForm( CFFactory::basic( n ) );
}
CFFactory::basic
static InternalCF * basic(int value)
Definition cf_factory.cc:61
CanonicalForm
factory's main class
Definition canonicalform.h:86

## make_cf() [2/2]

CanonicalForm make_cf | ( | const mpz_ptr | n,
|  | const mpz_ptr | d,
|  | bool | normalize )

Definition at line 71 of file singext.cc.

{
return CanonicalForm( CFFactory::rational( n, d, normalize ) );
}
CFFactory::rational
static InternalCF * rational(long num, long den)
Definition cf_factory.cc:268
normalize
static poly normalize(poly next_p, ideal add_generators, syStrategy syzstr, int *g_l, int *p_l, int crit_comp)
Definition syz3.cc:1027

## make_cf_from_gf()

CanonicalForm make_cf_from_gf | ( | const int | z | ) |

Definition at line 76 of file singext.cc.

{
return CanonicalForm(int2imm_gf(z));
}
int2imm_gf
InternalCF * int2imm_gf(long i)
Definition imm.h:106