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>