Details

Time bar (total: 5.0s)

analyze176.0ms (3.5%)

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
25%74.9%0.1%5
25%68.7%6.3%6
25%53.1%22%7
25%46.8%28.2%8
25%33.6%41.5%9
28.1%18%54%10
31.6%12.1%56.3%11
33.4%5.9%60.8%12
35.2%3.8%61%13
36.1%2.9%61%14
Compiler

Compiled 32 to 20 computations (37.5% saved)

sample1.3s (26.2%)

Alt Table
StatusErrorProgram
0.3b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
Results
1.2s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 157 to 97 computations (38.2% saved)

localize13.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.4b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
2.1b
(*.f64 (*.f64 b b) (+.f64 3 a))

series54.0ms (1.1%)

Counts
4 → 84
Calls

4 calls:

28.0ms
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
13.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
9.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
3.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))

rewrite85.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
777×prod-diff_binary64
200×log1p-expm1-u_binary64
200×expm1-log1p-u_binary64
198×add-sqr-sqrt_binary64
192×add-log-exp_binary64
Counts
4 → 85
Calls

4 calls:

82.0ms
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
82.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
82.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
82.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01867
141963
2465563
3611363
000
100

prune190.0ms (3.8%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1663169
Fresh000
Picked011
Done000
Total1664170
Error
0b
Counts
170 → 4
Alt Table
StatusErrorProgram
0.3b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
36.4b
(-.f64 (+.f64 (/.f64 (*.f64 (-.f64 (pow.f64 a 4) (pow.f64 b 4)) (-.f64 (pow.f64 a 4) (pow.f64 b 4))) (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (-.f64 (*.f64 a a) (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
0.0b
(-.f64 (+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
16.2b
(-.f64 (fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2) (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 (*.f64 a a) (-.f64 1 a))))) 1)
Compiler

Compiled 6095 to 3688 computations (39.5% saved)

localize22.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
2.1b
(*.f64 (*.f64 b b) (+.f64 3 a))
4.5b
(*.f64 (pow.f64 a 2) (pow.f64 b 2))

series54.0ms (1.1%)

Counts
4 → 60
Calls

4 calls:

30.0ms
(+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
11.0ms
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
10.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
3.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))

rewrite77.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
446×log1p-udef_binary64
252×log1p-expm1-u_binary64
252×expm1-log1p-u_binary64
237×add-log-exp_binary64
236×add-exp-log_binary64
Counts
4 → 74
Calls

4 calls:

74.0ms
(+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
74.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
74.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
74.0ms
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02472
152370
2467970
3547870
000
100

prune197.0ms (4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1331134
Fresh112
Picked101
Done011
Total1353138
Error
0b
Counts
138 → 3
Alt Table
StatusErrorProgram
0.3b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
0.0b
(-.f64 (+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
16.2b
(-.f64 (fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2) (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 (*.f64 a a) (-.f64 1 a))))) 1)
Compiler

Compiled 5198 to 3609 computations (30.6% saved)

localize21.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 a b) 2)
0.3b
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
2.1b
(*.f64 (*.f64 b b) (+.f64 3 a))
31.5b
(cbrt.f64 (pow.f64 (*.f64 a b) 2))

series1.1s (22.8%)

Counts
4 → 96
Calls

4 calls:

561.0ms
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
555.0ms
(cbrt.f64 (pow.f64 (*.f64 a b) 2))
8.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
7.0ms
(pow.f64 (*.f64 a b) 2)

rewrite91.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
537×log-prod_binary64
207×fma-def_binary64
204×prod-diff_binary64
191×expm1-udef_binary64
191×log1p-udef_binary64
Counts
4 → 150
Calls

4 calls:

88.0ms
(pow.f64 (*.f64 a b) 2)
88.0ms
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
88.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
88.0ms
(cbrt.f64 (pow.f64 (*.f64 a b) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01233
124731
2268931
3499031
4489831
000
100

prune323.0ms (6.5%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New2460246
Fresh011
Picked011
Done011
Total2463249
Error
0b
Counts
249 → 3
Alt Table
StatusErrorProgram
0.3b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
0.0b
(-.f64 (+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
16.2b
(-.f64 (fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2) (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 (*.f64 a a) (-.f64 1 a))))) 1)
Compiler

Compiled 10715 to 7113 computations (33.6% saved)

localize18.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)
0.5b
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2)
10.8b
(cbrt.f64 (pow.f64 (hypot.f64 b a) 2))
26.6b
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4))

series175.0ms (3.5%)

Counts
4 → 96
Calls

4 calls:

59.0ms
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2)
51.0ms
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4))
40.0ms
(cbrt.f64 (pow.f64 (hypot.f64 b a) 2))
25.0ms
(pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)

rewrite49.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
726×log1p-expm1-u_binary64
726×expm1-log1p-u_binary64
153×expm1-udef_binary64
153×log1p-udef_binary64
94×add-sqr-sqrt_binary64
Counts
4 → 91
Calls

4 calls:

47.0ms
(pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)
47.0ms
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2)
47.0ms
(cbrt.f64 (pow.f64 (hypot.f64 b a) 2))
47.0ms
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01137
122130
2193830
3489730
000
100

prune229.0ms (4.6%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1870187
Fresh000
Picked011
Done022
Total1873190
Error
0b
Counts
190 → 3
Alt Table
StatusErrorProgram
0.3b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
0.0b
(-.f64 (+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 2 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)) (pow.f64 b 4))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
16.2b
(-.f64 (fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) 2) (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 (*.f64 a a) (-.f64 1 a))))) 1)
Compiler

Compiled 8452 to 5593 computations (33.8% saved)

regimes639.0ms (12.9%)

Accuracy

Total 0.0b remaining (36.5%)

Threshold costs 0.0b (36.5%)

Counts
108 → 1
Compiler

Compiled 19443 to 13880 computations (28.6% saved)

simplify3.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
02657
14357
24757
34957
45057
54857

end117.0ms (2.4%)

Compiler

Compiled 188 to 135 computations (28.2% saved)

Profiling

Loading profile data...