Annotation of OpenXM/src/ox_ntl/ntl.h, Revision 1.6
1.6 ! iwane 1: /* $OpenXM: OpenXM/src/ox_ntl/ntl.h,v 1.5 2008/09/19 10:55:40 iwane Exp $ */
1.1 iwane 2:
3: #ifndef __NTL_H__
4: #define __NTL_H__
5:
1.2 iwane 6: #include <NTL/ZZXFactoring.h>
1.3 iwane 7: #include <NTL/mat_ZZ.h>
1.1 iwane 8: #include "ox_toolkit.h"
1.4 iwane 9: #include "oxserv.h" /* for block interrupt input */
1.5 iwane 10: #include "oxstack.h"
1.1 iwane 11:
12: #define NTL_FAILURE (-1)
13: #define NTL_SUCCESS ( 0)
14:
1.2 iwane 15: /*===========================================================================*
1.3 iwane 16: * Local CMO
17: *===========================================================================*/
18: #define CMON_MAT_ZZ (CMO_PRIVATE + 1)
19: #define CMON_ZZ (CMO_PRIVATE + 2)
20: #define CMON_ZZX (CMO_PRIVATE + 3)
21: #define CMON_FACTORS (CMO_PRIVATE + 4)
22:
1.6 ! iwane 23: using namespace NTL;
1.3 iwane 24:
25: typedef struct cmon_mat_zz_tag {
26: int tag;
27: mat_ZZ *mat;
28: } cmon_mat_zz_t;
29:
30:
31: typedef struct cmon_zz_tag {
32: int tag;
33: ZZ *z;
34: } cmon_zz_t;
35:
36:
37: typedef struct cmon_zzx_tag {
38: int tag;
39: ZZX *f;
40: cmo_indeterminate *x;
41: } cmon_zzx_t;
42:
43:
44: typedef struct cmon_factors_tag {
45: int tag;
46: ZZ *cont; /* cont */
47: vec_pair_ZZX_long *f; /* factors */
48: cmo_indeterminate *x;
49: } cmon_factors_t;
50:
51:
52: /*** cmon.cpp ***/
53:
54: /*===========================================================================*
55: * Construct
56: *===========================================================================*/
57: cmon_zz_t * new_cmon_zz (void);
58: cmon_zz_t * new_cmon_zz (ZZ &);
59: cmon_zzx_t * new_cmon_zzx (void);
60: cmon_zzx_t * new_cmon_zzx (ZZX &, cmo_indeterminate *x);
61: cmon_mat_zz_t * new_cmon_mat_zz (void);
62: cmon_mat_zz_t * new_cmon_mat_zz (mat_ZZ &);
63: cmon_factors_t * new_cmon_factors (void);
1.4 iwane 64: cmon_factors_t * new_cmon_factors (ZZ &, vec_pair_ZZX_long &, cmo_indeterminate *x);
1.3 iwane 65:
66:
67: /*===========================================================================*
68: * Destruct
69: *===========================================================================*/
70: void delete_cmon_zz (cmon_zz_t *);
71: void delete_cmon_zzx (cmon_zzx_t *);
72: void delete_cmon_mat_zz (cmon_mat_zz_t *);
73: void delete_cmon_factors (cmon_factors_t *);
74: void delete_cmon (cmo *);
75:
1.4 iwane 76:
1.3 iwane 77: /*** ntlconv.cpp ***/
78:
79: /*===========================================================================*
1.2 iwane 80: * CONVERT
81: *===========================================================================*/
1.3 iwane 82: int get_cmon_tag (cmo *);
83: cmo * convert_cmon (cmo *); /* convet local object to CMO */
84:
1.2 iwane 85: cmo_zz *ZZ_to_cmo_zz (const ZZ &);
86: int cmo_to_ZZ (ZZ &, cmo *);
87: int cmo_to_ZZX (ZZX &, cmo *, cmo_indeterminate *&);
88: cmo_recursive_polynomial *ZZX_to_cmo (ZZX &, cmo_indeterminate *);
89: cmo_list *ZZX_int_to_cmo (ZZX &, int d, cmo_indeterminate *);
90: cmo_list *vec_pair_ZZX_long_to_cmo (vec_pair_ZZX_long &, cmo_indeterminate *);
1.1 iwane 91:
1.3 iwane 92: int cmo_to_mat_zz (mat_ZZ &, cmo *);
93: cmo_list *mat_zz_to_cmo (mat_ZZ &);
1.4 iwane 94:
95:
96: /*** ntl.cpp ***/
1.3 iwane 97:
1.2 iwane 98: /*===========================================================================*
99: * NTL
100: *===========================================================================*/
1.5 iwane 101: oxstack_node *ntl_fctr (oxstack_node **, int);
102: oxstack_node *ntl_lll (oxstack_node **, int);
1.1 iwane 103:
104: #endif /* !__NTL_H__*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>