My Project
Loading...
Searching...
No Matches
Functions | Variables
FLINTconvert.h File Reference

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

#include "canonicalform.h"
#include "fac_util.h"
#include <flint/fmpz.h>
#include <flint/fmpq.h>
#include <flint/fmpz_poly.h>
#include <flint/fmpz_mod_poly.h>
#include <flint/fmpq_poly.h>
#include <flint/nmod_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 "factory/cf_gmp.h"

Go to the source code of this file.

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
 
void convertFacCF2Fmpq_poly_t (fmpq_poly_t result, const CanonicalForm &f)
 conversion of a factory univariate polynomials over Q to fmpq_poly_t
 
CanonicalForm convertFmpq_poly_t2FacCF (const fmpq_poly_t p, const Variable &x)
 conversion of a FLINT poly over Q to CanonicalForm
 
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 convertFLINTfmpz_poly_factor2FacCFFList (const fmpz_poly_factor_t fac, const Variable &x)
 conversion of a FLINT factorization over Z 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
 
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
 
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_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
 
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
 
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
 
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
 
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
 
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
 

Variables

EXTERN_VAR flint_rand_t FLINTrandom
 

Detailed Description

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

Author
Martin Lee

Definition in file FLINTconvert.h.

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 225 of file FLINTconvert.cc.

226{
227 //ASSERT (isOn (SW_RATIONAL), "expected rational");
228 if (f.isImm ())
229 {
230 fmpq_set_si (result, f.intval(), 1);
231 }
232 else if(f.inQ())
233 {
241 }
242 else if(f.inZ())
243 {
245 f.mpzval(gmp_val);
249 }
250 else
251 {
252 printf("wrong type\n");
253 }
254}
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 118 of file FLINTconvert.cc.

119{
120 if (f.isImm())
121 *result=f.intval();
122 else
123 {
125 f.mpzval(gmp_val);
129 }
130}

◆ 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 133 of file FLINTconvert.cc.

134{
135 if (f.isImm())
136 fmpz_set_si (result, f.intval());
137 else
138 {
140 f.mpzval(gmp_val);
141
144
146 }
147}

◆ 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 324 of file FLINTconvert.cc.

325{
326 bool isRat= isOn (SW_RATIONAL);
327 if (!isRat)
328 On (SW_RATIONAL);
329
334 convertCF2initFmpz (fmpq_poly_denref (result), den); // assumes initialized
335
336 if (!isRat)
338}
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_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 401 of file FLINTconvert.cc.

403{
404 #if (__FLINT_RELEASE >= 20700)
408 #else
410 #endif
413 #if (__FLINT_RELEASE >= 20700)
416 #else
418 #endif
420}
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:69

◆ 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 149 of file FLINTconvert.cc.

150{
153 for (CFIterator i= f; i.hasTerms(); i++)
154 convertCF2initFmpz (fmpz_poly_get_coeff_ptr(result, i.exp()), i.coeff()); // assumes initialized
155}
int i
Definition cfEzgcd.cc:132
class to iterate through CanonicalForm's
Definition cf_iter.h:44

◆ 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 530 of file FLINTconvert.cc.

532{
537 for (CFIterator i= f; i.hasTerms(); i++)
538 {
539 convertFacCF2Fq_nmod_t (buf, i.coeff(), ctx);
542 }
544}
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 446 of file FLINTconvert.cc.

448{
451 #if __FLINT_RELEASE >= 20503
454 #endif
455 for (CFIterator i= f; i.hasTerms(); i++)
456 {
457 CanonicalForm c= i.coeff();
458 if (!c.isImm()) c=c.mapinto(); //c%= getCharacteristic();
459 if (!c.isImm())
460 { //This case will never happen if the characteristic is in fact a prime
461 // number, since all coefficients are represented as immediates
462 printf("convertFacCF2Fq_nmod_t: coefficient not immediate!, char=%d\n",
464 }
465 else
466 {
467 STICKYASSERT (i.exp() <= fq_nmod_ctx_degree(ctx), "convertFacCF2Fq_nmod_t: element is not reduced");
468 #if __FLINT_RELEASE >= 20503
469 nmod_poly_set_coeff_ui (res, i.exp(), c.intval());
470 #else
472 #endif
473 }
474 }
475 #if __FLINT_RELEASE >= 20503
478 #endif
480}
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 513 of file FLINTconvert.cc.

515{
517
519
520 for (CFIterator i= f; i.hasTerms(); i++)
521 {
522 fq_t buf;
523 convertFacCF2Fq_t (buf, i.coeff(), ctx);
524 fq_poly_set_coeff (result, i.exp(), buf, ctx);
525 fq_clear (buf, ctx);
526 }
527}
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 489 of file FLINTconvert.cc.

490{
493
494 for (CFIterator i= f; i.hasTerms(); i++)
495 {
496 ASSERT(i.exp() < result->length, "input is not reduced");
497 convertCF2initFmpz (fmpz_poly_get_coeff_ptr(result, i.exp()), i.coeff()); // assumes initialized
498 }
499
500 _fmpz_vec_scalar_mod_fmpz (result->coeffs, result->coeffs, result->length,
502
504}
#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 191 of file FLINTconvert.cc.

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

◆ 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 589 of file FLINTconvert.cc.

590{
591 fmpz_mat_init (M, (long) m.rows(), (long) m.columns());
592
593 int i,j;
594 for(i=m.rows();i>0;i--)
595 {
596 for(j=m.columns();j>0;j--)
597 {
598 convertCF2initFmpz (fmpz_mat_entry (M,i-1,j-1), m(i,j)); // assumes initialized
599 }
600 }
601}
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 650 of file FLINTconvert.cc.

652{
653 fq_nmod_mat_init (M, (long) m.rows(), (long) m.columns(), fq_con);
654 int i,j;
655 for(i=m.rows();i>0;i--)
656 {
657 for(j=m.columns();j>0;j--)
658 {
659 convertFacCF2nmod_poly_t (M->rows[i-1]+j-1, m (i,j));
660 }
661 }
662}
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 616 of file FLINTconvert.cc.

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

◆ convertFLINTfmpz_poly_factor2FacCFFList()

CFFList convertFLINTfmpz_poly_factor2FacCFFList ( const fmpz_poly_factor_t  fac,
const Variable x 
)

conversion of a FLINT factorization over Z to a CFFList

Parameters
[in]faca fmpz_poly_factor_t
[in]xvariable the result should have

◆ 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 383 of file FLINTconvert.cc.

387{
389
390 long i;
391
392 for (i = 0; i < fac->num; i++)
394 (fq_nmod_poly_t &)fac->poly[i], x, alpha, fq_con),
395 fac->exp[i]));
396 return result;
397}
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 341 of file FLINTconvert.cc.

345{
347 if (leadingCoeff != 1)
349
350 long i;
351
352 for (i = 0; i < fac->num; i++)
354 (nmod_poly_t &)fac->p[i],x),
355 fac->exp[i]));
356 return result;
357}
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 256 of file FLINTconvert.cc.

257{
258 bool isRat= isOn (SW_RATIONAL);
259 if (!isRat)
260 On (SW_RATIONAL);
261
263 mpz_t nnum, nden;
264 mpz_init (nnum);
265 mpz_init (nden);
268
270 if (mpz_is_imm (nden))
271 {
272 if (mpz_is_imm(nnum))
273 {
276 mpz_clear (nnum);
277 mpz_clear (nden);
278 result= num/den;
279 }
280 else if (mpz_cmp_si(nden,1)==0)
281 {
283 mpz_clear (nden);
284 }
285 else
287 }
288 else
289 {
291 }
292 if (!isRat)
294 return result;
295}
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 298 of file FLINTconvert.cc.

299{
301 fmpq_t coeff;
302 long n= p->length;
303 for (long i= 0; i < n; i++)
304 {
305 fmpq_init (coeff);
306 fmpq_poly_get_coeff_fmpq (coeff, p, i);
307 if (fmpq_is_zero (coeff))
308 {
309 fmpq_clear (coeff);
310 continue;
311 }
312 result += convertFmpq2CF (coeff)*power (x, i);
313 fmpq_clear (coeff);
314 }
315 return result;
316}
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 157 of file FLINTconvert.cc.

158{
162 {
163 long coeff= fmpz_get_si (coefficient);
164 return CanonicalForm (coeff);
165 }
166 else
167 {
172 return result;
173 }
174}
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 602 of file FLINTconvert.cc.

603{
605 int i,j;
606 for(i=res->rows();i>0;i--)
607 {
608 for(j=res->columns();j>0;j--)
609 {
610 (*res)(i,j)=convertFmpz2CF(fmpz_mat_entry (m,i-1,j-1));
611 }
612 }
613 return res;
614}
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 423 of file FLINTconvert.cc.

425{
428 #if (__FLINT_RELEASE >= 20700)
431 convertCF2initFmpz (FLINTp, b.getpk()); // assumes initialized
436 #else
438 #endif
441 return b (result);
442}
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 177 of file FLINTconvert.cc.

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

◆ 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 665 of file FLINTconvert.cc.

668{
671 int i,j;
672 for(i=res->rows();i>0;i--)
673 {
674 for(j=res->columns();j>0;j--)
675 {
677 alpha, fq_con);
678 }
679 }
680 return res;
681}
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 568 of file FLINTconvert.cc.

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

◆ 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 483 of file FLINTconvert.cc.

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

◆ 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 547 of file FLINTconvert.cc.

549{
551 fq_t coeff;
552 long n= fq_poly_length (p, ctx);
553 fq_init2 (coeff, ctx);
554 for (long i= 0; i < n; i++)
555 {
556 fq_poly_get_coeff (coeff, p, i, ctx);
557 if (fq_is_zero (coeff, ctx))
558 continue;
559 result += convertFq_t2FacCF (coeff, alpha)*power (x, i);
560 fq_zero (coeff, ctx);
561 }
562 fq_clear (coeff, ctx);
563
564 return result;
565}
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 507 of file FLINTconvert.cc.

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

◆ 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 634 of file FLINTconvert.cc.

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

◆ 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 213 of file FLINTconvert.cc.

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

Variable Documentation

◆ FLINTrandom

EXTERN_VAR flint_rand_t FLINTrandom

Definition at line 57 of file FLINTconvert.h.