File: NTL-interface.h

package info (click to toggle)
flint 2.5.2-19
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 30,308 kB
  • sloc: ansic: 289,367; cpp: 11,210; python: 1,280; sh: 649; makefile: 283
file content (172 lines) | stat: -rw-r--r-- 4,432 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/*=============================================================================

    This file is part of FLINT.

    FLINT is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    FLINT is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with FLINT; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

=============================================================================*/
/******************************************************************************

    NTL-interface.h: Header file for NTL-interface.cpp

    Copyright (C) 2007 William Hart
    Copyright (C) 2011 Sebastian Pancratz
    Copyright (C) 2013 Mike Hansen

******************************************************************************/

#ifndef FLINT_NTL_INT_H
#define FLINT_NTL_INT_H

#include <NTL/ZZ.h>
#include <NTL/ZZX.h>
#include <NTL/ZZ_p.h>
#include <NTL/ZZ_pX.h>
#include <NTL/ZZ_pXFactoring.h>
#include <NTL/ZZ_pE.h>
#include <NTL/ZZ_pEX.h>
#include <NTL/lzz_p.h>
#include <NTL/lzz_pX.h>
#include <NTL/lzz_pXFactoring.h>
#include <NTL/lzz_pE.h>
#include <NTL/lzz_pEX.h>
#include <NTL/vec_ZZ.h>

#include "flint.h"
#include "fmpz.h"
#include "fmpz_poly.h"
#include "fmpz_mod_poly.h"
#include "fq.h"
#include "fq_poly.h"

NTL_CLIENT

#ifdef __cplusplus
extern "C" {
#endif

/* 
   Converts an NTL ZZ to an fmpz_t.

   Assumes the fmpz_t has already been allocated to have sufficient space.
*/
FLINT_DLL void fmpz_set_ZZ(fmpz_t rop, const ZZ& op);

/* 
   Converts an fmpz_t to an NTL ZZ. Allocation is automatically handled.
 */
FLINT_DLL void fmpz_get_ZZ(ZZ& rop, const fmpz_t op);


/* 
   Converts an NTL ZZ_p to an fmpz_t.

   Assumes the fmpz_t has already been allocated to have sufficient space.
*/
FLINT_DLL void fmpz_set_ZZ_p(fmpz_t rop, const ZZ_p& op);

/* 
   Converts an fmpz_t to an NTL ZZ_p. Allocation is automatically handled.
 */
FLINT_DLL void fmpz_get_ZZ_p(ZZ_p& rop, const fmpz_t op);

/* 
   Converts an NTL zz_p to an fmpz_t.
*/
FLINT_DLL void fmpz_set_zz_p(fmpz_t rop, const zz_p& op);

/* 
   Converts an fmpz_t to an NTL zz_p.
 */
FLINT_DLL void fmpz_get_zz_p(zz_p& rop, const fmpz_t op);

/*
  Converts an fmpz_poly_t to an NTL ZZX.
*/
FLINT_DLL     void fmpz_poly_get_ZZX(ZZX& rop, const fmpz_poly_t op);

/*
  Converts an NTL ZZX to an fmpz_poly_t.
*/
FLINT_DLL     void fmpz_poly_set_ZZX(fmpz_poly_t rop, const ZZX& op);

/*
  Converts an fmpz_mod_poly_t to an NTL ZZ_pX.
*/
FLINT_DLL void fmpz_mod_poly_get_ZZ_pX(ZZ_pX& rop, const fmpz_mod_poly_t op);

/*
  Converts an NTL ZZ_pX to an fmpz_poly_t.
*/
FLINT_DLL void fmpz_mod_poly_set_ZZ_pX(fmpz_mod_poly_t rop, const ZZ_pX& op);

/*
  Converts an fq_t to an NTL ZZ_pE.
*/
FLINT_DLL void fq_get_ZZ_pE(ZZ_pE& rop, const fq_t op, const fq_ctx_t ctx);

/*
  Converts an NTL ZZ_pE to an fq_t.
*/
FLINT_DLL void fq_set_ZZ_pE(fq_t rop, const ZZ_pE& op, const fq_ctx_t ctx);


/*
  Converts an fq_poly_t to an NTL ZZ_pEX.
*/
FLINT_DLL void fq_poly_get_ZZ_pEX(ZZ_pEX& rop, const fq_poly_t op, const fq_ctx_t ctx);

/*
  Converts an NTL ZZ_pEX to an fq_poly_t.
*/
FLINT_DLL void fq_poly_set_ZZ_pEX(fq_poly_t rop, const ZZ_pEX& op, const fq_ctx_t ctx);

/*
  Converts an fmpz_mod_poly_t to an NTL zz_pX.
*/
FLINT_DLL void fmpz_mod_poly_get_zz_pX(zz_pX& rop, const fmpz_mod_poly_t op);

/*
  Converts an NTL zz_pX to an fmpz_poly_t.
*/
FLINT_DLL void fmpz_mod_poly_set_zz_pX(fmpz_mod_poly_t rop, const zz_pX& op);

/*
  Converts an fq_t to an NTL zz_pE.
*/
FLINT_DLL void fq_get_zz_pE(zz_pE& rop, const fq_t op, const fq_ctx_t ctx);

/*
  Converts an NTL zz_pE to an fq_t.
*/
FLINT_DLL void fq_set_zz_pE(fq_t rop, const zz_pE& op, const fq_ctx_t ctx);


/*
  Converts an fq_poly_t to an NTL zz_pEX.
*/
FLINT_DLL void fq_poly_get_zz_pEX(zz_pEX& rop, const fq_poly_t op, const fq_ctx_t ctx);

/*
  Converts an NTL zz_pEX to an fq_poly_t.
*/
FLINT_DLL void fq_poly_set_zz_pEX(fq_poly_t rop, const zz_pEX& op, const fq_ctx_t ctx);

#ifdef __cplusplus
}
#endif

#endif