[BACK]Return to alg.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

File: [local] / OpenXM_contrib2 / asir2000 / engine / alg.c (download)

Revision 1.1, Fri Dec 3 07:39:08 1999 UTC (24 years, 5 months ago) by noro
Branch: MAIN

Initial revision

/* $OpenXM: OpenXM_contrib2/asir2000/engine/alg.c,v 1.1 1999/12/03 07:39:08 noro Exp $ */
#include "ca.h"
#include "base.h"

extern VL ALG;

Obj ToAlg();

Obj ToAlg(a)
Num a;
{
	Obj t;

	if ( !a || (NID(a) != N_A) )
		t = (Obj)a;
	else
		t = BDY((Alg)a);
	return t;
}

void addalg(a,b,c)
Num a,b,*c;
{
	Obj t;
	Alg r;

	addr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
}

void subalg(a,b,c)
Num a,b,*c;
{
	Obj t;
	Alg r;

	subr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
}

void mulalg(a,b,c)
Num a,b,*c;
{
	Obj t;
	Alg r;

	mulr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
}

void divalg(a,b,c)
Num a,b,*c;
{
	Obj t;
	Alg r;

	divr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
}

void chsgnalg(a,c)
Num a,*c;
{
	Obj t;
	Alg r;

	chsgnr(ToAlg(a),&t); MKAlg(t,r); *c = (Num)r;
}

void pwralg(a,b,c)
Num a,b,*c;
{
	Obj t;
	Alg r;

	pwrr(ALG,ToAlg(a),(Obj)b,&t); MKAlg(t,r); *c = (Num)r;
}

int cmpalg(a,b)
Num a,b;
{
	return compr(ALG,ToAlg(a),ToAlg(b));
}