Disney BSSRDF, sample scattering profile, upper

Time bar (total: 3.0s)

analyze71.0ms (2.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0.1%99.9%0%0%0%0
0%0%0.1%99.9%0%0%0%1
0%0%0.1%99.9%0%0%0%2
50%0.1%0.1%99.9%0%0%0%3
50%0.1%0.1%99.9%0%0%0%4
75%0.1%0%99.9%0%0%0%5
75%0.1%0%99.9%0%0%0%6
87.5%0.1%0%99.9%0%0%0%7
87.5%0.1%0%99.9%0%0%0%8
93.8%0.1%0%99.9%0%0%0%9
93.8%0.1%0%99.9%0%0%0%10
96.9%0.1%0%99.9%0%0%0%11
96.9%0.1%0%99.9%0%0%0%12
Compiler

Compiled 31 to 25 computations (19.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
Operation ival-mult, time spent: 7.0ms, 29.0% of total-time
Operation ival-<=, time spent: 7.0ms, 29.0% of total-time
Operation ival-sub, time spent: 3.0ms, 13.0% of total-time
Operation ival-div, time spent: 3.0ms, 13.0% of total-time
Operation ival-log, time spent: 2.0ms, 8.0% of total-time
Operation ival-and, time spent: 1.0ms, 4.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time

sample2.5s (84.8%)

Results
2.3s8255×256valid
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 1.2s
Operation ival-mult, time spent: 554.0ms, 48.0% of total-time
Operation ival-log, time spent: 154.0ms, 13.0% of total-time
Operation ival-<=, time spent: 151.0ms, 13.0% of total-time
Operation ival-div, time spent: 129.0ms, 11.0% of total-time
Operation ival-sub, time spent: 106.0ms, 9.0% of total-time
Operation const, time spent: 43.0ms, 4.0% of total-time
Operation ival-and, time spent: 29.0ms, 2.0% of total-time
Bogosity

preprocess381.0ms (12.8%)

Algorithm
egg-herbie
Rules
799×fma-define
514×fma-neg
171×distribute-lft-neg-in
117×distribute-lft-in
115×unsub-neg
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
038331
1101261
2254245
3586229
41104217
51930217
62676217
73249217
83570217
93682217
103732217
113775217
123795217
Stop Event
saturated
Calls
Call 1
Inputs
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 (*.f32 #s(literal 3 binary32) (neg.f32 s)) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 (neg.f32 u) #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(neg.f32 (*.f32 (*.f32 #s(literal 3 binary32) (neg.f32 s)) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32)))))))
(neg.f32 (*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 (neg.f32 u) #s(literal 1/4 binary32)) #s(literal 3/4 binary32)))))))
(*.f32 (*.f32 #s(literal 3 binary32) u) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 s #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
Outputs
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 #s(literal 3 binary32) (*.f32 s (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (-.f32 (/.f32 u #s(literal 3/4 binary32)) #s(literal 1/3 binary32)))))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (/.f32 (+.f32 u #s(literal -1/4 binary32)) #s(literal -3/4 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (+.f32 (*.f32 u #s(literal -4/3 binary32)) #s(literal 1/3 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 1/3 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 4/3 binary32))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 #s(literal 3 binary32) (*.f32 s (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (-.f32 (/.f32 u #s(literal 3/4 binary32)) #s(literal 1/3 binary32)))))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (/.f32 (+.f32 u #s(literal -1/4 binary32)) #s(literal -3/4 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (+.f32 (*.f32 u #s(literal -4/3 binary32)) #s(literal 1/3 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 1/3 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 4/3 binary32))))
(*.f32 (*.f32 #s(literal 3 binary32) (neg.f32 s)) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 #s(literal 3 binary32) (*.f32 (neg.f32 s) (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (-.f32 (/.f32 u #s(literal 3/4 binary32)) #s(literal 1/3 binary32)))))))
(*.f32 (neg.f32 (log1p.f32 (/.f32 (+.f32 u #s(literal -1/4 binary32)) #s(literal -3/4 binary32)))) (*.f32 s #s(literal -3 binary32)))
(*.f32 #s(literal 3 binary32) (*.f32 s (log1p.f32 (+.f32 (*.f32 u #s(literal -4/3 binary32)) #s(literal 1/3 binary32)))))
(*.f32 #s(literal 3 binary32) (*.f32 s (log1p.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 1/3 binary32)))))
(*.f32 #s(literal 3 binary32) (*.f32 s (log.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 4/3 binary32)))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 (neg.f32 u) #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (/.f32 (+.f32 (neg.f32 u) #s(literal -1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (neg.f32 (log1p.f32 (/.f32 (fma.f32 #s(literal -1 binary32) u #s(literal -1/4 binary32)) #s(literal -3/4 binary32)))))
(*.f32 s (*.f32 #s(literal -3 binary32) (log1p.f32 (/.f32 (-.f32 #s(literal -1/4 binary32) u) #s(literal -3/4 binary32)))))
(*.f32 s (*.f32 (log.f32 (+.f32 (*.f32 u #s(literal 4/3 binary32)) #s(literal 4/3 binary32))) #s(literal -3 binary32)))
(*.f32 s (*.f32 (log1p.f32 (fma.f32 u #s(literal 4/3 binary32) #s(literal 1/3 binary32))) #s(literal -3 binary32)))
(neg.f32 (*.f32 (*.f32 #s(literal 3 binary32) (neg.f32 s)) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 u #s(literal 1/4 binary32)) #s(literal 3/4 binary32)))))))
(*.f32 #s(literal 3 binary32) (*.f32 s (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (-.f32 (/.f32 u #s(literal 3/4 binary32)) #s(literal 1/3 binary32)))))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (/.f32 (+.f32 u #s(literal -1/4 binary32)) #s(literal -3/4 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (+.f32 (*.f32 u #s(literal -4/3 binary32)) #s(literal 1/3 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log1p.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 1/3 binary32))))
(*.f32 (*.f32 s #s(literal -3 binary32)) (log.f32 (fma.f32 u #s(literal -4/3 binary32) #s(literal 4/3 binary32))))
(neg.f32 (*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 (neg.f32 u) #s(literal 1/4 binary32)) #s(literal 3/4 binary32)))))))
(*.f32 (*.f32 #s(literal 3 binary32) (neg.f32 s)) (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (/.f32 (+.f32 (neg.f32 u) #s(literal -1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log1p.f32 (/.f32 (fma.f32 #s(literal -1 binary32) u #s(literal -1/4 binary32)) #s(literal -3/4 binary32))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log1p.f32 (/.f32 (-.f32 #s(literal -1/4 binary32) u) #s(literal -3/4 binary32))))
(*.f32 (*.f32 #s(literal 3 binary32) s) (log.f32 (+.f32 (*.f32 u #s(literal 4/3 binary32)) #s(literal 4/3 binary32))))
(*.f32 #s(literal 3 binary32) (*.f32 s (log1p.f32 (fma.f32 u #s(literal 4/3 binary32) #s(literal 1/3 binary32)))))
(*.f32 (*.f32 #s(literal 3 binary32) u) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (/.f32 (-.f32 s #s(literal 1/4 binary32)) #s(literal 3/4 binary32))))))
(*.f32 #s(literal 3 binary32) (*.f32 u (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (/.f32 (+.f32 s #s(literal -1/4 binary32)) #s(literal 3/4 binary32)))))))
(*.f32 #s(literal 3 binary32) (*.f32 u (neg.f32 (log1p.f32 (/.f32 (+.f32 s #s(literal -1/4 binary32)) #s(literal -3/4 binary32))))))
(*.f32 u (*.f32 #s(literal -3 binary32) (log1p.f32 (-.f32 (/.f32 s #s(literal -3/4 binary32)) #s(literal -1/3 binary32)))))
(*.f32 u (*.f32 (log.f32 (+.f32 (*.f32 s #s(literal -4/3 binary32)) #s(literal 4/3 binary32))) #s(literal -3 binary32)))
(*.f32 u (*.f32 (log.f32 (fma.f32 s #s(literal -4/3 binary32) #s(literal 4/3 binary32))) #s(literal -3 binary32)))
Symmetry

(negabs s)

Compiler

Compiled 61 to 51 computations (16.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 50.0ms
Operation ival-sub, time spent: 17.0ms, 34.0% of total-time
Operation ival-div, time spent: 14.0ms, 28.0% of total-time
Operation ival-log, time spent: 9.0ms, 18.0% of total-time
Operation ival-mult, time spent: 6.0ms, 12.0% of total-time
Operation const, time spent: 4.0ms, 8.0% of total-time

end0.0ms (0%)

Profiling

Loading profile data...