HairBSDF, sample_f, cosTheta

Time bar (total: 3.1s)

analyze290.0ms (9.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0.9%99.1%0%0%0%0
0%0%0.9%99.1%0%0%0%1
0%0%0.9%99.1%0%0%0%2
50%0.4%0.4%99.1%0%0%0%3
50%0.4%0.4%99.1%0%0%0%4
75%0.6%0.2%99.1%0%0%0%5
75%0.6%0.2%99.1%0%0%0%6
87.5%0.7%0.1%99.1%0%0%0%7
87.5%0.7%0.1%99.1%0%0%0%8
93.7%0.8%0.1%99.1%0%0%0%9
93.7%0.8%0.1%99.1%0%0%0%10
96.9%0.8%0%99.1%0%0%0%11
96.9%0.8%0%99.1%0%0%0%12
Compiler

Compiled 32 to 24 computations (25% saved)

Precisions
Click to see histograms. Total time spent on operations: 245.0ms
Operation ival-mult, time spent: 229.0ms, 93.0% of total-time
Operation ival-<=, time spent: 4.0ms, 2.0% of total-time
Operation ival-add, time spent: 3.0ms, 1.0% of total-time
Operation ival-log, time spent: 3.0ms, 1.0% of total-time
Operation ival-exp, time spent: 2.0ms, 1.0% of total-time
Operation ival-sub, time spent: 2.0ms, 1.0% of total-time
Operation ival-div, time spent: 1.0ms, 0.0% of total-time
Operation ival-and, time spent: 1.0ms, 0.0% of total-time
Operation const, time spent: 1.0ms, 0.0% of total-time

sample2.3s (76.3%)

Results
2.1s8255×256valid
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 949.0ms
Operation ival-mult, time spent: 211.0ms, 22.0% of total-time
Operation ival-log, time spent: 177.0ms, 19.0% of total-time
Operation ival-<=, time spent: 145.0ms, 15.0% of total-time
Operation ival-add, time spent: 106.0ms, 11.0% of total-time
Operation ival-exp, time spent: 93.0ms, 10.0% of total-time
Operation ival-div, time spent: 88.0ms, 9.0% of total-time
Operation ival-sub, time spent: 66.0ms, 7.0% of total-time
Operation const, time spent: 35.0ms, 4.0% of total-time
Operation ival-and, time spent: 29.0ms, 3.0% of total-time
Bogosity

preprocess440.0ms (14.3%)

Algorithm
egg-herbie
Rules
929×fma-define
624×fma-neg
199×div-sub
180×unsub-neg
156×sub-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
043439
185363
2196359
3500359
41292359
52756359
63842359
74184359
84372359
94430359
104469359
114824359
124824359
Stop Event
saturated
Calls
Call 1
Inputs
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) v)))))))
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) v)))))))
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 (neg.f32 u) (*.f32 (-.f32 #s(literal 1 binary32) (neg.f32 u)) (exp.f32 (/.f32 #s(literal -2 binary32) v)))))))
(+.f32 #s(literal 1 binary32) (*.f32 (neg.f32 v) (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) (neg.f32 v))))))))
(neg.f32 (+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 (neg.f32 u) (*.f32 (-.f32 #s(literal 1 binary32) (neg.f32 u)) (exp.f32 (/.f32 #s(literal -2 binary32) v))))))))
(neg.f32 (+.f32 #s(literal 1 binary32) (*.f32 (neg.f32 v) (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) (neg.f32 v)))))))))
(+.f32 #s(literal 1 binary32) (*.f32 u (log.f32 (+.f32 v (*.f32 (-.f32 #s(literal 1 binary32) v) (exp.f32 (/.f32 #s(literal -2 binary32) u)))))))
Outputs
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) v)))))))
(fma.f32 v (log.f32 (fma.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) v)) u)) #s(literal 1 binary32))
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) v)))))))
(fma.f32 v (log.f32 (fma.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) v)) u)) #s(literal 1 binary32))
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 (neg.f32 u) (*.f32 (-.f32 #s(literal 1 binary32) (neg.f32 u)) (exp.f32 (/.f32 #s(literal -2 binary32) v)))))))
(+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 (neg.f32 u) (*.f32 (exp.f32 (/.f32 #s(literal -2 binary32) v)) (-.f32 #s(literal 1 binary32) (neg.f32 u)))))))
(fma.f32 v (log.f32 (-.f32 (*.f32 (exp.f32 (/.f32 #s(literal -2 binary32) v)) (+.f32 #s(literal 1 binary32) u)) u)) #s(literal 1 binary32))
(+.f32 #s(literal 1 binary32) (*.f32 (neg.f32 v) (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) (neg.f32 v))))))))
(-.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (fma.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal 2 binary32) v)) u))))
(neg.f32 (+.f32 #s(literal 1 binary32) (*.f32 v (log.f32 (+.f32 (neg.f32 u) (*.f32 (-.f32 #s(literal 1 binary32) (neg.f32 u)) (exp.f32 (/.f32 #s(literal -2 binary32) v))))))))
(+.f32 #s(literal -1 binary32) (neg.f32 (*.f32 v (log.f32 (+.f32 (neg.f32 u) (*.f32 (exp.f32 (/.f32 #s(literal -2 binary32) v)) (-.f32 #s(literal 1 binary32) (neg.f32 u))))))))
(-.f32 #s(literal -1 binary32) (*.f32 v (log.f32 (-.f32 (*.f32 (exp.f32 (/.f32 #s(literal -2 binary32) v)) (+.f32 #s(literal 1 binary32) u)) u))))
(neg.f32 (fma.f32 v (log.f32 (-.f32 (*.f32 (exp.f32 (/.f32 #s(literal -2 binary32) v)) (+.f32 #s(literal 1 binary32) u)) u)) #s(literal 1 binary32)))
(fma.f32 (log.f32 (-.f32 (*.f32 (exp.f32 (/.f32 #s(literal -2 binary32) v)) (+.f32 #s(literal 1 binary32) u)) u)) (neg.f32 v) #s(literal -1 binary32))
(neg.f32 (+.f32 #s(literal 1 binary32) (*.f32 (neg.f32 v) (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) (neg.f32 v)))))))))
(+.f32 #s(literal -1 binary32) (neg.f32 (*.f32 (neg.f32 v) (log.f32 (+.f32 u (*.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal -2 binary32) (neg.f32 v)))))))))
(+.f32 #s(literal -1 binary32) (*.f32 v (log.f32 (fma.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal 2 binary32) v)) u))))
(fma.f32 v (log.f32 (fma.f32 (-.f32 #s(literal 1 binary32) u) (exp.f32 (/.f32 #s(literal 2 binary32) v)) u)) #s(literal -1 binary32))
(+.f32 #s(literal 1 binary32) (*.f32 u (log.f32 (+.f32 v (*.f32 (-.f32 #s(literal 1 binary32) v) (exp.f32 (/.f32 #s(literal -2 binary32) u)))))))
(fma.f32 u (log.f32 (fma.f32 (-.f32 #s(literal 1 binary32) v) (exp.f32 (/.f32 #s(literal -2 binary32) u)) v)) #s(literal 1 binary32))
Compiler

Compiled 77 to 54 computations (29.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 82.0ms
Operation ival-mult, time spent: 23.0ms, 28.0% of total-time
Operation ival-div, time spent: 15.0ms, 18.0% of total-time
Operation ival-log, time spent: 13.0ms, 16.0% of total-time
Operation ival-exp, time spent: 12.0ms, 15.0% of total-time
Operation ival-sub, time spent: 9.0ms, 11.0% of total-time
Operation ival-add, time spent: 7.0ms, 9.0% of total-time
Operation const, time spent: 3.0ms, 4.0% of total-time

end0.0ms (0%)

Profiling

Loading profile data...