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

File: [local] / OpenXM / src / ox_ntl / cmon.cpp (download)

Revision 1.1, Sat Nov 15 09:06:20 2003 UTC (20 years, 5 months ago) by iwane
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9

block interrupt input.

add ox_ntl command "lll"
e.g.
[1081] M=newmat(2,2,[[10,0],[-7,3]]);
[ 10 0 ]
[ -7 3 ]
[1082] ntl.lll(PID, M);
[ 3 3 ]
[ 4 -6 ]

add local cmo-object

/* $OpenXM: OpenXM/src/ox_ntl/cmon.cpp,v 1.1 2003/11/15 09:06:20 iwane Exp $ */

#include <NTL/ZZX.h>

#include "ntl.h"

/****************************************************************************
 * Construct
 ****************************************************************************/
cmon_zz_t *
new_cmon_zz(ZZ &z)
{
	cmon_zz_t *p = new_cmon_zz();
	*(p->z) = z; 
	return (p);
}

cmon_zz_t *
new_cmon_zz(void)
{
	cmon_zz_t *p = (cmon_zz_t *)malloc(sizeof(cmon_zz_t));
	p->tag = CMON_ZZ;
	p->z = new ZZ();
	return (p);
}

cmon_zzx_t *
new_cmon_zzx(ZZX &f, cmo_indeterminate *x)
{
	cmon_zzx_t *p = new_cmon_zzx();
	*(p->f) = f;
	p->x = x;
	return (p);
}

cmon_zzx_t *
new_cmon_zzx(void)
{
	cmon_zzx_t *p = (cmon_zzx_t *)malloc(sizeof(cmon_zzx_t));
	p->tag = CMON_ZZX;
	p->f = new ZZX();
	return (p);
}




cmon_factors_t *
new_cmon_factors(ZZ &cont, vec_pair_ZZX_long &factors, cmo_indeterminate *x)
{
	cmon_factors_t *p = new_cmon_factors();
	*(p->cont) = cont;
	*(p->f) = factors;
	p->x = x;
	return (p);
}

cmon_factors_t *
new_cmon_factors(void)
{
	cmon_factors_t *p = (cmon_factors_t *)malloc(sizeof(cmon_factors_t));
	p->tag = CMON_FACTORS;
	p->cont = new ZZ();
	p->f = new vec_pair_ZZX_long();
	return (p);
}

cmon_mat_zz_t *
new_cmon_mat_zz(mat_ZZ &m)
{
	cmon_mat_zz_t *p = new_cmon_mat_zz();
	*(p->mat) = m;
	return (p);
}

cmon_mat_zz_t *
new_cmon_mat_zz(void)
{
	cmon_mat_zz_t *p = (cmon_mat_zz_t *)malloc(sizeof(cmon_mat_zz_t));
	p->tag = CMON_MAT_ZZ;
	p->mat = new mat_ZZ();
	return (p);
}



/****************************************************************************
 * Destruct
 ****************************************************************************/
void
delete_cmon_zz(cmon_zz_t *p)
{
	delete(p->z);
	free(p);
}

void
delete_cmon_zzx(cmon_zzx_t *p)
{
	delete(p->f);
	free(p);
}


void
delete_cmon_factors(cmon_factors_t *p)
{
	delete(p->cont);
	delete(p->f);
	free(p);
}

void
delete_cmon_mat_zz(cmon_mat_zz_t *p)
{
	delete (p->mat);
	free(p);
}

/***
 * PARAM  : p is not null pointer.
 ************/
void
delete_cmon(cmo *p)
{
	switch (p->tag) {
	case CMON_ZZ:
		delete_cmon_zz((cmon_zz_t *)p);
		break;
	case CMON_ZZX:
		delete_cmon_zzx((cmon_zzx_t *)p);
		break;
	case CMON_FACTORS:
		delete_cmon_factors((cmon_factors_t *)p);
		break;
	case CMON_MAT_ZZ:
		delete_cmon_mat_zz((cmon_mat_zz_t *)p);
		break;
	}
}