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

Annotation of OpenXM/src/ox_ntl/cmon.cpp, Revision 1.1

1.1     ! iwane       1: /* $OpenXM$ */
        !             2:
        !             3: #include <NTL/ZZX.h>
        !             4:
        !             5: #include "ntl.h"
        !             6:
        !             7: /****************************************************************************
        !             8:  * Construct
        !             9:  ****************************************************************************/
        !            10: cmon_zz_t *
        !            11: new_cmon_zz(ZZ &z)
        !            12: {
        !            13:        cmon_zz_t *p = new_cmon_zz();
        !            14:        *(p->z) = z;
        !            15:        return (p);
        !            16: }
        !            17:
        !            18: cmon_zz_t *
        !            19: new_cmon_zz(void)
        !            20: {
        !            21:        cmon_zz_t *p = (cmon_zz_t *)malloc(sizeof(cmon_zz_t));
        !            22:        p->tag = CMON_ZZ;
        !            23:        p->z = new ZZ();
        !            24:        return (p);
        !            25: }
        !            26:
        !            27: cmon_zzx_t *
        !            28: new_cmon_zzx(ZZX &f, cmo_indeterminate *x)
        !            29: {
        !            30:        cmon_zzx_t *p = new_cmon_zzx();
        !            31:        *(p->f) = f;
        !            32:        p->x = x;
        !            33:        return (p);
        !            34: }
        !            35:
        !            36: cmon_zzx_t *
        !            37: new_cmon_zzx(void)
        !            38: {
        !            39:        cmon_zzx_t *p = (cmon_zzx_t *)malloc(sizeof(cmon_zzx_t));
        !            40:        p->tag = CMON_ZZX;
        !            41:        p->f = new ZZX();
        !            42:        return (p);
        !            43: }
        !            44:
        !            45:
        !            46:
        !            47:
        !            48: cmon_factors_t *
        !            49: new_cmon_factors(ZZ &cont, vec_pair_ZZX_long &factors, cmo_indeterminate *x)
        !            50: {
        !            51:        cmon_factors_t *p = new_cmon_factors();
        !            52:        *(p->cont) = cont;
        !            53:        *(p->f) = factors;
        !            54:        p->x = x;
        !            55:        return (p);
        !            56: }
        !            57:
        !            58: cmon_factors_t *
        !            59: new_cmon_factors(void)
        !            60: {
        !            61:        cmon_factors_t *p = (cmon_factors_t *)malloc(sizeof(cmon_factors_t));
        !            62:        p->tag = CMON_FACTORS;
        !            63:        p->cont = new ZZ();
        !            64:        p->f = new vec_pair_ZZX_long();
        !            65:        return (p);
        !            66: }
        !            67:
        !            68: cmon_mat_zz_t *
        !            69: new_cmon_mat_zz(mat_ZZ &m)
        !            70: {
        !            71:        cmon_mat_zz_t *p = new_cmon_mat_zz();
        !            72:        *(p->mat) = m;
        !            73:        return (p);
        !            74: }
        !            75:
        !            76: cmon_mat_zz_t *
        !            77: new_cmon_mat_zz(void)
        !            78: {
        !            79:        cmon_mat_zz_t *p = (cmon_mat_zz_t *)malloc(sizeof(cmon_mat_zz_t));
        !            80:        p->tag = CMON_MAT_ZZ;
        !            81:        p->mat = new mat_ZZ();
        !            82:        return (p);
        !            83: }
        !            84:
        !            85:
        !            86:
        !            87: /****************************************************************************
        !            88:  * Destruct
        !            89:  ****************************************************************************/
        !            90: void
        !            91: delete_cmon_zz(cmon_zz_t *p)
        !            92: {
        !            93:        delete(p->z);
        !            94:        free(p);
        !            95: }
        !            96:
        !            97: void
        !            98: delete_cmon_zzx(cmon_zzx_t *p)
        !            99: {
        !           100:        delete(p->f);
        !           101:        free(p);
        !           102: }
        !           103:
        !           104:
        !           105: void
        !           106: delete_cmon_factors(cmon_factors_t *p)
        !           107: {
        !           108:        delete(p->cont);
        !           109:        delete(p->f);
        !           110:        free(p);
        !           111: }
        !           112:
        !           113: void
        !           114: delete_cmon_mat_zz(cmon_mat_zz_t *p)
        !           115: {
        !           116:        delete (p->mat);
        !           117:        free(p);
        !           118: }
        !           119:
        !           120: /***
        !           121:  * PARAM  : p is not null pointer.
        !           122:  ************/
        !           123: void
        !           124: delete_cmon(cmo *p)
        !           125: {
        !           126:        switch (p->tag) {
        !           127:        case CMON_ZZ:
        !           128:                delete_cmon_zz((cmon_zz_t *)p);
        !           129:                break;
        !           130:        case CMON_ZZX:
        !           131:                delete_cmon_zzx((cmon_zzx_t *)p);
        !           132:                break;
        !           133:        case CMON_FACTORS:
        !           134:                delete_cmon_factors((cmon_factors_t *)p);
        !           135:                break;
        !           136:        case CMON_MAT_ZZ:
        !           137:                delete_cmon_mat_zz((cmon_mat_zz_t *)p);
        !           138:                break;
        !           139:        }
        !           140: }
        !           141:
        !           142:

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