/usr/share/axiom-20170501/src/algebra/ASP33.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | )abbrev domain ASP33 Asp33
++ Author: Mike Dewar and Godfrey Nolan
++ Date Created: Nov 1993
++ Date Last Updated: 30 March 1994
++ References:
++ Hawk95 Two more links to NAG numerics involving CA systems
++ Kead93 Production of Argument SubPrograms in the AXIOM -- NAG link
++ Description:
++\spadtype{Asp33} produces Fortran for Type 33 ASPs, needed for NAG routine
++d02kef. The code is a dummy ASP:
++
++\tab{5}SUBROUTINE REPORT(X,V,JINT)\br
++\tab{5}DOUBLE PRECISION V(3),X\br
++\tab{5}INTEGER JINT\br
++\tab{5}RETURN\br
++\tab{5}END
Asp33(name) : SIG == CODE where
name : Symbol
FST ==> FortranScalarType
UFST ==> Union(fst:FST,void:"void")
FT ==> FortranType
SYMTAB ==> SymbolTable
FC ==> FortranCode
RSFC ==> Record(localSymbols:SymbolTable,code:List(FortranCode))
SIG ==> FortranProgramCategory with
outputAsFortran : () -> Void
++outputAsFortran() generates the default code for \spadtype{ASP33}.
CODE ==> add
real : UFST := ["real"::FST]$UFST
syms : SYMTAB := empty()
declare!(JINT,fortranInteger(),syms)$SYMTAB
declare!(X,fortranReal(),syms)$SYMTAB
vType : FT := construct(real,["3"::Symbol],false)$FT
declare!(V,vType,syms)$SYMTAB
Rep := FortranProgram(name,["void"]$UFST,[X,V,JINT],syms)
outputAsFortran():Void ==
outputAsFortran( (returns()$FortranCode)::Rep )$Rep
outputAsFortran(u):Void == outputAsFortran(u)$Rep
coerce(u:$):OutputForm == coerce(u)$Rep
|