My Project
Loading...
Searching...
No Matches
Macros | Functions
FLINTconvert.cc File Reference

This file implements functions for conversion to FLINT (www.flintlib.org) and back. More...

#include <config.h>
#include "canonicalform.h"
#include "fac_util.h"
#include "cf_iter.h"
#include "cf_factory.h"
#include "gmpext.h"
#include "singext.h"
#include "cf_algorithm.h"
#include <cstdio>
#include <flint/fmpz.h>
#include <flint/fmpq.h>
#include <flint/fmpz_poly.h>
#include <flint/fmpz_mod_poly.h>
#include <flint/nmod_poly.h>
#include <flint/fmpq_poly.h>
#include <flint/nmod_mat.h>
#include <flint/fmpz_mat.h>
#include <flint/fq.h>
#include <flint/fq_poly.h>
#include <flint/fq_nmod.h>
#include <flint/fq_nmod_poly.h>
#include <flint/fq_nmod_mat.h>
#include "FLINTconvert.h"

Go to the source code of this file.

Macros

#define Alloc(L)   omAlloc(L)
 
#define Free(A, L)   omFreeSize(A,L)
 

Functions

void convertCF2Fmpz (fmpz_t result, const CanonicalForm &f)
 conversion of a factory integer to fmpz_t
 
void convertCF2initFmpz (fmpz_t result, const CanonicalForm &f)
 conversion of a factory integer to fmpz_t(init.)
 
void convertFacCF2Fmpz_poly_t (fmpz_poly_t result, const CanonicalForm &f)
 conversion of a factory univariate polynomial over Z to a fmpz_poly_t
 
CanonicalForm convertFmpz2CF (const fmpz_t coefficient)
 conversion of a FLINT integer to CanonicalForm
 
CanonicalForm convertFmpz_poly_t2FacCF (const fmpz_poly_t poly, const Variable &x)
 conversion of a FLINT poly over Z to CanonicalForm
 
void convertFacCF2nmod_poly_t (nmod_poly_t result, const CanonicalForm &f)
 conversion of a factory univariate polynomials over Z/p (for word size p) to nmod_poly_t
 
CanonicalForm convertnmod_poly_t2FacCF (const nmod_poly_t poly, const Variable &x)
 conversion of a FLINT poly over Z/p to CanonicalForm
 
void convertCF2Fmpq (fmpq_t result, const CanonicalForm &f)
 conversion of a factory rationals to fmpq_t
 
CanonicalForm convertFmpq2CF (const fmpq_t q)
 conversion of a FLINT rational to CanonicalForm
 
CanonicalForm convertFmpq_poly_t2FacCF (const fmpq_poly_t p, const Variable &x)
 conversion of a FLINT poly over Q to CanonicalForm
 
void convertFacCF2Fmpz_array (fmpz *result, const CanonicalForm &f)
 
void convertFacCF2Fmpq_poly_t (fmpq_poly_t result, const CanonicalForm &f)
 conversion of a factory univariate polynomials over Q to fmpq_poly_t
 
CFFList convertFLINTnmod_poly_factor2FacCFFList (const nmod_poly_factor_t fac, const mp_limb_t leadingCoeff, const Variable &x)
 conversion of a FLINT factorization over Z/p (for word size p) to a CFFList
 
CFFList convertFLINTFq_nmod_poly_factor2FacCFFList (const fq_nmod_poly_factor_t fac, const Variable &x, const Variable &alpha, const fq_nmod_ctx_t fq_con)
 conversion of a FLINT factorization over Fq (for word size p) to a CFFList
 
void convertFacCF2Fmpz_mod_poly_t (fmpz_mod_poly_t result, const CanonicalForm &f, const fmpz_t p)
 conversion of a factory univariate poly over Z to a FLINT poly over Z/p (for non word size p)
 
CanonicalForm convertFmpz_mod_poly_t2FacCF (const fmpz_mod_poly_t poly, const Variable &x, const modpk &b)
 conversion of a FLINT poly over Z/p (for non word size p) to a CanonicalForm over Z
 
void convertFacCF2Fq_nmod_t (fq_nmod_t result, const CanonicalForm &f, const fq_nmod_ctx_t ctx)
 conversion of a factory element of F_q to a FLINT fq_nmod_t, does not do any memory allocation for poly
 
CanonicalForm convertFq_nmod_t2FacCF (const fq_nmod_t poly, const Variable &alpha, const fq_nmod_ctx_t)
 conversion of a FLINT element of F_q to a CanonicalForm with alg. variable alpha
 
void convertFacCF2Fq_t (fq_t result, const CanonicalForm &f, const fq_ctx_t ctx)
 conversion of a factory element of F_q (for non-word size p) to a FLINT fq_t
 
CanonicalForm convertFq_t2FacCF (const fq_t poly, const Variable &alpha)
 conversion of a FLINT element of F_q with non-word size p to a CanonicalForm with alg. variable alpha
 
void convertFacCF2Fq_poly_t (fq_poly_t result, const CanonicalForm &f, const fq_ctx_t ctx)
 conversion of a factory univariate poly over F_q (for non-word size p) to a FLINT fq_poly_t
 
void convertFacCF2Fq_nmod_poly_t (fq_nmod_poly_t result, const CanonicalForm &f, const fq_nmod_ctx_t ctx)
 conversion of a factory univariate poly over F_q to a FLINT fq_nmod_poly_t
 
CanonicalForm convertFq_poly_t2FacCF (const fq_poly_t p, const Variable &x, const Variable &alpha, const fq_ctx_t ctx)
 conversion of a FLINT poly over Fq (for non-word size p) to a CanonicalForm with alg. variable alpha and polynomial variable x
 
CanonicalForm convertFq_nmod_poly_t2FacCF (const fq_nmod_poly_t p, const Variable &x, const Variable &alpha, const fq_nmod_ctx_t ctx)
 conversion of a FLINT poly over Fq to a CanonicalForm with alg. variable alpha and polynomial variable x
 
void convertFacCFMatrix2Fmpz_mat_t (fmpz_mat_t M, const CFMatrix &m)
 conversion of a factory matrix over Z to a fmpz_mat_t
 
CFMatrixconvertFmpz_mat_t2FacCFMatrix (const fmpz_mat_t m)
 conversion of a FLINT matrix over Z to a factory matrix
 
void convertFacCFMatrix2nmod_mat_t (nmod_mat_t M, const CFMatrix &m)
 conversion of a factory matrix over Z/p to a nmod_mat_t
 
CFMatrixconvertNmod_mat_t2FacCFMatrix (const nmod_mat_t m)
 conversion of a FLINT matrix over Z/p to a factory matrix
 
void convertFacCFMatrix2Fq_nmod_mat_t (fq_nmod_mat_t M, const fq_nmod_ctx_t fq_con, const CFMatrix &m)
 conversion of a factory matrix over F_q to a fq_nmod_mat_t
 
CFMatrixconvertFq_nmod_mat_t2FacCFMatrix (const fq_nmod_mat_t m, const fq_nmod_ctx_t &fq_con, const Variable &alpha)
 conversion of a FLINT matrix over F_q to a factory matrix
 

Detailed Description

This file implements functions for conversion to FLINT (www.flintlib.org) and back.

Author
Martin Lee

Definition in file FLINTconvert.cc.

Macro Definition Documentation

◆ Alloc

#define Alloc ( L)    omAlloc(L)

Definition at line 28 of file FLINTconvert.cc.

◆ Free

#define Free ( A,
L )   omFreeSize(A,L)

Definition at line 29 of file FLINTconvert.cc.

Function Documentation

◆ convertCF2Fmpq()

void convertCF2Fmpq ( fmpq_t result,
const CanonicalForm & f )

conversion of a factory rationals to fmpq_t

Parameters
[in,out]resultan fmpq_t
[in]fa CanonicalForm wrapping a rational

Definition at line 224 of file FLINTconvert.cc.

225{
226 //ASSERT (isOn (SW_RATIONAL), "expected rational");
227 if (f.isImm ())
228 {
229 fmpq_set_si (result, f.intval(), 1);
230 }
231 else if(f.inQ())
232 {
240 }
241 else if(f.inZ())
242 {
244 f.mpzval(gmp_val);
248 }
249 else
250 {
251 printf("wrong type\n");
252 }
253}
FILE * f
Definition checklibs.c:9
return result
void FACTORY_PUBLIC gmp_numerator(const CanonicalForm &f, mpz_ptr result)
Definition singext.cc:20
void FACTORY_PUBLIC gmp_denominator(const CanonicalForm &f, mpz_ptr result)
Definition singext.cc:40

◆ convertCF2Fmpz()

void convertCF2Fmpz ( fmpz_t result,
const CanonicalForm & f )

conversion of a factory integer to fmpz_t

Parameters
[out]resultan fmpz_t
[in]fa CanonicalForm wrapping an integer

Definition at line 117 of file FLINTconvert.cc.

118{
119 if (f.isImm())
120 *result=f.intval();
121 else
122 {
124 f.mpzval(gmp_val);
128 }
129}

◆ convertCF2initFmpz()

void convertCF2initFmpz ( fmpz_t result,
const CanonicalForm & f )

conversion of a factory integer to fmpz_t(init.)

Parameters
[in,out]resultan fmpz_t
[in]fa CanonicalForm wrapping an integer

Definition at line 132 of file FLINTconvert.cc.

133{
134 if (f.isImm())
135 fmpz_set_si (result, f.intval());
136 else
137 {
139 f.mpzval(gmp_val);
140
143
145 }
146}

◆ convertFacCF2Fmpq_poly_t()

void convertFacCF2Fmpq_poly_t ( fmpq_poly_t result,
const CanonicalForm & f )

conversion of a factory univariate polynomials over Q to fmpq_poly_t

Parameters
[in,out]resultan fmpq_poly_t
[in]funivariate poly over Q

Definition at line 323 of file FLINTconvert.cc.

324{
325 bool isRat= isOn (SW_RATIONAL);
326 if (!isRat)
327 On (SW_RATIONAL);
328
333 convertCF2initFmpz (fmpq_poly_denref (result), den); // assumes initialized
334
335 if (!isRat)
337}
void convertFacCF2Fmpz_array(fmpz *result, const CanonicalForm &f)
void convertCF2initFmpz(fmpz_t result, const CanonicalForm &f)
conversion of a factory integer to fmpz_t(init.)
bool isOn(int sw)
switches
void On(int sw)
switches
void Off(int sw)
switches
int degree(const CanonicalForm &f)
CanonicalForm den(const CanonicalForm &f)
CanonicalForm bCommonDen(const CanonicalForm &f)
CanonicalForm bCommonDen ( const CanonicalForm & f )
static const int SW_RATIONAL
set to 1 for computations over Q
Definition cf_defs.h:31
factory's main class

◆ convertFacCF2Fmpz_array()

void convertFacCF2Fmpz_array ( fmpz * result,
const CanonicalForm & f )

Definition at line 317 of file FLINTconvert.cc.

318{
319 for (CFIterator i= f; i.hasTerms(); i++)
320 convertCF2initFmpz (&result[i.exp()], i.coeff()); // assumes initialized
321}
int i
Definition cfEzgcd.cc:132
class to iterate through CanonicalForm's
Definition cf_iter.h:44

◆ convertFacCF2Fmpz_mod_poly_t()

void convertFacCF2Fmpz_mod_poly_t ( fmpz_mod_poly_t result,
const CanonicalForm & f,
const fmpz_t p )

conversion of a factory univariate poly over Z to a FLINT poly over Z/p (for non word size p)

Parameters
[in,out]resultfmpz_mod_poly_t
[in]funivariate poly over Z
[in]psome integer p

Definition at line 400 of file FLINTconvert.cc.

402{
403 #if (__FLINT_RELEASE >= 20700)
407 #else
409 #endif
412 #if (__FLINT_RELEASE >= 20700)
415 #else
417 #endif
419}
void convertFacCF2Fmpz_poly_t(fmpz_poly_t result, const CanonicalForm &f)
conversion of a factory univariate polynomial over Z to a fmpz_poly_t
int p
Definition cfModGcd.cc:4086
int status int void * buf
Definition si_signals.h:59

◆ convertFacCF2Fmpz_poly_t()

void convertFacCF2Fmpz_poly_t ( fmpz_poly_t result,
const CanonicalForm & f )

conversion of a factory univariate polynomial over Z to a fmpz_poly_t

Parameters
[in,out]resultan fmpz_poly_t
[in]funivariate poly over Z

Definition at line 148 of file FLINTconvert.cc.

149{
152 for (CFIterator i= f; i.hasTerms(); i++)
153 convertCF2initFmpz (fmpz_poly_get_coeff_ptr(result, i.exp()), i.coeff()); // assumes initialized
154}

◆ convertFacCF2Fq_nmod_poly_t()

void convertFacCF2Fq_nmod_poly_t ( fq_nmod_poly_t result,
const CanonicalForm & f,
const fq_nmod_ctx_t ctx )

conversion of a factory univariate poly over F_q to a FLINT fq_nmod_poly_t

Parameters
[in,out]resultfq_nmod_poly_t
[in]funivariate poly over Fq
[in]ctxFq context

Definition at line 529 of file FLINTconvert.cc.

531{
536 for (CFIterator i= f; i.hasTerms(); i++)
537 {
538 convertFacCF2Fq_nmod_t (buf, i.coeff(), ctx);
541 }
543}
void convertFacCF2Fq_nmod_t(fq_nmod_t result, const CanonicalForm &f, const fq_nmod_ctx_t ctx)
conversion of a factory element of F_q to a FLINT fq_nmod_t, does not do any memory allocation for po...

◆ convertFacCF2Fq_nmod_t()

void convertFacCF2Fq_nmod_t ( fq_nmod_t result,
const CanonicalForm & f,
const fq_nmod_ctx_t ctx )

conversion of a factory element of F_q to a FLINT fq_nmod_t, does not do any memory allocation for poly

Parameters
[in,out]resultfq_nmod_t
[in]felement of Fq
[in]ctxFq context

Definition at line 445 of file FLINTconvert.cc.

447{
450 #if __FLINT_RELEASE >= 20503
453 #endif
454 for (CFIterator i= f; i.hasTerms(); i++)
455 {
456 CanonicalForm c= i.coeff();
457 if (!c.isImm()) c=c.mapinto(); //c%= getCharacteristic();
458 if (!c.isImm())
459 { //This case will never happen if the characteristic is in fact a prime
460 // number, since all coefficients are represented as immediates
461 printf("convertFacCF2Fq_nmod_t: coefficient not immediate!, char=%d\n",
463 }
464 else
465 {
466 STICKYASSERT (i.exp() <= fq_nmod_ctx_degree(ctx), "convertFacCF2Fq_nmod_t: element is not reduced");
467 #if __FLINT_RELEASE >= 20503
468 nmod_poly_set_coeff_ui (res, i.exp(), c.intval());
469 #else
471 #endif
472 }
473 }
474 #if __FLINT_RELEASE >= 20503
477 #endif
479}
int FACTORY_PUBLIC getCharacteristic()
Definition cf_char.cc:70
#define STICKYASSERT(expression, message)
Definition cf_assert.h:64
static const int SW_SYMMETRIC_FF
set to 1 for symmetric representation over F_q
Definition cf_defs.h:33
long intval() const
conversion functions
bool isImm() const
CanonicalForm mapinto() const
CanonicalForm res
Definition facAbsFact.cc:60
nmod_poly_init(FLINTmipo, getCharacteristic())

◆ convertFacCF2Fq_poly_t()

void convertFacCF2Fq_poly_t ( fq_poly_t result,
const CanonicalForm & f,
const fq_ctx_t ctx )

conversion of a factory univariate poly over F_q (for non-word size p) to a FLINT fq_poly_t

Parameters
[in,out]resultfq_poly_t
[in]funivariate poly over Fq
[in]ctxFq context

Definition at line 512 of file FLINTconvert.cc.

514{
516
518
519 for (CFIterator i= f; i.hasTerms(); i++)
520 {
521 fq_t buf;
522 convertFacCF2Fq_t (buf, i.coeff(), ctx);
523 fq_poly_set_coeff (result, i.exp(), buf, ctx);
524 fq_clear (buf, ctx);
525 }
526}
void convertFacCF2Fq_t(fq_t result, const CanonicalForm &f, const fq_ctx_t ctx)
conversion of a factory element of F_q (for non-word size p) to a FLINT fq_t

◆ convertFacCF2Fq_t()

void convertFacCF2Fq_t ( fq_t result,
const CanonicalForm & f,
const fq_ctx_t ctx )

conversion of a factory element of F_q (for non-word size p) to a FLINT fq_t

Parameters
[in,out]resultfq_t
[in]felement of Fq
[in]ctxFq context

Definition at line 488 of file FLINTconvert.cc.

489{
492
493 for (CFIterator i= f; i.hasTerms(); i++)
494 {
495 ASSERT(i.exp() < result->length, "input is not reduced");
496 convertCF2initFmpz (fmpz_poly_get_coeff_ptr(result, i.exp()), i.coeff()); // assumes initialized
497 }
498
499 _fmpz_vec_scalar_mod_fmpz (result->coeffs, result->coeffs, result->length,
501
503}
#define ASSERT(expression, message)
Definition cf_assert.h:99
int length() const

◆ convertFacCF2nmod_poly_t()

void convertFacCF2nmod_poly_t ( nmod_poly_t result,
const CanonicalForm & f )

conversion of a factory univariate polynomials over Z/p (for word size p) to nmod_poly_t

Parameters
[in,out]resulta nmod_poly_t
[in]funivariate poly over Z/p

Definition at line 190 of file FLINTconvert.cc.

191{
195 for (CFIterator i= f; i.hasTerms(); i++)
196 {
197 CanonicalForm c= i.coeff();
198 if (!c.isImm()) c=c.mapinto(); //c%= getCharacteristic();
199 if (!c.isImm())
200 { //This case will never happen if the characteristic is in fact a prime
201 // number, since all coefficients are represented as immediates
202 printf("convertCF2nmod_poly_t: coefficient not immediate!, char=%d\n",
204 }
205 else
207 }
209}

◆ convertFacCFMatrix2Fmpz_mat_t()

void convertFacCFMatrix2Fmpz_mat_t ( fmpz_mat_t M,
const CFMatrix & m )

conversion of a factory matrix over Z to a fmpz_mat_t

Parameters
[in,out]Mfmpz_mat_t
[in]mmatrix over Z

Definition at line 588 of file FLINTconvert.cc.

589{
590 fmpz_mat_init (M, (long) m.rows(), (long) m.columns());
591
592 int i,j;
593 for(i=m.rows();i>0;i--)
594 {
595 for(j=m.columns();j>0;j--)
596 {
597 convertCF2initFmpz (fmpz_mat_entry (M,i-1,j-1), m(i,j)); // assumes initialized
598 }
599 }
600}
int m
Definition cfEzgcd.cc:128
int j
Definition facHensel.cc:110
#define M
Definition sirandom.c:25

◆ convertFacCFMatrix2Fq_nmod_mat_t()

void convertFacCFMatrix2Fq_nmod_mat_t ( fq_nmod_mat_t M,
const fq_nmod_ctx_t fq_con,
const CFMatrix & m )

conversion of a factory matrix over F_q to a fq_nmod_mat_t

Parameters
[in,out]Mfq_nmod_mat_t
[in]fq_conFq context
[in]mmatrix over Fq

Definition at line 649 of file FLINTconvert.cc.

651{
652 fq_nmod_mat_init (M, (long) m.rows(), (long) m.columns(), fq_con);
653 int i,j;
654 for(i=m.rows();i>0;i--)
655 {
656 for(j=m.columns();j>0;j--)
657 {
658 convertFacCF2nmod_poly_t (M->rows[i-1]+j-1, m (i,j));
659 }
660 }
661}
void convertFacCF2nmod_poly_t(nmod_poly_t result, const CanonicalForm &f)
conversion of a factory univariate polynomials over Z/p (for word size p) to nmod_poly_t
fq_nmod_ctx_t fq_con
Definition facHensel.cc:99

◆ convertFacCFMatrix2nmod_mat_t()

void convertFacCFMatrix2nmod_mat_t ( nmod_mat_t M,
const CFMatrix & m )

conversion of a factory matrix over Z/p to a nmod_mat_t

Parameters
[in,out]Mnmod_mat_t
[in]mmatrix over Z/p

Definition at line 615 of file FLINTconvert.cc.

616{
617 nmod_mat_init (M, (long) m.rows(), (long) m.columns(), getCharacteristic());
618
621 int i,j;
622 for(i=m.rows();i>0;i--)
623 {
624 for(j=m.columns();j>0;j--)
625 {
626 if(!(m(i,j)).isImm()) printf("convertFacCFMatrix2FLINTmat_zz_p: not imm.\n");
627 nmod_mat_entry (M,i-1,j-1)= (m(i,j)).intval();
628 }
629 }
631}

◆ convertFLINTFq_nmod_poly_factor2FacCFFList()

CFFList convertFLINTFq_nmod_poly_factor2FacCFFList ( const fq_nmod_poly_factor_t fac,
const Variable & x,
const Variable & alpha,
const fq_nmod_ctx_t fq_con )

conversion of a FLINT factorization over Fq (for word size p) to a CFFList

Parameters
[in]facfq_nmod_poly_factor_t
[in]xpolynomial variable
[in]alphaalgebraic variable
[in]fq_conFq context

Definition at line 382 of file FLINTconvert.cc.

386{
388
389 long i;
390
391 for (i = 0; i < fac->num; i++)
393 (fq_nmod_poly_t &)fac->poly[i], x, alpha, fq_con),
394 fac->exp[i]));
395 return result;
396}
CanonicalForm convertFq_nmod_poly_t2FacCF(const fq_nmod_poly_t p, const Variable &x, const Variable &alpha, const fq_nmod_ctx_t ctx)
conversion of a FLINT poly over Fq to a CanonicalForm with alg. variable alpha and polynomial variabl...
Variable x
Definition cfModGcd.cc:4090
void append(const T &)
Variable alpha

◆ convertFLINTnmod_poly_factor2FacCFFList()

CFFList convertFLINTnmod_poly_factor2FacCFFList ( const nmod_poly_factor_t fac,
const mp_limb_t leadingCoeff,
const Variable & x )

conversion of a FLINT factorization over Z/p (for word size p) to a CFFList

Parameters
[in]faca nmod_poly_factor_t
[in]leadingCoeffleading coefficient
[in]xvariable the result should have

Definition at line 340 of file FLINTconvert.cc.

344{
346 if (leadingCoeff != 1)
348
349 long i;
350
351 for (i = 0; i < fac->num; i++)
353 (nmod_poly_t &)fac->p[i],x),
354 fac->exp[i]));
355 return result;
356}
CanonicalForm convertnmod_poly_t2FacCF(const nmod_poly_t poly, const Variable &x)
conversion of a FLINT poly over Z/p to CanonicalForm
void insert(const T &)

◆ convertFmpq2CF()

CanonicalForm convertFmpq2CF ( const fmpq_t q)

conversion of a FLINT rational to CanonicalForm

Definition at line 255 of file FLINTconvert.cc.

256{
257 bool isRat= isOn (SW_RATIONAL);
258 if (!isRat)
259 On (SW_RATIONAL);
260
262 mpz_t nnum, nden;
263 mpz_init (nnum);
264 mpz_init (nden);
267
269 if (mpz_is_imm (nden))
270 {
271 if (mpz_is_imm(nnum))
272 {
275 mpz_clear (nnum);
276 mpz_clear (nden);
277 result= num/den;
278 }
279 else if (mpz_cmp_si(nden,1)==0)
280 {
282 mpz_clear (nden);
283 }
284 else
286 }
287 else
288 {
290 }
291 if (!isRat)
293 return result;
294}
CanonicalForm num(const CanonicalForm &f)
static InternalCF * basic(int value)
Definition cf_factory.cc:61
static InternalCF * rational(long num, long den)
bool mpz_is_imm(const mpz_t mpi)
Definition gmpext.h:19

◆ convertFmpq_poly_t2FacCF()

CanonicalForm convertFmpq_poly_t2FacCF ( const fmpq_poly_t p,
const Variable & x )

conversion of a FLINT poly over Q to CanonicalForm

Parameters
[in]pan fmpq_poly_t
[in]xvariable the result should have

Definition at line 297 of file FLINTconvert.cc.

298{
300 fmpq_t coeff;
301 long n= p->length;
302 for (long i= 0; i < n; i++)
303 {
304 fmpq_init (coeff);
305 fmpq_poly_get_coeff_fmpq (coeff, p, i);
306 if (fmpq_is_zero (coeff))
307 {
308 fmpq_clear (coeff);
309 continue;
310 }
311 result += convertFmpq2CF (coeff)*power (x, i);
312 fmpq_clear (coeff);
313 }
314 return result;
315}
CanonicalForm convertFmpq2CF(const fmpq_t q)
conversion of a FLINT rational to CanonicalForm
CanonicalForm power(const CanonicalForm &f, int n)
exponentiation

◆ convertFmpz2CF()

CanonicalForm convertFmpz2CF ( const fmpz_t coefficient)

conversion of a FLINT integer to CanonicalForm

Parameters
[in]coefficienta FLINT integer

Definition at line 156 of file FLINTconvert.cc.

157{
161 {
162 long coeff= fmpz_get_si (coefficient);
163 return CanonicalForm (coeff);
164 }
165 else
166 {
171 return result;
172 }
173}
const long MAXIMMEDIATE
Definition imm.h:55
const long MINIMMEDIATE
Definition imm.h:54

◆ convertFmpz_mat_t2FacCFMatrix()

CFMatrix * convertFmpz_mat_t2FacCFMatrix ( const fmpz_mat_t m)

conversion of a FLINT matrix over Z to a factory matrix

Parameters
[in]mfmpz_mat_t

Definition at line 601 of file FLINTconvert.cc.

602{
604 int i,j;
605 for(i=res->rows();i>0;i--)
606 {
607 for(j=res->columns();j>0;j--)
608 {
609 (*res)(i,j)=convertFmpz2CF(fmpz_mat_entry (m,i-1,j-1));
610 }
611 }
612 return res;
613}
CanonicalForm convertFmpz2CF(const fmpz_t coefficient)
conversion of a FLINT integer to CanonicalForm
Matrix< CanonicalForm > CFMatrix

◆ convertFmpz_mod_poly_t2FacCF()

CanonicalForm convertFmpz_mod_poly_t2FacCF ( const fmpz_mod_poly_t poly,
const Variable & x,
const modpk & b )

conversion of a FLINT poly over Z/p (for non word size p) to a CanonicalForm over Z

Parameters
[in]polyfmpz_mod_poly_t
[in]xvariable the result should have
[in]bcoeff bound to map coeffs in (-p/2,p/2)

Definition at line 422 of file FLINTconvert.cc.

424{
427 #if (__FLINT_RELEASE >= 20700)
430 convertCF2initFmpz (FLINTp, b.getpk()); // assumes initialized
435 #else
437 #endif
440 return b (result);
441}
CanonicalForm convertFmpz_poly_t2FacCF(const fmpz_poly_t poly, const Variable &x)
conversion of a FLINT poly over Z to CanonicalForm
CanonicalForm b
Definition cfModGcd.cc:4111

◆ convertFmpz_poly_t2FacCF()

CanonicalForm convertFmpz_poly_t2FacCF ( const fmpz_poly_t poly,
const Variable & x )

conversion of a FLINT poly over Z to CanonicalForm

Parameters
[in]polyan fmpz_poly_t
[in]xvariable the result should have

Definition at line 176 of file FLINTconvert.cc.

177{
179 fmpz* coeff;
180 for (int i= 0; i < fmpz_poly_length (poly); i++)
181 {
182 coeff= fmpz_poly_get_coeff_ptr (poly, i);
183 if (!fmpz_is_zero (coeff))
184 result += convertFmpz2CF (coeff)*power (x,i);
185 }
186 return result;
187}

◆ convertFq_nmod_mat_t2FacCFMatrix()

CFMatrix * convertFq_nmod_mat_t2FacCFMatrix ( const fq_nmod_mat_t m,
const fq_nmod_ctx_t & fq_con,
const Variable & alpha )

conversion of a FLINT matrix over F_q to a factory matrix

Parameters
[in]mfq_nmod_mat_t
[in]fq_conFq context
[in]alphaalgebraic variable

Definition at line 664 of file FLINTconvert.cc.

667{
670 int i,j;
671 for(i=res->rows();i>0;i--)
672 {
673 for(j=res->columns();j>0;j--)
674 {
676 alpha, fq_con);
677 }
678 }
679 return res;
680}
CanonicalForm convertFq_nmod_t2FacCF(const fq_nmod_t poly, const Variable &alpha, const fq_nmod_ctx_t)
conversion of a FLINT element of F_q to a CanonicalForm with alg. variable alpha

◆ convertFq_nmod_poly_t2FacCF()

CanonicalForm convertFq_nmod_poly_t2FacCF ( const fq_nmod_poly_t p,
const Variable & x,
const Variable & alpha,
const fq_nmod_ctx_t ctx )

conversion of a FLINT poly over Fq to a CanonicalForm with alg. variable alpha and polynomial variable x

Parameters
[in]pfq_nmod_poly_t
[in]xpolynomial var.
[in]alphaalgebraic var.
[in]ctxFq context

Definition at line 567 of file FLINTconvert.cc.

569{
571 fq_nmod_t coeff;
572 long n= fq_nmod_poly_length (p, ctx);
573 fq_nmod_init2 (coeff, ctx);
574 for (long i= 0; i < n; i++)
575 {
576 fq_nmod_poly_get_coeff (coeff, p, i, ctx);
577 if (fq_nmod_is_zero (coeff, ctx))
578 continue;
580 fq_nmod_zero (coeff, ctx);
581 }
582 fq_nmod_clear (coeff, ctx);
583
584 return result;
585}

◆ convertFq_nmod_t2FacCF()

CanonicalForm convertFq_nmod_t2FacCF ( const fq_nmod_t poly,
const Variable & alpha,
const fq_nmod_ctx_t ctx )

conversion of a FLINT element of F_q to a CanonicalForm with alg. variable alpha

Parameters
[in]polyfq_nmod_t
[in]alphaalgebraic variable
[in]ctxcontext

Definition at line 482 of file FLINTconvert.cc.

483{
484 return convertnmod_poly_t2FacCF (poly, alpha);
485}

◆ convertFq_poly_t2FacCF()

CanonicalForm convertFq_poly_t2FacCF ( const fq_poly_t p,
const Variable & x,
const Variable & alpha,
const fq_ctx_t ctx )

conversion of a FLINT poly over Fq (for non-word size p) to a CanonicalForm with alg. variable alpha and polynomial variable x

Parameters
[in]pfq_poly_t
[in]xpolynomial variable
[in]alphaalgebraic variable
[in]ctxFq context

Definition at line 546 of file FLINTconvert.cc.

548{
550 fq_t coeff;
551 long n= fq_poly_length (p, ctx);
552 fq_init2 (coeff, ctx);
553 for (long i= 0; i < n; i++)
554 {
555 fq_poly_get_coeff (coeff, p, i, ctx);
556 if (fq_is_zero (coeff, ctx))
557 continue;
558 result += convertFq_t2FacCF (coeff, alpha)*power (x, i);
559 fq_zero (coeff, ctx);
560 }
561 fq_clear (coeff, ctx);
562
563 return result;
564}
CanonicalForm convertFq_t2FacCF(const fq_t poly, const Variable &alpha)
conversion of a FLINT element of F_q with non-word size p to a CanonicalForm with alg....

◆ convertFq_t2FacCF()

CanonicalForm convertFq_t2FacCF ( const fq_t poly,
const Variable & alpha )

conversion of a FLINT element of F_q with non-word size p to a CanonicalForm with alg. variable alpha

Parameters
[in]polyfq_t
[in]alphaalgebraic variable

Definition at line 506 of file FLINTconvert.cc.

507{
508 return convertFmpz_poly_t2FacCF (poly, alpha);
509}

◆ convertNmod_mat_t2FacCFMatrix()

CFMatrix * convertNmod_mat_t2FacCFMatrix ( const nmod_mat_t m)

conversion of a FLINT matrix over Z/p to a factory matrix

Parameters
[in]mnmod_mat_t

Definition at line 633 of file FLINTconvert.cc.

634{
636 int i,j;
637 for(i=res->rows();i>0;i--)
638 {
639 for(j=res->columns();j>0;j--)
640 {
641 (*res)(i,j)=CanonicalForm((long) nmod_mat_entry (m, i-1, j-1));
642 }
643 }
644 return res;
645}

◆ convertnmod_poly_t2FacCF()

CanonicalForm convertnmod_poly_t2FacCF ( const nmod_poly_t poly,
const Variable & x )

conversion of a FLINT poly over Z/p to CanonicalForm

Parameters
[in]polya nmod_poly_t
[in]xvariable the result should have

Definition at line 212 of file FLINTconvert.cc.

213{
215 for (int i= 0; i < nmod_poly_length (poly); i++)
216 {
217 ulong coeff= nmod_poly_get_coeff_ui (poly, i);
218 if (coeff != 0)
219 result += CanonicalForm ((long)coeff)*power (x,i);
220 }
221 return result;
222}