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)

sample808.0ms (38.7%)

Results
270.0ms2011×body1024valid
239.0ms2975×body256valid
142.0ms1982×body256infinite
111.0ms1083×body512valid
34.0ms205×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)

simplify69.0ms (3.3%)

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%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 6 to 4 computations (33.3% saved)

localize4.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 11 to 7 computations (36.4% 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))

rewrite50.0ms (2.4%)

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))))

simplify53.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.2%)

Compiler

Compiled 254 to 169 computations (33.5% saved)

prune4.0ms (0.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

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

Compiled 22 to 13 computations (40.9% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 2 computations (60% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 2 computations (60% saved)

localize5.0ms (0.3%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 16 to 8 computations (50% 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))

rewrite59.0ms (2.8%)

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)

prune6.0ms (0.3%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New55055
Fresh000
Picked011
Done033
Total55459
Accurracy
79.3%
Counts
59 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
78.5%
(+.f64 (*.f64 x x) (*.f64 x 2))
55.6%
(+.f64 x x)
78.5%
(*.f64 x (-.f64 x -2))
24.2%
(*.f64 x x)
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes13.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)
3.0ms
(*.f64 (+.f64 x 1) (+.f64 x 1))
2.0ms
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Results
AccuracySegmentsBranch
78.5%1x
78.5%1(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
78.5%1(*.f64 (+.f64 x 1) (+.f64 x 1))
78.5%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
78.5%1x
Compiler

Compiled 14 to 7 computations (50% saved)

regimes68.0ms (3.2%)

Accuracy

Total -45.1b remaining (-278.9%)

Threshold costs -45.1b (-278.9%)

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:

67.0ms
x
Results
AccuracySegmentsBranch
74.7%3x
Compiler

Compiled 9 to 4 computations (55.6% saved)

bsearch21.0ms (1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
10.0ms
0.4781108582568616
15.364136149655328
11.0ms
-24.083789680608962
-0.0032001966537613343
Results
19.0ms240×body256valid
Compiler

Compiled 164 to 101 computations (38.4% saved)

simplify5.0ms (0.2%)

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)

soundness541.0ms (25.9%)

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)

end218.0ms (10.4%)

Compiler

Compiled 86 to 46 computations (46.5% saved)

Profiling

Loading profile data...