Annotation of OpenXM/src/ox_ntl/ntl.h, Revision 1.5
1.5 ! iwane 1: /* $OpenXM: OpenXM/src/ox_ntl/ntl.h,v 1.4 2003/11/17 12:04:20 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:
23:
24: typedef struct cmon_mat_zz_tag {
25: int tag;
26: mat_ZZ *mat;
27: } cmon_mat_zz_t;
28:
29:
30: typedef struct cmon_zz_tag {
31: int tag;
32: ZZ *z;
33: } cmon_zz_t;
34:
35:
36: typedef struct cmon_zzx_tag {
37: int tag;
38: ZZX *f;
39: cmo_indeterminate *x;
40: } cmon_zzx_t;
41:
42:
43: typedef struct cmon_factors_tag {
44: int tag;
45: ZZ *cont; /* cont */
46: vec_pair_ZZX_long *f; /* factors */
47: cmo_indeterminate *x;
48: } cmon_factors_t;
49:
50:
51: /*** cmon.cpp ***/
52:
53: /*===========================================================================*
54: * Construct
55: *===========================================================================*/
56: cmon_zz_t * new_cmon_zz (void);
57: cmon_zz_t * new_cmon_zz (ZZ &);
58: cmon_zzx_t * new_cmon_zzx (void);
59: cmon_zzx_t * new_cmon_zzx (ZZX &, cmo_indeterminate *x);
60: cmon_mat_zz_t * new_cmon_mat_zz (void);
61: cmon_mat_zz_t * new_cmon_mat_zz (mat_ZZ &);
62: cmon_factors_t * new_cmon_factors (void);
1.4 iwane 63: cmon_factors_t * new_cmon_factors (ZZ &, vec_pair_ZZX_long &, cmo_indeterminate *x);
1.3 iwane 64:
65:
66: /*===========================================================================*
67: * Destruct
68: *===========================================================================*/
69: void delete_cmon_zz (cmon_zz_t *);
70: void delete_cmon_zzx (cmon_zzx_t *);
71: void delete_cmon_mat_zz (cmon_mat_zz_t *);
72: void delete_cmon_factors (cmon_factors_t *);
73: void delete_cmon (cmo *);
74:
1.4 iwane 75:
1.3 iwane 76: /*** ntlconv.cpp ***/
77:
78: /*===========================================================================*
1.2 iwane 79: * CONVERT
80: *===========================================================================*/
1.3 iwane 81: int get_cmon_tag (cmo *);
82: cmo * convert_cmon (cmo *); /* convet local object to CMO */
83:
1.2 iwane 84: cmo_zz *ZZ_to_cmo_zz (const ZZ &);
85: int cmo_to_ZZ (ZZ &, cmo *);
86: int cmo_to_ZZX (ZZX &, cmo *, cmo_indeterminate *&);
87: cmo_recursive_polynomial *ZZX_to_cmo (ZZX &, cmo_indeterminate *);
88: cmo_list *ZZX_int_to_cmo (ZZX &, int d, cmo_indeterminate *);
89: cmo_list *vec_pair_ZZX_long_to_cmo (vec_pair_ZZX_long &, cmo_indeterminate *);
1.1 iwane 90:
1.3 iwane 91: int cmo_to_mat_zz (mat_ZZ &, cmo *);
92: cmo_list *mat_zz_to_cmo (mat_ZZ &);
1.4 iwane 93:
94:
95: /*** ntl.cpp ***/
1.3 iwane 96:
1.2 iwane 97: /*===========================================================================*
98: * NTL
99: *===========================================================================*/
1.5 ! iwane 100: oxstack_node *ntl_fctr (oxstack_node **, int);
! 101: oxstack_node *ntl_lll (oxstack_node **, int);
1.1 iwane 102:
103: #endif /* !__NTL_H__*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>