Annotation of OpenXM_contrib2/asir2000/engine/alg.c, Revision 1.1
1.1 ! noro 1: /* $OpenXM: OpenXM/src/asir99/engine/alg.c,v 1.1.1.1 1999/11/10 08:12:26 noro Exp $ */
! 2: #include "ca.h"
! 3: #include "base.h"
! 4:
! 5: extern VL ALG;
! 6:
! 7: Obj ToAlg();
! 8:
! 9: Obj ToAlg(a)
! 10: Num a;
! 11: {
! 12: Obj t;
! 13:
! 14: if ( !a || (NID(a) != N_A) )
! 15: t = (Obj)a;
! 16: else
! 17: t = BDY((Alg)a);
! 18: return t;
! 19: }
! 20:
! 21: void addalg(a,b,c)
! 22: Num a,b,*c;
! 23: {
! 24: Obj t;
! 25: Alg r;
! 26:
! 27: addr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
! 28: }
! 29:
! 30: void subalg(a,b,c)
! 31: Num a,b,*c;
! 32: {
! 33: Obj t;
! 34: Alg r;
! 35:
! 36: subr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
! 37: }
! 38:
! 39: void mulalg(a,b,c)
! 40: Num a,b,*c;
! 41: {
! 42: Obj t;
! 43: Alg r;
! 44:
! 45: mulr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
! 46: }
! 47:
! 48: void divalg(a,b,c)
! 49: Num a,b,*c;
! 50: {
! 51: Obj t;
! 52: Alg r;
! 53:
! 54: divr(ALG,ToAlg(a),ToAlg(b),&t); MKAlg(t,r); *c = (Num)r;
! 55: }
! 56:
! 57: void chsgnalg(a,c)
! 58: Num a,*c;
! 59: {
! 60: Obj t;
! 61: Alg r;
! 62:
! 63: chsgnr(ToAlg(a),&t); MKAlg(t,r); *c = (Num)r;
! 64: }
! 65:
! 66: void pwralg(a,b,c)
! 67: Num a,b,*c;
! 68: {
! 69: Obj t;
! 70: Alg r;
! 71:
! 72: pwrr(ALG,ToAlg(a),(Obj)b,&t); MKAlg(t,r); *c = (Num)r;
! 73: }
! 74:
! 75: int cmpalg(a,b)
! 76: Num a,b;
! 77: {
! 78: return compr(ALG,ToAlg(a),ToAlg(b));
! 79: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>