: h+ ( a b -- c )
2dup [ (homogeneous-w) ] bi@ over =
- [ [ [ (homogeneous-xyz) ] bi@ v+ ] dip suffix ] [
+ [ [ [ (homogeneous-xyz) ] bi@ v+ ] dip suffix ] [
drop
[ [ (homogeneous-xyz) ] [ (homogeneous-w) ] bi* v*n ]
[ [ (homogeneous-w) ] [ (homogeneous-xyz) ] bi* n*v v+ ]
[ [ (homogeneous-w) ] [ (homogeneous-w) ] bi* * suffix ] 2tri
] if ;
-: n*h ( n h -- nh )
+: n*h ( n h -- nh )
[ (homogeneous-xyz) n*v ] [ (homogeneous-w) suffix ] bi ;
: h*n ( h n -- nh )
: h>v ( h -- v )
[ (homogeneous-xyz) ] [ (homogeneous-w) ] bi v/n ;
-