My Project
Loading...
Searching...
No Matches
Functions
singext.h File Reference

helper functions for conversion to and from Singular More...

#include "canonicalform.h"
#include "factory/cf_gmp.h"
#include "resources/feFopen.h"

Go to the source code of this file.

Functions

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

Detailed Description

helper functions for conversion to and from Singular

Definition in file singext.h.

Function Documentation

◆ gf_value()

int gf_value ( const CanonicalForm f)

Definition at line 60 of file singext.cc.

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

◆ gmp_denominator()

void FACTORY_PUBLIC gmp_denominator ( const CanonicalForm f,
mpz_ptr  result 
)

Definition at line 136 of file singext.cc.

41{
42 InternalCF * ff = f.getval();
43 ASSERT( ! is_imm( ff ), "illegal type" );
44 if ( ff->levelcoeff() == IntegerDomain )
45 {
46 mpz_init_set_si( result, 1 );
47 ff->deleteObject();
48 }
49 else if ( ff->levelcoeff() == RationalDomain )
50 {
51 mpz_init_set( result, (InternalRational::MPQDEN( ff )) );
52 ff->deleteObject();
53 }
54 else
55 {
56 ASSERT( 0, "illegal type" );
57 }
58}
int is_imm(const InternalCF *const ptr)
Definition: canonicalform.h:65
#define ASSERT(expression, message)
Definition: cf_assert.h:99
#define RationalDomain
Definition: cf_defs.h:20
#define IntegerDomain
Definition: cf_defs.h:21
virtual int levelcoeff() const
Definition: int_cf.h:68
int deleteObject()
Definition: int_cf.h:61
static mpz_ptr MPQDEN(const InternalCF *const c)
Definition: int_rat.h:124
return result
Definition: facAbsBiFact.cc:75

◆ gmp_numerator()

void FACTORY_PUBLIC gmp_numerator ( const CanonicalForm f,
mpz_ptr  result 
)

Definition at line 135 of file singext.cc.

21{
22 InternalCF * ff = f.getval();
23 ASSERT( ! is_imm( ff ), "illegal type" );
24 if ( ff->levelcoeff() == IntegerDomain )
25 {
26 mpz_init_set( result, (InternalInteger::MPI( ff )) );
27 ff->deleteObject();
28 }
29 else if ( ff->levelcoeff() == RationalDomain )
30 {
31 mpz_init_set( result, (InternalRational::MPQNUM( ff )) );
32 ff->deleteObject();
33 }
34 else
35 {
36 ASSERT( 0, "illegal type" );
37 }
38}
static mpz_ptr MPI(const InternalCF *const c)
MPI() - return underlying mpz_t of ā€˜cā€™.
Definition: int_int.h:232
static mpz_ptr MPQNUM(const InternalCF *const c)
Definition: int_rat.h:119

◆ make_cf() [1/2]

CanonicalForm FACTORY_PUBLIC make_cf ( const mpz_ptr  n)

Definition at line 66 of file singext.cc.

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

◆ make_cf() [2/2]

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

Definition at line 71 of file singext.cc.

72{
74}
static InternalCF * rational(long num, long den)
Definition: cf_factory.cc:268
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.

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