Details

Time bar (total: 3.4s)

analyze40.0ms (1.2%)

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
33.3%25%50%0.1%25%0%0%6
44.4%25%31.2%0.1%43.7%0%0%7
55.6%31.2%25%0.1%43.7%0%0%8
69.4%39%17.2%0.1%43.7%0%0%9
76.4%42.9%13.3%0.1%43.7%0%0%10
84%47.2%9%0.1%43.7%0%0%11
87.8%49.4%6.8%0.1%43.7%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample2.4s (72%)

Results
2.2s8256×body256valid
0.0msbody256infinite
Bogosity

preprocess120.0ms (3.5%)

Algorithm
egg-herbie
Rules
1094×rational.json-simplify-2
918×rational.json-simplify-44
902×rational.json-simplify-37
828×rational.json-simplify-39
818×rational.json-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0838
11138
22038
35838
436238
5394438
6622738
7732938
022
122
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(+.f64 (*.f64 x x) (*.f64 y y))
(+.f64 (*.f64 y y) (*.f64 x x))
Outputs
(+.f64 (*.f64 x x) (*.f64 y y))
(+.f64 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 y y))
Symmetry

(sort x y)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify115.0ms (3.4%)

Algorithm
egg-herbie
Rules
1094×rational.json-simplify-2
918×rational.json-simplify-44
902×rational.json-simplify-37
828×rational.json-simplify-39
818×rational.json-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
11119
22019
35819
436219
5394419
6622719
7732919
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 y y))
Outputs
(+.f64 (*.f64 x x) (*.f64 y y))

eval0.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% 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
(+.f64 (*.f64 x x) (*.f64 y y))
Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite149.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
2042×rational.json-1
2042×rational.json-2
2042×rational.json-3
1250×rational.json-simplify-35
832×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
14819
212219
335519
4185219
5647919
Stop Event
node limit
Counts
1 → 43
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (fabs.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (+.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (fabs.f64 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))) (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (fabs.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))) (+.f64 (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4)) (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (+.f64 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))) (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (+.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (-.f64 0 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fabs.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))) (fabs.f64 (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 0 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))))))

simplify70.0ms (2%)

Algorithm
egg-herbie
Rules
2050×rational.json-simplify-35
1146×rational.json-simplify-2
1064×rational.json-simplify-43
890×rational.json-simplify-40
538×rational.json-simplify-38
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01011201
12831201
214301201
345541201
Stop Event
node limit
Counts
67 → 47
Calls
Call 1
Inputs
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 0)
(*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)
(*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))
(*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(*.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))
(*.f64 2 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))
(*.f64 2 (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2)))
(*.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 1/2)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))
(*.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 2)
(*.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)
(/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (fabs.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 1 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(/.f64 1 (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 2 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))))
(/.f64 2 (+.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 2 (fabs.f64 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 4 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(/.f64 4 (+.f64 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))) (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 4 (fabs.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) 4)
(/.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))))
(/.f64 8 (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4)) 8)
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(/.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))) (+.f64 (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4)) (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4))) 16)
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (+.f64 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))
(/.f64 (neg.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))) (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2)))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (-.f64 0 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))
(/.f64 (fabs.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))) (fabs.f64 (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))))
(pow.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)
(fabs.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(fabs.f64 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(fabs.f64 (-.f64 0 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))
Outputs
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(-.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 0)
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 2 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 2 (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2)))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 1/2)
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 2)
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (fabs.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 1 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 1 (fabs.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 2 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 2 (+.f64 (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 2 (fabs.f64 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) 2)
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 4 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 4 (+.f64 (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y)))) (+.f64 (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 4 (fabs.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) 4)
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 8 (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4)) 8)
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))) (+.f64 (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4)) (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 4))) 16)
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))) (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (+.f64 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (neg.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 y y))))) (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 2)))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))) (-.f64 0 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (fabs.f64 (+.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))) (fabs.f64 (*.f64 (/.f64 1 (*.f64 y y)) (/.f64 1 (*.f64 x x)))))
(+.f64 (*.f64 x x) (*.f64 y y))
(pow.f64 (+.f64 (*.f64 x x) (*.f64 y y)) 1)
(+.f64 (*.f64 x x) (*.f64 y y))
(fabs.f64 (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y y))
(fabs.f64 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y))))
(+.f64 (*.f64 x x) (*.f64 y y))
(fabs.f64 (-.f64 0 (neg.f64 (+.f64 (*.f64 x x) (*.f64 y y)))))
(+.f64 (*.f64 x x) (*.f64 y y))

eval285.0ms (8.4%)

Compiler

Compiled 1073 to 225 computations (79% saved)

prune7.0ms (0.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New47047
Fresh000
Picked011
Done000
Total47148
Error
0.0b
Counts
48 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x x) (*.f64 y y))
Compiler

Compiled 18 to 10 computations (44.4% saved)

simplify1.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 9 to 5 computations (44.4% saved)

soundness0.0ms (0%)

end156.0ms (4.6%)

Remove

(sort x y)

Compiler

Compiled 27 to 15 computations (44.4% saved)

Profiling

Loading profile data...