Details

Time bar (total: 7.4s)

analyze5.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 7 computations (12.5% saved)

sample4.3s (58.4%)

Results
4.3s8256×body256valid
Bogosity

preprocess10.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
1917
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Outputs
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Compiler

Compiled 8 to 7 computations (12.5% saved)

simplify46.0ms (0.6%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
1917
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Outputs
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))

eval0.0ms (0%)

Compiler

Compiled 7 to 6 computations (14.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
31.9b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
31.9b
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Compiler

Compiled 7 to 6 computations (14.3% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 17 to 13 computations (23.5% saved)

series2.0ms (0%)

Counts
2 → 12
Calls

6 calls:

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

rewrite323.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
3126×rational.json-simplify-35
1872×rational.json-simplify-2
1260×rational.json-simplify-1
1138×exponential.json-3
1138×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
15130
210730
320030
435230
578030
6182930
7306030
8367130
9434530
10514430
11556330
12556330
13603430
14603430
15662430
16749530
17798330
Stop Event
node limit
Counts
2 → 48
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2) (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (pow.f64 x 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 3/2) (*.f64 (pow.f64 x 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 16) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 16)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (pow.f64 x 2)) 1)))))

simplify415.0ms (5.6%)

Algorithm
egg-herbie
Rules
4028×rational.json-simplify-51
3042×rational.json-simplify-41
1998×rational.json-simplify-35
1436×rational.json-simplify-2
752×rational.json-simplify-43
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01021010
12471002
2639888
31950888
43353888
53741888
63814888
73885888
83945888
94004888
104353888
114412888
124471888
134530888
144589888
154648888
164707888
174766888
184825888
194884888
Stop Event
node limit
Counts
60 → 54
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 (pow.f64 x 2))) 0)
(+.f64 0 (sqrt.f64 (*.f64 2 (pow.f64 x 2))))
(+.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2) (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2))
(-.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 0)
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2))
(*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)
(*.f64 1 (sqrt.f64 (*.f64 2 (pow.f64 x 2))))
(*.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))) 1/2)
(*.f64 4 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4) 1/4)
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8) 1/8)
(*.f64 1/2 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2) 2)
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/4) 4)
(*.f64 1/8 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)
(/.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))))))) 2048)
(pow.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (pow.f64 x 2) 3/2))
(+.f64 (*.f64 (pow.f64 x 2) 3/2) (*.f64 (pow.f64 x 2) 1/2))
(-.f64 (*.f64 2 (pow.f64 x 2)) 0)
(/.f64 (*.f64 2 (pow.f64 x 2)) 1)
(/.f64 (*.f64 (pow.f64 x 2) 4) 2)
(/.f64 (*.f64 (pow.f64 x 2) 8) 4)
(/.f64 (*.f64 (pow.f64 x 2) 16) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 16)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))))))) 2048)
(pow.f64 (*.f64 2 (pow.f64 x 2)) 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 (pow.f64 x 2))) 0)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(+.f64 0 (sqrt.f64 (*.f64 2 (pow.f64 x 2))))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2) (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(-.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 0)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 1 (sqrt.f64 (*.f64 2 (pow.f64 x 2))))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))) 1/2)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 4 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/4))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4) 1/4)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8) 1/8)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 1/2 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/2) 2)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1/4) 4)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 1/8 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (sqrt.f64 (*.f64 2 (pow.f64 x 2)))) 2)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 4) 4)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8) 8)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)) 16)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))) 32)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))) 64)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))) 128)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))))) 256)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))))) 512)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8)))))))) 1024)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 8))))))))) 2048)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(pow.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 2))) 1)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) 0)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(+.f64 0 (*.f64 2 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (pow.f64 x 2) 3/2))
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) 3/2) (*.f64 (pow.f64 x 2) 1/2))
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(-.f64 (*.f64 2 (pow.f64 x 2)) 0)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 4) 2)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 8) 4)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 16) 8)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 16)) 16)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))) 32)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))) 64)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))) 128)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))))) 256)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))))) 512)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16)))))))) 1024)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 16))))))))) 2048)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(pow.f64 (*.f64 2 (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))

eval14.0ms (0.2%)

Compiler

Compiled 621 to 563 computations (9.3% saved)

prune7.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New52254
Fresh000
Picked011
Done000
Total52355
Error
0.2b
Counts
55 → 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.9b
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Compiler

Compiled 18 to 15 computations (16.7% saved)

localize45.0ms (0.6%)

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)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite225.0ms (3.1%)

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

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

rewrite132.0ms (1.8%)

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

simplify277.0ms (3.8%)

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

eval11.0ms (0.1%)

Compiler

Compiled 423 to 364 computations (13.9% saved)

prune6.0ms (0.1%)

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.9b
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Compiler

Compiled 18 to 15 computations (16.7% saved)

regimes30.0ms (0.4%)

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 2 (pow.f64 x 2)))
Outputs
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 (sqrt.f64 2) x)
Calls

4 calls:

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

Compiled 35 to 28 computations (20% saved)

bsearch19.0ms (0.3%)

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

Compiled 141 to 119 computations (15.6% 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)

soundness397.0ms (5.4%)

Algorithm
egg-herbie
Rules
4028×rational.json-simplify-51
3042×rational.json-simplify-41
1998×rational.json-simplify-35
1436×rational.json-simplify-2
752×rational.json-simplify-43
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01021010
12471002
2639888
31950888
43353888
53741888
63814888
73885888
83945888
94004888
104353888
114412888
124471888
134530888
144589888
154648888
164707888
174766888
184825888
194884888
Stop Event
node limit
Compiler

Compiled 18 to 15 computations (16.7% saved)

end20.0ms (0.3%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

Profiling

Loading profile data...