Details

Time bar (total: 5.3s)

analyze3.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
75%75%25%0%0%0%0%4
87.5%87.5%12.5%0%0%0%0%5
93.8%93.7%6.2%0%0%0%0%6
96.9%96.8%3.1%0%0%0%0%7
98.4%98.4%1.6%0%0%0%0%8
99.2%99.2%0.8%0%0%0%0%9
99.6%99.6%0.4%0%0%0%0%10
99.8%99.8%0.2%0%0%0%0%11
99.9%99.9%0.1%0%0%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample2.7s (51.3%)

Results
2.7s8256×body256valid
Bogosity

preprocess136.0ms (2.6%)

Algorithm
egg-herbie
Rules
1810×rational.json-simplify-35
1348×rational.json-simplify-53
1022×rational.json-simplify-39
862×rational.json-simplify-59
610×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11017
21217
31417
41817
53817
619117
7197017
8594217
9779717
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Outputs
(sqrt.f64 (*.f64 (*.f64 2 x) x))
(sqrt.f64 (*.f64 x (*.f64 2 x)))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify140.0ms (2.7%)

Algorithm
egg-herbie
Rules
1810×rational.json-simplify-35
1348×rational.json-simplify-53
1022×rational.json-simplify-39
862×rational.json-simplify-59
610×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11017
21217
31417
41817
53817
619117
7197017
8594217
9779717
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Outputs
(sqrt.f64 (*.f64 (*.f64 2 x) x))
(sqrt.f64 (*.f64 x (*.f64 2 x)))
(sqrt.f64 (*.f64 2 (*.f64 x x)))

eval1.0ms (0%)

Compiler

Compiled 19 to 13 computations (31.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New213
Fresh011
Picked000
Done000
Total224
Error
31.8b
Counts
4 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
31.8b
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
30.8b
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Compiler

Compiled 17 to 11 computations (35.3% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite99.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
2056×rational.json-1
1464×rational.json-simplify-35
1168×rational.json-simplify-2
1036×exponential.json-3
1036×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
15217
210917
321417
438517
592417
6309217
7790417
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2) (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)))))

simplify109.0ms (2.1%)

Algorithm
egg-herbie
Rules
1662×rational.json-simplify-35
1490×rational.json-simplify-46
1036×rational.json-simplify-2
840×rational.json-simplify-1
568×rational.json-simplify-19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
054564
1106556
2387556
31086556
41760556
53462556
66312556
77027556
Stop Event
node limit
Counts
36 → 29
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(+.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 0)
(+.f64 0 (sqrt.f64 (*.f64 2 (*.f64 x x))))
(+.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2) (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2))
(-.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 0)
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2))
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (*.f64 x x))))
(*.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))) 1/2)
(*.f64 4 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4) 1/4)
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8) 1/8)
(*.f64 1/2 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/4) 4)
(*.f64 1/8 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))
(/.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)
(/.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8)))) 64)
(pow.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)
Outputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 0)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(+.f64 0 (sqrt.f64 (*.f64 2 (*.f64 x x))))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2) (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(-.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 0)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 1 (sqrt.f64 (*.f64 2 (*.f64 x x))))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))) 1/2)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 4 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/4))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4) 1/4)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8) 1/8)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/2) 2)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1/4) 4)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(*.f64 1/8 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (*.f64 x x)))) 2)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 4) 4)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8) 8)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8)) 16)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))) 32)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 8)))) 64)
(sqrt.f64 (*.f64 2 (*.f64 x x)))
(pow.f64 (sqrt.f64 (*.f64 2 (*.f64 x x))) 1)
(sqrt.f64 (*.f64 2 (*.f64 x x)))

eval5.0ms (0.1%)

Compiler

Compiled 284 to 200 computations (29.6% saved)

prune96.0ms (1.8%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New27229
Fresh000
Picked011
Done000
Total27330
Error
0.2b
Counts
30 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
32.5b
(*.f64 (sqrt.f64 2) (neg.f64 x))
30.5b
(*.f64 (sqrt.f64 2) x)
31.8b
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 2) x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

series0.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite221.0ms (4.2%)

Algorithm
batch-egg-rewrite
Rules
1740×rational.json-simplify-35
1606×rational.json-1
1606×rational.json-2
1508×rational.json-simplify-53
1262×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14511
29511
318311
432311
570511
6168011
7291011
8383211
9497511
10612411
11708311
12708311
13771011
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) (*.f64 x 1/2)) (*.f64 (sqrt.f64 2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 2) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4)))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 (sqrt.f64 2) x)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (*.f64 8 (*.f64 x 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4)))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 2) x) 1)))))

simplify1.1s (20%)

Algorithm
egg-herbie
Rules
3900×rational.json-simplify-35
2832×rational.json-simplify-2
1574×rational.json-simplify-53
960×exponential.json-simplify-26
930×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047165
1136165
2291165
3819165
42034165
53334165
64237165
74530165
84672165
94779165
104886165
115468165
125747165
135965165
146156165
156258165
166405165
176484165
186484165
196591165
206698165
216805165
226921165
237028165
247135165
257466165
267573165
277680165
287787165
297894165
Stop Event
node limit
Counts
15 → 16
Calls
Call 1
Inputs
(+.f64 (*.f64 (sqrt.f64 2) x) 0)
(+.f64 0 (*.f64 (sqrt.f64 2) x))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 x 1/2)) (*.f64 (sqrt.f64 2) (*.f64 x 1/2)))
(-.f64 (*.f64 (sqrt.f64 2) x) 0)
(/.f64 (*.f64 (sqrt.f64 2) x) 1)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 2) x)) 2)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x 4)) 4)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4)))) 128)
(/.f64 (*.f64 16 (*.f64 (sqrt.f64 2) x)) 16)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 8 (*.f64 x 4))) 32)
(/.f64 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4)))))) 512)
(pow.f64 (*.f64 (sqrt.f64 2) x) 1)
Outputs
(+.f64 (*.f64 (sqrt.f64 2) x) 0)
(*.f64 (sqrt.f64 2) x)
(+.f64 0 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) x)
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 x 1/2)) (*.f64 (sqrt.f64 2) (*.f64 x 1/2)))
(*.f64 (sqrt.f64 2) x)
(-.f64 (*.f64 (sqrt.f64 2) x) 0)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 (sqrt.f64 2) x) 1)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 2) x)) 2)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x 4)) 4)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x 8)) 8)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4)))) 128)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 16 (*.f64 (sqrt.f64 2) x)) 16)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 8 (*.f64 x 4))) 32)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4))) 64)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4))))) 256)
(*.f64 (sqrt.f64 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (sqrt.f64 2) (*.f64 x 4)))))) 512)
(*.f64 (sqrt.f64 2) x)
(pow.f64 (*.f64 (sqrt.f64 2) x) 1)
(*.f64 (sqrt.f64 2) x)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 2) (neg.f64 x))
Compiler

Compiled 12 to 8 computations (33.3% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite128.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
1910×rational.json-simplify-35
1610×rational.json-1
1610×rational.json-2
1610×rational.json-4
1610×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
15515
212515
326015
451215
5121815
6258615
7447415
8572815
9732015
Stop Event
node limit
Counts
1 → 25
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (neg.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (sqrt.f64 2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 (sqrt.f64 2) x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) (*.f64 x -1/2)) (*.f64 (sqrt.f64 2) (*.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 (sqrt.f64 2) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sqrt.f64 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 (*.f64 (sqrt.f64 2) x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 (sqrt.f64 2) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (*.f64 x -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (*.f64 x -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8 (*.f64 (sqrt.f64 2) x)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 2) (+.f64 x x))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 2) (+.f64 x x)))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sqrt.f64 2) x))))))

simplify276.0ms (5.2%)

Algorithm
egg-herbie
Rules
2282×rational.json-simplify-2
1868×rational.json-simplify-35
1724×rational.json-simplify-1
1168×rational.json-simplify-41
1086×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068577
1174577
2373577
3909577
42522577
54652577
65254577
75617577
85876577
96143577
106179577
117445577
127883577
Stop Event
node limit
Counts
37 → 30
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(+.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(+.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(+.f64 -1 (-.f64 1 (*.f64 (sqrt.f64 2) x)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 (sqrt.f64 2) x) -1)))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 x -1/2)) (*.f64 (sqrt.f64 2) (*.f64 x -1/2)))
(+.f64 (-.f64 1 (*.f64 (sqrt.f64 2) x)) -1)
(-.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(-.f64 0 (*.f64 (sqrt.f64 2) x))
(-.f64 -1 (+.f64 (*.f64 (sqrt.f64 2) x) -1))
(-.f64 (-.f64 1 (*.f64 (sqrt.f64 2) x)) 1)
(/.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x -2)) 2)
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x -4)) 4)
(/.f64 (*.f64 (sqrt.f64 2) x) -1)
(/.f64 (*.f64 -8 (*.f64 (sqrt.f64 2) x)) 8)
(/.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)
(/.f64 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))) 16)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 2) (+.f64 x x))) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 2) (+.f64 x x)))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))))))) 256)
(pow.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(neg.f64 (*.f64 (sqrt.f64 2) x))
Outputs
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 -1 (-.f64 1 (*.f64 (sqrt.f64 2) x)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 (sqrt.f64 2) x) -1)))
(+.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 (sqrt.f64 2) x))))
(+.f64 (*.f64 (sqrt.f64 2) (*.f64 x -1/2)) (*.f64 (sqrt.f64 2) (*.f64 x -1/2)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 (-.f64 1 (*.f64 (sqrt.f64 2) x)) -1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(-.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(-.f64 0 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(-.f64 -1 (+.f64 (*.f64 (sqrt.f64 2) x) -1))
(-.f64 -1 (+.f64 -1 (*.f64 (sqrt.f64 2) x)))
(-.f64 1 (-.f64 (*.f64 (sqrt.f64 2) x) -1))
(-.f64 (-.f64 1 (*.f64 (sqrt.f64 2) x)) 1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x -2)) 2)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) (*.f64 x -4)) 4)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) x) -1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 -8 (*.f64 (sqrt.f64 2) x)) 8)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))) 16)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 2) (+.f64 x x))) -4)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))) 32)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 2) (+.f64 x x)))) -8)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))))) 64)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))))) 128)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 (sqrt.f64 2) x))))))) 256)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(pow.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(neg.f64 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))

eval10.0ms (0.2%)

Compiler

Compiled 423 to 364 computations (13.9% saved)

prune8.0ms (0.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New46046
Fresh000
Picked011
Done022
Total46349
Error
0.2b
Counts
49 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
32.5b
(*.f64 (sqrt.f64 2) (neg.f64 x))
30.5b
(*.f64 (sqrt.f64 2) x)
31.8b
(sqrt.f64 (*.f64 (*.f64 2 x) x))
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes67.0ms (1.3%)

Accuracy

Total -62.2b remaining (-13839.1%)

Threshold costs -62.2b (-13839.1%)

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

3 calls:

52.0ms
(sqrt.f64 (*.f64 (*.f64 2 x) x))
7.0ms
(*.f64 (*.f64 2 x) x)
7.0ms
x
Results
ErrorSegmentsBranch
0.4b2x
14.4b3(sqrt.f64 (*.f64 (*.f64 2 x) x))
14.4b3(*.f64 (*.f64 2 x) x)
Compiler

Compiled 31 to 22 computations (29% saved)

bsearch19.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
-1.0079072536098313e-305
3.603476287487585e-298
Results
14.0ms160×body256valid
Compiler

Compiled 141 to 118 computations (16.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01546
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (*.f64 (sqrt.f64 2) (neg.f64 x)) (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) x)
Outputs
(if (<=.f64 x -2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (*.f64 (sqrt.f64 2) (neg.f64 x)) (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) x)
Compiler

Compiled 19 to 15 computations (21.1% saved)

soundness153.0ms (2.9%)

Algorithm
egg-herbie
Rules
1662×rational.json-simplify-35
1490×rational.json-simplify-46
1036×rational.json-simplify-2
840×rational.json-simplify-1
568×rational.json-simplify-19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
054564
1106556
2387556
31086556
41760556
53462556
66312556
77027556
Stop Event
node limit
Compiler

Compiled 18 to 15 computations (16.7% saved)

end20.0ms (0.4%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

Profiling

Loading profile data...