5BC94 |
(addt+)
|
( meta → meta&+ )
|
5BC67 |
(addt-)
|
( meta → meta&- )
|
5CD16 |
(addt*)
|
( meta → meta&* )
|
5CD2A |
(addtNEG)
|
( meta → meta&NEG )
|
5CD3E |
(addtINV)
|
( meta → meta&INV )
|
5BCC1 |
(repl/)
|
( meta&ob → meta&/ )
|
5BCEE |
(repl*)
|
( meta&ob → meta&* )
|
5ACD6 |
(M1st+?Drp)
|
( meta&+ → meta )
|
5BC5D |
(meta+)
|
( meta&NEG → meta&- )
|
5BC8A |
(meta-)
|
( meta&NEG → meta&+ )
|
5BCB7 |
(meta*)
|
( meta&INV → meta&/ )
|
5BCE4 |
(meta/)
|
( meta&INV → meta&* )
|
5BD3E |
(drpmeta+)
|
( meta&NEG&ob → meta&- )
( meta&ob → meta&+ )
|
5BD57 |
(drpmeta-)
|
( meta&NEG&ob → meta&+ )
( meta&ob → meta&- )
|
5BD70 |
(drpmeta*)
|
( meta&INV&ob → meta&/ )
( meta&ob → meta&* )
|
5BD89 |
(drpmeta/)
|
( meta&INV&ob → meta&* )
( meta&ob → meta&/ )
|
5BBE5 |
(metaneg)
|
( meta&NEG → meta )
( meta → meta&NEG )
|
5BC3F |
(metainv)
|
( meta&INV → meta )
( meta → meta&INV )
|
5BC03 |
(metaneglft)
|
( meta → meta' )
metaneg on left sub-expression.
|
5BC21 |
(metainvlft)
|
( meta → meta' )
metainv on left sub-expression.
|
5EA9F |
pshzerpsharg
|
( meta → M_last M_rest )
Pushes last sub-expression in meta. If meta
is a valid expression M_rest will be empty.
|
63F92 |
pZpargSWAPUn
|
( meta → M_rest M_last )
<REF>pshzerpsharg then <REF>psh .
|
63F56 |
plDRPpZparg
|
( meta&ob → M_last M_rest )
Drops ob then calls <REF>pshzerpsharg .
|
5E68E |
(pargop)
|
( meta → M_last&op M_rest )
Pushes last sub-expression ignoring first
object in meta. Thus op is +, -, etc. and
M_last is their second argument.
|
5EAC2 |
(larg)
|
( meta → M_rest M_last )
Splits last sub-expression from meta.
|
5E6F2 |
(parg&)
|
( meta1 meta2 → meta1&M_last M_rest )
|
5CCEE |
(larg&)
|
( meta1 meta2 → meta1&M_rest M_last )
|
5CBF9 |
(drppargtop&)
|
( meta&ob → M_last&M_rest )
|
57F4B |
(swappargunrot)
|
( meta1 meta2 → M_rest meta2 M_last )
|
1CF42 |
(drppargsym)
|
( meta&ob → 'M_rest"MetaLast' )
Buids objects with PSYMBN . Will give invalid
expressions if ob is not a two-argument
function.
|
5F926 |
(splitup)
|
( meta #n #m → meta #level )
Calculates stack level of last object to be
included when splitting last #m sub-
expressions from meta starting from stack
level n. (2 1 would give level of first
object in the last sub-expression.)
|
5F96E |
(splitdown)
|
( meta #n #m → meta #lowlevel #args+1 )
Seeks stack level n-1 downwards for extra
operators for #m expressions. #lowlevel is the
stack level of the extra operator. #args
indicates how many expressions the lowlevel
operator is still missing.
|
558BE |
(?spliteq)
|
( meta1&meta2&= → meta2 meta1 )
If meta contains =, splits two sides,
otherwise DUP .
|
58C02 |
(count+)
|
( meta → meta #0 )
( meta &+&+..&+ → meta #n )
|
58C0E |
(count*)
|
( meta → meta #0 )
( meta &*&*..&* → meta #n )
Same as count+ for *.
|
5BE56 |
(MetaMulInv)
|
Simplifiy combinations of INV and *
(using /).
|
58A61 |
(colinv1)
|
( [expr1 INV expr2 INV *] → [expr1 expr2 /] )
|
58A93 |
(colinv2)
|
( [expr INV *] → [expr /] )
|
58AAC |
(colinv3)
|
( [expr1 INV expr2 *] → [expr1 expr2 /] )
|
5971D |
(MetaDNEG)
|
double negate
Double negation.
|
5976B |
(MetaDINV)
|
double invert
Double inversion.
|
597B5 |
(Meta*1)
|
mult by one
Multiply by one.
|
5983B |
(Meta^1)
|
pow by one
Raise to power of one.
|
59885 |
(Meta1/)
|
div by one
Divide by one.
|
5990F |
(Meta+1-1)
|
add 1 subtract 1
Add one and subtract one.
|
596D3 |
(MetaRCOLCT)
|
restricted collection
Restricted collection.
|
5C6D9 |
(Meta<-T)
|
move nearest right term to left
Move nearest right term to the left.
|
5C68D |
(MetaT->)
|
move nearest left term to right
Move nearest left term to the right.
|
5C623 |
(Meta(()))
|
parenthesise nearest term
Put parentheses over nearest term.
|
5C589 |
(Meta(<-)
|
include left term
Include left term.
|
5C5D6 |
(Meta->))
|
include right term
Include right term.
|
5BE81 |
(Meta<-->)
|
commute terms
Commute terms.
|
5BECE |
(Meta<-A)
|
associate left term
Associate left term.
|
5BF53 |
(MetaA->)
|
associate right term
Associate right term.
|
5C137 |
(Meta->())
|
remove prefix
Remove prefix.
|
5C0B9 |
(Meta<-D)
|
delete left term
Delete left term (via expansion).
|
5C102 |
(Meta<-D!)
|
delete left term
Delete left term (above - ^ expansion).
|
5BFD8 |
(MetaD->)
|
delete right term
Delete right term (via expansion).
|
5C3C2 |
(Meta<-M)
|
merge common factor on left
Merge common factor on left side.
|
5C4CF |
(MetaM->)
|
merge common factor on right
Merge common factor on right side.
|
5C261 |
(Meta-())
|
double negate & remove prefix
Double negate, then remove prefix.
|
5C204 |
(Meta1/())
|
double invert & remove prefix
Double inversion, then remove prefix.
|
5C348 |
(MetaL*)
|
( LN(a^b) → b*LN(a) )
Transform LN(A^B) to LN(A)*B.
|
5C375 |
(MetaL())
|
( b*LN(a) → LN(a^b) )
Transform LN(A)*B to LN(A^B).
|
5C2CE |
(MetaE^)
|
( EXP(a*b) → EXP(a)^b )
Transform EXP(A*B) to EXP(A)^B.
|
5C31B |
(MetaE())
|
( EXP(a)^b → EXP(a*b) )
Transform EXP(A)^B to EXP(A*B).
|
5C670 |
(Meta->TRG)
|
change EXP to trig. fns.
Change EXP to trigonometric functions.
|
5C53C |
(MetaAF)
|
add fractions
Add fractions.
|
5C845 |
(Meta->DEF)
|
define function
Define function (SIN, SINH, ASIN...)
|
5C91D |
(MetaTRG*)
|
expand trig fns. of a sum
Expand trigonometric function of a sum.
|
5C73D |
(Meta->()C%)
|
remove 1st RE,IM; CONJ
Remove first RE, IM or CONJ.
|
5CDF2 |
(Meta<-Dall)
|
|
5CEF1 |
(MetaD->all)
|
|
5CE15 |
(Meta<-Aall)
|
|
5CE4C |
(MetaA->all)
|
|
5CFF5 |
(Meta<-Mall)
|
|
5D009 |
(MetaM->all)
|
|
5CF5A |
(Meta<-Tall)
|
|
5CF23 |
(MetaT->all)
|
|
5CEBA |
(Meta(<-all)
|
|
5CE83 |
(Meta->)all)
|
|
5CF91 |
(Meta->()all)
|
|
5CFC3 |
(Meta->()C%all)
|
|
5CD52 |
(evalcase:)
|
( meta → ? )
Evaluates next object. If it drops current
stream then continue, else SKIP
next. Example:
:: evalcase: Meta<-D Meta<-Daga ;
|
5CD7A |
(revalcase:)
|
( meta → ?omeg )
Evaluates next object for sub-expressions
until current stream is not dropped by
ob. Example:
Meta<-Daga =
:: revalcase: Meta<-D COLA RDROP ;
COLA RDROP is there to mark successful
operation.
|