aboutsummaryrefslogtreecommitdiffstats
path: root/include/graphf.etc
diff options
context:
space:
mode:
Diffstat (limited to 'include/graphf.etc')
-rw-r--r--include/graphf.etc295
1 files changed, 295 insertions, 0 deletions
diff --git a/include/graphf.etc b/include/graphf.etc
new file mode 100644
index 0000000..3e3a6cb
--- /dev/null
+++ b/include/graphf.etc
@@ -0,0 +1,295 @@
+
+###############################################################################
+# #
+# Lout @GraphMath package for @Graph (Version 1.1) #
+# #
+# Version 1.0 by Jeffrey H. Kingston, December 1993. #
+# Version 1.1 by Jeffrey H. Kingston, October 1996. #
+# #
+# This package provides mathematics for the @Graph graph drawing package. #
+# #
+###############################################################################
+
+export
+
+ "-0" "-1" "-2" "-3" "-4" "-5" "-6" "-7" "-8" "-9" "-."
+ pi e sqrt abs ceiling floor truncate round cos sin atan
+ exp log rand "*" "/" idiv mod "+" "-"
+ "=" "!=" "<" "<=" ">" ">=" not and xor or
+ if xloop yloop zloop
+
+def @GraphMath
+{
+ def "-0" { "-0" }
+ def "-1" { "-1" }
+ def "-2" { "-2" }
+ def "-3" { "-3" }
+ def "-4" { "-4" }
+ def "-5" { "-5" }
+ def "-6" { "-6" }
+ def "-7" { "-7" }
+ def "-8" { "-8" }
+ def "-9" { "-9" }
+ def "-." { "-." }
+
+ def pi { "3.14159" }
+
+ def e { "2.71828" }
+
+ def sqrt
+ precedence 40
+ right y
+ {
+ y "sqrt"
+ }
+
+ def abs
+ precedence 40
+ right y
+ {
+ y "abs"
+ }
+
+ def ceiling
+ precedence 40
+ right y
+ {
+ y "ceiling"
+ }
+
+ def floor
+ precedence 40
+ right y
+ {
+ y "floor"
+ }
+
+ def truncate
+ precedence 40
+ right y
+ {
+ y "truncate"
+ }
+
+ def round
+ precedence 40
+ right y
+ {
+ y "round"
+ }
+
+ def cos
+ precedence 40
+ right y
+ {
+ y "cos"
+ }
+
+ def sin
+ precedence 40
+ right y
+ {
+ y "sin"
+ }
+
+ def atan
+ precedence 39
+ left x
+ right y
+ {
+ x y "atan"
+ }
+
+ def exp
+ precedence 38
+ left x
+ right y
+ {
+ x y "exp"
+ }
+
+ def log
+ precedence 37
+ left x
+ right y
+ {
+ x y "dolog"
+ }
+
+ def rand
+ precedence 36
+ left x
+ right y
+ {
+ x y "dorand"
+ }
+
+ def "*"
+ precedence 35
+ left x
+ right y
+ {
+ x y "mul"
+ }
+
+ def "/"
+ precedence 35
+ left x
+ right y
+ {
+ x y "div"
+ }
+
+ def "idiv"
+ precedence 34
+ left x
+ right y
+ {
+ x y "idiv"
+ }
+
+ def "mod"
+ precedence 34
+ left x
+ right y
+ {
+ x y "mod"
+ }
+
+ def "-"
+ precedence 33
+ left x
+ right y
+ {
+ x @Case {
+ "" @Yield { y "neg" }
+ else @Yield { x y "sub" }
+ }
+ }
+
+ def "+"
+ precedence 32
+ left x
+ right y
+ {
+ x @Case {
+ "" @Yield { y }
+ else @Yield { x y "add" }
+ }
+ }
+
+ def "="
+ precedence 30
+ left x
+ right y
+ {
+ x y "eq"
+ }
+
+ def "!="
+ precedence 30
+ left x
+ right y
+ {
+ x y "ne"
+ }
+
+ def "<"
+ precedence 30
+ left x
+ right y
+ {
+ x y "lt"
+ }
+
+ def "<="
+ precedence 30
+ left x
+ right y
+ {
+ x y "le"
+ }
+
+ def ">"
+ precedence 30
+ left x
+ right y
+ {
+ x y "gt"
+ }
+
+ def ">="
+ precedence 30
+ left x
+ right y
+ {
+ x y "ge"
+ }
+
+ def "not"
+ precedence 25
+ right y
+ {
+ y "not"
+ }
+
+ def "and"
+ precedence 24
+ left x
+ right y
+ {
+ x y "and"
+ }
+
+ def "xor"
+ precedence 23
+ left x
+ right y
+ {
+ x y "xor"
+ }
+
+ def "or"
+ precedence 22
+ left x
+ right y
+ {
+ x y "or"
+ }
+
+ def if
+ named cond { true }
+ named then {}
+ named else {}
+ {
+ cond "{" then "} {" else "} ifelse"
+ }
+
+ def xloop
+ named from { 0 }
+ named to { 0 }
+ named by { 1 }
+ named do named x { "xval" } {}
+ {
+ from by to "{ /xval exch def" do "} for"
+ }
+
+ def yloop
+ named from { 0 }
+ named to { 0 }
+ named by { 1 }
+ named do named y { "yval" } {}
+ {
+ from by to "{ /yval exch def" do "} for"
+ }
+
+ def zloop
+ named from { 0 }
+ named to { 0 }
+ named by { 1 }
+ named do named z { "zval" } {}
+ {
+ from by to "{ /zval exch def" do "} for"
+ }
+
+}