Details

Time bar (total: 2.7s)

analyze45.0ms (1.7%)

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)

sample796.0ms (29.3%)

Results
749.0ms8256×body256valid
36.0ms537×body256invalid
Bogosity

preprocess11.0ms (0.4%)

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)

simplify8.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.1%)

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
@inf
(sqrt.f64 (+.f64 x y))
0.0ms
y
@0
(sqrt.f64 (+.f64 x y))
0.0ms
x
@-inf
(sqrt.f64 (+.f64 x y))

rewrite243.0ms (8.9%)

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

simplify950.0ms (34.9%)

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

eval19.0ms (0.7%)

Compiler

Compiled 1085 to 773 computations (28.8% saved)

prune9.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New58260
Fresh000
Picked011
Done000
Total58361
Error
0b
Counts
61 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y))
0.0b
(sqrt.f64 (+.f64 x y))
1.5b
(sqrt.f64 y)
Compiler

Compiled 23 to 17 computations (26.1% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize16.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y))
0.1b
(sqrt.f64 (/.f64 1 y))
0.2b
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
Compiler

Compiled 40 to 27 computations (32.5% saved)

series6.0ms (0.2%)

Counts
3 → 3
Calls

15 calls:

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

rewrite83.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
1206×rational.json-1
1206×rational.json-2
1206×rational.json-4
1206×rational.json-3
1202×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01361
19761
220961
342361
484161
5214361
6528061
Stop Event
node limit
Counts
3 → 52
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(sqrt.f64 (/.f64 1 y))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 1 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2) (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 x 1/4)) (*.f64 1/2 (sqrt.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (+.f64 x x)) (*.f64 (sqrt.f64 y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)))))

simplify465.0ms (17.1%)

Algorithm
egg-herbie
Rules
4070×rational.json-simplify-2
2396×rational.json-simplify-35
2144×rational.json-simplify-53
1286×rational.json-simplify-51
820×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01021129
12231129
26971129
318151129
439861129
545211129
646821129
747971129
849011129
950031129
1061441129
1163641129
1264631129
1364631129
1465621129
1566611129
1678861129
Stop Event
node limit
Counts
55 → 58
Calls
Call 1
Inputs
(sqrt.f64 y)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 0)
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 1 y)) x))
(-.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 0)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (+.f64 x x)) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8))) 32)
(pow.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 1)
(+.f64 (sqrt.f64 (/.f64 1 y)) 0)
(+.f64 0 (sqrt.f64 (/.f64 1 y)))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2) (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2))
(-.f64 (sqrt.f64 (/.f64 1 y)) 0)
(*.f64 1 (sqrt.f64 (/.f64 1 y)))
(*.f64 (sqrt.f64 (/.f64 1 y)) 1)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) 2))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2))
(*.f64 4 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/4))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 2) 1/2)
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2) 2)
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 4) 1/4)
(*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 y)) 4))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/4) 4)
(/.f64 (sqrt.f64 (/.f64 1 y)) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 8))) 32)
(pow.f64 (sqrt.f64 (/.f64 1 y)) 1)
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 0)
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)))
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y))))
(*.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 x 1/4)) (*.f64 1/2 (sqrt.f64 y))))
(*.f64 4 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)) 1/2)
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 1/4)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4))
(*.f64 1/4 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (+.f64 x x)) (*.f64 (sqrt.f64 y) 4)))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y))) 2)
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 4)
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8))) 32)
(pow.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)
Outputs
(sqrt.f64 y)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x))
(*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x))
(*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 0)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 1 y)) x))
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(-.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 0)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 1)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (+.f64 x x)) 2)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 x 4)) 4)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(/.f64 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8) 8)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8)) 16)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 8))) 32)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(pow.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) 1)
(*.f64 (sqrt.f64 (/.f64 1 y)) x)
(+.f64 (sqrt.f64 (/.f64 1 y)) 0)
(sqrt.f64 (/.f64 1 y))
(+.f64 0 (sqrt.f64 (/.f64 1 y)))
(sqrt.f64 (/.f64 1 y))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2) (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2))
(sqrt.f64 (/.f64 1 y))
(-.f64 (sqrt.f64 (/.f64 1 y)) 0)
(sqrt.f64 (/.f64 1 y))
(*.f64 1 (sqrt.f64 (/.f64 1 y)))
(sqrt.f64 (/.f64 1 y))
(*.f64 (sqrt.f64 (/.f64 1 y)) 1)
(sqrt.f64 (/.f64 1 y))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) 2))
(sqrt.f64 (/.f64 1 y))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2))
(sqrt.f64 (/.f64 1 y))
(*.f64 4 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/4))
(sqrt.f64 (/.f64 1 y))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 2) 1/2)
(sqrt.f64 (/.f64 1 y))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/2) 2)
(sqrt.f64 (/.f64 1 y))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 4) 1/4)
(sqrt.f64 (/.f64 1 y))
(*.f64 1/4 (*.f64 (sqrt.f64 (/.f64 1 y)) 4))
(sqrt.f64 (/.f64 1 y))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 1/4) 4)
(sqrt.f64 (/.f64 1 y))
(/.f64 (sqrt.f64 (/.f64 1 y)) 1)
(sqrt.f64 (/.f64 1 y))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 2) 2)
(sqrt.f64 (/.f64 1 y))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 4) 4)
(sqrt.f64 (/.f64 1 y))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) 8) 8)
(sqrt.f64 (/.f64 1 y))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 8)) 16)
(sqrt.f64 (/.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 y)) 8))) 32)
(sqrt.f64 (/.f64 1 y))
(pow.f64 (sqrt.f64 (/.f64 1 y)) 1)
(sqrt.f64 (/.f64 1 y))
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 0)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y))))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (*.f64 x 1/4)) (*.f64 1/2 (sqrt.f64 y))))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 4 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)) 1/2)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 1/4)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 1/4 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (+.f64 x x)) (*.f64 (sqrt.f64 y) 4)))
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y))) 2)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 4)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) x) (*.f64 (sqrt.f64 y) 2)) 2)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 4) 4)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8) 8)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8)) 16)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 8))) 32)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))
(pow.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)) (sqrt.f64 y)) 1)
(+.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 (/.f64 1 y)) (/.f64 x 2)))

eval16.0ms (0.6%)

Compiler

Compiled 823 to 592 computations (28.1% saved)

prune7.0ms (0.3%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New58058
Fresh000
Picked011
Done022
Total58361
Error
0b
Counts
61 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 y)) x)) (sqrt.f64 y))
0.0b
(sqrt.f64 (+.f64 x y))
1.5b
(sqrt.f64 y)
Compiler

Compiled 23 to 17 computations (26.1% saved)

regimes16.0ms (0.6%)

Accuracy

Total -1.4b remaining (-37099.3%)

Threshold costs -1.4b (-37099.3%)

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

4 calls:

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

Compiled 36 to 23 computations (36.1% 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%)

end18.0ms (0.7%)

Remove

(sort x y)

Compiler

Compiled 20 to 13 computations (35% saved)

Profiling

Loading profile data...