forked from flintlib/flint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NTL-interface.h
172 lines (131 loc) · 4.13 KB
/
NTL-interface.h
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
/*=============================================================================
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.
*/
void fmpz_set_ZZ(fmpz_t rop, const ZZ& op);
/*
Converts an fmpz_t to an NTL ZZ. Allocation is automatically handled.
*/
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.
*/
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.
*/
void fmpz_get_ZZ_p(ZZ_p& rop, const fmpz_t op);
/*
Converts an NTL zz_p to an fmpz_t.
*/
void fmpz_set_zz_p(fmpz_t rop, const zz_p& op);
/*
Converts an fmpz_t to an NTL zz_p.
*/
void fmpz_get_zz_p(zz_p& rop, const fmpz_t op);
/*
Converts an fmpz_poly_t to an NTL ZZX.
*/
void fmpz_poly_get_ZZX(ZZX& rop, const fmpz_poly_t op);
/*
Converts an NTL ZZX to an fmpz_poly_t.
*/
void fmpz_poly_set_ZZX(fmpz_poly_t rop, const ZZX& op);
/*
Converts an fmpz_mod_poly_t to an NTL ZZ_pX.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
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.
*/
void fq_poly_set_zz_pEX(fq_poly_t rop, const zz_pEX& op, const fq_ctx_t ctx);
#ifdef __cplusplus
}
#endif
#endif