Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1

Time bar (total: 5.1s)

analyze61.0ms (1.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
25%25%74.9%0.1%0%0%0%3
37.5%37.5%62.4%0.1%0%0%0%4
56.3%56.2%43.7%0.1%0%0%0%5
65.6%65.6%34.3%0.1%0%0%0%6
76.6%76.5%23.4%0.1%0%0%0%7
82%82%18%0.1%0%0%0%8
87.9%87.8%12.1%0.1%0%0%0%9
90.8%90.7%9.2%0.1%0%0%0%10
93.8%93.8%6.1%0.1%0%0%0%11
95.4%95.3%4.6%0.1%0%0%0%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample4.8s (93.1%)

Results
1.1s8256×0valid-rival
836.0ms8255×0valid-sollya
5.0ms0exit-sollya
Bogosity

preprocess244.0ms (4.7%)

Algorithm
egg-herbie
Rules
1366×fma-define
669×div-sub
586×fma-neg
400×unsub-neg
357×times-frac
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032341
1101306
2249298
3764298
41955298
54261298
66080298
76700298
87250298
97519298
107556298
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 (neg.f64 x) (+.f64 (/.f64 (neg.f64 x) y) #s(literal 1 binary64))) (+.f64 (neg.f64 x) #s(literal 1 binary64)))
(/.f64 (*.f64 x (+.f64 (/.f64 x (neg.f64 y)) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
(neg.f64 (/.f64 (*.f64 (neg.f64 x) (+.f64 (/.f64 (neg.f64 x) y) #s(literal 1 binary64))) (+.f64 (neg.f64 x) #s(literal 1 binary64))))
(neg.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x (neg.f64 y)) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))))
(/.f64 (*.f64 y (+.f64 (/.f64 y x) #s(literal 1 binary64))) (+.f64 y #s(literal 1 binary64)))
Outputs
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
(*.f64 x (/.f64 (+.f64 (/.f64 x y) #s(literal 1 binary64)) (+.f64 x #s(literal 1 binary64))))
(/.f64 (fma.f64 x (/.f64 x y) x) (+.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
(*.f64 x (/.f64 (+.f64 (/.f64 x y) #s(literal 1 binary64)) (+.f64 x #s(literal 1 binary64))))
(/.f64 (fma.f64 x (/.f64 x y) x) (+.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 (neg.f64 x) (+.f64 (/.f64 (neg.f64 x) y) #s(literal 1 binary64))) (+.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 x (neg.f64 y))) (+.f64 #s(literal 1 binary64) (neg.f64 x))))
(*.f64 (neg.f64 x) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (-.f64 #s(literal 1 binary64) x)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (/.f64 x (+.f64 x #s(literal -1 binary64))))
(*.f64 x (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (+.f64 x #s(literal -1 binary64))))
(*.f64 x (/.f64 (+.f64 (/.f64 x y) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) x)))
(/.f64 (*.f64 x (+.f64 (/.f64 x (neg.f64 y)) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 x (neg.f64 y)))) (+.f64 x #s(literal 1 binary64)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (/.f64 x (+.f64 x #s(literal 1 binary64))))
(neg.f64 (/.f64 (*.f64 (neg.f64 x) (+.f64 (/.f64 (neg.f64 x) y) #s(literal 1 binary64))) (+.f64 (neg.f64 x) #s(literal 1 binary64))))
(/.f64 (*.f64 (neg.f64 x) (+.f64 #s(literal 1 binary64) (/.f64 x (neg.f64 y)))) (neg.f64 (+.f64 #s(literal 1 binary64) (neg.f64 x))))
(/.f64 (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 x y))) (-.f64 #s(literal 1 binary64) x))
(*.f64 x (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (-.f64 #s(literal 1 binary64) x)))
(neg.f64 (/.f64 (*.f64 x (+.f64 (/.f64 x (neg.f64 y)) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64))))
(/.f64 (*.f64 (neg.f64 x) (+.f64 #s(literal 1 binary64) (/.f64 x (neg.f64 y)))) (+.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (+.f64 x #s(literal 1 binary64))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x y)) (/.f64 x (-.f64 #s(literal -1 binary64) x)))
(*.f64 x (/.f64 (+.f64 (/.f64 x y) #s(literal -1 binary64)) (+.f64 x #s(literal 1 binary64))))
(/.f64 (*.f64 y (+.f64 (/.f64 y x) #s(literal 1 binary64))) (+.f64 y #s(literal 1 binary64)))
(/.f64 (*.f64 y (+.f64 #s(literal 1 binary64) (/.f64 y x))) (+.f64 y #s(literal 1 binary64)))
(/.f64 (fma.f64 y (/.f64 y x) y) (+.f64 y #s(literal 1 binary64)))
Compiler

Compiled 13 to 8 computations (38.5% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
86.7%
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Compiler

Compiled 26 to 16 computations (38.5% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp
+-commutative
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01343
12243
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))
Outputs
(/.f64 (*.f64 x (+.f64 (/.f64 x y) #s(literal 1 binary64))) (+.f64 x #s(literal 1 binary64)))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 13 to 8 computations (38.5% saved)

preprocess45.0ms (0.9%)

Compiler

Compiled 82 to 50 computations (39% saved)

end0.0ms (0%)

Profiling

Loading profile data...