Details

Time bar (total: 14.1s)

analyze1.8s (13.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.7%0.3%0
0%99.7%0.3%1
0%99.7%0.3%2
0%99.7%0.3%3
0%99.7%0.3%4
0%99.7%0.3%5
0%99.7%0.3%6
0%99.7%0.3%7
0%99.7%0.3%8
0%99.7%0.3%9
0%99.7%0.3%10
0%99.7%0.3%11
1.1%98.6%0.3%12
1.9%97.8%0.3%13
7%92.7%0.3%14
Compiler

Compiled 28 to 17 computations (39.3% saved)

sample1.3s (9.4%)

Results
1.2s8255×body128valid
0.0msbody1024valid
Compiler

Compiled 83 to 50 computations (39.8% saved)

simplify95.0ms (0.7%)

Algorithm
egg-herbie
Rules
765×sub-neg_binary64
731×fma-neg_binary64
652×neg-mul-1_binary64
505×fma-def_binary64
495×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01729
13729
28529
319427
448627
5100327
6192027
7340627
8407827
9443127
10491927
11508527

prune4.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
29.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
29.1b
(/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
Compiler

Compiled 100 to 55 computations (45% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 x y) z)
2.0b
(+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a))
2.1b
(-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))
27.3b
(/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))

series192.0ms (1.4%)

Counts
4 → 240
Calls

4 calls:

141.0ms
(/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
28.0ms
(-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))
17.0ms
(+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a))
5.0ms
(*.f64 (+.f64 x y) z)

rewrite38.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
40×*-un-lft-identity_binary64
20×add-sqr-sqrt_binary64
18×add-cube-cbrt_binary64
15×times-frac_binary64
13×distribute-lft-out_binary64
Counts
4 → 105
Calls

4 calls:

12.0ms
(/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
7.0ms
(*.f64 (+.f64 x y) z)
7.0ms
(-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))
5.0ms
(+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a))

simplify169.0ms (1.2%)

Algorithm
egg-herbie
Rules
618×associate-/l*_binary64
298×+-commutative_binary64
290×fma-def_binary64
269×distribute-rgt-in_binary64
247×distribute-lft-in_binary64
Counts
345 → 281
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
077412872
1227712422
2502612422

prune203.0ms (1.4%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New27110281
Fresh000
Picked101
Done000
Total27210282
Error
2.9b
Counts
282 → 10
Alt Table
StatusErrorProgram
47.3b
(/.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) z)) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
29.7b
(-.f64 (+.f64 a z) b)
46.2b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y)) (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))) (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))))
29.1b
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))
47.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 (+.f64 x t) y))) (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (sqrt.f64 (+.f64 (+.f64 x t) y))))
39.2b
(*.f64 (/.f64 a (+.f64 y (+.f64 t x))) (+.f64 y t))
43.0b
a
29.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))
47.4b
(/.f64 (*.f64 y (-.f64 (+.f64 a z) b)) (+.f64 (+.f64 x t) y))
41.0b
z
Compiler

Compiled 13413 to 3504 computations (73.9% saved)

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 a b))
2.8b
(fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b))))
27.3b
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))

series163.0ms (1.2%)

Counts
3 → 168
Calls

3 calls:

134.0ms
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))
23.0ms
(fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b))))
6.0ms
(*.f64 y (-.f64 a b))

rewrite21.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
51×*-un-lft-identity_binary64
33×add-sqr-sqrt_binary64
29×add-cube-cbrt_binary64
18×prod-diff_binary64
15×times-frac_binary64
Counts
3 → 99
Calls

3 calls:

8.0ms
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))
5.0ms
(*.f64 y (-.f64 a b))
0.0ms
(fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b))))

simplify153.0ms (1.1%)

Algorithm
egg-herbie
Rules
690×associate-/l*_binary64
463×associate-/r*_binary64
329×associate-*l*_binary64
264×+-commutative_binary64
216×associate-+r+_binary64
Counts
267 → 226
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
073611172
1201910887
2526810887

prune179.0ms (1.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2251226
Fresh189
Picked011
Done000
Total22610236
Error
2.9b
Counts
236 → 10
Alt Table
StatusErrorProgram
47.3b
(/.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) z)) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
29.7b
(-.f64 (+.f64 a z) b)
47.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 (+.f64 x t) y))) (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (sqrt.f64 (+.f64 (+.f64 x t) y))))
46.2b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y)) (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))) (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))))
39.2b
(*.f64 (/.f64 a (+.f64 y (+.f64 t x))) (+.f64 y t))
43.0b
a
29.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))
47.4b
(/.f64 (*.f64 y (-.f64 (+.f64 a z) b)) (+.f64 (+.f64 x t) y))
29.1b
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))
41.0b
z
Compiler

Compiled 11152 to 3248 computations (70.9% saved)

localize3.0ms (0%)

prune11.0ms (0.1%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New000
Fresh088
Picked011
Done011
Total01010
Error
2.9b
Counts
10 → 10
Alt Table
StatusErrorProgram
47.3b
(/.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) z)) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
29.7b
(-.f64 (+.f64 a z) b)
47.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 (+.f64 x t) y))) (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (sqrt.f64 (+.f64 (+.f64 x t) y))))
46.2b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y)) (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))) (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))))
39.2b
(*.f64 (/.f64 a (+.f64 y (+.f64 t x))) (+.f64 y t))
43.0b
a
29.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))
47.4b
(/.f64 (*.f64 y (-.f64 (+.f64 a z) b)) (+.f64 (+.f64 x t) y))
29.1b
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))
41.0b
z
Compiler

Compiled 536 to 244 computations (54.5% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
2.0b
(+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a))
2.1b
(-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))
9.0b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))
28.0b
(cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))

series1.3s (9%)

Counts
2 → 144
Calls

2 calls:

1.1s
(cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))
139.0ms
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))

rewrite59.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
55×*-un-lft-identity_binary64
45×times-frac_binary64
43×add-sqr-sqrt_binary64
36×associate-*r*_binary64
35×add-exp-log_binary64
Counts
2 → 97
Calls

2 calls:

28.0ms
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))
6.0ms
(cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))

simplify448.0ms (3.2%)

Algorithm
egg-herbie
Rules
551×fma-def_binary64
515×associate-/l*_binary64
342×times-frac_binary64
98×sub-neg_binary64
70×sqr-pow_binary64
Counts
241 → 338
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0300041172
1577941172

prune2.7s (18.9%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New101001010
Fresh077
Picked011
Done022
Total1010101020
Error
2.9b
Counts
1020 → 10
Alt Table
StatusErrorProgram
47.3b
(/.f64 (-.f64 (+.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) z)) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))
29.7b
(-.f64 (+.f64 a z) b)
47.7b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 (+.f64 x t) y))) (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (sqrt.f64 (+.f64 (+.f64 x t) y))))
46.2b
(cbrt.f64 (*.f64 (*.f64 (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y)) (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))) (/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))))
39.2b
(*.f64 (/.f64 a (+.f64 y (+.f64 t x))) (+.f64 y t))
43.0b
a
29.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)))) 1) (/.f64 (cbrt.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b))) (+.f64 (+.f64 x t) y)))
47.4b
(/.f64 (*.f64 y (-.f64 (+.f64 a z) b)) (+.f64 (+.f64 x t) y))
29.1b
(/.f64 (fma.f64 z (+.f64 y x) (fma.f64 a t (*.f64 y (-.f64 a b)))) (+.f64 (+.f64 x t) y))
41.0b
z
Compiler

Compiled 166623 to 63157 computations (62.1% saved)

regimes5.0s (35.9%)

Accuracy

Total 5.1b remaining (63.3%)

Threshold costs 0b (0%)

Counts
201 → 3
Compiler

Compiled 62357 to 28036 computations (55% saved)

bsearch12.0ms (0.1%)

Compiler

Compiled 27 to 16 computations (40.7% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
032113
149113
262113
368113
471113
571113

end123.0ms (0.9%)

Compiler

Compiled 452 to 191 computations (57.7% saved)

Profiling

Loading profile data...