Details

Time bar (total: 5.8s)

analyze690.0ms (11.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
6.2%93.6%0.1%6
12.5%87.4%0.1%7
15.6%84.3%0.1%8
18.7%71.8%9.5%9
23.4%56%20.6%10
26.3%52.2%21.5%11
31%40.1%28.9%12
35.6%28.9%35.5%13
36.8%27.5%35.7%14
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample1.5s (25.1%)

Results
1.1s8256×body128valid
375.0ms2389×body128invalid
Compiler

Compiled 36 to 24 computations (33.3% saved)

preprocess25.0ms (0.4%)

Algorithm
egg-herbie
Rules
25×fma-def_binary64
11×*-commutative_binary64
10×+-commutative_binary64
associate-+l+_binary64
distribute-lft-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02772
15864
28464
38764
033
133
Stop Event
unsound
saturated
Symmetry

(sort x y z)

Compiler

Compiled 17 to 11 computations (35.3% saved)

simplify18.0ms (0.3%)

Algorithm
egg-herbie
Rules
25×fma-def_binary64
+-commutative_binary64
*-commutative_binary64
distribute-rgt-out_binary64
associate-+r+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01218
12316
24516
36416
46916
57016
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
23.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
23.3b
(*.f64 2 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
Compiler

Compiled 56 to 35 computations (37.5% saved)

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (+.f64 x y))
0.8b
(fma.f64 x y (*.f64 z (+.f64 x y)))
22.1b
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

series115.0ms (2%)

Counts
3 → 84
Calls

27 calls:

20.0ms
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
x
inf
16.0ms
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
x
-inf
15.0ms
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
z
inf
15.0ms
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
y
inf
14.0ms
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
z
-inf

rewrite48.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
887×expm1-log1p-u_binary64
858×prod-diff_binary64
89×add-sqr-sqrt_binary64
85×log1p-expm1-u_binary64
84×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0831
117431
2242231
Stop Event
node limit
Counts
3 → 78

simplify38.0ms (0.7%)

Algorithm
egg-herbie
Rules
605×cancel-sign-sub-inv_binary64
591×associate-*l*_binary64
528×associate-*r*_binary64
194×fma-def_binary64
174×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01901448
15251389
218981344
Stop Event
node limit
Counts
162 → 109

prune108.0ms (1.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New9712109
Fresh000
Picked101
Done000
Total9812110
Error
22.6b
Counts
110 → 12
Alt Table
StatusErrorProgram
23.6b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
41.1b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
23.8b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
40.5b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
44.7b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
49.7b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
45.6b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
63.3b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
45.3b
(*.f64 2 (sqrt.f64 (fma.f64 x y (/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) z) (fma.f64 x x (*.f64 y (-.f64 y x)))))))
47.9b
(*.f64 2 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3))))
26.2b
(*.f64 2 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))))
33.5b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
Compiler

Compiled 2979 to 1500 computations (49.6% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (+.f64 x y))
0.6b
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
0.8b
(fma.f64 x y (*.f64 z (+.f64 x y)))
22.4b
(pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4)

series131.0ms (2.2%)

Counts
2 → 72
Calls

18 calls:

12.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
y
0
12.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
z
inf
11.0ms
(pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4)
y
0
9.0ms
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2)
z
-inf
8.0ms
(pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4)
z
-inf

rewrite47.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
858×prod-diff_binary64
198×log1p-udef_binary64
116×log1p-expm1-u_binary64
116×expm1-log1p-u_binary64
114×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01128
124627
2307327
Stop Event
node limit
Counts
2 → 42

simplify87.0ms (1.5%)

Algorithm
egg-herbie
Rules
718×times-frac_binary64
526×fma-def_binary64
469×associate-/l*_binary64
251×*-commutative_binary64
132×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06206238
121125953
Stop Event
node limit
Counts
114 → 180

prune251.0ms (4.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2414245
Fresh5611
Picked011
Done000
Total24611257
Error
2.5b
Counts
257 → 11
Alt Table
StatusErrorProgram
34.7b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
44.7b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
36.5b
(*.f64 2 (pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (-.f64 (neg.f64 y) z)) (log.f64 (/.f64 -1 x)))) 2))
45.3b
(*.f64 2 (sqrt.f64 (fma.f64 x y (/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) z) (fma.f64 x x (*.f64 y (-.f64 y x)))))))
35.3b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
47.9b
(*.f64 2 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3))))
23.8b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
40.5b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
35.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 z x)) (log.f64 (/.f64 1 y))))) 2))
33.5b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
23.6b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
Compiler

Compiled 10924 to 6276 computations (42.5% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
0.8b
(fma.f64 x y (*.f64 z (+.f64 x y)))
22.1b
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
22.7b
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

series105.0ms (1.8%)

Counts
2 → 72
Calls

18 calls:

16.0ms
(cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
x
0
10.0ms
(cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
z
0
7.0ms
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
y
inf
6.0ms
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
z
0
6.0ms
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
x
0

rewrite49.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
858×prod-diff_binary64
178×expm1-udef_binary64
178×log1p-udef_binary64
103×add-sqr-sqrt_binary64
98×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01028
120927
2276627
Stop Event
node limit
Counts
2 → 49

simplify86.0ms (1.5%)

Algorithm
egg-herbie
Rules
710×times-frac_binary64
542×fma-def_binary64
256×*-commutative_binary64
171×sqr-pow_binary64
130×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06366155
122275898
Stop Event
node limit
Counts
121 → 190

prune252.0ms (4.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New3091310
Fresh099
Picked101
Done011
Total31011321
Error
2.5b
Counts
321 → 11
Alt Table
StatusErrorProgram
34.7b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
44.7b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
36.5b
(*.f64 2 (pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (-.f64 (neg.f64 y) z)) (log.f64 (/.f64 -1 x)))) 2))
45.3b
(*.f64 2 (sqrt.f64 (fma.f64 x y (/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) z) (fma.f64 x x (*.f64 y (-.f64 y x)))))))
35.3b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
47.9b
(*.f64 2 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3))))
40.5b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
23.8b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))))
35.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 z x)) (log.f64 (/.f64 1 y))))) 2))
33.5b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
23.6b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
Compiler

Compiled 15638 to 7079 computations (54.7% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(fma.f64 x y (*.f64 z (+.f64 x y)))
22.1b
(sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))
22.7b
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
22.7b
(cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))

series50.0ms (0.9%)

Counts
1 → 36
Calls

9 calls:

8.0ms
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
x
0
6.0ms
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
y
inf
6.0ms
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
y
0
6.0ms
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
z
inf
6.0ms
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))
z
0

rewrite40.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
858×prod-diff_binary64
182×expm1-udef_binary64
182×log1p-udef_binary64
105×add-sqr-sqrt_binary64
104×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01213
124213
2283813
Stop Event
node limit
Counts
1 → 23

simplify78.0ms (1.4%)

Algorithm
egg-herbie
Rules
423×associate-*r*_binary64
366×times-frac_binary64
282×associate-*l*_binary64
270×fma-def_binary64
249×associate-/r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03453044
112042918
Stop Event
node limit
Counts
59 → 95

prune352.0ms (6%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New4470447
Fresh099
Picked011
Done011
Total44711458
Error
2.5b
Counts
458 → 11
Alt Table
StatusErrorProgram
34.7b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))) 2))
44.7b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
36.5b
(*.f64 2 (pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (-.f64 (neg.f64 y) z)) (log.f64 (/.f64 -1 x)))) 2))
45.3b
(*.f64 2 (sqrt.f64 (fma.f64 x y (/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) z) (fma.f64 x x (*.f64 y (-.f64 y x)))))))
35.3b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))) 2))
47.9b
(*.f64 2 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3))))
40.5b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
23.8b
(*.f64 2 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))) 2) (cbrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y))))))))
35.1b
(*.f64 2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (+.f64 z x)) (log.f64 (/.f64 1 y))))) 2))
33.5b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 3/2)))
23.6b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x y (*.f64 z (+.f64 x y))) 1/4) 2))
Compiler

Compiled 26769 to 10925 computations (59.2% saved)

regimes1.1s (18.7%)

Accuracy

Total 3.8b remaining (63.6%)

Threshold costs 0b (0%)

Counts
92 → 2
Compiler

Compiled 13376 to 8102 computations (39.4% saved)

bsearch58.0ms (1%)

Algorithm
binary-search
Calls

1 calls:

55.0ms
y
Steps
ItersPointRange
7.036781764230213e-307
∈ [
-1.4296436999830294e-292
,
7.886326688639638e-284
]
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03158
14858
26258
37258
47658
Stop Event
saturated

end589.0ms (10.1%)

Stop Event
fuel
Compiler

Compiled 375 to 282 computations (24.8% saved)

Profiling

Loading profile data...