\input texinputs/layout
\input texinputs/verbatim
\input psfont.defs
\vsize=9.5truein
\voffset=-0.5truein


\def\runningtitle{Command list}
{\bigbold Command and data list for the course calculator}
\bigskip

{\bold Dynamic items} (data types):
\medbreak

@Integers: (-)digit+
Booleans: true/false
Doubles: (-)digit+.digit* or (-)digit*.digit+
Complex numbers: < double double > or i
Vectors: [ doubles ]
Matrices: [ vectors ]
Generic arrays: [ ... ] but not one of the above
Procedures: { ... }
Variables: letter(letter|digit)*
Variable names: @\AT@letter(letter|digit)*
Fractions: (-)digit+/digit+
Strings: "..."@

{\bold Static items} (commands associated to a key word or symbol):
\medbreak

@[...]
@\AT@...
{...}
<anything> copy
<anything> pop
<anything> dup
<anything> <anything> exch
<anything> <variable name> def
<anything> !
<anything> =

local
endlocal
<procedure> exec
<integer> <procedure> repeat
<procedure> <procedure> while
stop
<string> load

<number> <number> ge
<number> <number> gt
<number> <number> le
<number> <number> lt
<number> <number> eq
<boolean> <procedure> <procedure> ifelse
<boolean> <procedure> if
true
false
<boolean> not
<boolean> <boolean> and
<boolean> <boolean> or

<complex number> <complex number> +
<vector> <vector> +
<matrix> <matrix> +
<string> <anything> +
<complex number> <complex number> -
<vector> <vector> -
<matrix> <matrix> -
<complex number> <complex number> *
<vector> <vector> *
<matrix> <matrix> *
<complex number> <complex number> /

<integer> fix
<integer> sci
<number> floor
<complex number> abs
<vector> abs
<number> acos
<number> <number> atan2
<number> <number> ^
<complex number> <integer> ^
<number> cos
<number> exp
<number> log
<number> sin
<number> sqrt
pi
< <number> <number> >
<complex number> re
<complex number> im
i

<3d vector> <3d vector> cross
<vector> dim
<matrix> dim
<integer> <matrix> gauss
<integer> <matrix> jordan
<matrix> det 
( <integer> )
<integer> <integer> matrix
<integer> vector
<matrix> <integer> <number> rowscale
<matrix> <integer> <integer> <number> rowsub
<matrix> <integer> <integer> rowswap

<number> <number> lineto
<complex number> lineto
<number> <number> moveto
<complex number> moveto
<number> <number> scale
<0...1> <0...1> <0...1> setcolor
<number> <number> translate
clear
newpath
stroke
fill
paint@

\bye


