Details

Time bar (total: 3.0s)

analyze83.0ms (2.8%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%74.9%0.1%0%25%0%4
16.7%12.5%62.4%0.1%0%25%0%5
30%18.7%43.7%0.1%0%37.5%0%6
45%28.1%34.3%0.1%0%37.5%0%7
58.3%32.8%23.4%0.1%0%43.7%0%8
66.7%36.7%18.3%0.1%1.2%43.7%0%9
76.2%39.4%12.3%0.1%1.4%46.8%0%10
81.5%41.6%9.5%0.1%2%46.8%0%11
87.2%43%6.3%0.1%2.2%48.4%0%12
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample2.0s (66.1%)

Results
1.9s8254×body256valid
22.0ms270×body256invalid
15.0ms164×body256infinite
0.0msbody1024valid
Bogosity

preprocess10.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01446
11846
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
(+.f64 (-.f64 1 y) (*.f64 x (sqrt.f64 y)))
Outputs
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
(+.f64 (-.f64 1 y) (*.f64 x (sqrt.f64 y)))
Compiler

Compiled 12 to 9 computations (25% saved)

simplify9.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
11223
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
Outputs
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))

eval0.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 10 to 7 computations (30% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 10 computations (54.5% saved)

series4.0ms (0.1%)

Counts
2 → 15
Calls

12 calls:

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

rewrite260.0ms (8.8%)

Algorithm
batch-egg-rewrite
Rules
1772×rational.json-simplify-35
1562×rational.json-simplify-1
1336×exponential.json-3
1336×rational.json-1
1336×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01034
17334
215334
329334
454634
5122134
6242834
7364934
8470934
9595434
10684634
11722734
12748434
13757034
Stop Event
node limit
Counts
2 → 44
Calls
Call 1
Inputs
(*.f64 y (sqrt.f64 x))
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (sqrt.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 x) (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 2)) (*.f64 (*.f64 1/2 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 x) 1/2)) (+.f64 y y)) (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 x) 1/2)) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/4 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 4)) (*.f64 (*.f64 1/4 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/4 (*.f64 (sqrt.f64 x) 1/2)) (*.f64 y 4)) (*.f64 (*.f64 1/4 (*.f64 (sqrt.f64 x) 1/2)) (*.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (/.f64 y 4)) (*.f64 (sqrt.f64 x) 4)) (*.f64 (*.f64 1/2 (/.f64 y 4)) (*.f64 (sqrt.f64 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (/.f64 (sqrt.f64 x) 4)) (*.f64 y 4)) (*.f64 (*.f64 1/2 (/.f64 (sqrt.f64 x) 4)) (*.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (sqrt.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 x) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (sqrt.f64 x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (sqrt.f64 x) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 y (sqrt.f64 x))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (sqrt.f64 x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (neg.f64 (+.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (-.f64 1 x) 2) (*.f64 (sqrt.f64 x) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 x) 2) (*.f64 (sqrt.f64 x) (+.f64 y y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)))))

simplify422.0ms (14.2%)

Algorithm
egg-herbie
Rules
2368×rational.json-simplify-35
1872×rational.json-simplify-2
1246×rational.json-simplify-1
1184×rational.json-simplify-51
1116×rational.json-simplify-48
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01151033
12811029
27171025
320181025
441971025
548021025
650761025
753801025
856531025
958741025
1070111025
1173201025
1273941025
1374991025
1475231025
1575471025
1676951025
1778421025
Stop Event
node limit
Counts
59 → 54
Calls
Call 1
Inputs
1
(*.f64 -1 x)
(*.f64 -1 x)
(-.f64 1 x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(*.f64 y (sqrt.f64 x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(*.f64 y (sqrt.f64 x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 (*.f64 y (sqrt.f64 x)) 0)
(+.f64 0 (*.f64 y (sqrt.f64 x)))
(+.f64 (*.f64 (sqrt.f64 x) (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) (*.f64 y 1/2)))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 2)) (*.f64 (*.f64 1/2 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 2)))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 x) 1/2)) (+.f64 y y)) (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 x) 1/2)) (+.f64 y y)))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 4)) (*.f64 (*.f64 1/4 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 4)))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 (sqrt.f64 x) 1/2)) (*.f64 y 4)) (*.f64 (*.f64 1/4 (*.f64 (sqrt.f64 x) 1/2)) (*.f64 y 4)))
(+.f64 (*.f64 (*.f64 1/2 (/.f64 y 4)) (*.f64 (sqrt.f64 x) 4)) (*.f64 (*.f64 1/2 (/.f64 y 4)) (*.f64 (sqrt.f64 x) 4)))
(+.f64 (*.f64 (*.f64 1/2 (/.f64 (sqrt.f64 x) 4)) (*.f64 y 4)) (*.f64 (*.f64 1/2 (/.f64 (sqrt.f64 x) 4)) (*.f64 y 4)))
(-.f64 (*.f64 y (sqrt.f64 x)) 0)
(/.f64 (*.f64 y (sqrt.f64 x)) 1)
(/.f64 (*.f64 (sqrt.f64 x) (+.f64 y y)) 2)
(/.f64 (*.f64 y (*.f64 (sqrt.f64 x) 4)) 4)
(/.f64 (*.f64 y (*.f64 (sqrt.f64 x) 8)) 8)
(/.f64 (*.f64 16 (*.f64 y (sqrt.f64 x))) 16)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x))))))) 256)
(pow.f64 (*.f64 y (sqrt.f64 x)) 1)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 0)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (neg.f64 (+.f64 x -2))) 1)
(*.f64 1 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)))
(*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)
(*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1/2))
(*.f64 4 (/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2) 1/2)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 1 x) 2) (*.f64 (sqrt.f64 x) (+.f64 y y))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1/2) 2)
(*.f64 (/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 4)
(*.f64 (+.f64 (*.f64 (-.f64 1 x) 2) (*.f64 (sqrt.f64 x) (+.f64 y y))) 1/2)
(/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)
Outputs
1
(*.f64 -1 x)
(neg.f64 x)
(*.f64 -1 x)
(neg.f64 x)
(-.f64 1 x)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 y (sqrt.f64 x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 y (sqrt.f64 x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) 1) x)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(+.f64 (*.f64 y (sqrt.f64 x)) 0)
(*.f64 y (sqrt.f64 x))
(+.f64 0 (*.f64 y (sqrt.f64 x)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (sqrt.f64 x) (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) (*.f64 y 1/2)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 2)) (*.f64 (*.f64 1/2 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 2)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 x) 1/2)) (+.f64 y y)) (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 x) 1/2)) (+.f64 y y)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 4)) (*.f64 (*.f64 1/4 (*.f64 y 1/2)) (*.f64 (sqrt.f64 x) 4)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 (sqrt.f64 x) 1/2)) (*.f64 y 4)) (*.f64 (*.f64 1/4 (*.f64 (sqrt.f64 x) 1/2)) (*.f64 y 4)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 1/2 (/.f64 y 4)) (*.f64 (sqrt.f64 x) 4)) (*.f64 (*.f64 1/2 (/.f64 y 4)) (*.f64 (sqrt.f64 x) 4)))
(*.f64 y (sqrt.f64 x))
(+.f64 (*.f64 (*.f64 1/2 (/.f64 (sqrt.f64 x) 4)) (*.f64 y 4)) (*.f64 (*.f64 1/2 (/.f64 (sqrt.f64 x) 4)) (*.f64 y 4)))
(*.f64 y (sqrt.f64 x))
(-.f64 (*.f64 y (sqrt.f64 x)) 0)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 y (sqrt.f64 x)) 1)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 (sqrt.f64 x) (+.f64 y y)) 2)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 y (*.f64 (sqrt.f64 x) 4)) 4)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 y (*.f64 (sqrt.f64 x) 8)) 8)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 16 (*.f64 y (sqrt.f64 x))) 16)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x)))) 32)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x))))) 64)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x)))))) 128)
(*.f64 y (sqrt.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y (sqrt.f64 x))))))) 256)
(*.f64 y (sqrt.f64 x))
(pow.f64 (*.f64 y (sqrt.f64 x)) 1)
(*.f64 y (sqrt.f64 x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 0)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (neg.f64 (+.f64 x -2))) 1)
(+.f64 (neg.f64 (+.f64 x -2)) (-.f64 (*.f64 y (sqrt.f64 x)) 1))
(+.f64 -1 (+.f64 (*.f64 y (sqrt.f64 x)) (neg.f64 (+.f64 x -2))))
(+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 -1 (+.f64 x -2)))
(*.f64 1 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)))
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1/2))
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 4 (/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4))
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2) 1/2)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 1/4)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2))
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 1 x) 2) (*.f64 (sqrt.f64 x) (+.f64 y y))))
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4))
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1/2) 2)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 (/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 4)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) 2) (*.f64 (sqrt.f64 x) (+.f64 y y))) 1/2)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 2) 2)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 4) 4)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8) 8)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)) 16)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8))) 32)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)))) 64)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8))))) 128)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 8)))))) 256)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))
(pow.f64 (+.f64 (*.f64 y (sqrt.f64 x)) (-.f64 1 x)) 1)
(+.f64 1 (-.f64 (*.f64 y (sqrt.f64 x)) x))

eval11.0ms (0.4%)

Compiler

Compiled 707 to 437 computations (38.2% saved)

prune9.0ms (0.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New50454
Fresh000
Picked011
Done000
Total50555
Error
0.1b
Counts
55 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.5b
(-.f64 1 x)
0.1b
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
42.7b
(*.f64 y (sqrt.f64 x))
43.9b
(neg.f64 x)
40.2b
1
Compiler

Compiled 28 to 21 computations (25% saved)

localize3.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (sqrt.f64 x))
Compiler

Compiled 10 to 4 computations (60% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval4.0ms (0.1%)

Compiler

Compiled 255 to 161 computations (36.9% saved)

prune5.0ms (0.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New20020
Fresh011
Picked011
Done033
Total20525
Error
0.1b
Counts
25 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.5b
(-.f64 1 x)
0.1b
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
42.7b
(*.f64 y (sqrt.f64 x))
43.9b
(neg.f64 x)
40.2b
1
Compiler

Compiled 28 to 21 computations (25% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0.1b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.5b
(-.f64 1 x)
0.1b
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
42.7b
(*.f64 y (sqrt.f64 x))
43.9b
(neg.f64 x)
40.2b
1
Compiler

Compiled 28 to 21 computations (25% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0.1b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.5b
(-.f64 1 x)
0.1b
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
42.7b
(*.f64 y (sqrt.f64 x))
43.9b
(neg.f64 x)
40.2b
1
Compiler

Compiled 28 to 21 computations (25% saved)

regimes15.0ms (0.5%)

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

3 calls:

6.0ms
y
4.0ms
x
4.0ms
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
Compiler

Compiled 36 to 22 computations (38.9% saved)

regimes29.0ms (1%)

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

2 calls:

17.0ms
x
11.0ms
y
Results
ErrorSegmentsBranch
18.0b5x
4.1b3y
Compiler

Compiled 18 to 12 computations (33.3% saved)

bsearch25.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
1.1569155925891894e+55
1.8109864695197763e+59
12.0ms
-1.4109637082860558e+48
-3.190713630656855e+46
Results
23.0ms240×body256valid
Compiler

Compiled 210 to 161 computations (23.3% saved)

regimes8.0ms (0.3%)

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

2 calls:

4.0ms
y
3.0ms
x
Results
ErrorSegmentsBranch
20.5b1x
20.5b1y
Compiler

Compiled 14 to 10 computations (28.6% saved)

regimes36.0ms (1.2%)

Accuracy

Total -41.5b remaining (-193.3%)

Threshold costs -41.5b (-193.3%)

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

2 calls:

29.0ms
y
6.0ms
x
Results
ErrorSegmentsBranch
21.5b2x
32.9b10y
Compiler

Compiled 11 to 8 computations (27.3% saved)

bsearch16.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
3.014603514493399e-5
171.35173123358481
Results
13.0ms138×body256valid
1.0msbody1024valid
0.0msbody512valid
Compiler

Compiled 96 to 83 computations (13.5% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02293
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
(if (<=.f64 y -1350000000000000018627068903549525580861461757952) (*.f64 y (sqrt.f64 x)) (if (<=.f64 y 25999999999999998817869988915108229390269079922238830936064) (-.f64 1 x) (*.f64 y (sqrt.f64 x))))
(-.f64 1 x)
(if (<=.f64 x 1) 1 (neg.f64 x))
1
Outputs
(+.f64 (-.f64 1 x) (*.f64 y (sqrt.f64 x)))
(if (<=.f64 y -1350000000000000018627068903549525580861461757952) (*.f64 y (sqrt.f64 x)) (if (<=.f64 y 25999999999999998817869988915108229390269079922238830936064) (-.f64 1 x) (*.f64 y (sqrt.f64 x))))
(-.f64 1 x)
(if (<=.f64 x 1) 1 (neg.f64 x))
1
Compiler

Compiled 48 to 33 computations (31.3% saved)

soundness0.0ms (0%)

end31.0ms (1%)

Compiler

Compiled 40 to 23 computations (42.5% saved)

Profiling

Loading profile data...