(* ----------------------------------------------------------------------------
* $Id: MASLOADA.mi,v 1.4 1995/11/05 09:05:01 kredel Exp $
* ----------------------------------------------------------------------------
* This file is part of MAS.
* ----------------------------------------------------------------------------
* Copyright (c) 1989 - 1992 Universitaet Passau
* ----------------------------------------------------------------------------
* $Log: MASLOADA.mi,v $
* Revision 1.4 1995/11/05 09:05:01 kredel
* Interpreter IPROD now uses Karatsubas Method.
*
* Revision 1.3 1992/10/15 16:30:32 kredel
* Changed rcsid variable
*
* Revision 1.2 1992/02/12 17:32:49 pesch
* Moved CONST definition to the right place
*
* Revision 1.1 1992/01/22 15:12:07 kredel
* Initial revision
*
* ----------------------------------------------------------------------------
*)
IMPLEMENTATION MODULE MASLOADA;
(* MAS Load Implementation Module A. *)
(* Import lists and declarations. *)
FROM MASSTOR IMPORT LIST, LENGTH;
FROM MASLISPU IMPORT Declare,
Compiledp0, Compiledp1, Compiledp2,
Compiledf0, Compiledf1, Compiledf2, Compiledf3,
Compiledp1v2,
Compiledp2v2;
FROM SACI IMPORT IWRITE, IREAD, INEG, (* IPROD,*) ISUM, IDIF,
IQ, IREM, IQR, ISIGNF, IABSF, IEXP, ICOMP,
IGCD, ILCM,
IRAND, ILWRIT;
FROM SACCOMB IMPORT IFACTL, IBCOEF;
FROM SACRN IMPORT RNWRIT, RNDWR, RNREAD,
RNSIGN, RNCOMP, RNNEG, RNABS,
RNINT, RNRED, RNDEN, RNNUM, RNINV,
RNSUM, RNDIF, RNPROD, RNQ;
FROM SACM IMPORT MIDIF, MIEXP, MIHOM, MIINV, MINEG,
MIPROD, MIQ, MISUM;
FROM MASRN IMPORT RNEXP;
FROM MASI IMPORT IPROD;
FROM MASAPF IMPORT APSPRE, APFINT, APWRIT,
APSIGN, APCMPR, APNEG, APABS,
APSUM, APDIFF, APPROD, APQ, APEXP,
APFRN, RNFAP, RNDRD,
APROOT, APPI;
FROM SACPRIM IMPORT IFACT, SMPRM, DPGEN;
FROM MASF IMPORT RNFF, FFRN,
SIN, COS, TAN, ARCTAN,
EXPF, LN, LOG, SQRT;
CONST rcsidi = "$Id: MASLOADA.mi,v 1.4 1995/11/05 09:05:01 kredel Exp $";
CONST copyrighti = "Copyright (c) 1989 - 1992 Universitaet Passau";
PROCEDURE InitExternalsA;
(*Initialize external compiled arithmetic procedures. *)
BEGIN
(*1*) (*from SACI+MASI. *)
Compiledp1(IWRITE,"IWRITE");
Compiledp1(ILWRIT,"ILWRIT");
Compiledf0(IREAD,"IREAD");
Compiledf1(ISIGNF,"ISIGN");
Compiledf2(ICOMP,"ICOMP");
Compiledf1(INEG,"INEG");
Compiledf1(IABSF,"IABS");
Compiledf2(ISUM,"ISUM");
Compiledf2(IDIF,"IDIF");
Compiledf2(IPROD,"IPROD");
Compiledf2(IQ,"IQ");
Compiledf2(IREM,"IREM");
Compiledp2v2(IQR,"IQR");
Compiledf2(IEXP,"IEXP");
Compiledf2(IGCD,"IGCD");
Compiledf2(ILCM,"ILCM");
Compiledf1(IRAND,"IRAND");
(*2*) (*from SACRN+MASRN. *)
Compiledp2(RNDWR,"RNDWR");
Compiledp1(RNWRIT,"RNWRIT");
Compiledf0(RNREAD,"RNREAD");
Compiledf2(RNRED,"RNRED");
Compiledf1(RNDEN,"RNDEN");
Compiledf1(RNNUM,"RNNUM");
Compiledf1(RNINV,"RNINV");
Compiledf1(RNSIGN,"RNSIGN");
Compiledf2(RNCOMP,"RNCOMP");
Compiledf1(RNNEG,"RNNEG");
Compiledf1(RNABS,"RNABS");
Compiledf1(RNINT,"RNINT");
Compiledf2(RNSUM,"RNSUM");
Compiledf2(RNDIF,"RNDIF");
Compiledf2(RNPROD,"RNPROD");
Compiledf2(RNQ,"RNQ");
Compiledf2(RNEXP,"RNEXP");
(*3*) (*from MASAPF. *)
Compiledp1(APSPRE,"APSPRE");
Compiledp1(APWRIT,"APWRIT");
Compiledf0(APREAD,"APREAD");
Compiledf0(RNDRD,"RNDRD");
Compiledf1(APFRN,"APFRN");
Compiledf1(RNFAP,"RNFAP");
Compiledf1(APSIGN,"APSIGN");
Compiledf2(APCMPR,"APCMPR");
Compiledf1(APNEG,"APNEG");
Compiledf1(APABS,"APABS");
Compiledf1(APFINT,"APFINT");
Compiledf2(APSUM,"APSUM");
Compiledf2(APDIFF,"APDIFF");
Compiledf2(APPROD,"APPROD");
Compiledf2(APQ,"APQ");
Compiledf2(APEXP,"APEXP");
Compiledf2(APROOT,"APROOT");
Compiledf0(APPI,"APPI");
(*4*) (*from SACPRIM. *)
Compiledf1(IFACT,"IFACT");
Compiledf2(DPGEN,"DPGEN");
Compiledf0(GetSMPRM,"SMPRM");
(*5*) (*from SACCOMB. *)
Compiledf1(IFACTL,"IFACTL");
Compiledf2(IBCOEF,"IBCOEF");
(*6*) (*from MASF. *)
Compiledf1(SIN,"SIN");
Compiledf1(COS,"COS");
Compiledf1(TAN,"TAN");
Compiledf1(ARCTAN,"ARCTAN");
Compiledf1(LN,"LN");
Compiledf1(LOG,"LOG");
Compiledf1(EXPF,"EXPF");
Compiledf1(SQRT,"SQRT");
Compiledf1(VIA,"VIA");
(*7*) (*from SACM. *)
Compiledf3(MIDIF,"MIDIF");
Compiledf3(MIEXP,"MIEXP");
Compiledf2(MIHOM,"MIHOM");
Compiledf2(MIINV,"MIINV");
Compiledf2(MINEG,"MINEG");
Compiledf3(MIPROD,"MIPROD");
Compiledf3(MIQ,"MIQ");
Compiledf3(MISUM,"MISUM");
(*9*) END InitExternalsA;
PROCEDURE GetSMPRM(): LIST;
(*access global variable via function. *)
BEGIN RETURN(SMPRM) END GetSMPRM;
PROCEDURE VIA(a: LIST): LIST;
(*convert to floating point and back. *)
BEGIN RETURN(RNFF(FFRN(a))) END VIA;
PROCEDURE APREAD(): LIST;
(*Read ap floating point using RNDRD. *)
BEGIN RETURN(APFRN(RNDRD())) END APREAD;
END MASLOADA.
(* -EOF- *)