Annotation of OpenXM/src/ox_ntl/ntl.h, Revision 1.3
1.3 ! iwane 1: /* $OpenXM: OpenXM/src/ox_ntl/ntl.h,v 1.2 2003/11/08 12:34:00 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.3 ! iwane 9: #include "oxserv.h"
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);
! 62: cmon_factors_t * new_cmon_factors (ZZ &, vec_pair_ZZX_long &, cmo_indeterminate *x, int);
! 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:
! 74: /*** ntlconv.cpp ***/
! 75:
! 76: /*===========================================================================*
1.2 iwane 77: * CONVERT
78: *===========================================================================*/
1.3 ! iwane 79: int get_cmon_tag (cmo *);
! 80: cmo * convert_cmon (cmo *); /* convet local object to CMO */
! 81:
1.2 iwane 82: cmo_zz *ZZ_to_cmo_zz (const ZZ &);
83: int cmo_to_ZZ (ZZ &, cmo *);
84: int cmo_to_ZZX (ZZX &, cmo *, cmo_indeterminate *&);
85: cmo_recursive_polynomial *ZZX_to_cmo (ZZX &, cmo_indeterminate *);
86: cmo_list *ZZX_int_to_cmo (ZZX &, int d, cmo_indeterminate *);
87: cmo_list *vec_pair_ZZX_long_to_cmo (vec_pair_ZZX_long &, cmo_indeterminate *);
1.1 iwane 88:
1.3 ! iwane 89: int cmo_to_mat_zz (mat_ZZ &, cmo *);
! 90: cmo_list *mat_zz_to_cmo (mat_ZZ &);
! 91:
1.2 iwane 92: /*===========================================================================*
93: * NTL
94: *===========================================================================*/
1.1 iwane 95: cmo *ntl_fctr (cmo **, int);
1.3 ! iwane 96: cmo *ntl_lll (cmo **, int);
1.1 iwane 97:
98: #endif /* !__NTL_H__*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>