Details

Time bar (total: 4.7s)

analyze440.0ms (9.4%)

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
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
25.6%25%72.5%0.1%2.3%0%0%9
38.6%37.4%59.7%0.1%2.7%0%0%10
46.4%44.5%51.3%0.1%4.1%0%0%11
53.7%50.3%43.4%0.1%6.1%0%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample1.9s (41%)

Results
1.8s8254×body256valid
125.0ms597×body256infinite
0.0msbody1024valid
Bogosity

preprocess107.0ms (2.3%)

Algorithm
egg-herbie
Rules
1602×rational_best_oopsla_all_46_json_45_simplify-10
1518×rational_best_oopsla_all_46_json_45_simplify-30
896×rational_best_oopsla_all_46_json_45_simplify-80
718×rational_best_oopsla_all_46_json_45_simplify-49
620×rational_best_oopsla_all_46_json_45_simplify-77
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021100
149100
2136100
3411100
41583100
53669100
66412100
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 y 2) (*.f64 x y)) z)
(+.f64 (+.f64 (/.f64 z 2) (*.f64 y z)) x)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 z x)) y)
Outputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 x y)) z)
(+.f64 (*.f64 x y) (+.f64 z (/.f64 x 2)))
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
(+.f64 (+.f64 (/.f64 y 2) (*.f64 x y)) z)
(+.f64 z (+.f64 (*.f64 x y) (/.f64 y 2)))
(+.f64 (*.f64 x y) (+.f64 z (/.f64 y 2)))
(+.f64 (+.f64 (/.f64 z 2) (*.f64 y z)) x)
(+.f64 x (+.f64 (/.f64 z 2) (*.f64 y z)))
(+.f64 (*.f64 y z) (+.f64 x (/.f64 z 2)))
(+.f64 (+.f64 (/.f64 x 2) (*.f64 z x)) y)
(+.f64 y (+.f64 (/.f64 x 2) (*.f64 x z)))
(+.f64 (/.f64 x 2) (+.f64 y (*.f64 x z)))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify155.0ms (3.3%)

Algorithm
egg-herbie
Rules
1878×rational_best_oopsla_all_46_json_45_simplify-10
1096×rational_best_oopsla_all_46_json_45_simplify-49
1040×rational_best_oopsla_all_46_json_45_simplify-7
964×rational_best_oopsla_all_46_json_45_simplify-72
708×rational_best_oopsla_all_46_json_45_simplify-30
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11725
24425
313125
448725
5251325
6532325
7797525
Stop Event
node limit
Counts
1 → 5
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
Outputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 x y)) z)
(+.f64 (/.f64 x 2) (+.f64 z (*.f64 x y)))
(+.f64 (*.f64 x y) (+.f64 (/.f64 x 2) z))
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))

eval1.0ms (0%)

Compiler

Compiled 48 to 25 computations (47.9% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New415
Fresh101
Picked000
Done000
Total516
Error
0.0b
Counts
6 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 11 computations (59.3% saved)

series3.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite73.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
1762×rational_best_oopsla_all_46_json-2
1762×rational_best_oopsla_all_46_json-1
1762×rational_best_oopsla_all_46_json-4
1762×rational_best_oopsla_all_46_json-3
952×rational_best_oopsla_all_46_json_45_simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
16138
217338
367638
4334938
Stop Event
node limit
Counts
2 → 66
Calls
Call 1
Inputs
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
(+.f64 (*.f64 x y) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x y) (neg.f64 (+.f64 (/.f64 x 2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 x 2) z) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 1 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)) (neg.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x y) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 z (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (*.f64 x (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 1 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 x (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (-.f64 (*.f64 x (neg.f64 y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (-.f64 (*.f64 x (neg.f64 y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (neg.f64 y)) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x (neg.f64 y)) z) (neg.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (-.f64 (*.f64 x (neg.f64 y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 x (neg.f64 y)) z))))))

simplify85.0ms (1.8%)

Algorithm
egg-herbie
Rules
1610×rational_best_oopsla_all_46_json_45_simplify-82
1254×rational_best_oopsla_all_46_json_45_simplify-72
976×rational_best_oopsla_all_46_json_45_simplify-23
966×rational_best_oopsla_all_46_json_45_simplify-49
936×rational_best_oopsla_all_46_json_45_simplify-35
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01502682
16212610
242722610
Stop Event
node limit
Counts
138 → 92
Calls
Call 1
Inputs
z
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(*.f64 (+.f64 1/2 y) x)
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(+.f64 (*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2))) z)
(+.f64 (*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2))) z)
(+.f64 (*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2))) z)
(+.f64 (*.f64 1/2 x) z)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(*.f64 y x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(*.f64 y x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
z
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
z
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(-.f64 (*.f64 x y) (neg.f64 (+.f64 (/.f64 x 2) z)))
(-.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 0)
(-.f64 0 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(-.f64 (+.f64 (/.f64 x 2) z) (*.f64 x (neg.f64 y)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 1)
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 1 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(*.f64 -1 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(*.f64 -1 (*.f64 1 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z))))
(*.f64 -1 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z))))
(*.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)) -1)
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)) (neg.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(*.f64 (neg.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 1)
(/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))
(/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(-.f64 (*.f64 x y) (neg.f64 z))
(-.f64 z (*.f64 x (neg.f64 y)))
(-.f64 (+.f64 (*.f64 x y) z) 0)
(-.f64 0 (-.f64 (*.f64 x (neg.f64 y)) z))
(*.f64 (+.f64 (*.f64 x y) z) 1)
(*.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 1 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))
(*.f64 1 (+.f64 (*.f64 x y) z))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(*.f64 -1 (-.f64 (*.f64 x (neg.f64 y)) z))
(*.f64 -1 (*.f64 1 (-.f64 (*.f64 x (neg.f64 y)) z)))
(*.f64 -1 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (-.f64 (*.f64 x (neg.f64 y)) z)))
(*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) z) -1)
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) z) (neg.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(*.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))
(*.f64 (neg.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (-.f64 (*.f64 x (neg.f64 y)) z))
(/.f64 (+.f64 (*.f64 x y) z) 1)
(/.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))
(/.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) z))
Outputs
z
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(*.f64 (+.f64 1/2 y) x)
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 x (*.f64 -1 (-.f64 (neg.f64 y) 1/2)))
(neg.f64 (*.f64 x (-.f64 -1/2 y)))
(+.f64 (*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2))) z)
(+.f64 z (*.f64 x (*.f64 -1 (-.f64 (neg.f64 y) 1/2))))
(+.f64 z (neg.f64 (*.f64 x (-.f64 -1/2 y))))
(+.f64 (*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2))) z)
(+.f64 z (*.f64 x (*.f64 -1 (-.f64 (neg.f64 y) 1/2))))
(+.f64 z (neg.f64 (*.f64 x (-.f64 -1/2 y))))
(+.f64 (*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2))) z)
(+.f64 z (*.f64 x (*.f64 -1 (-.f64 (neg.f64 y) 1/2))))
(+.f64 z (neg.f64 (*.f64 x (-.f64 -1/2 y))))
(+.f64 (*.f64 1/2 x) z)
(+.f64 z (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(*.f64 y x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(*.f64 y x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(*.f64 (+.f64 1/2 y) x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
z
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
z
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y x) z))
(+.f64 z (*.f64 (+.f64 1/2 y) x))
z
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
z
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
z
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
z
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
(-.f64 (*.f64 x y) (neg.f64 (+.f64 (/.f64 x 2) z)))
(-.f64 (*.f64 y x) (neg.f64 (+.f64 z (/.f64 x 2))))
(-.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 0)
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(-.f64 0 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2))))
(+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y))))
(-.f64 (+.f64 (/.f64 x 2) z) (*.f64 x (neg.f64 y)))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2))))
(+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y))))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 1)
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 1 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 -1 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2))))
(+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y))))
(*.f64 -1 (*.f64 1 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z))))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2))))
(+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y))))
(*.f64 -1 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z))))
(*.f64 (/.f64 (+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2))) (+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))) (neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2)))))
(*.f64 (+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y)))) (/.f64 (+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2))) (+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))))
(*.f64 (*.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 1 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)) -1)
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2))))
(+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y))))
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)) (neg.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(*.f64 (/.f64 (+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2))) (+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))) (neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2)))))
(*.f64 (+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y)))) (/.f64 (+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2))) (+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))))
(*.f64 (*.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(*.f64 (neg.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))) (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(*.f64 (/.f64 (+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2))) (+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))) (neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2)))))
(*.f64 (+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y)))) (/.f64 (+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2))) (+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))))
(/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) 1)
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (/.f64 (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)) (+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z)))))
(+.f64 (*.f64 y x) (+.f64 z (/.f64 x 2)))
(+.f64 z (+.f64 (*.f64 y x) (/.f64 x 2)))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 (/.f64 x 2) z)))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) (+.f64 z (/.f64 x 2))))
(+.f64 z (-.f64 (/.f64 x 2) (*.f64 x (neg.f64 y))))
(-.f64 (*.f64 x y) (neg.f64 z))
(-.f64 (*.f64 y x) (neg.f64 z))
(-.f64 z (*.f64 x (neg.f64 y)))
(-.f64 (+.f64 (*.f64 x y) z) 0)
(+.f64 z (*.f64 y x))
(-.f64 0 (-.f64 (*.f64 x (neg.f64 y)) z))
(-.f64 z (*.f64 x (neg.f64 y)))
(*.f64 (+.f64 (*.f64 x y) z) 1)
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 1 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z)))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) z) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(*.f64 1 (+.f64 (*.f64 x y) z))
(+.f64 z (*.f64 y x))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (+.f64 (*.f64 x y) z))
(+.f64 z (*.f64 y x))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(+.f64 z (*.f64 y x))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(+.f64 z (*.f64 y x))
(*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (*.f64 (+.f64 (*.f64 x y) z) (/.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))))
(+.f64 z (*.f64 y x))
(*.f64 -1 (-.f64 (*.f64 x (neg.f64 y)) z))
(-.f64 z (*.f64 x (neg.f64 y)))
(*.f64 -1 (*.f64 1 (-.f64 (*.f64 x (neg.f64 y)) z)))
(-.f64 z (*.f64 x (neg.f64 y)))
(*.f64 -1 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (-.f64 (*.f64 x (neg.f64 y)) z)))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (neg.f64 (-.f64 (*.f64 x (neg.f64 y)) z)))
(*.f64 (-.f64 z (*.f64 x (neg.f64 y))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(*.f64 (*.f64 (+.f64 (*.f64 x y) z) (/.f64 1 (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))
(+.f64 z (*.f64 y x))
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) z) -1)
(-.f64 z (*.f64 x (neg.f64 y)))
(*.f64 (-.f64 (*.f64 x (neg.f64 y)) z) (neg.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (neg.f64 (-.f64 (*.f64 x (neg.f64 y)) z)))
(*.f64 (-.f64 z (*.f64 x (neg.f64 y))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(*.f64 (*.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (+.f64 (*.f64 x y) z))
(+.f64 z (*.f64 y x))
(*.f64 (neg.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))) (-.f64 (*.f64 x (neg.f64 y)) z))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (neg.f64 (-.f64 (*.f64 x (neg.f64 y)) z)))
(*.f64 (-.f64 z (*.f64 x (neg.f64 y))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(/.f64 (+.f64 (*.f64 x y) z) 1)
(+.f64 z (*.f64 y x))
(/.f64 (+.f64 (*.f64 x y) z) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)))
(+.f64 z (*.f64 y x))
(/.f64 (+.f64 (*.f64 x y) z) (/.f64 (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z)) (/.f64 (+.f64 (*.f64 x y) z) (+.f64 (*.f64 x y) z))))
(+.f64 z (*.f64 y x))
(neg.f64 (-.f64 (*.f64 x (neg.f64 y)) z))
(-.f64 z (*.f64 x (neg.f64 y)))

eval26.0ms (0.6%)

Compiler

Compiled 2284 to 797 computations (65.1% saved)

prune67.0ms (1.4%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New86692
Fresh000
Picked101
Done000
Total87693
Error
0b
Counts
93 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(+.f64 (*.f64 1/2 x) (*.f64 y x))
15.3b
(+.f64 (*.f64 1/2 x) z)
0.0b
(+.f64 z (*.f64 (+.f64 1/2 y) x))
30.6b
(*.f64 (+.f64 1/2 y) x)
48.1b
(*.f64 y x)
32.1b
z
Compiler

Compiled 88 to 63 computations (28.4% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series84.0ms (1.8%)

Counts
1 → 12
Calls

6 calls:

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

rewrite67.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1626×rational_best_oopsla_all_46_json-2
1626×rational_best_oopsla_all_46_json-1
1626×rational_best_oopsla_all_46_json-4
1626×rational_best_oopsla_all_46_json-3
1104×rational_best_oopsla_all_46_json_45_simplify-72
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14313
213513
361713
4317313
Stop Event
node limit
Counts
1 → 52
Calls
Call 1
Inputs
(*.f64 (+.f64 1/2 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1/2 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (*.f64 (*.f64 y x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 (*.f64 1/2 x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (+.f64 1/2 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (+.f64 1/2 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (+.f64 1/2 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))) (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y x)) (*.f64 (*.f64 1/2 x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 1/2 x)) (*.f64 (*.f64 y x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))) (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) y) (*.f64 1/2 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) 1/2) (*.f64 y (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) y) (*.f64 1/2 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) 1/2) (*.f64 y (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x x))) (*.f64 (+.f64 1/2 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1/2 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 1/2 y) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (+.f64 1/2 y) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (*.f64 (+.f64 1/2 y) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 1/2 y) (neg.f64 x)))))))

simplify143.0ms (3%)

Algorithm
egg-herbie
Rules
1584×rational_best_oopsla_all_46_json_45_simplify-89
1192×rational_best_oopsla_all_46_json_45_simplify-74
1064×rational_best_oopsla_all_46_json_45_simplify-24
806×rational_best_oopsla_all_46_json_45_simplify-35
714×rational_best_oopsla_all_46_json_45_simplify-23
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01101222
1361862
21431862
36045862
Stop Event
node limit
Counts
64 → 58
Calls
Call 1
Inputs
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 (+.f64 1/2 y) x) 0)
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(+.f64 0 (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 1/2 x))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (*.f64 (*.f64 y x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)))
(+.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 (*.f64 1/2 x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 0 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 (*.f64 1/2 x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))
(+.f64 (*.f64 (*.f64 y x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)))
(+.f64 (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))) (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 (*.f64 1/2 x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y x)))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y x)) (*.f64 (*.f64 1/2 x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 1/2 x)))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 1/2 x)) (*.f64 (*.f64 y x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))) (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) y))
(+.f64 (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) y) (*.f64 1/2 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) 1/2))
(+.f64 (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) 1/2) (*.f64 y (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) y))
(+.f64 (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) y) (*.f64 1/2 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 y (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) 1/2))
(+.f64 (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) 1/2) (*.f64 y (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x x))) (*.f64 (+.f64 1/2 y) x))
(-.f64 (*.f64 (+.f64 1/2 y) x) 0)
(-.f64 0 (*.f64 (+.f64 1/2 y) (neg.f64 x)))
(-.f64 (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (+.f64 1/2 y) (neg.f64 x))))
(/.f64 (*.f64 (+.f64 1/2 y) x) 1)
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 x x))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(neg.f64 (*.f64 (+.f64 1/2 y) (neg.f64 x)))
Outputs
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (+.f64 1/2 y) x) 0)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 0 (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 y x) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (*.f64 (*.f64 y x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 (*.f64 1/2 x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 0 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 1/2 x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 y x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))) (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 1/2 x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y x)) (*.f64 (*.f64 1/2 x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 y x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 1/2 x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 1/2 x)) (*.f64 (*.f64 y x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (*.f64 1/2 x))) (*.f64 (*.f64 y (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) y) (*.f64 1/2 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))) (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) 1/2))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) 1/2) (*.f64 y (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) y) (*.f64 1/2 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 y (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))) (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) 1/2))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) 1/2) (*.f64 y (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 0 (*.f64 (+.f64 1/2 y) (/.f64 x x))) (*.f64 (+.f64 1/2 y) x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(-.f64 (*.f64 (+.f64 1/2 y) x) 0)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(-.f64 0 (*.f64 (+.f64 1/2 y) (neg.f64 x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(-.f64 (*.f64 0 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))) (*.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (*.f64 (+.f64 1/2 y) (neg.f64 x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) 1)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 x x))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))) (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))) (*.f64 x (*.f64 (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x)) (/.f64 (*.f64 (+.f64 1/2 y) x) (*.f64 (+.f64 1/2 y) x))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(/.f64 (*.f64 (+.f64 1/2 y) x) (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))) (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y)))))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(neg.f64 (*.f64 (+.f64 1/2 y) (neg.f64 x)))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))

localize3.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

localize5.0ms (0.1%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

localize79.0ms (1.7%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 10 computations (47.4% saved)

series1.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite66.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1630×rational_best_oopsla_all_46_json-2
1630×rational_best_oopsla_all_46_json-1
1630×rational_best_oopsla_all_46_json-4
1630×rational_best_oopsla_all_46_json-3
994×rational_best_oopsla_all_46_json_45_simplify-49
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
15013
215313
364813
4330713
Stop Event
node limit
Counts
1 → 89
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 x) (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x y) (*.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1/2 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1/2 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1/2 (*.f64 y (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (*.f64 1/2 (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 1/2 y) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 1 (+.f64 1/2 (*.f64 y (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 1 (+.f64 y (*.f64 1/2 (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 1/2 y) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 1/2 y) (*.f64 (/.f64 x x) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 1/2 (*.f64 y (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 y (*.f64 1/2 (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (+.f64 1/2 y) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1/2 (*.f64 x (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1/2 (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 y (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 x (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (*.f64 x (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (*.f64 (/.f64 x x) (*.f64 1/2 (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 y (/.f64 x x)) (*.f64 x (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 1/2 (/.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (+.f64 1/2 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 1 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 y) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 y) (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 y) (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 1/2 y) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 x x) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 x (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 (neg.f64 (+.f64 1/2 y)) (/.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 x (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 x x) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 -1/2 (*.f64 (/.f64 x x) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 (neg.f64 y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (neg.f64 (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (*.f64 x (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (neg.f64 (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (+.f64 1/2 y) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (neg.f64 (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (neg.f64 (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))) (neg.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 1/2 y)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (neg.f64 (*.f64 x (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1/2 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))))))))

simplify148.0ms (3.1%)

Algorithm
egg-herbie
Rules
1618×rational_best_oopsla_all_46_json_45_simplify-23
1064×rational_best_oopsla_all_46_json_45_simplify-89
1002×rational_best_oopsla_all_46_json_45_simplify-35
932×rational_best_oopsla_all_46_json_45_simplify-82
842×rational_best_oopsla_all_46_json_45_simplify-24
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02131354
19391354
253821354
Stop Event
node limit
Counts
104 → 95
Calls
Call 1
Inputs
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 1/2 x)
(*.f64 y x)
(*.f64 y x)
(-.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(-.f64 (*.f64 x y) (*.f64 x -1/2))
(-.f64 (*.f64 x (+.f64 1/2 y)) 0)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 1/2 y))))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 (*.f64 y (/.f64 x x))))
(*.f64 x (+.f64 y (*.f64 1/2 (/.f64 x x))))
(*.f64 x (*.f64 (+.f64 1/2 y) (/.f64 x x)))
(*.f64 x (*.f64 1 (+.f64 1/2 (*.f64 y (/.f64 x x)))))
(*.f64 x (*.f64 1 (+.f64 y (*.f64 1/2 (/.f64 x x)))))
(*.f64 x (*.f64 (+.f64 1/2 y) (*.f64 x (/.f64 1 x))))
(*.f64 x (*.f64 (+.f64 1/2 y) (*.f64 (/.f64 x x) (/.f64 x x))))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 1/2 y)))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 1/2 (*.f64 y (/.f64 x x)))))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 y (*.f64 1/2 (/.f64 x x)))))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(*.f64 x (+.f64 1/2 (*.f64 x (/.f64 y x))))
(*.f64 x (+.f64 1/2 (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))))
(*.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 y (/.f64 x x))))
(*.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 x (/.f64 y x))))
(*.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))))
(*.f64 x (+.f64 y (*.f64 x (/.f64 1/2 x))))
(*.f64 x (+.f64 y (*.f64 (/.f64 x x) (*.f64 1/2 (/.f64 x x)))))
(*.f64 x (+.f64 (*.f64 y (/.f64 x x)) (*.f64 x (/.f64 1/2 x))))
(*.f64 x (+.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 1/2 (/.f64 x x)))))
(*.f64 x (*.f64 x (/.f64 (+.f64 1/2 y) x)))
(*.f64 x (*.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) (/.f64 x x)))
(*.f64 x (*.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) (/.f64 x x)))
(*.f64 x (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (/.f64 x x)))
(*.f64 x (*.f64 x (/.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) x)))
(*.f64 x (*.f64 x (/.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) x)))
(*.f64 x (*.f64 x (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) x)))
(*.f64 (*.f64 x (+.f64 1/2 y)) 1)
(*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 1 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y))))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y))))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))
(*.f64 1 (*.f64 x (+.f64 1/2 y)))
(*.f64 1 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 x x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 (+.f64 1/2 y) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) x))
(*.f64 (+.f64 1/2 y) (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))))
(*.f64 (/.f64 x x) (*.f64 x (+.f64 1/2 y)))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 1/2 y) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 x x) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 x x))))
(*.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 (neg.f64 (+.f64 1/2 y)) (/.f64 x x))))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 x (+.f64 1/2 y)))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 x x) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (neg.f64 x) (+.f64 -1/2 (*.f64 (/.f64 x x) (neg.f64 y))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 y) -1/2))
(*.f64 (neg.f64 x) (neg.f64 (+.f64 1/2 y)))
(*.f64 -1 (neg.f64 (*.f64 x (+.f64 1/2 y))))
(*.f64 -1 (*.f64 1 (neg.f64 (*.f64 x (+.f64 1/2 y)))))
(*.f64 -1 (*.f64 (+.f64 1/2 y) (neg.f64 x)))
(*.f64 -1 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (neg.f64 (*.f64 x (+.f64 1/2 y)))))
(*.f64 -1 (*.f64 x (neg.f64 (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) x)
(*.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) x)
(*.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))
(*.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))) -1)
(*.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))) (neg.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) x)
(*.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))
(*.f64 (neg.f64 (+.f64 1/2 y)) (neg.f64 x))
(*.f64 (neg.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (neg.f64 (*.f64 x (+.f64 1/2 y))))
(/.f64 (*.f64 x (+.f64 1/2 y)) 1)
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 x x))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(neg.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))))
Outputs
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 x (-.f64 (*.f64 -1 y) 1/2)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 1/2 x)
(*.f64 y x)
(*.f64 y x)
(-.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(-.f64 (*.f64 x y) (*.f64 x -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(-.f64 (*.f64 x (+.f64 1/2 y)) 0)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(-.f64 0 (neg.f64 (*.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 1/2 y))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 1/2 (*.f64 y (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 y (*.f64 1/2 (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (+.f64 1/2 y) (/.f64 x x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 1 (+.f64 1/2 (*.f64 y (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 1 (+.f64 y (*.f64 1/2 (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (+.f64 1/2 y) (*.f64 x (/.f64 1 x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (+.f64 1/2 y) (*.f64 (/.f64 x x) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 1/2 (*.f64 y (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (+.f64 y (*.f64 1/2 (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (+.f64 1/2 y) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 1/2 (*.f64 x (/.f64 y x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 1/2 (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 y (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 x (/.f64 y x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 (*.f64 1/2 (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 y (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 y (*.f64 x (/.f64 1/2 x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 y (*.f64 (/.f64 x x) (*.f64 1/2 (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 (*.f64 y (/.f64 x x)) (*.f64 x (/.f64 1/2 x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (+.f64 (*.f64 y (/.f64 x x)) (*.f64 (/.f64 x x) (*.f64 1/2 (/.f64 x x)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 x (/.f64 (+.f64 1/2 y) x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) (/.f64 x x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) (/.f64 x x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (/.f64 x x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 x (/.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 x (/.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 x (*.f64 x (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) 1)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 1 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 1 (*.f64 x (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 1 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 x x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) x))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) (*.f64 x (/.f64 (+.f64 1/2 y) (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 y) (*.f64 (+.f64 1/2 y) (/.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 x (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 1/2 y) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 x x) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 x (/.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 x x) (*.f64 (neg.f64 x) (/.f64 (neg.f64 (+.f64 1/2 y)) (/.f64 x x))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 x (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 x x) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (neg.f64 x) (+.f64 -1/2 (*.f64 (/.f64 x x) (neg.f64 y))))
(*.f64 (neg.f64 x) (+.f64 -1/2 (*.f64 (neg.f64 y) (/.f64 x x))))
(*.f64 (neg.f64 x) (+.f64 -1/2 (*.f64 (neg.f64 (/.f64 x x)) y)))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 y) -1/2))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (neg.f64 x) (neg.f64 (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (neg.f64 (*.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 1 (neg.f64 (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 (+.f64 1/2 y) (neg.f64 x)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (neg.f64 (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 -1 (*.f64 x (neg.f64 (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 1/2 (*.f64 y (/.f64 x x))) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (+.f64 y (*.f64 1/2 (/.f64 x x))) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 1 (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))) -1)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))) (neg.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 (+.f64 1/2 y) (/.f64 x x)) x)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (*.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (*.f64 x (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (neg.f64 (+.f64 1/2 y)) (neg.f64 x))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(*.f64 (neg.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))) (neg.f64 (*.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(/.f64 (*.f64 x (+.f64 1/2 y)) 1)
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 x x))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (+.f64 1/2 y) (+.f64 1/2 y)))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(/.f64 (*.f64 x (+.f64 1/2 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y))) (/.f64 (*.f64 x (+.f64 1/2 y)) (*.f64 x (+.f64 1/2 y)))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))
(neg.f64 (neg.f64 (*.f64 x (+.f64 1/2 y))))
(*.f64 (+.f64 1/2 y) x)
(*.f64 x (-.f64 y -1/2))

eval152.0ms (3.2%)

Compiler

Compiled 4306 to 2719 computations (36.9% saved)

prune36.0ms (0.8%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New2092211
Fresh011
Picked011
Done134
Total2107217
Error
0b
Counts
217 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(+.f64 (*.f64 1/2 x) (*.f64 y x))
15.3b
(+.f64 (*.f64 1/2 x) z)
17.9b
(+.f64 z (*.f64 y x))
30.6b
(*.f64 (+.f64 1/2 y) x)
48.1b
(*.f64 y x)
45.8b
(*.f64 1/2 x)
32.1b
z
Compiler

Compiled 50 to 36 computations (28% saved)

localize3.0ms (0.1%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite61.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1466×rational_best_oopsla_all_46_json-2
1466×rational_best_oopsla_all_46_json-1
1466×rational_best_oopsla_all_46_json-4
1466×rational_best_oopsla_all_46_json-3
1172×rational_best_oopsla_all_46_json_45_simplify-72
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14313
213513
357813
4289013
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 z (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 z (*.f64 y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 z (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (*.f64 y (neg.f64 x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 1 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (+.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 y (neg.f64 x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 1 (-.f64 (*.f64 y (neg.f64 x)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (-.f64 (*.f64 y (neg.f64 x)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y (neg.f64 x)) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y (neg.f64 x)) z) (neg.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (-.f64 (*.f64 y (neg.f64 x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 y x)) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y (neg.f64 x)) z))))))

simplify104.0ms (2.2%)

Algorithm
egg-herbie
Rules
1338×rational_best_oopsla_all_46_json_45_simplify-13
1092×rational_best_oopsla_all_46_json_45_simplify-35
1016×rational_best_oopsla_all_46_json_45_simplify-7
840×rational_best_oopsla_all_46_json_45_simplify-72
498×rational_best_oopsla_all_46_json_45_simplify-49
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
073979
1292967
22553967
37099967
Stop Event
node limit
Counts
69 → 38
Calls
Call 1
Inputs
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(-.f64 z (*.f64 y (neg.f64 x)))
(-.f64 (*.f64 y x) (neg.f64 z))
(-.f64 (+.f64 z (*.f64 y x)) 0)
(-.f64 0 (-.f64 (*.f64 y (neg.f64 x)) z))
(*.f64 (+.f64 z (*.f64 y x)) 1)
(*.f64 (+.f64 z (*.f64 y x)) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 1 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x))))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x))))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (+.f64 z (*.f64 y x)))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))
(*.f64 1 (+.f64 z (*.f64 y x)))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (+.f64 z (*.f64 y x)))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(*.f64 -1 (-.f64 (*.f64 y (neg.f64 x)) z))
(*.f64 -1 (*.f64 1 (-.f64 (*.f64 y (neg.f64 x)) z)))
(*.f64 -1 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (-.f64 (*.f64 y (neg.f64 x)) z)))
(*.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))
(*.f64 (-.f64 (*.f64 y (neg.f64 x)) z) -1)
(*.f64 (-.f64 (*.f64 y (neg.f64 x)) z) (neg.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(*.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))
(*.f64 (neg.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (-.f64 (*.f64 y (neg.f64 x)) z))
(/.f64 (+.f64 z (*.f64 y x)) 1)
(/.f64 (+.f64 z (*.f64 y x)) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(/.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(neg.f64 (-.f64 (*.f64 y (neg.f64 x)) z))
Outputs
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
z
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(*.f64 y x)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(+.f64 (*.f64 y x) z)
(-.f64 z (*.f64 y (neg.f64 x)))
(-.f64 (*.f64 y x) (neg.f64 z))
(-.f64 (+.f64 z (*.f64 y x)) 0)
(+.f64 (*.f64 y x) z)
(-.f64 0 (-.f64 (*.f64 y (neg.f64 x)) z))
(-.f64 z (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 z (*.f64 y x)) 1)
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 1 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x))))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x))))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 (+.f64 z (*.f64 y x)) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(*.f64 1 (+.f64 z (*.f64 y x)))
(+.f64 (*.f64 y x) z)
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (+.f64 z (*.f64 y x)))
(+.f64 (*.f64 y x) z)
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(+.f64 (*.f64 y x) z)
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(+.f64 (*.f64 y x) z)
(*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (*.f64 (+.f64 z (*.f64 y x)) (/.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))))
(+.f64 (*.f64 y x) z)
(*.f64 -1 (-.f64 (*.f64 y (neg.f64 x)) z))
(-.f64 z (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 1 (-.f64 (*.f64 y (neg.f64 x)) z)))
(-.f64 z (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (-.f64 (*.f64 y (neg.f64 x)) z)))
(*.f64 (/.f64 (+.f64 (*.f64 y x) z) (+.f64 (*.f64 y x) z)) (neg.f64 (-.f64 (*.f64 y (neg.f64 x)) z)))
(*.f64 (-.f64 z (*.f64 y (neg.f64 x))) (/.f64 (+.f64 (*.f64 y x) z) (+.f64 (*.f64 y x) z)))
(*.f64 (*.f64 (+.f64 z (*.f64 y x)) (/.f64 1 (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))
(+.f64 (*.f64 y x) z)
(*.f64 (-.f64 (*.f64 y (neg.f64 x)) z) -1)
(-.f64 z (*.f64 y (neg.f64 x)))
(*.f64 (-.f64 (*.f64 y (neg.f64 x)) z) (neg.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(*.f64 (/.f64 (+.f64 (*.f64 y x) z) (+.f64 (*.f64 y x) z)) (neg.f64 (-.f64 (*.f64 y (neg.f64 x)) z)))
(*.f64 (-.f64 z (*.f64 y (neg.f64 x))) (/.f64 (+.f64 (*.f64 y x) z) (+.f64 (*.f64 y x) z)))
(*.f64 (*.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (+.f64 z (*.f64 y x)))
(+.f64 (*.f64 y x) z)
(*.f64 (neg.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))) (-.f64 (*.f64 y (neg.f64 x)) z))
(*.f64 (/.f64 (+.f64 (*.f64 y x) z) (+.f64 (*.f64 y x) z)) (neg.f64 (-.f64 (*.f64 y (neg.f64 x)) z)))
(*.f64 (-.f64 z (*.f64 y (neg.f64 x))) (/.f64 (+.f64 (*.f64 y x) z) (+.f64 (*.f64 y x) z)))
(/.f64 (+.f64 z (*.f64 y x)) 1)
(+.f64 (*.f64 y x) z)
(/.f64 (+.f64 z (*.f64 y x)) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))))
(+.f64 (*.f64 y x) z)
(/.f64 (+.f64 z (*.f64 y x)) (/.f64 (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x))) (/.f64 (+.f64 z (*.f64 y x)) (+.f64 z (*.f64 y x)))))
(+.f64 (*.f64 y x) z)
(neg.f64 (-.f64 (*.f64 y (neg.f64 x)) z))
(-.f64 z (*.f64 y (neg.f64 x)))

eval5.0ms (0.1%)

Compiler

Compiled 755 to 98 computations (87% saved)

prune9.0ms (0.2%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New38038
Fresh011
Picked011
Done055
Total38745
Error
0b
Counts
45 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(+.f64 (*.f64 1/2 x) (*.f64 y x))
15.3b
(+.f64 (*.f64 1/2 x) z)
17.9b
(+.f64 z (*.f64 y x))
30.6b
(*.f64 (+.f64 1/2 y) x)
48.1b
(*.f64 y x)
45.8b
(*.f64 1/2 x)
32.1b
z
Compiler

Compiled 50 to 36 computations (28% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(+.f64 (*.f64 1/2 x) (*.f64 y x))
15.3b
(+.f64 (*.f64 1/2 x) z)
17.9b
(+.f64 z (*.f64 y x))
30.6b
(*.f64 (+.f64 1/2 y) x)
48.1b
(*.f64 y x)
45.8b
(*.f64 1/2 x)
32.1b
z
Compiler

Compiled 50 to 36 computations (28% saved)

regimes37.0ms (0.8%)

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

5 calls:

8.0ms
z
7.0ms
(+.f64 (/.f64 x 2) (*.f64 y x))
7.0ms
x
6.0ms
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
6.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
0.0b1(+.f64 (/.f64 x 2) (*.f64 y x))
Compiler

Compiled 91 to 53 computations (41.8% saved)

regimes51.0ms (1.1%)

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

3 calls:

21.0ms
x
14.0ms
z
14.0ms
y
Results
ErrorSegmentsBranch
10.0b3x
1.2b3y
7.3b3z
Compiler

Compiled 37 to 22 computations (40.5% saved)

bsearch32.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.01490132389016753
56.60336998128116
18.0ms
-138221.88726306395
-2.3050019275736135e-8
Results
29.0ms288×body256valid
Compiler

Compiled 342 to 247 computations (27.8% saved)

regimes141.0ms (3%)

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

3 calls:

94.0ms
y
32.0ms
x
14.0ms
z
Results
ErrorSegmentsBranch
9.5b5x
12.1b7y
8.0b3z
Compiler

Compiled 32 to 19 computations (40.6% saved)

bsearch23.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
49163566133742.78
8.186058954104177e+19
7.0ms
-1.303265305805405e-7
-7.926995300631754e-8
Results
21.0ms208×body256valid
Compiler

Compiled 252 to 182 computations (27.8% saved)

regimes60.0ms (1.3%)

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

3 calls:

29.0ms
y
18.0ms
x
12.0ms
z
Results
ErrorSegmentsBranch
17.2b5x
20.5b7y
11.1b3z
Compiler

Compiled 27 to 18 computations (33.3% saved)

bsearch28.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
8.186058954104177e+19
2.3925187239571478e+24
15.0ms
-3.8403105593642078e+84
-8.465184623900745e+82
Results
25.0ms240×body256valid
Compiler

Compiled 228 to 178 computations (21.9% saved)

regimes63.0ms (1.3%)

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

3 calls:

25.0ms
y
19.0ms
x
18.0ms
z
Results
ErrorSegmentsBranch
24.3b5x
22.1b7y
21.5b5z
Compiler

Compiled 22 to 15 computations (31.8% saved)

bsearch60.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
49163566133742.78
8.186058954104177e+19
17.0ms
-7.926995300631754e-8
-1.1604245065974213e-9
13.0ms
-2.3328073464922533e+42
-4.050386118300801e+37
15.0ms
-3.8403105593642078e+84
-8.465184623900745e+82
Results
48.0ms496×body256valid
Compiler

Compiled 390 to 308 computations (21% saved)

regimes48.0ms (1%)

Accuracy

Total -39.3b remaining (-172.7%)

Threshold costs -39.3b (-172.7%)

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

3 calls:

20.0ms
y
19.0ms
x
8.0ms
z
Results
ErrorSegmentsBranch
24.3b5x
27.9b5y
22.8b3z
Compiler

Compiled 19 to 14 computations (26.3% saved)

bsearch30.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
49163566133742.78
8.186058954104177e+19
15.0ms
-7.926995300631754e-8
-1.1604245065974213e-9
Results
27.0ms256×body256valid
Compiler

Compiled 210 to 173 computations (17.6% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051247
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(if (<=.f64 y -1/2) (+.f64 z (*.f64 y x)) (if (<=.f64 y 1/2) (+.f64 (*.f64 1/2 x) z) (+.f64 z (*.f64 y x))))
(if (<=.f64 z -8689154328480147/75557863725914323419136) (+.f64 z (*.f64 y x)) (if (<=.f64 z 67000000000000000) (*.f64 (+.f64 1/2 y) x) (+.f64 z (*.f64 y x))))
(if (<=.f64 z -119999999999999995608815587570638890532325718703282813524164366121125038018514649088) z (if (<=.f64 z 23000000000000002097152) (*.f64 (+.f64 1/2 y) x) z))
(if (<=.f64 z -84999999999999995204581041165620893627042274476098409143961566260344455194138902528) z (if (<=.f64 z -2299999999999999994917385722103834553090048) (*.f64 y x) (if (<=.f64 z -2949778999859695/2417851639229258349412352) z (if (<=.f64 z 50000000000000) (*.f64 1/2 x) z))))
(if (<=.f64 z -7978910409456553/604462909807314587353088) z (if (<=.f64 z 55000000000000) (*.f64 1/2 x) z))
z
Outputs
(+.f64 z (*.f64 (+.f64 1/2 y) x))
(if (<=.f64 y -1/2) (+.f64 z (*.f64 y x)) (if (<=.f64 y 1/2) (+.f64 (*.f64 1/2 x) z) (+.f64 z (*.f64 y x))))
(if (<=.f64 z -8689154328480147/75557863725914323419136) (+.f64 z (*.f64 y x)) (if (<=.f64 z 67000000000000000) (*.f64 (+.f64 1/2 y) x) (+.f64 z (*.f64 y x))))
(if (<=.f64 z -119999999999999995608815587570638890532325718703282813524164366121125038018514649088) z (if (<=.f64 z 23000000000000002097152) (*.f64 (+.f64 1/2 y) x) z))
(if (<=.f64 z -84999999999999995204581041165620893627042274476098409143961566260344455194138902528) z (if (<=.f64 z -2299999999999999994917385722103834553090048) (*.f64 y x) (if (<=.f64 z -2949778999859695/2417851639229258349412352) z (if (<=.f64 z 50000000000000) (*.f64 1/2 x) z))))
(if (<=.f64 z -7978910409456553/604462909807314587353088) z (if (<=.f64 z 55000000000000) (*.f64 1/2 x) z))
z
Compiler

Compiled 128 to 79 computations (38.3% saved)

soundness187.0ms (4%)

Algorithm
egg-herbie
Rules
1878×rational_best_oopsla_all_46_json_45_simplify-10
1096×rational_best_oopsla_all_46_json_45_simplify-49
1040×rational_best_oopsla_all_46_json_45_simplify-7
964×rational_best_oopsla_all_46_json_45_simplify-72
708×rational_best_oopsla_all_46_json_45_simplify-30
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11725
24425
313125
448725
5251325
6532325
7797525
Stop Event
node limit
Compiler

Compiled 48 to 25 computations (47.9% saved)

end53.0ms (1.1%)

Compiler

Compiled 110 to 58 computations (47.3% saved)

Profiling

Loading profile data...