@@ 32,6 32,42 @@ type+ T
returning bool
self as Ternary == other as Ternary
+ @@ memo
+ inline __< (cls T)
+ static-if (cls == T)
+ fn (self other)
+ returning bool
+ dispatch self
+ case Zero ()
+ dispatch other
+ case Zero () false
+ default true
+ case One ()
+ dispatch other
+ case Zero () false
+ case One () false
+ default true
+ case Var (name)
+ dispatch other
+ case Zero () false
+ case One () false
+ case Var (name2) (name as string < name2 as string)
+ default true
+ case Term (x y z)
+ dispatch other
+ case Zero () false
+ case One () false
+ case Var (name2) false
+ case Term (u v w)
+ if (x == u)
+ if (y == v)
+ if (z == w) false
+ else (z < w)
+ else (y < v)
+ else (x < u)
+ default true
+ default false
+
fn make-term
fn sub (self key value)
@@ 205,6 241,16 @@ type+ T
this-function b
(default-styler 'style-operator ")")
default;
+ if (c == (~ b))
+ return
+ ..
+ (default-styler 'style-operator "(")
+ this-function a
+ " "
+ (default-styler 'style-operator "^")
+ " "
+ this-function b
+ (default-styler 'style-operator ")")
return
..
(default-styler 'style-operator "(?")
@@ 216,7 262,7 @@ type+ T
this-function b
(default-styler 'style-operator ")")
default
- "???"
+ str"???"
fn __repr (self)
@@ 231,7 277,7 @@ type+ T
\ (repr a) " " (repr b) " " (repr c)
(default-styler 'style-operator ")")
default
- "?"
+ str"?"
type+ T
inline... substitute (self keys...)
@@ 352,6 398,14 @@ print
#rev& b0 b1 b2 n3
#rev& b0 b1 b2 b3
+do
+ let a b c d = (T 'a) (T 'b) (T 'c) (T 'd)
+ let ~a ~b ~c ~d = (~ a) (~ b) (~ c) (~ d)
+ print
+ T.bool-repr
+ ~a & b & ~c & d | a & b & ~c & ~d | ~a & b & c & ~d | ~a & ~b & ~c & d
+ #~a & b & ~c & d | a & b & ~c & ~d | ~a & b & c & ~d | ~a & ~b & ~c & d
+ #| (& ~a b ~c d) (& a b ~c ~d) (& ~a b c ~d) (& ~a ~b ~c d)
#
if a
@@ 254,8 254,8 @@ inline gen-level2-test-geometry ()
ftou (fmul v (utof TS))
fetch cube_texture (uvec2 u v)
let tex =
- #hardcube u v
- softcube u v
+ hardcube u v
+ #softcube u v
inline tform (x)
fmul (fadd (fmul x (fconst 0.5)) (fconst 0.5)) tex
let r = (tform r)