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

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>