Expanding a square

Details

Time bar (total: 2.1s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
100%100%0%0%0%0%0%1
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample827.0ms (39.7%)

Results
297.0ms2017×body1024valid
217.0ms2965×body256valid
148.0ms2010×body256infinite
114.0ms1048×body512valid
41.0ms216×body2048valid
Bogosity

preprocess77.0ms (3.7%)

Algorithm
egg-herbie
Rules
1906×fma-def
1604×fma-neg
1178×distribute-lft-in
1078×associate--r-
1078×distribute-neg-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0721
12519
25813
313813
458313
5203713
6545613
7783113
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(fma.f64 (+.f64 x 1) (+.f64 x 1) -1)
(*.f64 (+.f64 x 2) (+.f64 x 0))
(*.f64 x (+.f64 x 2))
(*.f64 x (-.f64 x -2))
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify70.0ms (3.4%)

Algorithm
egg-herbie
Rules
1906×fma-def
1604×fma-neg
1178×distribute-lft-in
1078×associate--r-
1078×distribute-neg-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0721
12519
25813
313813
458313
5203713
6545613
7783113
Stop Event
node limit
Counts
1 → 5
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(fma.f64 (+.f64 x 1) (+.f64 x 1) -1)
(*.f64 (+.f64 x 2) (+.f64 x 0))
(*.f64 x (+.f64 x 2))
(*.f64 x (-.f64 x -2))

eval1.0ms (0%)

Compiler

Compiled 35 to 25 computations (28.6% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New415
Fresh101
Picked000
Done000
Total516
Accurracy
100.0%
Counts
6 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 x (-.f64 x -2))
100.0%
(*.f64 x (-.f64 x -2))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize18.0ms (0.9%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 x (-.f64 x -2))
Compiler

Compiled 12 to 8 computations (33.3% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

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

rewrite52.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1366×pow1
1274×add-exp-log
1274×log1p-expm1-u
1274×expm1-log1p-u
1252×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
113313
2167413
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 x (-.f64 x -2))
Outputs
(+.f64 (*.f64 x x) (*.f64 x 2))
(+.f64 (*.f64 x x) (*.f64 2 x))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) 8)) (fma.f64 x x (+.f64 4 (*.f64 x -2))))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) 8) x) (fma.f64 x x (+.f64 4 (*.f64 x -2))))
(/.f64 (*.f64 (fma.f64 x x -4) x) (+.f64 x -2))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(log.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))

simplify55.0ms (2.6%)

Algorithm
egg-herbie
Rules
1670×fma-def
1268×log-prod
724×*-commutative
646×distribute-lft-out
640×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058451
1134443
2398435
32440431
45933431
Stop Event
node limit
Counts
29 → 29
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 x x) (*.f64 x 2))
(+.f64 (*.f64 x x) (*.f64 2 x))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) 8)) (fma.f64 x x (+.f64 4 (*.f64 x -2))))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) 8) x) (fma.f64 x x (+.f64 4 (*.f64 x -2))))
(/.f64 (*.f64 (fma.f64 x x -4) x) (+.f64 x -2))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(log.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
Outputs
(*.f64 2 x)
(+.f64 x x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 x x) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 x x) (*.f64 2 x))
(*.f64 x (+.f64 2 x))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(*.f64 x (+.f64 2 x))
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) 8)) (fma.f64 x x (+.f64 4 (*.f64 x -2))))
(/.f64 x (/.f64 (fma.f64 x x (+.f64 4 (*.f64 x -2))) (+.f64 (pow.f64 x 3) 8)))
(/.f64 x (/.f64 (fma.f64 x x (fma.f64 x -2 4)) (+.f64 (pow.f64 x 3) 8)))
(/.f64 (fma.f64 x 8 (pow.f64 x 4)) (fma.f64 x x (fma.f64 x -2 4)))
(/.f64 (fma.f64 x 8 (pow.f64 x 4)) (fma.f64 x (+.f64 x -2) 4))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(*.f64 (/.f64 x (+.f64 x -2)) (fma.f64 x x -4))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) 8) x) (fma.f64 x x (+.f64 4 (*.f64 x -2))))
(/.f64 x (/.f64 (fma.f64 x x (+.f64 4 (*.f64 x -2))) (+.f64 (pow.f64 x 3) 8)))
(/.f64 x (/.f64 (fma.f64 x x (fma.f64 x -2 4)) (+.f64 (pow.f64 x 3) 8)))
(/.f64 (fma.f64 x 8 (pow.f64 x 4)) (fma.f64 x x (fma.f64 x -2 4)))
(/.f64 (fma.f64 x 8 (pow.f64 x 4)) (fma.f64 x (+.f64 x -2) 4))
(/.f64 (*.f64 (fma.f64 x x -4) x) (+.f64 x -2))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(*.f64 (/.f64 x (+.f64 x -2)) (fma.f64 x x -4))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(*.f64 x (+.f64 2 x))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(*.f64 x (+.f64 2 x))
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(*.f64 x (+.f64 2 x))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(*.f64 x (+.f64 2 x))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(*.f64 x (+.f64 2 x))
(log.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))
(*.f64 x (+.f64 2 x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(*.f64 x (+.f64 2 x))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))

eval5.0ms (0.3%)

Compiler

Compiled 254 to 169 computations (33.5% saved)

prune13.0ms (0.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New26329
Fresh000
Picked011
Done000
Total26430
Accurracy
100.0%
Counts
30 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 x x) (*.f64 x 2))
45.6%
(+.f64 x x)
100.0%
(*.f64 x (-.f64 x -2))
56.0%
(*.f64 x x)
100.0%
(+.f64 (*.f64 x x) (*.f64 x 2))
45.6%
(+.f64 x x)
100.0%
(*.f64 x (-.f64 x -2))
56.0%
(*.f64 x x)
Compiler

Compiled 44 to 26 computations (40.9% saved)

localize27.0ms (1.3%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(+.f64 (*.f64 x x) (*.f64 x 2))
Compiler

Compiled 25 to 10 computations (60% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 (*.f64 x x) (*.f64 x 2))
0.0ms
x
@-inf
(+.f64 (*.f64 x x) (*.f64 x 2))
0.0ms
x
@inf
(+.f64 (*.f64 x x) (*.f64 x 2))

rewrite54.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1580×pow1
1474×add-exp-log
1472×log1p-expm1-u
1472×expm1-log1p-u
1448×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
115413
2205613
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 x 2))
Outputs
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(-.f64 (/.f64 (pow.f64 x 4) (*.f64 x (-.f64 x 2))) (/.f64 (*.f64 (*.f64 x x) 4) (*.f64 x (-.f64 x 2))))
(*.f64 x (+.f64 x 2))
(*.f64 (*.f64 x (+.f64 x 2)) 1)
(*.f64 1 (*.f64 x (+.f64 x 2)))
(*.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 2) (cbrt.f64 (*.f64 x (+.f64 x 2))))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (+.f64 x 2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (+.f64 x 2)))
(*.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) (sqrt.f64 (*.f64 x (+.f64 x 2))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2)))))
(*.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4)) (/.f64 1 (*.f64 x (-.f64 x 2))))
(*.f64 (+.f64 x 2) x)
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2))) (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6))))
(/.f64 1 (/.f64 (*.f64 x (-.f64 x 2)) (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4))))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2))))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (+.f64 (*.f64 (*.f64 x x) 4) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 x 3) 2))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4)) (*.f64 x (-.f64 x 2)))
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4))) (neg.f64 (*.f64 x (-.f64 x 2))))
(/.f64 (-.f64 (*.f64 (*.f64 x x) 4) (pow.f64 x 4)) (-.f64 (*.f64 x 2) (*.f64 x x)))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(log.f64 (exp.f64 (*.f64 x (+.f64 x 2))))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(fma.f64 x x (*.f64 x 2))
(fma.f64 x 2 (*.f64 x x))
(fma.f64 2 x (*.f64 x x))
(fma.f64 1 (*.f64 x x) (*.f64 x 2))
(fma.f64 1 (*.f64 x 2) (*.f64 x x))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 2)) 2) (cbrt.f64 (*.f64 x 2)) (*.f64 x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2))
(fma.f64 (sqrt.f64 (*.f64 x 2)) (sqrt.f64 (*.f64 x 2)) (*.f64 x x))

simplify56.0ms (2.7%)

Algorithm
egg-herbie
Rules
1186×fma-neg
928×div-sub
820×times-frac
632×fma-def
580×log-prod
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01021157
12841107
2995981
35227981
Stop Event
node limit
Counts
51 → 55
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(-.f64 (/.f64 (pow.f64 x 4) (*.f64 x (-.f64 x 2))) (/.f64 (*.f64 (*.f64 x x) 4) (*.f64 x (-.f64 x 2))))
(*.f64 x (+.f64 x 2))
(*.f64 (*.f64 x (+.f64 x 2)) 1)
(*.f64 1 (*.f64 x (+.f64 x 2)))
(*.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 2) (cbrt.f64 (*.f64 x (+.f64 x 2))))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (+.f64 x 2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (+.f64 x 2)))
(*.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) (sqrt.f64 (*.f64 x (+.f64 x 2))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2)))))
(*.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4)) (/.f64 1 (*.f64 x (-.f64 x 2))))
(*.f64 (+.f64 x 2) x)
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2))) (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6))))
(/.f64 1 (/.f64 (*.f64 x (-.f64 x 2)) (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4))))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2))))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (+.f64 (*.f64 (*.f64 x x) 4) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 x 3) 2))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4)) (*.f64 x (-.f64 x 2)))
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4))) (neg.f64 (*.f64 x (-.f64 x 2))))
(/.f64 (-.f64 (*.f64 (*.f64 x x) 4) (pow.f64 x 4)) (-.f64 (*.f64 x 2) (*.f64 x x)))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(log.f64 (exp.f64 (*.f64 x (+.f64 x 2))))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(fma.f64 x x (*.f64 x 2))
(fma.f64 x 2 (*.f64 x x))
(fma.f64 2 x (*.f64 x x))
(fma.f64 1 (*.f64 x x) (*.f64 x 2))
(fma.f64 1 (*.f64 x 2) (*.f64 x x))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 2)) 2) (cbrt.f64 (*.f64 x 2)) (*.f64 x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2))
(fma.f64 (sqrt.f64 (*.f64 x 2)) (sqrt.f64 (*.f64 x 2)) (*.f64 x x))
Outputs
(*.f64 2 x)
(+.f64 x x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(*.f64 x (+.f64 2 x))
(-.f64 (/.f64 (pow.f64 x 4) (*.f64 x (-.f64 x 2))) (/.f64 (*.f64 (*.f64 x x) 4) (*.f64 x (-.f64 x 2))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x 4))) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 4)) (*.f64 x (+.f64 x -2)))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(*.f64 x (+.f64 x 2))
(*.f64 x (+.f64 2 x))
(*.f64 (*.f64 x (+.f64 x 2)) 1)
(*.f64 x (+.f64 2 x))
(*.f64 1 (*.f64 x (+.f64 x 2)))
(*.f64 x (+.f64 2 x))
(*.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 2))
(*.f64 x (+.f64 2 x))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 2) (cbrt.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (+.f64 x 2)))
(*.f64 x (+.f64 2 x))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (+.f64 x 2)))
(*.f64 x (+.f64 2 x))
(*.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) (sqrt.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2)))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (pow.f64 x 3)))) (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 4 (*.f64 x x) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(*.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4)) (/.f64 1 (*.f64 x (-.f64 x 2))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x 4))) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 4)) (*.f64 x (+.f64 x -2)))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(*.f64 (+.f64 x 2) x)
(*.f64 x (+.f64 2 x))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2))) (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (pow.f64 x 3)))) (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 4 (*.f64 x x) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 1 (/.f64 (*.f64 x (-.f64 x 2)) (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x 4))) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 4)) (*.f64 x (+.f64 x -2)))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (pow.f64 x 3)))) (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 4 (*.f64 x x) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6)) (+.f64 (*.f64 (*.f64 x x) 4) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 x 3) 2))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (pow.f64 x 3)))) (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 4 (*.f64 x x) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4)) (*.f64 x (-.f64 x 2)))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x 4))) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 4)) (*.f64 x (+.f64 x -2)))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 3) 8) (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (*.f64 x x) 4) (*.f64 (pow.f64 x 3) 2)))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (pow.f64 x 3)))) (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 x (*.f64 x 4) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 4 (*.f64 x x) (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 x x) 4))) (neg.f64 (*.f64 x (-.f64 x 2))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x 4))) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 4)) (*.f64 x (+.f64 x -2)))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(/.f64 (-.f64 (*.f64 (*.f64 x x) 4) (pow.f64 x 4)) (-.f64 (*.f64 x 2) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 x (*.f64 x 4))) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) 4)) (*.f64 x (+.f64 x -2)))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(*.f64 x (+.f64 2 x))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(*.f64 x (+.f64 2 x))
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(*.f64 x (+.f64 2 x))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(*.f64 x (+.f64 2 x))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(*.f64 x (+.f64 2 x))
(log.f64 (exp.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(*.f64 x (+.f64 2 x))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(fma.f64 x x (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 x 2 (*.f64 x x))
(*.f64 x (+.f64 2 x))
(fma.f64 2 x (*.f64 x x))
(*.f64 x (+.f64 2 x))
(fma.f64 1 (*.f64 x x) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 1 (*.f64 x 2) (*.f64 x x))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 2)) 2) (cbrt.f64 (*.f64 x 2)) (*.f64 x x))
(*.f64 x (+.f64 2 x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (*.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 x 4)) (*.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 x 4)) (+.f64 x x))
(fma.f64 (sqrt.f64 (*.f64 x 2)) (sqrt.f64 (*.f64 x 2)) (*.f64 x x))
(*.f64 x (+.f64 2 x))

eval12.0ms (0.6%)

Compiler

Compiled 671 to 447 computations (33.4% saved)

prune79.0ms (3.8%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New55055
Fresh000
Picked033
Done011
Total55459
Accurracy
100.0%
Counts
59 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 x x) (*.f64 x 2))
45.6%
(+.f64 x x)
100.0%
(*.f64 x (-.f64 x -2))
56.0%
(*.f64 x x)
Compiler

Compiled 50 to 29 computations (42% saved)

regimes12.0ms (0.6%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(+.f64 x x)
(*.f64 x (-.f64 x -2))
(+.f64 (*.f64 x x) (*.f64 x 2))
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(+.f64 (*.f64 x x) (*.f64 x 2))
Calls

4 calls:

4.0ms
x
3.0ms
(+.f64 x 1)
2.0ms
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
2.0ms
(*.f64 (+.f64 x 1) (+.f64 x 1))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
100.0%1(*.f64 (+.f64 x 1) (+.f64 x 1))
100.0%1(+.f64 x 1)
Compiler

Compiled 52 to 34 computations (34.6% saved)

regimes4.0ms (0.2%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(+.f64 x x)
(*.f64 x (-.f64 x -2))
Outputs
(*.f64 x (-.f64 x -2))
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
Compiler

Compiled 14 to 7 computations (50% saved)

regimes9.0ms (0.4%)

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

1 calls:

8.0ms
x
Results
AccuracySegmentsBranch
96.9%3x
Compiler

Compiled 9 to 4 computations (55.6% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x x)
Outputs
(*.f64 x x)
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
56.0%1x
Compiler

Compiled 6 to 3 computations (50% saved)

bsearch26.0ms (1.2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
9.175958657278557e-5
6.694290637606029
13.0ms
-2.6533865485472115
-4.440363095029017e-7
Results
23.0ms288×body256valid
Compiler

Compiled 194 to 119 computations (38.7% saved)

simplify5.0ms (0.3%)

Algorithm
egg-herbie
Rules
+-commutative
*-commutative
sub-neg
neg-mul-1
if-if-or-not
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01878
12978
23478
33678
43778
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 x 2))
(*.f64 x (-.f64 x -2))
(if (<=.f64 x -2) (*.f64 x x) (if (<=.f64 x 2) (+.f64 x x) (*.f64 x x)))
(*.f64 x x)
Outputs
(+.f64 (*.f64 x x) (*.f64 x 2))
(*.f64 x (-.f64 x -2))
(if (<=.f64 x -2) (*.f64 x x) (if (<=.f64 x 2) (+.f64 x x) (*.f64 x x)))
(*.f64 x x)
Compiler

Compiled 36 to 20 computations (44.4% saved)

soundness354.0ms (17%)

Rules
1906×fma-def
1670×fma-def
1670×fma-def
1604×fma-neg
1366×pow1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0721
12519
25813
313813
458313
5203713
6545613
7783113
0613
113313
2167413
058451
1134443
2398435
32440431
45933431
058451
1134443
2398435
32440431
45933431
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 177 to 128 computations (27.7% saved)

end321.0ms (15.4%)

Compiler

Compiled 86 to 46 computations (46.5% saved)

Profiling

Loading profile data...