My Project
flintconv.h
Go to the documentation of this file.
1 // emacs edit mode for this file is -*- C++ -*-
2 #ifndef LIBPOLYS_POLYS_FLINTCONV_H
3 #define LIBPOLYS_POLYS_FLINTCONV_H
4 /****************************************
5 * Computer Algebra System SINGULAR *
6 ****************************************/
7 /*
8 * ABSTRACT: convert data between Singular and Flint
9 */
10 /** @file flintconv.h
11  *
12  * This file is work in progress and currently not part of the official Singular
13  *
14  * @note the code is garded by the version test __FLINT_RELEASE >= 20503 (>=2.5.3)
15  * In its current form it will never become an official part.
16  * (conversion routines may be moved to other files/directories, etc.)
17  *
18  * ABSTRACT: Conversion to/from FLINT, and access to some FLINT-routines
19  *
20  * REQUIREMENTS:
21  * - agreement about the interface to LLL
22  * - FLINT providing LLL
23  * (none of the above is currently true, but all of them is required)
24  *
25  **/
26 
27 #ifdef HAVE_FLINT
28 #include <flint/flint.h>
29 
30 #include "polys/matpol.h"
31 #include "coeffs/bigintmat.h"
32 #include <flint/fmpz.h>
33 #include <flint/fmpq.h>
34 #include <flint/fmpq_mat.h>
35 #include <flint/fmpz_poly.h>
36 #include <flint/fmpq_poly.h>
37 #include <flint/fmpz_poly_mat.h>
38 #if __FLINT_RELEASE >= 20500
39 #include <flint/fmpz_lll.h>
40 #include <flint/fq.h>
41 #include <flint/fq_poly.h>
42 #include <flint/fq_nmod.h>
43 #include <flint/fq_nmod_poly.h>
44 #include <flint/fq_nmod_mat.h>
45 #endif
46 
47 int convFlintISingI (fmpz_t f);
48 void convSingIFlintI(fmpz_t f, int p);
49 void convFlintNSingN (mpz_t z, fmpz_t f);
50 void convSingNFlintN(fmpz_t f, mpz_t z);
51 void convSingNFlintN(fmpz_t f, number n);
52 void convSingNFlintN_QQ(fmpq_t f, number n);
53 void convSingNFlintN(fmpq_t f, number n, const coeffs cf);
54 void convSingNFlintNN(fmpq_t re, fmpq_t im, number n, const coeffs cf);
55 number convFlintNSingN (fmpz_t f);
56 number convFlintNSingN (fmpq_t f, const coeffs cf);
57 number convFlintNSingN (fmpz_t f, const coeffs cf);
58 number convFlintNSingN_QQ(fmpq_t f, const coeffs cf);
59 void convSingPFlintP(fmpq_poly_t res, poly p, const ring r);
60 void convSingImPFlintP(fmpq_poly_t res, poly p, const ring r);
61 poly convFlintPSingP(fmpq_poly_t f, const ring r);
62 
65 void convSingMFlintNmod_mat(matrix m, nmod_mat_t M, const ring r);
66 matrix convFlintNmod_matSingM(nmod_mat_t m, const ring r);
67 
69 ideal singflint_rref(ideal m, const ring R);
71 ideal singflint_kernel(ideal m, const ring R);
72 #if __FLINT_RELEASE >= 20500
73 void convSingPFlintnmod_poly_t(nmod_poly_t result, const poly p, const ring r);
74 void convSingMFlintFq_nmod_mat(matrix m, fq_nmod_mat_t M, const fq_nmod_ctx_t fq_con, const ring r);
75 poly convFlintFq_nmodSingP(const fq_nmod_t Fp, const fq_nmod_ctx_t ctx, const ring r);
76 matrix convFlintFq_nmod_matSingM(fq_nmod_mat_t m, const fq_nmod_ctx_t fq_con, const ring r);
77 #endif
78 #endif
79 #endif
80 // LIBPOLYS_POLYS_FLINTCONV_H
int m
Definition: cfEzgcd.cc:128
int p
Definition: cfModGcd.cc:4078
CanonicalForm cf
Definition: cfModGcd.cc:4083
FILE * f
Definition: checklibs.c:9
Matrices of numbers.
Definition: bigintmat.h:51
Definition: intvec.h:23
return result
Definition: facAbsBiFact.cc:75
CanonicalForm res
Definition: facAbsFact.cc:60
fq_nmod_ctx_t fq_con
Definition: facHensel.cc:99
void convSingPFlintP(fmpq_poly_t res, poly p, const ring r)
void convSingNFlintN(fmpz_t f, mpz_t z)
bigintmat * singflint_LLL(bigintmat *A, bigintmat *T)
matrix convFlintNmod_matSingM(nmod_mat_t m, const ring r)
void convSingNFlintNN(fmpq_t re, fmpq_t im, number n, const coeffs cf)
void convSingIFlintI(fmpz_t f, int p)
matrix singflint_kernel(matrix m, const ring R)
void convSingNFlintN_QQ(fmpq_t f, number n)
void convFlintNSingN(mpz_t z, fmpz_t f)
matrix singflint_rref(matrix m, const ring R)
poly convFlintPSingP(fmpq_poly_t f, const ring r)
void convSingImPFlintP(fmpq_poly_t res, poly p, const ring r)
int convFlintISingI(fmpz_t f)
number convFlintNSingN_QQ(fmpq_t f, const coeffs cf)
void convSingMFlintNmod_mat(matrix m, nmod_mat_t M, const ring r)
STATIC_VAR jList * T
Definition: janet.cc:30
The main handler for Singular numbers which are suitable for Singular polynomials.
#define R
Definition: sirandom.c:27
#define A
Definition: sirandom.c:24
#define M
Definition: sirandom.c:25