Disney BSSRDF, sample scattering profile, lower

Time bar (total: 2.7s)

analyze29.0ms (1.1%)

Memory
9.3MiB live, 9.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%1.5%98.5%0%0%0%0
0%0%1.5%98.5%0%0%0%1
0%0%1.5%98.5%0%0%0%2
50%0.8%0.8%98.5%0%0%0%3
50%0.8%0.8%98.5%0%0%0%4
75%1.2%0.4%98.5%0%0%0%5
75%1.2%0.4%98.5%0%0%0%6
87.5%1.4%0.2%98.5%0%0%0%7
87.5%1.4%0.2%98.5%0%0%0%8
93.8%1.4%0.1%98.5%0%0%0%9
93.8%1.4%0.1%98.5%0%0%0%10
96.9%1.5%0%98.5%0%0%0%11
96.9%1.5%0%98.5%0%0%0%12
Compiler

Compiled 25 to 21 computations (16% saved)

sample2.6s (95.3%)

Memory
-25.7MiB live, 636.2MiB allocated
Samples
689.0ms8 255×0valid-baseline
550.0ms8 255×0valid-sollya
506.0ms8 255×0valid-rival
Bogosity

preprocess81.0ms (2.9%)

Memory
5.7MiB live, 20.7MiB allocated
Algorithm
egg-herbie
Rules
350×fma-define
190×fmm-def
116×distribute-lft-neg-in
72×unsub-neg
66×sub-neg
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
030247
180181
2152181
3315181
4508181
5783181
6864181
7926181
8951181
9975181
10993181
Stop Event
saturated
Calls
Call 1
Inputs
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
(*.f32 (neg.f32 s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) (neg.f32 u))))))
(neg.f32 (*.f32 (neg.f32 s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u))))))
(neg.f32 (*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) (neg.f32 u)))))))
(*.f32 u (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) s)))))
Outputs
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
(*.f32 s (neg.f32 (log.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal -4 binary32) u)))))
(*.f32 (neg.f32 s) (log1p.f32 (*.f32 u #s(literal -4 binary32))))
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u #s(literal -4 binary32)))))
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
(*.f32 s (neg.f32 (log.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal -4 binary32) u)))))
(*.f32 (neg.f32 s) (log1p.f32 (*.f32 u #s(literal -4 binary32))))
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u #s(literal -4 binary32)))))
(*.f32 (neg.f32 s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
(*.f32 (neg.f32 (log.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal -4 binary32) u)))) (neg.f32 s))
(*.f32 s (log1p.f32 (*.f32 u #s(literal -4 binary32))))
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) (neg.f32 u))))))
(*.f32 s (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) (neg.f32 u))))))
(*.f32 s (neg.f32 (log1p.f32 (*.f32 #s(literal 4 binary32) u))))
(*.f32 (neg.f32 s) (log1p.f32 (*.f32 #s(literal 4 binary32) u)))
(neg.f32 (*.f32 (neg.f32 s) (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u))))))
(*.f32 s (neg.f32 (log.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal -4 binary32) u)))))
(*.f32 (neg.f32 s) (log1p.f32 (*.f32 u #s(literal -4 binary32))))
(*.f32 s (neg.f32 (log1p.f32 (*.f32 u #s(literal -4 binary32)))))
(neg.f32 (*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) (neg.f32 u)))))))
(*.f32 s (neg.f32 (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) (neg.f32 u)))))))
(*.f32 s (log1p.f32 (*.f32 #s(literal 4 binary32) u)))
(*.f32 u (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) s)))))
(*.f32 u (neg.f32 (log.f32 (+.f32 #s(literal 1 binary32) (*.f32 #s(literal -4 binary32) s)))))
(*.f32 u (neg.f32 (log1p.f32 (*.f32 s #s(literal -4 binary32)))))
Symmetry

(negabs s)

Compiler

Compiled 12 to 9 computations (25% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
58.6%
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
Compiler

Compiled 24 to 18 computations (25% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01535
12735
23835
34435
44835
54935
Stop Event
saturated
Calls
Call 1
Inputs
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))
Outputs
(*.f32 s (log.f32 (/.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) (*.f32 #s(literal 4 binary32) u)))))

soundness0.0ms (0%)

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

Compiled 12 to 9 computations (25% saved)

preprocess16.0ms (0.6%)

Memory
4.6MiB live, 22.5MiB allocated
Remove

(negabs s)

Compiler

Compiled 96 to 72 computations (25% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...