HairBSDF, Mp, lower

Time bar (total: 13.0s)

analyze708.0ms (5.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%3%97%0%0%0%0
0%0%3%97%0%0%0%1
0%0%3%97%0%0%0%2
0%0%3%97%0%0%0%3
0%0%3%97%0%0%0%4
0%0%3%97%0%0%0%5
0%0%1.5%97%0%1.5%0%6
0%0%1.5%97%0%1.5%0%7
0%0%1.5%97%0%1.5%0%8
0%0%1.5%97%0%1.5%0%9
0%0%1.5%97%0%1.5%0%10
50%0.7%0.7%97%0%1.5%0%11
50%0.7%0.7%97%0%1.5%0%12
Compiler

Compiled 69 to 51 computations (26.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 197.0ms
Operation ival-<=, time spent: 53.0ms, 27.0% of total-time
Operation ival-mult, time spent: 38.0ms, 19.0% of total-time
Operation ival-log, time spent: 21.0ms, 11.0% of total-time
Operation ival-div, time spent: 21.0ms, 11.0% of total-time
Operation ival-sub, time spent: 16.0ms, 8.0% of total-time
Operation ival-add, time spent: 15.0ms, 8.0% of total-time
Operation ival-and, time spent: 13.0ms, 7.0% of total-time
Operation ival-exp, time spent: 10.0ms, 5.0% of total-time
Operation const, time spent: 10.0ms, 5.0% of total-time

sample4.9s (37.7%)

Results
4.4s8255×0valid
53.0ms126×0invalid
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 2.6s
Operation ival-<=, time spent: 707.0ms, 27.0% of total-time
Operation ival-div, time spent: 395.0ms, 15.0% of total-time
Operation ival-sub, time spent: 339.0ms, 13.0% of total-time
Operation ival-add, time spent: 328.0ms, 13.0% of total-time
Operation ival-mult, time spent: 257.0ms, 10.0% of total-time
Operation ival-log, time spent: 215.0ms, 8.0% of total-time
Operation ival-and, time spent: 141.0ms, 5.0% of total-time
Operation const, time spent: 140.0ms, 5.0% of total-time
Operation ival-exp, time spent: 94.0ms, 4.0% of total-time
Bogosity

preprocess3.9s (29.8%)

Algorithm
egg-herbie
Rules
450×fma-neg
366×associate-+l-
333×fma-define
320×associate-+l+
291×associate-+r-
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
00-0-(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
00-0-cosTheta_O
00-0-(*.f32 2 v)
00-0-(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
00-0-(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
00-0-(log.f32 (/.f32 1 (*.f32 2 v)))
00-0-(/.f32 1 v)
00-0-(*.f32 cosTheta_i cosTheta_O)
00-0-(*.f32 sinTheta_i sinTheta_O)
00-0-(+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000)
00-0-sinTheta_O
00-0-v
00-0-(+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))
00-0-cosTheta_i
00-0-sinTheta_i
00-0-(/.f32 1 (*.f32 2 v))
00-0-2
00-0-6931/10000
00-0-1
00-0-(-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01732130
14921898
215301854
366481854
Stop Event
node limit
Calls
Call 1
Inputs
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v))) (/.f32 1 (neg.f32 v))) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 (neg.f32 v))))))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v))) (/.f32 1 (neg.f32 v))) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 (neg.f32 v)))))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_O cosTheta_i) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 sinTheta_i cosTheta_O) v) (/.f32 (*.f32 cosTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 sinTheta_O cosTheta_O) v) (/.f32 (*.f32 sinTheta_i cosTheta_i) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 v cosTheta_O) cosTheta_i) (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_i)) (/.f32 1 cosTheta_i)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 cosTheta_i)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i sinTheta_i) v) (/.f32 (*.f32 cosTheta_O sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i sinTheta_O) v) (/.f32 (*.f32 sinTheta_i cosTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i v) cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_O)) (/.f32 1 cosTheta_O)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 cosTheta_O)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_O sinTheta_i) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_i) (/.f32 (*.f32 v sinTheta_O) sinTheta_i)) (/.f32 1 sinTheta_i)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 sinTheta_i)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_O) (/.f32 (*.f32 sinTheta_i v) sinTheta_O)) (/.f32 1 sinTheta_O)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 sinTheta_O)))))
Outputs
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) 6931/10000)))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) 6931/10000)))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 (neg.f32 cosTheta_i) (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (-.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 6931/10000 (-.f32 (/.f32 -1 v) (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v)))))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 (neg.f32 cosTheta_i) (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (-.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 6931/10000 (-.f32 (/.f32 -1 v) (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v)))))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (*.f32 sinTheta_i (/.f32 (neg.f32 sinTheta_O) v))) (/.f32 1 v)))))
(*.f32 (exp.f32 (+.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v))) (+.f32 (/.f32 -1 v) 6931/10000))) (/.f32 1/2 v))
(*.f32 (exp.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (+.f32 6931/10000 (/.f32 -1 v))))) (/.f32 1/2 v))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (*.f32 sinTheta_i (/.f32 (neg.f32 sinTheta_O) v))) (/.f32 1 v)))))
(*.f32 (exp.f32 (+.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v))) (+.f32 (/.f32 -1 v) 6931/10000))) (/.f32 1/2 v))
(*.f32 (exp.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (+.f32 6931/10000 (/.f32 -1 v))))) (/.f32 1/2 v))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v))) (/.f32 1 (neg.f32 v))) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 (neg.f32 v))))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O (neg.f32 v))) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v))) (/.f32 1 (neg.f32 v)))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 (neg.f32 v))))))
(*.f32 (exp.f32 (+.f32 6931/10000 (+.f32 (/.f32 1 v) (fma.f32 cosTheta_i (/.f32 cosTheta_O (neg.f32 v)) (*.f32 sinTheta_i (/.f32 sinTheta_O v)))))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (+.f32 (-.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (/.f32 -1/2 v))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 (neg.f32 cosTheta_i) cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v)))))))
(*.f32 (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 (neg.f32 cosTheta_i) (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (-.f32 (-.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (+.f32 6931/10000 (-.f32 (/.f32 -1 v) (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v)))))) (/.f32 -1/2 v))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i (neg.f32 cosTheta_O)) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 (neg.f32 cosTheta_O) v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v)))))))
(*.f32 (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 (neg.f32 cosTheta_i) (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (-.f32 (-.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (+.f32 6931/10000 (-.f32 (/.f32 -1 v) (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v)))))) (/.f32 -1/2 v))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 (neg.f32 sinTheta_i) sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (*.f32 sinTheta_i (/.f32 (neg.f32 sinTheta_O) v))) (/.f32 1 v))))))
(*.f32 (exp.f32 (+.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v))) (+.f32 (/.f32 -1 v) 6931/10000))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (+.f32 6931/10000 (/.f32 -1 v))))) (/.f32 -1/2 v))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i (neg.f32 sinTheta_O)) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))))
(neg.f32 (exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (*.f32 sinTheta_i (/.f32 (neg.f32 sinTheta_O) v))) (/.f32 1 v))))))
(*.f32 (exp.f32 (+.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (*.f32 sinTheta_i (/.f32 sinTheta_O v))) (+.f32 (/.f32 -1 v) 6931/10000))) (/.f32 -1/2 v))
(*.f32 (exp.f32 (fma.f32 cosTheta_i (/.f32 cosTheta_O v) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (+.f32 6931/10000 (/.f32 -1 v))))) (/.f32 -1/2 v))
(neg.f32 (exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) (neg.f32 v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) (neg.f32 v))) (/.f32 1 (neg.f32 v))) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 (neg.f32 v)))))))
(neg.f32 (exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O (neg.f32 v))) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O (neg.f32 v))) (/.f32 1 (neg.f32 v)))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 (neg.f32 v)))))))
(*.f32 (exp.f32 (+.f32 6931/10000 (+.f32 (/.f32 1 v) (fma.f32 cosTheta_i (/.f32 cosTheta_O (neg.f32 v)) (*.f32 sinTheta_i (/.f32 sinTheta_O v)))))) (neg.f32 (/.f32 -1/2 v)))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_O cosTheta_i) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) 6931/10000)))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 sinTheta_i cosTheta_O) v) (/.f32 (*.f32 cosTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 sinTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 cosTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (*.f32 cosTheta_O (/.f32 sinTheta_i v)) (-.f32 (fma.f32 cosTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)) 6931/10000))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (*.f32 cosTheta_O (/.f32 sinTheta_i v)) (+.f32 (fma.f32 cosTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)) -6931/10000))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 sinTheta_O cosTheta_O) v) (/.f32 (*.f32 sinTheta_i cosTheta_i) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_O (/.f32 sinTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 cosTheta_i v)) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (*.f32 cosTheta_O (/.f32 sinTheta_O v)) (-.f32 (fma.f32 cosTheta_i (/.f32 sinTheta_i v) (/.f32 1 v)) 6931/10000))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_O (/.f32 sinTheta_O v)) (fma.f32 cosTheta_i (/.f32 sinTheta_i v) (/.f32 1 v))))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 v cosTheta_O) cosTheta_i) (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_i)) (/.f32 1 cosTheta_i)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 cosTheta_i)))))
(exp.f32 (+.f32 (-.f32 (/.f32 (*.f32 cosTheta_O v) cosTheta_i) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O cosTheta_i)) (/.f32 1 cosTheta_i))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 cosTheta_i)))))
(*.f32 (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_O (/.f32 v cosTheta_i)) (fma.f32 sinTheta_i (/.f32 sinTheta_O cosTheta_i) (/.f32 1 cosTheta_i))))) (/.f32 1/2 cosTheta_i))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i sinTheta_i) v) (/.f32 (*.f32 cosTheta_O sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 sinTheta_i (/.f32 cosTheta_i v)) (+.f32 (*.f32 cosTheta_O (/.f32 sinTheta_O v)) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 sinTheta_i (/.f32 cosTheta_i v)) (fma.f32 cosTheta_O (/.f32 sinTheta_O v) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 sinTheta_i v)) (fma.f32 cosTheta_O (/.f32 sinTheta_O v) (/.f32 1 v))))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i sinTheta_O) v) (/.f32 (*.f32 sinTheta_i cosTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (log.f32 (/.f32 1/2 v)) (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 sinTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 cosTheta_O v)) (/.f32 1 v))))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (*.f32 cosTheta_i (/.f32 sinTheta_O v)) (-.f32 (fma.f32 sinTheta_i (/.f32 cosTheta_O v) (/.f32 1 v)) 6931/10000))))
(*.f32 (/.f32 1/2 v) (exp.f32 (fma.f32 cosTheta_i (/.f32 sinTheta_O v) (fma.f32 sinTheta_i (/.f32 cosTheta_O (neg.f32 v)) (+.f32 6931/10000 (/.f32 -1 v))))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i v) cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) cosTheta_O)) (/.f32 1 cosTheta_O)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 cosTheta_O)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 v cosTheta_O)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O cosTheta_O)) (/.f32 1 cosTheta_O))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 cosTheta_O)))))
(*.f32 (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 v cosTheta_O)) (fma.f32 sinTheta_i (/.f32 sinTheta_O cosTheta_O) (/.f32 1 cosTheta_O))))) (/.f32 1/2 cosTheta_O))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_O sinTheta_i) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) 6931/10000)))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_i) (/.f32 (*.f32 v sinTheta_O) sinTheta_i)) (/.f32 1 sinTheta_i)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 sinTheta_i)))))
(exp.f32 (+.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_i) (+.f32 (/.f32 (*.f32 v sinTheta_O) sinTheta_i) (/.f32 1 sinTheta_i))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 sinTheta_i)))))
(*.f32 (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_O (/.f32 cosTheta_i sinTheta_i)) (fma.f32 v (/.f32 sinTheta_O sinTheta_i) (/.f32 1 sinTheta_i))))) (/.f32 1/2 sinTheta_i))
(*.f32 (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O sinTheta_i))) (fma.f32 v (/.f32 sinTheta_O sinTheta_i) (/.f32 1 sinTheta_i)))) (/.f32 1/2 sinTheta_i))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) sinTheta_O) (/.f32 (*.f32 sinTheta_i v) sinTheta_O)) (/.f32 1 sinTheta_O)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 sinTheta_O)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O sinTheta_O)) (+.f32 (*.f32 sinTheta_i (/.f32 v sinTheta_O)) (/.f32 1 sinTheta_O))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 sinTheta_O)))))
(*.f32 (exp.f32 (+.f32 6931/10000 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O sinTheta_O)) (fma.f32 sinTheta_i (/.f32 v sinTheta_O) (/.f32 1 sinTheta_O))))) (/.f32 1/2 sinTheta_O))
(*.f32 (exp.f32 (-.f32 (*.f32 cosTheta_O (/.f32 cosTheta_i sinTheta_O)) (fma.f32 v (/.f32 sinTheta_i sinTheta_O) (+.f32 (/.f32 1 sinTheta_O) -6931/10000)))) (/.f32 1/2 sinTheta_O))
Symmetry

(sort cosTheta_i cosTheta_O)

(sort sinTheta_i sinTheta_O)

Compiler

Compiled 308 to 138 computations (55.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.9s
Operation ival-log, time spent: 413.0ms, 22.0% of total-time
Operation ival-div, time spent: 401.0ms, 21.0% of total-time
Operation ival-sub, time spent: 373.0ms, 20.0% of total-time
Operation ival-add, time spent: 355.0ms, 19.0% of total-time
Operation ival-mult, time spent: 249.0ms, 13.0% of total-time
Operation const, time spent: 79.0ms, 4.0% of total-time
Operation ival-exp, time spent: 37.0ms, 2.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 70 to 40 computations (42.9% saved)

prune2.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
99.6%
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
Compiler

Compiled 54 to 38 computations (29.6% saved)

localize3.3s (25.5%)

Compiler

Compiled 209 to 88 computations (57.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.2s
Operation ival-add, time spent: 568.0ms, 26.0% of total-time
Operation ival-div, time spent: 367.0ms, 17.0% of total-time
Operation ival-log, time spent: 352.0ms, 16.0% of total-time
Operation ival-exp, time spent: 308.0ms, 14.0% of total-time
Operation composed, time spent: 233.0ms, 11.0% of total-time
Operation ival-sub, time spent: 195.0ms, 9.0% of total-time
Operation ival-mult, time spent: 117.0ms, 5.0% of total-time
Operation const, time spent: 57.0ms, 3.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 5 to 5 computations (0% saved)

prune3.0ms (0%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
99.7%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
99.6%
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
Compiler

Compiled 128 to 85 computations (33.6% saved)

regimes36.0ms (0.3%)

Accuracy

Total -0.0b remaining (-21.1%)

Threshold costs -0b (-21.1%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
(exp.f32 (+.f32 (-.f32 (*.f32 cosTheta_i (/.f32 cosTheta_O v)) (+.f32 (*.f32 sinTheta_i (/.f32 sinTheta_O v)) (/.f32 1 v))) (+.f32 6931/10000 (log.f32 (/.f32 1/2 v)))))
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
Outputs
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
Calls

9 calls:

7.0ms
(*.f32 sinTheta_i sinTheta_O)
6.0ms
sinTheta_O
4.0ms
cosTheta_i
3.0ms
sinTheta_i
3.0ms
cosTheta_O
Results
AccuracySegmentsBranch
99.7%1cosTheta_i
99.7%1cosTheta_O
99.7%1sinTheta_i
99.7%1sinTheta_O
99.7%1v
99.7%1(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
99.7%1(+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v))))
99.7%1(*.f32 cosTheta_i cosTheta_O)
99.7%1(*.f32 sinTheta_i sinTheta_O)
Compiler

Compiled 105 to 80 computations (23.8% saved)

simplify6.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp
*-commutative
+-commutative
sub-neg
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02885
13885
24285
34485
44585
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
Outputs
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (+.f32 6931/10000 (*.f32 cosTheta_i (/.f32 cosTheta_O v))) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
Compiler

Compiled 26 to 18 computations (30.8% saved)

soundness118.0ms (0.9%)

Rules
450×fma-neg
366×associate-+l-
333×fma-define
320×associate-+l+
291×associate-+r-
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01732130
14921898
215301854
366481854
Stop Event
node limit
Compiler

Compiled 312 to 150 computations (51.9% saved)

end0.0ms (0%)

preprocess43.0ms (0.3%)

Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

Compiler

Compiled 320 to 224 computations (30% saved)

Profiling

Loading profile data...