Details

Time bar (total: 2.8s)

analyze45.0ms (1.6%)

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%87.4%0.1%0%12.5%0%4
7.7%6.2%74.9%0.1%0%18.7%0%5
17.4%12.5%59.3%0.1%0%28.1%0%6
34.9%23.4%43.7%0.1%0%32.8%0%7
45.6%28.1%33.6%0.1%0%38.2%0%8
60.3%35.5%23.4%0.1%0%41%0%9
68.3%38.2%17.8%0.1%0%43.9%0%10
77.8%42.4%12.1%0.1%0%45.4%0%11
82.8%43.9%9.1%0.1%0%46.9%0%12
Compiler

Compiled 7 to 5 computations (28.6% saved)

sample1.2s (44.8%)

Results
1.2s8256×body256valid
38.0ms547×body256invalid
Bogosity

preprocess80.0ms (2.9%)

Algorithm
egg-herbie
Rules
swap-x-y
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
1922
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(sqrt.f64 (+.f64 x y))
(sqrt.f64 (+.f64 y x))
Outputs
(sqrt.f64 (+.f64 x y))
(sqrt.f64 (+.f64 y x))
(sqrt.f64 (+.f64 x y))
Symmetry

(sort x y)

Compiler

Compiled 8 to 6 computations (25% saved)

simplify9.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
1811
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x y))
Outputs
(sqrt.f64 (+.f64 x y))

eval0.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 6 to 4 computations (33.3% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (+.f64 x y))
Compiler

Compiled 11 to 4 computations (63.6% saved)

series2.0ms (0.1%)

Counts
1 → 8
Calls

6 calls:

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

rewrite253.0ms (9.2%)

Algorithm
batch-egg-rewrite
Rules
2316×rational.json-simplify-35
2030×rational.json-simplify-2
1258×exponential.json-3
1258×rational.json-1
1258×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14511
210011
320511
438011
584911
6215911
7376611
8444811
9543011
10606511
11606511
12693211
13693211
14748911
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2) (*.f64 (sqrt.f64 (+.f64 x y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sqrt.f64 (+.f64 x y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x y)) 1)))))

simplify1.1s (38.6%)

Algorithm
egg-herbie
Rules
6580×rational.json-simplify-51
4052×rational.json-simplify-35
1432×rational.json-simplify-49
1322×rational.json-simplify-2
1288×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0104745
1226745
2610745
31451745
42297745
53252745
63749745
73839745
83900745
93945745
103990745
114035745
124080745
134125745
144170745
154215745
164260745
174305745
184350745
195321745
205622745
215728745
225830745
235831745
245831745
256065745
266065745
276164745
286263745
296362745
306461745
316560745
326659745
336758745
346857745
356956745
367055745
377154745
Stop Event
node limit
Counts
35 → 60
Calls
Call 1
Inputs
(sqrt.f64 y)
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3))) (sqrt.f64 y))))
(sqrt.f64 x)
(+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x)))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3))))) (+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x))))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 1 (pow.f64 x 5))))) (+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x)))))))
(+.f64 (sqrt.f64 (+.f64 x y)) 0)
(+.f64 0 (sqrt.f64 (+.f64 x y)))
(+.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2) (*.f64 (sqrt.f64 (+.f64 x y)) 1/2))
(-.f64 (sqrt.f64 (+.f64 x y)) 0)
(*.f64 (sqrt.f64 (+.f64 x y)) 1)
(*.f64 1 (sqrt.f64 (+.f64 x y)))
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 2) 1/2)
(*.f64 4 (*.f64 (sqrt.f64 (+.f64 x y)) 1/4))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 4) 1/4)
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 8) 1/8)
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 x y)) 2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 x y)) 4))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/4) 4)
(*.f64 1/8 (*.f64 (sqrt.f64 (+.f64 x y)) 8))
(/.f64 (sqrt.f64 (+.f64 x y)) 1)
(/.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))))) 512)
(pow.f64 (sqrt.f64 (+.f64 x y)) 1)
Outputs
(sqrt.f64 y)
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y))
(+.f64 (sqrt.f64 y) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 (pow.f64 x 2) -1/8))))
(+.f64 (sqrt.f64 y) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x))))
(+.f64 (sqrt.f64 y) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2)))))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2)))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3))) (sqrt.f64 y))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 (pow.f64 x 2) -1/8)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (sqrt.f64 y) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))) (+.f64 (+.f64 (sqrt.f64 y) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3)))))
(+.f64 (sqrt.f64 y) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3)))))
(+.f64 (sqrt.f64 y) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))))))
(+.f64 (sqrt.f64 y) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3))))))
(+.f64 (sqrt.f64 y) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 y 5))) (pow.f64 x 3))))))
(sqrt.f64 x)
(+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x)))))
(+.f64 (sqrt.f64 x) (*.f64 y (*.f64 (sqrt.f64 (/.f64 1 x)) 1/2)))
(+.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 y 1/2)))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3))))) (+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x))))))
(+.f64 (sqrt.f64 x) (+.f64 (*.f64 y (*.f64 (sqrt.f64 (/.f64 1 x)) 1/2)) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 x) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 3))) (*.f64 (pow.f64 y 2) -1/8))))
(+.f64 (sqrt.f64 x) (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x)))) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 x) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 3))) (*.f64 -1/8 (pow.f64 y 2)))))
(+.f64 (sqrt.f64 x) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 y 1/2)) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 x 3)))))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 1 (pow.f64 x 5))))) (+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x)))))))
(+.f64 (*.f64 (pow.f64 y 3) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 5))) 1/16)) (+.f64 (sqrt.f64 x) (+.f64 (*.f64 y (*.f64 (sqrt.f64 (/.f64 1 x)) 1/2)) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3))))))))
(+.f64 (+.f64 (sqrt.f64 x) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 3))) (*.f64 (pow.f64 y 2) -1/8)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 5))) (*.f64 1/16 (pow.f64 y 3))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (pow.f64 x 3))))) (+.f64 (+.f64 (sqrt.f64 x) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 1 x))))) (*.f64 (pow.f64 y 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 x 5)))))))
(+.f64 (+.f64 (sqrt.f64 x) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 3))) (*.f64 -1/8 (pow.f64 y 2))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16)))
(+.f64 (+.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 (/.f64 1 x)) (*.f64 y 1/2))) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 x 3))))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16))))
(+.f64 (sqrt.f64 (+.f64 x y)) 0)
(sqrt.f64 (+.f64 y x))
(+.f64 0 (sqrt.f64 (+.f64 x y)))
(sqrt.f64 (+.f64 y x))
(+.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2) (*.f64 (sqrt.f64 (+.f64 x y)) 1/2))
(sqrt.f64 (+.f64 y x))
(-.f64 (sqrt.f64 (+.f64 x y)) 0)
(sqrt.f64 (+.f64 y x))
(*.f64 (sqrt.f64 (+.f64 x y)) 1)
(sqrt.f64 (+.f64 y x))
(*.f64 1 (sqrt.f64 (+.f64 x y)))
(sqrt.f64 (+.f64 y x))
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2))
(sqrt.f64 (+.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 2) 1/2)
(sqrt.f64 (+.f64 y x))
(*.f64 4 (*.f64 (sqrt.f64 (+.f64 x y)) 1/4))
(sqrt.f64 (+.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 4) 1/4)
(sqrt.f64 (+.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 8) 1/8)
(sqrt.f64 (+.f64 y x))
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 x y)) 2))
(sqrt.f64 (+.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/2) 2)
(sqrt.f64 (+.f64 y x))
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 x y)) 4))
(sqrt.f64 (+.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 1/4) 4)
(sqrt.f64 (+.f64 y x))
(*.f64 1/8 (*.f64 (sqrt.f64 (+.f64 x y)) 8))
(sqrt.f64 (+.f64 y x))
(/.f64 (sqrt.f64 (+.f64 x y)) 1)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 2) 2)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 4) 4)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 (sqrt.f64 (+.f64 x y)) 8) 8)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)) 16)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))) 32)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))) 64)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))) 128)
(sqrt.f64 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))))) 256)
(sqrt.f64 (+.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 x y)) 8))))))) 512)
(sqrt.f64 (+.f64 y x))
(pow.f64 (sqrt.f64 (+.f64 x y)) 1)
(sqrt.f64 (+.f64 y x))

eval20.0ms (0.7%)

Compiler

Compiled 1085 to 773 computations (28.8% saved)

prune8.0ms (0.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New59160
Fresh000
Picked011
Done000
Total59261
Error
0.0b
Counts
61 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 x y))
0.9b
(sqrt.f64 y)
Compiler

Compiled 10 to 7 computations (30% saved)

localize4.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done011
Total022
Error
0.0b
Counts
2 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 x y))
0.9b
(sqrt.f64 y)
Compiler

Compiled 10 to 7 computations (30% saved)

regimes13.0ms (0.5%)

Accuracy

Total -0.9b remaining (-24062%)

Threshold costs -0.9b (-24062%)

Counts
2 → 1
Calls
Call 1
Inputs
(sqrt.f64 y)
(sqrt.f64 (+.f64 x y))
Outputs
(sqrt.f64 (+.f64 x y))
Calls

4 calls:

4.0ms
y
3.0ms
(+.f64 x y)
3.0ms
(sqrt.f64 (+.f64 x y))
3.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(sqrt.f64 (+.f64 x y))
0.0b1(+.f64 x y)
Compiler

Compiled 25 to 16 computations (36% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0816
Stop Event
done
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x y))
(sqrt.f64 y)
Outputs
(sqrt.f64 (+.f64 x y))
(sqrt.f64 y)
Compiler

Compiled 10 to 7 computations (30% saved)

soundness0.0ms (0%)

end16.0ms (0.6%)

Remove

(sort x y)

Compiler

Compiled 20 to 13 computations (35% saved)

Profiling

Loading profile data...