Disney BSSRDF, PDF of scattering profile

Time bar (total: 2.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze54.0ms (2.3%)

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)

sample50.0ms (2.1%)

Memory
-2.0MiB live, 20.6MiB allocated
Samples
37.0ms260×0valid
Precisions
Click to see histograms. Total time spent on operations: 31.0ms
ival-mult: 12.0ms (38.7% of total)
ival-div: 6.0ms (19.3% of total)
ival-exp: 3.0ms (9.7% of total)
const: 3.0ms (9.7% of total)
ival-pi: 1.0ms (3.2% of total)
ival-add: 1.0ms (3.2% of total)
ival-and: 1.0ms (3.2% of total)
ival-<=: 1.0ms (3.2% of total)
exact: 1.0ms (3.2% of total)
ival-<: 1.0ms (3.2% of total)
ival-neg: 1.0ms (3.2% of total)
ival-assert: 0.0ms (0% of total)
Bogosity

explain2.1s (86.6%)

Memory
11.2MiB live, 1 833.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
20-2(1.5504409134337038e-7 1.7483769624959677e-5)(exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))
212(1.1308804156760506e-36 5.784545919595985e-6)1(1.5504409134337038e-7 1.7483769624959677e-5)(/.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))
01(1.54909481465562e-39 18.228302001953125)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)
01(1.54909481465562e-39 18.228302001953125)0-(*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s)
00-0-(*.f32 #s(literal 6 binary32) (PI.f32))
010(1.1308804156760506e-36 5.784545919595985e-6)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))
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-(exp.f32 (/.f32 (neg.f32 r) s))
00-0-(*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s)))
00-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))
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/u100
(*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s))))underflow224
(*.f32 #s(literal 3 binary32) s)underflow1
(exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))underflow224
(*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)underflow10
*.f32(*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s)n*u10
Confusion
Predicted +Predicted -
+02
-11243
Precision
0.0
Recall
0.0
Confusion?
Predicted +Predicted MaybePredicted -
+020
-112241
Precision?
0.13333333333333333
Recall?
1.0
2:
4:
8:
16:
32:
64:
128:
256:
512:
1024:
2048:
Freqs
test
numberfreq
0245
111
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Total Time
10.12646484375
Average Time
0.03955650329589844
Samples
398.0ms3 072×0valid
Compiler

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

Precisions
Click to see histograms. Total time spent on operations: 287.0ms
ival-mult: 128.0ms (44.5% of total)
ival-div: 72.0ms (25.1% of total)
ival-exp: 41.0ms (14.3% of total)
ival-neg: 15.0ms (5.2% of total)
ival-add: 12.0ms (4.2% of total)
ival-pi: 10.0ms (3.5% of total)
exact: 6.0ms (2.1% of total)
ival-true: 2.0ms (0.7% of total)
ival-assert: 1.0ms (0.3% of total)

preprocess184.0ms (7.7%)

Memory
6.1MiB 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.7%
(+.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)

simplify29.0ms (1.2%)

Memory
-10.6MiB live, 18.2MiB 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...