Disney BSSRDF, PDF of scattering profile

Time bar (total: 2.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze52.0ms (2.2%)

Memory
2.8MiB live, 19.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%2.1%97.9%0%0%0%0
0%0%2.1%97.9%0%0%0%1
0%0%2.1%97.9%0%0%0%2
25%0.5%1.5%97.9%0%0%0%3
37.5%0.8%1.3%97.9%0%0%0%4
56.2%1.2%0.9%97.9%0%0%0%5
65.6%1.3%0.7%97.9%0%0%0%6
76.6%1.6%0.5%97.9%0%0%0%7
82%1.7%0.4%97.9%0%0%0%8
87.9%1.8%0.2%97.9%0%0%0%9
90.8%1.9%0.2%97.9%0%0%0%10
93.8%1.9%0.1%97.9%0%0%0%11
95.4%2%0.1%97.9%0%0%0%12
Compiler

Compiled 49 to 37 computations (24.5% saved)

sample49.0ms (2.1%)

Memory
-1.6MiB live, 21.0MiB allocated
Samples
36.0ms260×0valid
Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-mult: 11.0ms (37.1% of total)
ival-div: 6.0ms (20.2% of total)
ival-exp: 3.0ms (10.1% of total)
const: 3.0ms (10.1% of total)
ival-pi: 1.0ms (3.4% of total)
ival-add: 1.0ms (3.4% of total)
ival-and: 1.0ms (3.4% of total)
ival-<=: 1.0ms (3.4% of total)
exact: 1.0ms (3.4% of total)
ival-<: 1.0ms (3.4% of total)
ival-neg: 1.0ms (3.4% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
Bogosity

explain2.0s (86.7%)

Memory
13.0MiB live, 1 820.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
21(0.010903719812631607 2.3223648071289063)2(6.652773443249771e-9 1.2609168607013999e-6)(exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))
16(1.6259839212632761e-38 1.8861517673940398e-5)0-(/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))
10-0-(exp.f32 (/.f32 (neg.f32 r) s))
00-0-(*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)
00-0-(*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s))))
00-0-(PI.f32)
00-0-#s(literal 2 binary32)
04(1.08837184178936e-38 4.02207879233174e-5)0-(*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s)
00-0-(*.f32 #s(literal 6 binary32) (PI.f32))
00-0-(neg.f32 r)
00-0-s
00-0-(/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s))
00-0-(+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))
00-0-#s(literal 3/4 binary32)
00-0-(/.f32 (neg.f32 r) s)
00-0-#s(literal 1/4 binary32)
00-0-(*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s)))
04(1.08837184178936e-38 4.02207879233174e-5)0-(*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s)
00-0-(*.f32 #s(literal 3 binary32) s)
00-0-(*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)
00-0-#s(literal 6 binary32)
00-0-r
00-0-#s(literal 3 binary32)
00-0-(*.f32 #s(literal 2 binary32) (PI.f32))
06(1.6259839212632761e-38 1.8861517673940398e-5)0-(/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f32(/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))u/u60
(*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s))))underflow228
(exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))underflow228
(*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)underflow6
*.f32(*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s)n*u40
exp.f32(exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))sensitivity14
exp.f32(exp.f32 (/.f32 (neg.f32 r) s))sensitivity11
/.f32(/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))u/n10
(*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s))))underflow228
(exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))underflow228
Confusion
Predicted +Predicted -
+13
-9243
Precision
0.1
Recall
0.25
Confusion?
Predicted +Predicted MaybePredicted -
+130
-91242
Precision?
0.2857142857142857
Recall?
1.0
2:
4:
8:
16:
32:
64:
128:
256:
512:
1024:
2048:
Freqs
test
numberfreq
0246
17
23
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Total Time
10.19970703125
Average Time
0.03984260559082031
Samples
387.0ms3 072×0valid
Compiler

Compiled 5 676 to 1 224 computations (78.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 279.0ms
ival-mult: 125.0ms (44.8% of total)
ival-div: 69.0ms (24.7% of total)
ival-exp: 40.0ms (14.3% of total)
ival-neg: 14.0ms (5% of total)
ival-add: 11.0ms (3.9% of total)
ival-pi: 9.0ms (3.2% of total)
exact: 6.0ms (2.2% of total)
ival-true: 2.0ms (0.7% of total)
adjust: 1.0ms (0.4% of total)
ival-assert: 1.0ms (0.4% of total)

preprocess185.0ms (8%)

Memory
-2.5MiB live, 29.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
057175
1192140
2929102
35143102
02533
04333
18328
225222
388920
4244820
5315920
6351520
7391820
8432020
9433220
10524120
11543620
12544920
13545120
14552920
15552920
0833120
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))
Outputs
(+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))
(*.f32 (+.f32 (pow.f32 (exp.f32 r) (/.f32 #s(literal -1/3 binary32) s)) (exp.f32 (/.f32 (neg.f32 r) s))) (/.f32 #s(literal 1/8 binary32) (*.f32 (*.f32 s r) (PI.f32))))
Compiler

Compiled 33 to 25 computations (24.2% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune1.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.5%
(+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))
Compiler

Compiled 66 to 50 computations (24.2% saved)

simplify20.0ms (0.9%)

Memory
2.5MiB live, 18.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02533
14333
25333
36733
47533
57933
68033
Stop Event
saturated
Calls
Call 1
Inputs
(+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))
Outputs
(+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))
(+.f32 (/.f32 (*.f32 (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s))) #s(literal 3/4 binary32)) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 (exp.f32 (/.f32 (neg.f32 r) s)) #s(literal 1/4 binary32)) (*.f32 (*.f32 (*.f32 (PI.f32) #s(literal 2 binary32)) s) r)))

soundness0.0ms (0%)

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

Compiled 33 to 25 computations (24.2% saved)

preprocess1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Compiler

Compiled 132 to 100 computations (24.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...