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/fmpz_poly.h> |
---|
35 | #include <flint/fmpq_poly.h> |
---|
36 | #include <flint/fmpz_poly_mat.h> |
---|
37 | #if __FLINT_RELEASE >= 20500 |
---|
38 | #include <flint/fmpz_lll.h> |
---|
39 | #endif |
---|
40 | |
---|
41 | int convFlintISingI (fmpz_t f); |
---|
42 | void convSingIFlintI(fmpz_t f, int p); |
---|
43 | void convFlintNSingN (mpz_t z, fmpz_t f); |
---|
44 | void convSingNFlintN(fmpz_t f, mpz_t z); |
---|
45 | void convSingNFlintN(fmpz_t f, number n); |
---|
46 | void convSingNFlintN_QQ(fmpq_t f, number n); |
---|
47 | void convSingNFlintN(fmpq_t f, number n, const coeffs cf); |
---|
48 | void convSingNFlintNN(fmpq_t re, fmpq_t im, number n, const coeffs cf); |
---|
49 | number convFlintNSingN (fmpz_t f); |
---|
50 | number convFlintNSingN (fmpq_t f, const coeffs cf); |
---|
51 | number convFlintNSingN (fmpz_t f, const coeffs cf); |
---|
52 | number convFlintNSingN_QQ(fmpq_t f, const coeffs cf); |
---|
53 | void convSingPFlintP(fmpq_poly_t res, poly p, const ring r); |
---|
54 | void convSingImPFlintP(fmpq_poly_t res, poly p, const ring r); |
---|
55 | poly convFlintPSingP(fmpq_poly_t f, const ring r); |
---|
56 | |
---|
57 | bigintmat* singflint_LLL(bigintmat* A, bigintmat* T); |
---|
58 | intvec* singflint_LLL(intvec* A, intvec* T); |
---|
59 | #endif |
---|
60 | #endif |
---|
61 | // LIBPOLYS_POLYS_FLINTCONV_H |
---|