[BACK]Return to ntl.h CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_ntl

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>