/* $OpenXM: OpenXM_contrib2/asir2000/engine/alg.c,v 1.1.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)); }