HairBSDF, sample_f, cosTheta

Time bar (total: 2.6s)

analyze28.0ms (1.1%)

Memory
-7.1MiB live, 9.9MiB allocated
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 35 to 27 computations (22.9% saved)

sample2.3s (88.8%)

Memory
4.4MiB live, 638.7MiB allocated
Samples
604.0ms8 256×0valid-rival
602.0ms8 256×0valid-baseline
343.0ms8 256×0valid-sollya
Bogosity

preprocess246.0ms (9.3%)

Memory
7.7MiB live, 23.2MiB allocated
Algorithm
egg-herbie
Rules
1 850×fma-define
1 250×fmm-def
390×div-sub
320×unsub-neg
312×sub-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
043439
185363
2196359
3500359
41291359
52745359
63828359
74170359
84358359
94416359
104455359
114810359
124810359
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 17 to 12 computations (29.4% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB 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
99.7%
(+.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)))))))
Compiler

Compiled 34 to 24 computations (29.4% saved)

simplify2.0ms (0.1%)

Memory
0.5MiB live, 0.5MiB allocated
Algorithm
egg-herbie
Rules
+-commutative
*-commutative
sub-neg
1-exp
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01857
12957
23357
33557
43657
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)))))))
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)))))))

soundness0.0ms (0%)

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

Compiled 17 to 12 computations (29.4% saved)

preprocess17.0ms (0.6%)

Memory
-8.9MiB live, 22.4MiB allocated
Compiler

Compiled 68 to 48 computations (29.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...