Details

Time bar (total: 2.5min)

analyze117.0ms (0.1%)

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 30 to 20 computations (33.3% saved)

sample26.0ms (0%)

Algorithm
intervals
Results
18.0ms256×body128valid
Compiler

Compiled 59 to 41 computations (30.5% saved)

simplify166.0ms (0.1%)

Algorithm
egg-herbie
Counts
1 → 1
Iterations

Useful iterations: 0 (72.0ms)

IterNodesCost
0491543
1491543

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112

Merged error: 0.2b

Counts
2 → 1
Compiler

Compiled 58 to 38 computations (34.5% saved)

localize14.0ms (0%)

Local error

Found 4 expressions with local error:

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.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

rewrite45.0ms (0%)

Algorithm
rewrite-expression-head
Rules
15×*-un-lft-identity_binary64_2465 add-exp-log_binary64_2503 add-sqr-sqrt_binary64_2487 pow1_binary64_2526
14×add-cbrt-cube_binary64_2501
10×add-cube-cbrt_binary64_2500 associate-*r*_binary64_2405
add-log-exp_binary64_2504 distribute-lft-in_binary64_2414 distribute-rgt-in_binary64_2415 cancel-sign-sub-inv_binary64_2431 prod-exp_binary64_2514 pow-prod-down_binary64_2536 cbrt-unprod_binary64_2498
associate-*r/_binary64_2407
unpow-prod-down_binary64_2544 pow-unpow_binary64_2542
flip3-+_binary64_2468 difference-of-squares_binary64_2434 *-commutative_binary64_2396 flip-+_binary64_2439 sub-neg_binary64_2458 unswap-sqr_binary64_2433 associate-+r+_binary64_2397 associate-*l*_binary64_2406
+-commutative_binary64_2395 unpow2_binary64_2530 flip--_binary64_2440 sum-log_binary64_2556 distribute-lft-out--_binary64_2417 pow-exp_binary64_2533 pow-to-exp_binary64_2534 sqr-pow_binary64_2437 pow-pow_binary64_2537 distribute-lft-out_binary64_2416 flip3--_binary64_2469
Counts
4 → 87
Calls

4 calls:

13.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
10.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
9.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)))))
5.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)

series176.0ms (0.1%)

Counts
4 → 12
Calls

4 calls:

87.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)))))
33.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
31.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
24.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))

simplify58.0ms (0%)

Algorithm
egg-herbie
Counts
99 → 99
Iterations

Useful iterations: 0 (36.0ms)

IterNodesCost
052391789

prune155.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New96399
Fresh000
Picked101
Done000
Total973100

Merged error: 0.0b

Counts
100 → 3
Compiler

Compiled 3529 to 1804 computations (48.9% saved)

localize19.0ms (0%)

Local error

Found 4 expressions with local error:

0.0b
(+.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a))) (+.f64 (pow.f64 b 4) (pow.f64 a 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))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))
3.0b
(*.f64 (*.f64 b b) (*.f64 a a))

rewrite74.0ms (0%)

Algorithm
rewrite-expression-head
Rules
42×pow1_binary64_2526
32×associate-*r/_binary64_2407
26×add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
20×pow-prod-down_binary64_2536 frac-add_binary64_2473
14×flip3-+_binary64_2468 flip-+_binary64_2439 prod-exp_binary64_2514 cbrt-unprod_binary64_2498
13×*-un-lft-identity_binary64_2465 add-log-exp_binary64_2504 add-sqr-sqrt_binary64_2487
11×associate-*r*_binary64_2405
add-cube-cbrt_binary64_2500
distribute-lft-in_binary64_2414 sum-log_binary64_2556 distribute-rgt-in_binary64_2415 cancel-sign-sub-inv_binary64_2431
flip--_binary64_2440 flip3--_binary64_2469
pow-plus_binary64_2528 pow-prod-up_binary64_2535
*-commutative_binary64_2396 unswap-sqr_binary64_2433 associate-*l*_binary64_2406
difference-of-squares_binary64_2434 sub-neg_binary64_2458 pow2_binary64_2546 associate-+r+_binary64_2397 pow-sqr_binary64_2438
+-commutative_binary64_2395 associate-+l+_binary64_2398 distribute-lft-out--_binary64_2417 distribute-lft-out_binary64_2416
Counts
4 → 113
Calls

4 calls:

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

series163.0ms (0.1%)

Counts
4 → 12
Calls

4 calls:

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

simplify98.0ms (0.1%)

Algorithm
egg-herbie
Counts
125 → 125
Iterations

Useful iterations: 0 (56.0ms)

IterNodesCost
049734501
149734501

prune284.0ms (0.2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1232125
Fresh202
Picked011
Done000
Total1253128

Merged error: 0.0b

Counts
128 → 3
Compiler

Compiled 6618 to 3854 computations (41.8% saved)

localize42.0ms (0%)

Local error

Found 4 expressions with local error:

1.2b
(*.f64 (*.f64 b b) (+.f64 a 3))
1.2b
(*.f64 (*.f64 b b) (+.f64 a 3))
6.5b
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 4) (*.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (*.f64 4 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) 3))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
49.4b
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 4) (*.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (*.f64 4 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) 3))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))

rewrite29.2s (19.4%)

Algorithm
rewrite-expression-head
Rules
130606×associate-*r/_binary64_2407
50912×frac-add_binary64_2473
46644×frac-times_binary64_2475
42987×flip--_binary64_2440 flip3--_binary64_2469
23424×cube-div_binary64_2494
21703×flip3-+_binary64_2468 flip-+_binary64_2439
19386×associate-*l/_binary64_2408
11808×frac-sub_binary64_2474
9762×associate-/l/_binary64_2412
488×associate-/r/_binary64_2411
22×*-un-lft-identity_binary64_2465
19×add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
14×pow1_binary64_2526
12×add-sqr-sqrt_binary64_2487 cancel-sign-sub-inv_binary64_2431 associate-+r+_binary64_2397
10×distribute-lft-in_binary64_2414 add-cube-cbrt_binary64_2500 distribute-rgt-in_binary64_2415
associate-*r*_binary64_2405
prod-exp_binary64_2514 cbrt-unprod_binary64_2498
add-log-exp_binary64_2504 pow-prod-down_binary64_2536 distribute-lft-out_binary64_2416
associate-+l+_binary64_2398 sub-neg_binary64_2458 unpow-prod-down_binary64_2544
times-frac_binary64_2471 associate-/l*_binary64_2410
*-commutative_binary64_2396 cbrt-undiv_binary64_2499 unswap-sqr_binary64_2433 div-exp_binary64_2516 associate-*l*_binary64_2406
+-commutative_binary64_2395 associate-/r*_binary64_2409 sum-log_binary64_2556 clear-num_binary64_2464 div-inv_binary64_2462 frac-2neg_binary64_2476
Counts
4 → 20106
Calls

4 calls:

1.1s
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 4) (*.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (*.f64 4 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) 3))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
317.0ms
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 4) (*.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (*.f64 4 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) 3))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
9.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))
8.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))

series2.5s (1.6%)

Counts
4 → 12
Calls

4 calls:

1.8s
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 4) (*.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (*.f64 4 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) 3))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
631.0ms
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 4) (*.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (*.f64 4 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) 3))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))) (*.f64 (+.f64 (*.f64 (pow.f64 a 4) (*.f64 (-.f64 1 a) (-.f64 1 a))) (*.f64 b (*.f64 (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))) (-.f64 (*.f64 (*.f64 (*.f64 b a) (*.f64 b a)) 2) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
21.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))
21.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))

simplify1.0min (41%)

Algorithm
egg-herbie
Counts
20118 → 20118
Iterations

Useful iterations: 0 (1.6s)

IterNodesCost
0442648604326

prune55.5s (37%)

Profiling

Loading profile data...