Details

Time bar (total: 2.2s)

analyze56.0ms (2.5%)

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%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
56.3%56.2%43.7%0.1%0%0%0%7
65.6%65.6%34.3%0.1%0%0%0%8
76.6%76.5%23.4%0.1%0%0%0%9
82%82%18%0.1%0%0%0%10
87.9%87.8%12.1%0.1%0%0%0%11
90.8%90.7%9.2%0.1%0%0%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample751.0ms (33.9%)

Results
740.0ms8256×body256valid
Bogosity

preprocess114.0ms (5.2%)

Algorithm
egg-herbie
Rules
1100×rational.json-simplify-2
932×rational.json-simplify-44
902×rational.json-simplify-37
836×rational.json-simplify-39
824×rational.json-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01146
11346
22246
36046
436446
5397846
6625546
7736846
022
122
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(sqrt.f64 (+.f64 (*.f64 y y) (*.f64 x x)))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(sqrt.f64 (+.f64 (*.f64 y y) (*.f64 x x)))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
Symmetry

(sort x y)

Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify111.0ms (5%)

Algorithm
egg-herbie
Rules
1086×rational.json-simplify-2
926×rational.json-simplify-44
902×rational.json-simplify-37
840×rational.json-simplify-39
832×rational.json-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11223
22123
35923
436423
5396923
6626723
7736223
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))

eval0.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 10 to 6 computations (40% saved)

localize8.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
32.2b
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 25 to 6 computations (76% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite50.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
1430×rational.json-simplify-35
1088×bool.json-1
1088×bool.json-2
1074×rational.json-1
1074×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
18923
224823
363523
4260023
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))))))

simplify134.0ms (6%)

Algorithm
egg-herbie
Rules
1286×rational.json-simplify-53
956×rational.json-simplify-2
916×rational.json-simplify-19
814×rational.json-simplify-41
796×rational.json-simplify-61
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0951366
11971350
23651350
37001350
415621350
548551350
658751350
773491350
Stop Event
node limit
Counts
38 → 67
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
(*.f64 -1 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (*.f64 -1 x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 -1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 (*.f64 -1 x) (*.f64 -1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(*.f64 -1 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 0)
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 0)
(*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 1)
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(*.f64 2 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 1/2)
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 2)
(/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 1)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4))) 16)
Outputs
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(+.f64 y (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5)))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) y))
(+.f64 y (+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 y (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(+.f64 x (*.f64 1/2 (/.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 x (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)))))
(+.f64 x (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 1/2 (/.f64 (pow.f64 y 2) x))))
(+.f64 x (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 x (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 (+.f64 x (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)))) (*.f64 1/2 (/.f64 (pow.f64 y 2) x))))
(+.f64 (+.f64 x (*.f64 1/2 (/.f64 (pow.f64 y 2) x))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)))))
(+.f64 x (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
(*.f64 -1 x)
(*.f64 x -1)
(neg.f64 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
(+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 -1 x)))
(+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (+.f64 (*.f64 x -1) (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8)))
(+.f64 (neg.f64 x) (+.f64 (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2)))
(+.f64 (neg.f64 x) (+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 (*.f64 -1 x) (*.f64 -1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
(+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (+.f64 (*.f64 x -1) (+.f64 (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16) (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8))))
(+.f64 (+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16)) (+.f64 (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2)))
(+.f64 (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8) (+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16))))
(+.f64 (neg.f64 x) (+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8) (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16))))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(+.f64 x (*.f64 1/2 (/.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 x (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)))))
(+.f64 x (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 1/2 (/.f64 (pow.f64 y 2) x))))
(+.f64 x (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 x (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 (+.f64 x (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)))) (*.f64 1/2 (/.f64 (pow.f64 y 2) x))))
(+.f64 (+.f64 x (*.f64 1/2 (/.f64 (pow.f64 y 2) x))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)))))
(+.f64 x (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(+.f64 y (+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5)))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) y))
(+.f64 y (+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 y (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(*.f64 -1 y)
(*.f64 y -1)
(neg.f64 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))
(+.f64 (*.f64 y -1) (*.f64 (/.f64 (pow.f64 x 2) y) -1/2))
(+.f64 (neg.f64 y) (*.f64 (/.f64 (pow.f64 x 2) y) -1/2))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (*.f64 y -1) (+.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8) (*.f64 (/.f64 (pow.f64 x 2) y) -1/2)))
(+.f64 (neg.f64 y) (+.f64 (*.f64 (/.f64 (pow.f64 x 2) y) -1/2) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8)))
(+.f64 (*.f64 (/.f64 (pow.f64 x 2) y) -1/2) (+.f64 (neg.f64 y) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))))
(+.f64 (*.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) -1/16) (+.f64 (*.f64 y -1) (+.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8) (*.f64 (/.f64 (pow.f64 x 2) y) -1/2))))
(+.f64 (neg.f64 y) (+.f64 (+.f64 (*.f64 (/.f64 (pow.f64 x 2) y) -1/2) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8)) (*.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) -1/16)))
(+.f64 (neg.f64 y) (+.f64 (*.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) -1/16) (+.f64 (*.f64 (/.f64 (pow.f64 x 2) y) -1/2) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8))))
(+.f64 (neg.f64 y) (+.f64 (*.f64 (/.f64 (pow.f64 x 2) y) -1/2) (+.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8) (*.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) -1/16))))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 0)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 0)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 1)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 2 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 1/2)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 2)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 1)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 2) 2)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4) 4)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4)) 8)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) 4))) 16)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))

eval23.0ms (1%)

Compiler

Compiled 1183 to 797 computations (32.6% saved)

prune10.0ms (0.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New64367
Fresh000
Picked011
Done000
Total64468
Error
0.4b
Counts
68 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
33.7b
(+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
34.2b
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
30.9b
(neg.f64 x)
31.4b
y
Compiler

Compiled 29 to 20 computations (31% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize14.0ms (0.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (/.f64 (pow.f64 y 2) x) -1/2)
7.9b
(/.f64 (pow.f64 y 2) x)
Compiler

Compiled 33 to 21 computations (36.4% saved)

series4.0ms (0.2%)

Counts
2 → 24
Calls

12 calls:

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

rewrite85.0ms (3.9%)

Algorithm
batch-egg-rewrite
Rules
1770×bool.json-1
1770×bool.json-2
1728×rational.json-1
1728×rational.json-2
1484×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
19032
225632
358332
4146432
5498232
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 (pow.f64 y 2) x) -1/2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (pow.f64 y 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (pow.f64 y 2) (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 2) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 2) (*.f64 (*.f64 2 (/.f64 1 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 2) (*.f64 (/.f64 2 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 (/.f64 1 (pow.f64 y 2)) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 y 2) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (pow.f64 y 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (pow.f64 y 2)) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) (/.f64 2 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) 4) (/.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 (/.f64 2 (*.f64 x 8)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 1/4 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 1/2 (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (pow.f64 y 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 (/.f64 1 (pow.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 y 2)) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 y 2)) (*.f64 (/.f64 -1 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (pow.f64 y 2)) (/.f64 2 (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (pow.f64 y 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (*.f64 2 (pow.f64 y 2)) (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 x 1/2) (pow.f64 y 2)) (/.f64 1 (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 x 1/2) (pow.f64 y 2)) (/.f64 1/2 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (pow.f64 y 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (/.f64 (pow.f64 y 2) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (pow.f64 y 2) 4) x) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) 8) (/.f64 1 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (*.f64 2 (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (pow.f64 y 2) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 x (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 (+.f64 x x) (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1/2 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 x)) (*.f64 (pow.f64 y 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (pow.f64 y 2)) (/.f64 (+.f64 x x) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x 1/2) (pow.f64 y 2)) (/.f64 2 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) (/.f64 1/2 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (pow.f64 y 2)) (/.f64 x (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (pow.f64 y 2)) (/.f64 (neg.f64 x) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 x 8)) (*.f64 (pow.f64 y 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (neg.f64 (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 2) 1/2) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 (*.f64 (pow.f64 y 2) 4) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/2 x) (/.f64 1/2 x)) (pow.f64 y 2))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 (pow.f64 y 2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 2) x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2)) (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (/.f64 (pow.f64 y 2) x) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))))))

simplify86.0ms (3.9%)

Algorithm
egg-herbie
Rules
1054×rational.json-simplify-2
846×rational.json-simplify-41
748×rational.json-simplify-61
742×rational.json-simplify-44
730×rational.json-simplify-35
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01421581
13311563
28381501
335051501
459521495
Stop Event
node limit
Counts
83 → 81
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(+.f64 (/.f64 (pow.f64 y 2) x) 0)
(+.f64 0 (/.f64 (pow.f64 y 2) x))
(-.f64 (/.f64 (pow.f64 y 2) x) 0)
(*.f64 2 (*.f64 (pow.f64 y 2) (/.f64 1/2 x)))
(*.f64 (pow.f64 y 2) (/.f64 1 x))
(*.f64 (pow.f64 y 2) (*.f64 (*.f64 2 (/.f64 1 x)) 1/2))
(*.f64 (pow.f64 y 2) (*.f64 (/.f64 2 x) 1/2))
(*.f64 x (/.f64 (/.f64 1 (pow.f64 y 2)) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 (pow.f64 y 2) x) 1)
(*.f64 1 (/.f64 (pow.f64 y 2) x))
(*.f64 (*.f64 2 (pow.f64 y 2)) (/.f64 1/2 x))
(*.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)) -1)
(*.f64 (*.f64 (pow.f64 y 2) (/.f64 2 x)) 1/2)
(*.f64 (*.f64 (pow.f64 y 2) 4) (/.f64 2 (*.f64 x 8)))
(*.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 (/.f64 2 (*.f64 x 8)) 1))
(*.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 1/4 (/.f64 1 x)))
(*.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 1/2 (/.f64 1/2 x)))
(*.f64 (/.f64 1 x) (pow.f64 y 2))
(*.f64 (/.f64 1 x) (/.f64 1 (/.f64 1 (pow.f64 y 2))))
(*.f64 (neg.f64 (pow.f64 y 2)) (/.f64 -1 x))
(*.f64 (neg.f64 (pow.f64 y 2)) (*.f64 (/.f64 -1 x) 1))
(*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 2 (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(*.f64 -1 (/.f64 (pow.f64 y 2) (neg.f64 x)))
(*.f64 -1 (/.f64 (*.f64 2 (pow.f64 y 2)) (neg.f64 (+.f64 x x))))
(*.f64 (/.f64 (/.f64 x 1/2) (pow.f64 y 2)) (/.f64 1 (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(*.f64 (/.f64 (/.f64 x 1/2) (pow.f64 y 2)) (/.f64 1/2 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 4 (/.f64 (pow.f64 y 2) (*.f64 x 4)))
(*.f64 4 (/.f64 (/.f64 (pow.f64 y 2) x) 4))
(*.f64 (/.f64 (*.f64 (pow.f64 y 2) 4) x) 1/4)
(*.f64 (*.f64 (pow.f64 y 2) 8) (/.f64 1 (*.f64 x 8)))
(*.f64 (/.f64 1/2 x) (*.f64 2 (pow.f64 y 2)))
(*.f64 1/2 (*.f64 (pow.f64 y 2) (/.f64 2 x)))
(*.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 x (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 (+.f64 x x) (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1/2 (neg.f64 x)))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1 (*.f64 x -2)))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1 (neg.f64 (+.f64 x x))))
(*.f64 (*.f64 2 (/.f64 1 x)) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (/.f64 1/2 (pow.f64 y 2)) (/.f64 (+.f64 x x) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 (*.f64 x 1/2) (pow.f64 y 2)) (/.f64 2 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (*.f64 (pow.f64 y 2) (/.f64 1/2 x)) 2)
(*.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (/.f64 2 (pow.f64 y 2)) (/.f64 x (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(*.f64 (/.f64 -1 (pow.f64 y 2)) (/.f64 (neg.f64 x) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 2 (*.f64 x 8)) (*.f64 (pow.f64 y 2) 4))
(*.f64 (/.f64 -1 x) (neg.f64 (pow.f64 y 2)))
(*.f64 (*.f64 (pow.f64 y 2) 1/2) (/.f64 2 x))
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 y 2) 4) x))
(*.f64 (+.f64 (/.f64 1/2 x) (/.f64 1/2 x)) (pow.f64 y 2))
(neg.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)))
(+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 0)
(+.f64 0 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
(-.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 0)
(/.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 1)
(/.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)) 2)
(/.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -2) 4)
(/.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2)) (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2))) 16)
Outputs
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(+.f64 (/.f64 (pow.f64 y 2) x) 0)
(/.f64 (pow.f64 y 2) x)
(+.f64 0 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) x)
(-.f64 (/.f64 (pow.f64 y 2) x) 0)
(/.f64 (pow.f64 y 2) x)
(*.f64 2 (*.f64 (pow.f64 y 2) (/.f64 1/2 x)))
(/.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) (/.f64 1 x))
(/.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) (*.f64 (*.f64 2 (/.f64 1 x)) 1/2))
(/.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) (*.f64 (/.f64 2 x) 1/2))
(*.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (pow.f64 y 2) (*.f64 1/2 (/.f64 2 x)))
(*.f64 x (/.f64 (/.f64 1 (pow.f64 y 2)) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 x (/.f64 1 (*.f64 (pow.f64 y 2) (*.f64 x (/.f64 x (*.f64 (pow.f64 y 2) (pow.f64 y 2)))))))
(*.f64 x (/.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 y 2)) (/.f64 x (/.f64 1 x))) (pow.f64 y 2)))
(*.f64 x (/.f64 (pow.f64 y 2) (/.f64 x (/.f64 1 x))))
(*.f64 x (/.f64 (/.f64 (pow.f64 y 2) x) x))
(*.f64 (/.f64 (pow.f64 y 2) x) 1)
(/.f64 (pow.f64 y 2) x)
(*.f64 1 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 2 (pow.f64 y 2)) (/.f64 1/2 x))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)) -1)
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) (/.f64 2 x)) 1/2)
(*.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (pow.f64 y 2) (*.f64 1/2 (/.f64 2 x)))
(*.f64 (*.f64 (pow.f64 y 2) 4) (/.f64 2 (*.f64 x 8)))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 (/.f64 2 (*.f64 x 8)) 1))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 1/4 (/.f64 1 x)))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) 4) (*.f64 1/2 (/.f64 1/2 x)))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 1 x) (pow.f64 y 2))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 1 x) (/.f64 1 (/.f64 1 (pow.f64 y 2))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (neg.f64 (pow.f64 y 2)) (/.f64 -1 x))
(/.f64 (pow.f64 y 2) x)
(*.f64 (neg.f64 (pow.f64 y 2)) (*.f64 (/.f64 -1 x) 1))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 2 (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 -1 (/.f64 (pow.f64 y 2) (neg.f64 x)))
(/.f64 (pow.f64 y 2) x)
(*.f64 -1 (/.f64 (*.f64 2 (pow.f64 y 2)) (neg.f64 (+.f64 x x))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 (/.f64 x 1/2) (pow.f64 y 2)) (/.f64 1 (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 (/.f64 x 1/2) (pow.f64 y 2)) (/.f64 1/2 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 4 (/.f64 (pow.f64 y 2) (*.f64 x 4)))
(/.f64 (pow.f64 y 2) x)
(*.f64 4 (/.f64 (/.f64 (pow.f64 y 2) x) 4))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 (*.f64 (pow.f64 y 2) 4) x) 1/4)
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) 8) (/.f64 1 (*.f64 x 8)))
(*.f64 (pow.f64 y 2) (*.f64 8 (/.f64 1/8 x)))
(*.f64 (/.f64 1/8 x) (*.f64 (pow.f64 y 2) 8))
(*.f64 (/.f64 1/2 x) (*.f64 2 (pow.f64 y 2)))
(/.f64 (pow.f64 y 2) x)
(*.f64 1/2 (*.f64 (pow.f64 y 2) (/.f64 2 x)))
(*.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (pow.f64 y 2) (*.f64 1/2 (/.f64 2 x)))
(*.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 x (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 (+.f64 x x) (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1/2 (neg.f64 x)))
(*.f64 (pow.f64 y 2) (*.f64 -2 (/.f64 -1/2 x)))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1 (*.f64 x -2)))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1/2 (neg.f64 x)))
(*.f64 (pow.f64 y 2) (*.f64 -2 (/.f64 -1/2 x)))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1 (neg.f64 (+.f64 x x))))
(*.f64 (*.f64 (pow.f64 y 2) -2) (/.f64 1/2 (neg.f64 x)))
(*.f64 (pow.f64 y 2) (*.f64 -2 (/.f64 -1/2 x)))
(*.f64 (*.f64 2 (/.f64 1 x)) (*.f64 (pow.f64 y 2) 1/2))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 1/2 (pow.f64 y 2)) (/.f64 (+.f64 x x) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 1/2 (pow.f64 y 2)) (/.f64 (/.f64 (+.f64 x x) x) (/.f64 x (*.f64 (pow.f64 y 2) (pow.f64 y 2)))))
(*.f64 (/.f64 1/2 (pow.f64 y 2)) (/.f64 2 (/.f64 x (*.f64 (pow.f64 y 2) (pow.f64 y 2)))))
(*.f64 (/.f64 1/2 (pow.f64 y 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 y 2) (/.f64 2 x))))
(*.f64 (/.f64 (*.f64 x 1/2) (pow.f64 y 2)) (/.f64 2 (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) (/.f64 1/2 x)) 2)
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (pow.f64 y 2) (*.f64 1/2 (/.f64 2 x)))
(*.f64 (/.f64 2 (pow.f64 y 2)) (/.f64 x (*.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (/.f64 x 1/2) (pow.f64 y 2)))))
(*.f64 (/.f64 2 (pow.f64 y 2)) (/.f64 (/.f64 x (/.f64 x (pow.f64 y 2))) (/.f64 x (*.f64 (pow.f64 y 2) 1/2))))
(*.f64 (/.f64 2 (pow.f64 y 2)) (/.f64 (pow.f64 y 2) (/.f64 (+.f64 x x) (/.f64 (pow.f64 y 2) (/.f64 x x)))))
(*.f64 (/.f64 2 (pow.f64 y 2)) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 y 2)) x)))
(*.f64 (/.f64 2 (pow.f64 y 2)) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 y 2) (/.f64 1/2 x))))
(*.f64 (/.f64 -1 (pow.f64 y 2)) (/.f64 (neg.f64 x) (*.f64 x (/.f64 (/.f64 x (pow.f64 y 2)) (pow.f64 y 2)))))
(*.f64 (/.f64 -1 (pow.f64 y 2)) (/.f64 (/.f64 (neg.f64 x) x) (/.f64 x (*.f64 (pow.f64 y 2) (pow.f64 y 2)))))
(*.f64 (/.f64 -1 (pow.f64 y 2)) (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 y 2)) (/.f64 x (/.f64 x (neg.f64 x)))))
(/.f64 (/.f64 (*.f64 (pow.f64 y 2) (pow.f64 y 2)) (neg.f64 x)) (neg.f64 (pow.f64 y 2)))
(/.f64 (/.f64 (neg.f64 (*.f64 (pow.f64 y 2) (pow.f64 y 2))) x) (neg.f64 (pow.f64 y 2)))
(*.f64 (/.f64 2 (*.f64 x 8)) (*.f64 (pow.f64 y 2) 4))
(/.f64 (pow.f64 y 2) x)
(*.f64 (/.f64 -1 x) (neg.f64 (pow.f64 y 2)))
(/.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 (pow.f64 y 2) 1/2) (/.f64 2 x))
(*.f64 (/.f64 2 x) (*.f64 (pow.f64 y 2) 1/2))
(*.f64 (pow.f64 y 2) (*.f64 1/2 (/.f64 2 x)))
(*.f64 1/4 (/.f64 (*.f64 (pow.f64 y 2) 4) x))
(/.f64 (pow.f64 y 2) x)
(*.f64 (+.f64 (/.f64 1/2 x) (/.f64 1/2 x)) (pow.f64 y 2))
(/.f64 (pow.f64 y 2) x)
(neg.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)))
(/.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 0)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(+.f64 0 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(-.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 0)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(/.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -1/2) 1)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(/.f64 (/.f64 (pow.f64 y 2) (neg.f64 x)) 2)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(/.f64 (*.f64 (/.f64 (pow.f64 y 2) x) -2) 4)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(/.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2)) 8)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2)) (*.f64 2 (*.f64 (/.f64 (pow.f64 y 2) x) -2))) 16)
(*.f64 -1/2 (/.f64 (pow.f64 y 2) x))
(/.f64 (pow.f64 y 2) (*.f64 x -2))

eval24.0ms (1.1%)

Compiler

Compiled 1386 to 951 computations (31.4% saved)

prune13.0ms (0.6%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New81081
Fresh011
Picked011
Done022
Total81485
Error
0.4b
Counts
85 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
33.7b
(+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
34.2b
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
30.9b
(neg.f64 x)
31.4b
y
Compiler

Compiled 29 to 20 computations (31% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.4b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
33.7b
(+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
34.2b
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
30.9b
(neg.f64 x)
31.4b
y
Compiler

Compiled 29 to 20 computations (31% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.4b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
33.7b
(+.f64 (neg.f64 x) (*.f64 (/.f64 (pow.f64 y 2) x) -1/2))
34.2b
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
30.9b
(neg.f64 x)
31.4b
y
Compiler

Compiled 29 to 20 computations (31% saved)

regimes445.0ms (20.1%)

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

6 calls:

372.0ms
y
19.0ms
x
17.0ms
(*.f64 x x)
14.0ms
(*.f64 y y)
12.0ms
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
Results
ErrorSegmentsBranch
5.7b3x
7.5b5y
15.9b3(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
15.9b3(+.f64 (*.f64 x x) (*.f64 y y))
9.1b7(*.f64 x x)
11.9b5(*.f64 y y)
Compiler

Compiled 58 to 34 computations (41.4% saved)

bsearch28.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
-4.9801927541797705e-145
-1.4349906113978016e-146
16.0ms
-2.5743832402243754e+110
-1.3415132339293975e+103
Results
24.0ms256×body256valid
Compiler

Compiled 264 to 179 computations (32.2% saved)

regimes19.0ms (0.9%)

Accuracy

Total -53.1b remaining (-615.3%)

Threshold costs -53.1b (-615.3%)

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

2 calls:

12.0ms
y
7.0ms
x
Results
ErrorSegmentsBranch
10.1b2x
8.6b4y
Compiler

Compiled 11 to 7 computations (36.4% saved)

bsearch38.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
7107984298707111000.0
2.1012547912353387e+22
12.0ms
3.6695581420287636e-18
7.944761239420948e-16
12.0ms
5.36287220667743e-98
1.2976961359106396e-96
Results
34.0ms352×body256valid
Compiler

Compiled 213 to 164 computations (23% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02887
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -225000000000000013646807049754362571836698418612611366871044861791038258010517670390165410188928288336216326144) (neg.f64 x) (if (<=.f64 x -6748370691814795/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) y))
(if (<=.f64 y 3126379886188527/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (neg.f64 x) (if (<=.f64 y 1419768672255617/2535301200456458802993406410752) y (if (<=.f64 y 37000000000000000000) (neg.f64 x) y)))
y
Outputs
(if (<=.f64 x -225000000000000013646807049754362571836698418612611366871044861791038258010517670390165410188928288336216326144) (neg.f64 x) (if (<=.f64 x -6748370691814795/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (sqrt.f64 (+.f64 (*.f64 x x) (*.f64 y y))) y))
(if (<=.f64 y 3126379886188527/4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848) (neg.f64 x) (if (<=.f64 y 1419768672255617/2535301200456458802993406410752) y (if (<=.f64 y 37000000000000000000) (neg.f64 x) y)))
y
Compiler

Compiled 44 to 27 computations (38.6% saved)

soundness150.0ms (6.8%)

Algorithm
egg-herbie
Rules
1286×rational.json-simplify-53
956×rational.json-simplify-2
916×rational.json-simplify-19
814×rational.json-simplify-41
796×rational.json-simplify-61
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0951366
11971350
23651350
37001350
415621350
548551350
658751350
773491350
Stop Event
node limit
Compiler

Compiled 10 to 7 computations (30% saved)

end38.0ms (1.7%)

Compiler

Compiled 82 to 48 computations (41.5% saved)

Profiling

Loading profile data...