Details

Time bar (total: 1.9s)

analyze5.0ms (0.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
0%50%50%3
25%25%50%4
37.5%12.5%50%5
43.7%6.2%50%6
46.9%3.1%50%7
48.4%1.6%50%8
49.2%0.8%50%9
49.6%0.4%50%10
49.8%0.2%50%11
49.9%0.1%50%12
Compiler

Compiled 21 to 16 computations (23.8% saved)

sample1.4s (74.8%)

Results
1.4s8256×body256valid
1.0ms11×body256invalid

preprocess91.0ms (4.7%)

Algorithm
egg-herbie
Rules
748×fma-neg_binary64
738×div-sub_binary64
598×fma-def_binary64
490×associate-/l*_binary64
423×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01529
13729
28927
323827
471027
5169525
6291925
7514425
8740225
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 -3 (*.f64 v v)))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 (*.f64 v v) -3))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (*.f64 (/.f64 (sqrt.f64 2) 4) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (/.f64 -4 (fma.f64 v v -1))))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (*.f64 -1/4 (fma.f64 v v -1))))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (fma.f64 (/.f64 v -4) v 1/4)))
Compiler

Compiled 21 to 16 computations (23.8% saved)

simplify50.0ms (2.6%)

Algorithm
egg-herbie
Rules
748×fma-neg_binary64
738×div-sub_binary64
598×fma-def_binary64
490×associate-/l*_binary64
423×distribute-rgt-in_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01529
13729
28927
323827
471027
5169525
6291925
7514425
8740225
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 -3 (*.f64 v v)))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 (*.f64 v v) -3))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (*.f64 (/.f64 (sqrt.f64 2) 4) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (/.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (/.f64 -4 (fma.f64 v v -1))))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (*.f64 -1/4 (fma.f64 v v -1))))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (fma.f64 (/.f64 v -4) v 1/4)))

eval1.0ms (0.1%)

Compiler

Compiled 37 to 28 computations (24.3% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Compiler

Compiled 20 to 15 computations (25% saved)

localize114.0ms (6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 3 (*.f64 v v))
0.1b
(*.f64 3 (*.f64 v v))
Compiler

Compiled 72 to 48 computations (33.3% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
v
@0
(*.f64 3 (*.f64 v v))
1.0ms
v
@inf
(*.f64 3 (*.f64 v v))
0.0ms
v
@-inf
(*.f64 3 (*.f64 v v))

rewrite46.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
432×pow1_binary64
419×add-sqr-sqrt_binary64
411×*-un-lft-identity_binary64
400×add-log-exp_binary64
400×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11027
211447
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 3 (*.f64 v v))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (pow.f64 (exp.f64 v) v) (pow.f64 (exp.f64 v) v))) (*.f64 v v))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (*.f64 v v)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 v v)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 v v)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 v v))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 v (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 v 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 v v)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 v v))))))))

simplify139.0ms (7.2%)

Algorithm
egg-herbie
Rules
1108×sqr-pow_binary64
618×cube-prod_binary64
555×fabs-mul_binary64
536×pow-sqr_binary64
451×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11284
22384
34484
410684
531584
6123584
7211684
8228084
9246484
10267284
11296384
12335684
13383484
14439584
15507784
16591284
17630884
18660284
19688084
20695084
21698484
22792584
Stop Event
node limit
Counts
26 → 16
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
Outputs
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))

eval7.0ms (0.4%)

Compiler

Compiled 354 to 256 computations (27.7% saved)

prune4.0ms (0.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New16016
Fresh000
Picked011
Done000
Total16117
Error
0b
Counts
17 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Compiler

Compiled 40 to 30 computations (25% saved)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
distribute-rgt-neg-in_binary64
cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01529
13129
24529
35129
45429
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (+.f64 1 (*.f64 -3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (+.f64 1 (*.f64 (*.f64 v v) -3)))) (-.f64 1 (*.f64 v v)))

end20.0ms (1%)

Stop Event
done
Compiler

Compiled 40 to 30 computations (25% saved)

Profiling

Loading profile data...