Details

Time bar (total: 1.6s)

analyze75.0ms (4.7%)

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
37.5%62.4%0.1%6
50%43.7%6.3%7
59.3%34.3%6.3%8
67.1%23.4%9.5%9
72.6%18%9.5%10
76.9%12.1%11%11
79.8%9.2%11%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample897.0ms (56.2%)

Results
867.0ms8256×body256valid
15.0ms137×body256invalid

preprocess33.0ms (2.1%)

Algorithm
egg-herbie
Rules
246×fma-def_binary64
86×fma-neg_binary64
38×distribute-rgt-in_binary64
28×sub-neg_binary64
26×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
11614
23514
36914
414414
521614
631514
745314
871414
973014
1075414
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 x (-.f64 1 y))
(*.f64 y (-.f64 1 x))
Outputs
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 x y))
(fma.f64 x (neg.f64 y) x)
(*.f64 y (-.f64 1 x))
(-.f64 y (*.f64 x y))
(fma.f64 x (neg.f64 y) y)
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify20.0ms (1.2%)

Algorithm
egg-herbie
Rules
146×fma-def_binary64
61×fma-neg_binary64
25×distribute-rgt-in_binary64
20×cancel-sign-sub-inv_binary64
19×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
1117
2217
3417
4927
51357
62017
72837
84357
94777
105087
115127
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 y))
Outputs
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 x y))

eval1.0ms (0%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 x (-.f64 1 y))
0.0b
(-.f64 x (*.f64 x y))
Compiler

Compiled 14 to 9 computations (35.7% saved)

localize7.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x (-.f64 1 y))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(*.f64 x (-.f64 1 y))
1.0ms
x
@0
(*.f64 x (-.f64 1 y))
1.0ms
x
@-inf
(*.f64 x (-.f64 1 y))
1.0ms
x
@inf
(*.f64 x (-.f64 1 y))
1.0ms
y
@inf
(*.f64 x (-.f64 1 y))

rewrite48.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
617×pow1_binary64
572×add-log-exp_binary64
572×log1p-expm1-u_binary64
572×expm1-log1p-u_binary64
561×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11227
215107
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (neg.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (-.f64 1 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 y 3)) x) (+.f64 1 (fma.f64 y y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y y)) x) (+.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (pow.f64 y 3))) (+.f64 1 (fma.f64 y y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 y y))) (+.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 1 y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (-.f64 1 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 1 y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (-.f64 1 y))))))))

simplify24.0ms (1.5%)

Algorithm
egg-herbie
Rules
126×fma-def_binary64
71×fma-neg_binary64
22×cancel-sign-sub-inv_binary64
19×associate-*r*_binary64
18×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011160
122160
244160
366160
4114160
5201160
6350160
7429160
8499160
9505160
Stop Event
saturated
Counts
41 → 24
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
Outputs
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))

localize5.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (*.f64 x y))
Compiler

Compiled 12 to 4 computations (66.7% saved)

series3.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(-.f64 x (*.f64 x y))
1.0ms
x
@0
(-.f64 x (*.f64 x y))
0.0ms
x
@-inf
(-.f64 x (*.f64 x y))
0.0ms
y
@inf
(-.f64 x (*.f64 x y))
0.0ms
y
@-inf
(-.f64 x (*.f64 x y))

rewrite54.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
649×pow1_binary64
604×add-log-exp_binary64
604×log1p-expm1-u_binary64
604×expm1-log1p-u_binary64
591×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11137
216507
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(-.f64 x (*.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (*.f64 x (neg.f64 y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x y)) (fma.f64 (neg.f64 y) x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x y)) (fma.f64 (neg.f64 x) y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x y)) (fma.f64 (*.f64 x (neg.f64 y)) 1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x y)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x y)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 x y))) (sqrt.f64 (*.f64 x y)) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (neg.f64 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 x (*.f64 x y))) (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 x (*.f64 x y))) 2) (cbrt.f64 (-.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 x (*.f64 x y))) (sqrt.f64 (-.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x y) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 x y) (+.f64 x (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2)) (/.f64 1 (+.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x y))) (-.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 x y) (+.f64 x (*.f64 x y)))) (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x y) 3)) (fma.f64 x x (*.f64 (*.f64 x y) (+.f64 x (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2)) (+.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (*.f64 x y) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 x y) (+.f64 x (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2))) (neg.f64 (+.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 x (neg.f64 y)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 x (neg.f64 y)) (*.f64 x (neg.f64 y))) (*.f64 x (*.f64 x (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (*.f64 x (neg.f64 y)) (*.f64 x (neg.f64 y)))) (-.f64 x (*.f64 x (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 x (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 x (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 x (*.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 x (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 x (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x (neg.f64 y)))))))

simplify24.0ms (1.5%)

Algorithm
egg-herbie
Rules
145×fma-def_binary64
71×fma-neg_binary64
21×cancel-sign-sub-inv_binary64
20×associate-*r*_binary64
18×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014160
127160
249160
388160
4136160
5223160
6371160
7451160
8519160
9525160
Stop Event
saturated
Counts
62 → 46
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
Outputs
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)

eval42.0ms (2.6%)

Compiler

Compiled 716 to 275 computations (61.6% saved)

prune16.0ms (1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New67370
Fresh000
Picked011
Done011
Total67572
Error
0b
Counts
72 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 y (neg.f64 x) x)
0.0b
(*.f64 x (-.f64 1 y))
34.1b
(*.f64 y (neg.f64 x))
29.2b
x
0.0b
(-.f64 x (*.f64 x y))
Compiler

Compiled 30 to 19 computations (36.7% saved)

localize4.0ms (0.3%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize5.0ms (0.3%)

Compiler

Compiled 11 to 4 computations (63.6% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done033
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 y (neg.f64 x) x)
0.0b
(*.f64 x (-.f64 1 y))
34.1b
(*.f64 y (neg.f64 x))
29.2b
x
0.0b
(-.f64 x (*.f64 x y))
Compiler

Compiled 30 to 19 computations (36.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 y (neg.f64 x) x)
0.0b
(*.f64 x (-.f64 1 y))
34.1b
(*.f64 y (neg.f64 x))
29.2b
x
0.0b
(-.f64 x (*.f64 x y))
Compiler

Compiled 30 to 19 computations (36.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 y (neg.f64 x) x)
0.0b
(*.f64 x (-.f64 1 y))
34.1b
(*.f64 y (neg.f64 x))
29.2b
x
0.0b
(-.f64 x (*.f64 x y))
Compiler

Compiled 30 to 19 computations (36.7% saved)

regimes49.0ms (3.1%)

Counts
5 → 1
Calls
Call 1
Inputs
x
(*.f64 y (neg.f64 x))
(-.f64 x (*.f64 x y))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
Outputs
(fma.f64 y (neg.f64 x) x)
Calls

5 calls:

30.0ms
(-.f64 1 y)
5.0ms
y
5.0ms
(*.f64 x (-.f64 1 y))
4.0ms
x
3.0ms
(-.f64 1 y)
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1(*.f64 x (-.f64 1 y))
0b1(-.f64 1 y)
0b1(-.f64 1 y)
Compiler

Compiled 45 to 27 computations (40% saved)

regimes16.0ms (1%)

Counts
4 → 1
Calls
Call 1
Inputs
x
(*.f64 y (neg.f64 x))
(-.f64 x (*.f64 x y))
(*.f64 x (-.f64 1 y))
Outputs
(*.f64 x (-.f64 1 y))
Calls

4 calls:

4.0ms
(*.f64 x (-.f64 1 y))
4.0ms
x
4.0ms
y
3.0ms
(-.f64 1 y)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 x (-.f64 1 y))
0.0b1(-.f64 1 y)
Compiler

Compiled 35 to 22 computations (37.1% saved)

regimes9.0ms (0.6%)

Counts
3 → 1
Calls
Call 1
Inputs
x
(*.f64 y (neg.f64 x))
(-.f64 x (*.f64 x y))
Outputs
(-.f64 x (*.f64 x y))
Calls

2 calls:

4.0ms
y
4.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
Compiler

Compiled 18 to 10 computations (44.4% saved)

regimes79.0ms (4.9%)

Accuracy

Total -59.5b remaining (-3074.9%)

Threshold costs -59.5b (-3074.9%)

Counts
2 → 3
Calls
Call 1
Inputs
x
(*.f64 y (neg.f64 x))
Outputs
(*.f64 y (neg.f64 x))
x
(*.f64 y (neg.f64 x))
Calls

2 calls:

69.0ms
x
9.0ms
y
Results
ErrorSegmentsBranch
21.1b11x
1.9b3y
Compiler

Compiled 13 to 8 computations (38.5% saved)

bsearch34.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
0.010098926281932824
48485.23548071284
16.0ms
-64296.49384424692
-0.006604921725952303
Compiler

Compiled 12 to 9 computations (25% saved)

simplify6.0ms (0.4%)

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
01847
13347
24447
34947
45147
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 x y))
(if (<=.f64 y -8836842825872187/137438953472) (*.f64 y (neg.f64 x)) (if (<=.f64 y 186292308542073952/18446744073709551616) x (*.f64 y (neg.f64 x))))
x
Outputs
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 x y))
(-.f64 x (*.f64 y x))
(if (<=.f64 y -8836842825872187/137438953472) (*.f64 y (neg.f64 x)) (if (<=.f64 y 186292308542073952/18446744073709551616) x (*.f64 y (neg.f64 x))))
(if (<=.f64 y -8836842825872187/137438953472) (*.f64 y (neg.f64 x)) (if (<=.f64 y 5821634641939811/576460752303423488) x (*.f64 y (neg.f64 x))))
x
Compiler

Compiled 43 to 25 computations (41.9% saved)

soundness100.0ms (6.2%)

Algorithm
egg-herbie
Rules
146×fma-def_binary64
145×fma-def_binary64
71×fma-neg_binary64
61×fma-neg_binary64
25×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
1117
2217
3417
4927
51357
62017
72837
84357
94777
105087
115127
014160
127160
249160
388160
4136160
5223160
6371160
7451160
8519160
9525160
Stop Event
saturated
saturated
Compiler

Compiled 97 to 66 computations (32% saved)

end35.0ms (2.2%)

Compiler

Compiled 35 to 16 computations (54.3% saved)

Profiling

Loading profile data...