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