HairBSDF, Mp, upper

Time bar (total: 3.9s)

analyze15.0ms (0.4%)

Memory
4.5MiB live, 4.5MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
100%0%0%100%0%0%0%1
Compiler

Compiled 52 to 41 computations (21.2% saved)

sample3.8s (96.7%)

Memory
25.4MiB live, 1 048.6MiB allocated
Samples
1.0s8 256×73valid-baseline
889.0ms8 256×73valid-rival
777.0ms8 256×73valid-sollya
Precisions
Click to see Rival histograms. Total time spent on operations: 659.0ms
ival-mult: 248.0ms (37.6% of total)
ival-div: 210.0ms (31.9% of total)
ival-sinh: 78.0ms (11.8% of total)
ival-exp: 69.0ms (10.5% of total)
ival-neg: 37.0ms (5.6% of total)
ival-true: 8.0ms (1.2% of total)
...in/eval/compile.rkt:110:19: 6.0ms (0.9% of total)
ival-assert: 4.0ms (0.6% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 680.0ms
ival-mult: 260.0ms (38.2% of total)
ival-div: 224.0ms (32.9% of total)
ival-sinh: 72.0ms (10.6% of total)
ival-exp: 69.0ms (10.1% of total)
ival-neg: 39.0ms (5.7% of total)
const: 16.0ms (2.4% of total)
Bogosity

preprocess78.0ms (2%)

Memory
10.9MiB live, 26.3MiB allocated
Algorithm
egg-herbie
Rules
1 126×associate-*r*
1 094×associate-*l*
1 090×associate-*r/
934×*-commutative
920×associate-*l/
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01502070
15511990
221001914
Stop Event
node limit
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v))) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) (neg.f32 v))) #s(literal 2 binary32)) (neg.f32 v)))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v))) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) (neg.f32 v))) #s(literal 2 binary32)) (neg.f32 v))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_O cosTheta_i) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 cosTheta_i sinTheta_O) v))) (/.f32 (*.f32 sinTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i cosTheta_i) v))) (/.f32 (*.f32 sinTheta_O cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_i))) (/.f32 (*.f32 v cosTheta_O) cosTheta_i)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_i)) #s(literal 2 binary32)) cosTheta_i))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 cosTheta_O sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i sinTheta_i) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i cosTheta_O) v))) (/.f32 (*.f32 cosTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_O))) (/.f32 (*.f32 cosTheta_i v) cosTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_O)) #s(literal 2 binary32)) cosTheta_O))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_O sinTheta_i) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 v sinTheta_O) sinTheta_i))) (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_i)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_i)) #s(literal 2 binary32)) sinTheta_i))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i v) sinTheta_O))) (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_O)) #s(literal 2 binary32)) sinTheta_O))
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (/.f32 (*.f32 cosTheta_O (/.f32 (/.f32 cosTheta_i v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (/.f32 (*.f32 cosTheta_O (/.f32 (/.f32 cosTheta_i v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (*.f32 (/.f32 cosTheta_i (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))) (/.f32 (/.f32 (neg.f32 cosTheta_O) v) v)))
(/.f32 (/.f32 (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (sinh.f32 (/.f32 #s(literal 1 binary32) v))) (*.f32 v #s(literal -2 binary32))) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (*.f32 (/.f32 cosTheta_i (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))) (/.f32 (/.f32 (neg.f32 cosTheta_O) v) v)))
(/.f32 (/.f32 (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (sinh.f32 (/.f32 #s(literal 1 binary32) v))) (*.f32 v #s(literal -2 binary32))) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 cosTheta_i (*.f32 (/.f32 cosTheta_O (*.f32 v v)) (/.f32 (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) #s(literal 2 binary32)) (sinh.f32 (/.f32 #s(literal 1 binary32) v)))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 cosTheta_i (*.f32 (/.f32 cosTheta_O (*.f32 v v)) (/.f32 (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) #s(literal 2 binary32)) (sinh.f32 (/.f32 #s(literal 1 binary32) v)))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v))) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) (neg.f32 v))) #s(literal 2 binary32)) (neg.f32 v)))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O (neg.f32 v))) (*.f32 (neg.f32 v) (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal 1 binary32) (neg.f32 v)))))))
(*.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 (sinh.f32 (/.f32 #s(literal -1 binary32) v)) (*.f32 #s(literal -2 binary32) v))))
(*.f32 (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal -1 binary32) v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O (*.f32 v v))))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(/.f32 (*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (/.f32 (*.f32 cosTheta_O (/.f32 (/.f32 cosTheta_i v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v))))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(/.f32 (*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (/.f32 (*.f32 cosTheta_O (/.f32 (/.f32 cosTheta_i v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v))))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(/.f32 (*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 (neg.f32 v))))) (neg.f32 (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 #s(literal -2 binary32) v))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (/.f32 (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (sinh.f32 (/.f32 #s(literal 1 binary32) v))) (*.f32 v #s(literal -2 binary32))))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)))
(/.f32 (*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 (neg.f32 v))))) (neg.f32 (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 #s(literal -2 binary32) v))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (/.f32 (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (sinh.f32 (/.f32 #s(literal 1 binary32) v))) (*.f32 v #s(literal -2 binary32))))
(neg.f32 (/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v)))) (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v))) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) (neg.f32 v))) #s(literal 2 binary32)) (neg.f32 v))))
(/.f32 (*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O (neg.f32 v)))) (neg.f32 (*.f32 (neg.f32 v) (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal 1 binary32) (neg.f32 v)))))))
(/.f32 (*.f32 cosTheta_i (*.f32 (/.f32 cosTheta_O v) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)))) (*.f32 (sinh.f32 (/.f32 #s(literal -1 binary32) v)) (*.f32 #s(literal -2 binary32) v)))
(*.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (/.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v)) (*.f32 (sinh.f32 (/.f32 #s(literal -1 binary32) v)) (*.f32 v #s(literal -2 binary32)))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_O cosTheta_i) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (/.f32 (*.f32 cosTheta_O (/.f32 (/.f32 cosTheta_i v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 cosTheta_i sinTheta_O) v))) (/.f32 (*.f32 sinTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_O cosTheta_i) (neg.f32 v))) (/.f32 (*.f32 sinTheta_i (/.f32 cosTheta_O v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (exp.f32 (*.f32 cosTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 (/.f32 sinTheta_i (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))) (/.f32 (/.f32 cosTheta_O v) v)))
(/.f32 (/.f32 (*.f32 sinTheta_i (/.f32 (/.f32 cosTheta_O v) (*.f32 v #s(literal 2 binary32)))) (sinh.f32 (/.f32 #s(literal 1 binary32) v))) (pow.f32 (exp.f32 sinTheta_O) (/.f32 cosTheta_i v)))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i cosTheta_i) v))) (/.f32 (*.f32 sinTheta_O cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i cosTheta_i) (neg.f32 v))) (/.f32 (*.f32 sinTheta_O (/.f32 cosTheta_O v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 cosTheta_i (neg.f32 v)))) (*.f32 cosTheta_O (/.f32 (/.f32 sinTheta_O v) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))))
(/.f32 (*.f32 (/.f32 (/.f32 cosTheta_O v) (*.f32 v #s(literal 2 binary32))) (/.f32 sinTheta_O (sinh.f32 (/.f32 #s(literal 1 binary32) v)))) (pow.f32 (exp.f32 (/.f32 sinTheta_i v)) cosTheta_i))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_i))) (/.f32 (*.f32 v cosTheta_O) cosTheta_i)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_i)) #s(literal 2 binary32)) cosTheta_i))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 cosTheta_i))) (/.f32 (*.f32 v (/.f32 cosTheta_O cosTheta_i)) (*.f32 cosTheta_i (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_i))))))
(*.f32 (exp.f32 (*.f32 (neg.f32 sinTheta_i) (/.f32 sinTheta_O cosTheta_i))) (*.f32 v (/.f32 (/.f32 cosTheta_O cosTheta_i) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_i)) (*.f32 cosTheta_i #s(literal 2 binary32))))))
(*.f32 (/.f32 v (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O cosTheta_i))) (/.f32 cosTheta_O (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_i)) (*.f32 (*.f32 cosTheta_i #s(literal 2 binary32)) cosTheta_i))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 cosTheta_O sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i sinTheta_i) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (neg.f32 (*.f32 sinTheta_O (/.f32 cosTheta_O v)))) (/.f32 (*.f32 sinTheta_i (/.f32 cosTheta_i v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)))))
(*.f32 (/.f32 (*.f32 cosTheta_i (/.f32 sinTheta_i v)) (sinh.f32 (/.f32 #s(literal 1 binary32) v))) (/.f32 (exp.f32 (*.f32 sinTheta_O (/.f32 (neg.f32 cosTheta_O) v))) (*.f32 v #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i (/.f32 sinTheta_i (pow.f32 (exp.f32 sinTheta_O) (/.f32 cosTheta_O v)))) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i cosTheta_O) v))) (/.f32 (*.f32 cosTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (*.f32 cosTheta_i (/.f32 sinTheta_O v)) (exp.f32 (/.f32 (*.f32 sinTheta_i cosTheta_O) (neg.f32 v)))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 (neg.f32 cosTheta_O) v))) (/.f32 (*.f32 cosTheta_i (/.f32 (/.f32 sinTheta_O v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (/.f32 (*.f32 sinTheta_O (/.f32 cosTheta_i v)) (*.f32 #s(literal 2 binary32) (pow.f32 (exp.f32 sinTheta_i) (/.f32 cosTheta_O v)))) (*.f32 v (sinh.f32 (/.f32 #s(literal 1 binary32) v))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_O))) (/.f32 (*.f32 cosTheta_i v) cosTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_O)) #s(literal 2 binary32)) cosTheta_O))
(*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 cosTheta_O))) (/.f32 (*.f32 cosTheta_i (/.f32 v cosTheta_O)) (*.f32 cosTheta_O (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_O))))))
(*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 cosTheta_O)))) (*.f32 (/.f32 cosTheta_i (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_O))) (/.f32 (/.f32 v cosTheta_O) (*.f32 cosTheta_O #s(literal 2 binary32)))))
(/.f32 (*.f32 v cosTheta_i) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) cosTheta_O)) (*.f32 (*.f32 cosTheta_O #s(literal 2 binary32)) cosTheta_O)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O cosTheta_O))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_O sinTheta_i) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v)))) (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(*.f32 (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O (neg.f32 v))) (/.f32 (*.f32 cosTheta_O (/.f32 (/.f32 cosTheta_i v) v)) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) (*.f32 (*.f32 v #s(literal 2 binary32)) v)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 sinTheta_O v))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 v sinTheta_O) sinTheta_i))) (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_i)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_i)) #s(literal 2 binary32)) sinTheta_i))
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_O v) sinTheta_i))) (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O sinTheta_i)) (*.f32 sinTheta_i (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_i))))))
(*.f32 (exp.f32 (*.f32 v (/.f32 sinTheta_O (neg.f32 sinTheta_i)))) (*.f32 cosTheta_i (/.f32 (/.f32 cosTheta_O sinTheta_i) (*.f32 #s(literal 2 binary32) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_i)) sinTheta_i)))))
(/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O sinTheta_i)) (*.f32 (*.f32 #s(literal 2 binary32) (*.f32 sinTheta_i (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_i)))) (pow.f32 (exp.f32 sinTheta_O) (/.f32 v sinTheta_i))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i v) sinTheta_O))) (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_O)) #s(literal 2 binary32)) sinTheta_O))
(*.f32 (/.f32 (exp.f32 (neg.f32 (*.f32 sinTheta_i (/.f32 v sinTheta_O)))) (*.f32 #s(literal 2 binary32) (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_O)))) (/.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O sinTheta_O)) sinTheta_O))
(*.f32 (exp.f32 (*.f32 sinTheta_i (/.f32 v (neg.f32 sinTheta_O)))) (*.f32 cosTheta_i (/.f32 (/.f32 cosTheta_O sinTheta_O) (*.f32 #s(literal 2 binary32) (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_O)) sinTheta_O)))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) sinTheta_O)) (*.f32 (*.f32 sinTheta_O #s(literal 2 binary32)) sinTheta_O)) (pow.f32 (exp.f32 sinTheta_i) (/.f32 v sinTheta_O))))
Symmetry

(negabs cosTheta_i)

(negabs cosTheta_O)

(sort cosTheta_i cosTheta_O)

(sort sinTheta_i sinTheta_O)

Compiler

Compiled 27 to 19 computations (29.6% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 5 to 5 computations (0% saved)

prune2.0ms (0%)

Memory
-14.7MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.6%
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Compiler

Compiled 54 to 38 computations (29.6% saved)

simplify3.0ms (0.1%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Rules
20×*-commutative
10×sub-neg
10×neg-sub0
10×+-commutative
10×neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02891
14591
25791
36691
47291
57491
Stop Event
saturated
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))
(/.f32 (*.f32 (exp.f32 (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 v (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 27 to 19 computations (29.6% saved)

preprocess33.0ms (0.8%)

Memory
3.8MiB live, 37.1MiB allocated
Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

(negabs cosTheta_O)

(negabs cosTheta_i)

Compiler

Compiled 540 to 380 computations (29.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...