[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.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>