Details

Time bar (total: 2.5s)

analyze58.0ms (2.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
50.8%50%48.4%0.1%1.6%0%0%7
60.8%59.3%38.2%0.1%2.3%0%0%8
70.8%67.1%27.7%0.1%5.1%0%0%9
77.3%72.6%21.3%0.1%6%0%0%10
83.9%76.9%14.7%0.1%8.3%0%0%11
87.7%79.8%11.2%0.1%8.9%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample690.0ms (27.6%)

Results
648.0ms8254×body256valid
30.0ms344×body256infinite
0.0msbody1024valid
0.0msbody512valid
Bogosity

preprocess5.0ms (0.2%)

Algorithm
egg-herbie
Rules
swap-x-y
rational_best-simplify-2
rational_best-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
11138
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
(-.f64 (+.f64 y x) (*.f64 y x))
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))
(-.f64 (+.f64 y x) (*.f64 y x))
(-.f64 (+.f64 x y) (*.f64 x y))
Symmetry

(sort x y)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify13.0ms (0.5%)

Algorithm
egg-herbie
Rules
rational_best-simplify-2
rational_best-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
1919
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))

eval0.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite83.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
1892×rational_best-5
1890×rational_best-4
1890×rational_best-2
1890×rational_best-3
1890×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
16019
220919
387619
4383919
Stop Event
node limit
Counts
1 → 26
Calls
Call 1
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x y) (neg.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (+.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 x y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 y (*.f64 x y))) (-.f64 0 (*.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (-.f64 (+.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x y) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))) (-.f64 (+.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))) (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x y) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x y) (+.f64 x y)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 x y) (+.f64 x y)))))))

simplify139.0ms (5.6%)

Algorithm
egg-herbie
Rules
1126×rational_best-simplify-2
1056×rational_best-simplify-80
956×rational_best-simplify-78
918×rational_best-simplify-94
570×rational_best-simplify-82
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0741076
11371060
2520968
32158968
44428968
Stop Event
node limit
Counts
50 → 52
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
x
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) x)
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 (+.f64 x y) (neg.f64 (*.f64 x y)))
(+.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 0)
(+.f64 0 (-.f64 (+.f64 x y) (*.f64 x y)))
(+.f64 (neg.f64 (*.f64 x y)) (+.f64 x y))
(+.f64 (+.f64 x (+.f64 y (*.f64 x y))) (-.f64 0 (*.f64 x (+.f64 y y))))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))))
(*.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))
(*.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (-.f64 (+.f64 x y) (*.f64 x y)))
(*.f64 (-.f64 (*.f64 x y) (+.f64 x y)) -1)
(*.f64 (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(*.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))))
(*.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))) (-.f64 (+.f64 x y) (*.f64 x y)))
(*.f64 (/.f64 1 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))
(*.f64 (/.f64 (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))
(*.f64 (/.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(*.f64 (/.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))) (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)
(/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(/.f64 (-.f64 (*.f64 x y) (+.f64 x y)) -1)
(/.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 2) 2)
(/.f64 (*.f64 (-.f64 (*.f64 x y) (+.f64 x y)) 2) -2)
(pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)
(neg.f64 (-.f64 (*.f64 x y) (+.f64 x y)))
Outputs
y
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(+.f64 y (*.f64 (-.f64 1 y) x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (*.f64 y -1)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 x (+.f64 1 (*.f64 y -1))))
(+.f64 y (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 x (+.f64 1 (*.f64 y -1))))
(+.f64 y (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 y (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 y (*.f64 x (+.f64 1 (*.f64 y -1))))
(+.f64 y (*.f64 x (+.f64 1 (neg.f64 y))))
x
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 x -1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 x (*.f64 y (+.f64 1 (*.f64 x -1))))
(+.f64 x (*.f64 y (+.f64 1 (neg.f64 x))))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 x (*.f64 y (+.f64 1 (*.f64 x -1))))
(+.f64 x (*.f64 y (+.f64 1 (neg.f64 x))))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 x))) x)
(+.f64 x (*.f64 y (+.f64 1 (*.f64 x -1))))
(+.f64 x (*.f64 y (+.f64 1 (neg.f64 x))))
(+.f64 (+.f64 x y) (neg.f64 (*.f64 x y)))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(+.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 0)
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(+.f64 0 (-.f64 (+.f64 x y) (*.f64 x y)))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(+.f64 (neg.f64 (*.f64 x y)) (+.f64 x y))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(+.f64 (+.f64 x (+.f64 y (*.f64 x y))) (-.f64 0 (*.f64 x (+.f64 y y))))
(+.f64 (+.f64 x (+.f64 y (*.f64 y x))) (neg.f64 (*.f64 x (+.f64 y y))))
(+.f64 (+.f64 y x) (+.f64 (*.f64 y x) (neg.f64 (*.f64 y (+.f64 x x)))))
(+.f64 y (+.f64 (+.f64 x (*.f64 y x)) (neg.f64 (*.f64 y (+.f64 x x)))))
(+.f64 x (+.f64 (+.f64 y (*.f64 y x)) (neg.f64 (*.f64 y (+.f64 x x)))))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (-.f64 (+.f64 x y) (*.f64 x y)))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (-.f64 (*.f64 x y) (+.f64 x y)) -1)
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))) (-.f64 (+.f64 x y) (*.f64 x y)))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (/.f64 1 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (/.f64 (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y)))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (/.f64 (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))) (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(*.f64 (/.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 1 (-.f64 (+.f64 x y) (*.f64 x y)))) (-.f64 (+.f64 x y) (*.f64 x y))) (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (/.f64 (-.f64 (+.f64 x y) (*.f64 x y)) (-.f64 (+.f64 x y) (*.f64 x y))))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(/.f64 (-.f64 (*.f64 x y) (+.f64 x y)) -1)
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(/.f64 (*.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 2) 2)
(/.f64 (*.f64 (-.f64 (+.f64 y x) (*.f64 y x)) 2) 2)
(/.f64 (*.f64 (-.f64 (*.f64 x y) (+.f64 x y)) 2) -2)
(/.f64 (*.f64 (-.f64 (+.f64 y x) (*.f64 y x)) 2) 2)
(pow.f64 (-.f64 (+.f64 x y) (*.f64 x y)) 1)
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))
(neg.f64 (-.f64 (*.f64 x y) (+.f64 x y)))
(+.f64 y (+.f64 x (neg.f64 (*.f64 y x))))
(-.f64 (+.f64 y x) (*.f64 y x))

eval7.0ms (0.3%)

Compiler

Compiled 730 to 183 computations (74.9% saved)

prune10.0ms (0.4%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New48452
Fresh000
Picked011
Done000
Total48553
Error
0b
Counts
53 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
26.8b
(*.f64 (-.f64 1 y) x)
25.8b
(*.f64 y (-.f64 1 x))
36.4b
y
37.5b
x
Compiler

Compiled 29 to 19 computations (34.5% saved)

localize5.0ms (0.2%)

Compiler

Compiled 13 to 8 computations (38.5% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1 y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

6 calls:

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

rewrite69.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
1616×rational_best-5
1614×rational_best-4
1614×rational_best-2
1614×rational_best-3
1614×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15613
218113
375313
4327313
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) x) (/.f64 (*.f64 (-.f64 1 y) x) (*.f64 (-.f64 1 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 y) x) 1)))))

simplify166.0ms (6.6%)

Algorithm
egg-herbie
Rules
1754×rational_best-simplify-80
1354×rational_best-simplify-78
1076×rational_best-simplify-44
1040×rational_best-simplify-132
898×rational_best-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
024289
137267
276267
3198267
4809267
52501267
64195267
76748267
Stop Event
node limit
Counts
19 → 18
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (-.f64 1 y) x) 0)
(+.f64 0 (*.f64 (-.f64 1 y) x))
(-.f64 (*.f64 (-.f64 1 y) x) 0)
(/.f64 (*.f64 (-.f64 1 y) x) 1)
(/.f64 (*.f64 (-.f64 1 y) x) (/.f64 (*.f64 (-.f64 1 y) x) (*.f64 (-.f64 1 y) x)))
(/.f64 (*.f64 (-.f64 1 y) (+.f64 x x)) 2)
(pow.f64 (*.f64 (-.f64 1 y) x) 1)
Outputs
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 -1 x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 -1 x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 -1 x)))
(+.f64 x (neg.f64 (*.f64 x y)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 (-.f64 1 y) x) 0)
(*.f64 x (-.f64 1 y))
(+.f64 0 (*.f64 (-.f64 1 y) x))
(*.f64 x (-.f64 1 y))
(-.f64 (*.f64 (-.f64 1 y) x) 0)
(*.f64 x (-.f64 1 y))
(/.f64 (*.f64 (-.f64 1 y) x) 1)
(*.f64 x (-.f64 1 y))
(/.f64 (*.f64 (-.f64 1 y) x) (/.f64 (*.f64 (-.f64 1 y) x) (*.f64 (-.f64 1 y) x)))
(*.f64 x (-.f64 1 y))
(/.f64 (*.f64 (-.f64 1 y) (+.f64 x x)) 2)
(*.f64 x (-.f64 1 y))
(pow.f64 (*.f64 (-.f64 1 y) x) 1)
(*.f64 x (-.f64 1 y))

eval3.0ms (0.1%)

Compiler

Compiled 120 to 69 computations (42.5% saved)

prune5.0ms (0.2%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New16218
Fresh022
Picked011
Done022
Total16723
Error
0b
Counts
23 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
26.8b
(+.f64 x (*.f64 x (neg.f64 y)))
26.8b
(*.f64 (-.f64 1 y) x)
25.8b
(*.f64 y (-.f64 1 x))
51.9b
(*.f64 x (neg.f64 y))
36.4b
y
37.5b
x
Compiler

Compiled 43 to 28 computations (34.9% saved)

localize6.0ms (0.2%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 16 to 5 computations (68.8% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite91.0ms (3.6%)

Algorithm
batch-egg-rewrite
Rules
892×rational_best-simplify-57
812×rational_best-simplify-82
632×rational_best-simplify-44
606×rational_best-simplify-80
580×rational_best-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
17217
225117
3100517
4441517
Stop Event
node limit
Counts
1 → 36
Calls
Call 1
Inputs
(+.f64 x (*.f64 x (neg.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (neg.f64 y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 (neg.f64 y) 1) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 (neg.f64 y) 1) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (neg.f64 y) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (neg.f64 y) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 y) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (*.f64 (+.f64 (neg.f64 y) 1) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (+.f64 (neg.f64 y) 1) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 x (+.f64 (neg.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1)))))) (*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 y -2) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x (+.f64 (*.f64 y -2) 2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) 1))))))))

simplify242.0ms (9.7%)

Algorithm
egg-herbie
Rules
1362×rational_best-simplify-82
1340×rational_best-simplify-80
1258×rational_best-simplify-78
978×rational_best-simplify-54
970×rational_best-simplify-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0961080
12241044
29581044
339871038
467461038
Stop Event
node limit
Counts
60 → 55
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(-.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 0)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 (neg.f64 y) 1))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) 1) (/.f64 x x)))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) 1) (*.f64 x (/.f64 1 x))))
(*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 (neg.f64 y) (/.f64 x x)))
(*.f64 x (+.f64 (neg.f64 y) (*.f64 x (/.f64 1 x))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))))
(*.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 (+.f64 (neg.f64 y) 1) x)
(*.f64 (/.f64 1 x) (*.f64 (+.f64 (neg.f64 y) 1) (*.f64 x x)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 (+.f64 (neg.f64 y) 1) (/.f64 1 x)))
(*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1)))))) (*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1)))))))
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))
(*.f64 (/.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)
(/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(/.f64 (*.f64 x (+.f64 (*.f64 y -2) 2)) 2)
(/.f64 (neg.f64 (*.f64 x (+.f64 (*.f64 y -2) 2))) -2)
(pow.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)
(neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) 1))))
Outputs
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 x (+.f64 y -1)))
(neg.f64 (*.f64 x (-.f64 y 1)))
(*.f64 (-.f64 y 1) (neg.f64 x))
(*.f64 x (neg.f64 (-.f64 y 1)))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 x (+.f64 y -1)))
(neg.f64 (*.f64 x (-.f64 y 1)))
(*.f64 (-.f64 y 1) (neg.f64 x))
(*.f64 x (neg.f64 (-.f64 y 1)))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 x (+.f64 y -1)))
(neg.f64 (*.f64 x (-.f64 y 1)))
(*.f64 (-.f64 y 1) (neg.f64 x))
(*.f64 x (neg.f64 (-.f64 y 1)))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 x (+.f64 y -1)))
(neg.f64 (*.f64 x (-.f64 y 1)))
(*.f64 (-.f64 y 1) (neg.f64 x))
(*.f64 x (neg.f64 (-.f64 y 1)))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (neg.f64 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(-.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 0)
(*.f64 x (+.f64 1 (neg.f64 y)))
(-.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (+.f64 (neg.f64 y) 1))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) 1) (/.f64 x x)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) 1) (*.f64 x (/.f64 1 x))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (+.f64 (neg.f64 y) (/.f64 x x)))
(*.f64 x (+.f64 (neg.f64 y) (*.f64 x (/.f64 1 x))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (+.f64 (neg.f64 y) 1) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 1 x) (*.f64 (+.f64 (neg.f64 y) 1) (*.f64 x x)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 x x))))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 x (*.f64 (neg.f64 y) x))))
(*.f64 (/.f64 1 x) (*.f64 x (+.f64 x (neg.f64 (*.f64 y x)))))
(*.f64 (/.f64 1 x) (*.f64 x (+.f64 x (*.f64 y (neg.f64 x)))))
(*.f64 x (/.f64 (+.f64 x (*.f64 y (neg.f64 x))) x))
(*.f64 (*.f64 x x) (*.f64 (+.f64 (neg.f64 y) 1) (/.f64 1 x)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 x (+.f64 (neg.f64 y) 1)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1)))))) (*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1)))))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) 1))) (+.f64 (neg.f64 y) 1))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (+.f64 (neg.f64 y) 1))))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1)))) (*.f64 x (+.f64 (neg.f64 y) 1))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)
(*.f64 x (+.f64 1 (neg.f64 y)))
(/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))
(/.f64 (*.f64 x (+.f64 (*.f64 y -2) 2)) 2)
(/.f64 (neg.f64 (*.f64 x (+.f64 (*.f64 y -2) 2))) -2)
(/.f64 (*.f64 x (+.f64 (*.f64 y -2) 2)) 2)
(pow.f64 (*.f64 x (+.f64 (neg.f64 y) 1)) 1)
(*.f64 x (+.f64 1 (neg.f64 y)))
(neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) 1))))
(*.f64 x (+.f64 1 (neg.f64 y)))

eval15.0ms (0.6%)

Compiler

Compiled 953 to 532 computations (44.2% saved)

prune9.0ms (0.4%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New55055
Fresh022
Picked011
Done044
Total55762
Error
0b
Counts
62 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
26.8b
(+.f64 x (*.f64 x (neg.f64 y)))
26.8b
(*.f64 (-.f64 1 y) x)
25.8b
(*.f64 y (-.f64 1 x))
51.9b
(*.f64 x (neg.f64 y))
36.4b
y
37.5b
x
Compiler

Compiled 43 to 28 computations (34.9% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done055
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 x y) (*.f64 x y))
26.8b
(+.f64 x (*.f64 x (neg.f64 y)))
26.8b
(*.f64 (-.f64 1 y) x)
25.8b
(*.f64 y (-.f64 1 x))
51.9b
(*.f64 x (neg.f64 y))
36.4b
y
37.5b
x
Compiler

Compiled 43 to 28 computations (34.9% saved)

regimes19.0ms (0.8%)

Counts
7 → 1
Calls
Call 1
Inputs
x
y
(*.f64 x (neg.f64 y))
(*.f64 y (-.f64 1 x))
(*.f64 (-.f64 1 y) x)
(+.f64 x (*.f64 x (neg.f64 y)))
(-.f64 (+.f64 x y) (*.f64 x y))
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))
Calls

3 calls:

8.0ms
(-.f64 (+.f64 x y) (*.f64 x y))
5.0ms
x
5.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(-.f64 (+.f64 x y) (*.f64 x y))
Compiler

Compiled 46 to 23 computations (50% saved)

regimes34.0ms (1.4%)

Counts
6 → 4
Calls
Call 1
Inputs
x
y
(*.f64 x (neg.f64 y))
(*.f64 y (-.f64 1 x))
(*.f64 (-.f64 1 y) x)
(+.f64 x (*.f64 x (neg.f64 y)))
Outputs
(+.f64 x (*.f64 x (neg.f64 y)))
y
x
(*.f64 y (-.f64 1 x))
Calls

2 calls:

24.0ms
y
8.0ms
x
Results
ErrorSegmentsBranch
6.0b2x
5.2b4y
Compiler

Compiled 30 to 15 computations (50% saved)

bsearch39.0ms (1.6%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
1.1876542452131991e-104
2.0055998424065925e-82
12.0ms
6.546416522748325e-117
3.6865197969633932e-115
10.0ms
1.8478681229585727e-137
2.0964640920388798e-135
Results
35.0ms400×body256valid
Compiler

Compiled 293 to 213 computations (27.3% saved)

regimes94.0ms (3.8%)

Counts
5 → 4
Calls
Call 1
Inputs
x
y
(*.f64 x (neg.f64 y))
(*.f64 y (-.f64 1 x))
(*.f64 (-.f64 1 y) x)
Outputs
(*.f64 (-.f64 1 y) x)
y
x
(*.f64 y (-.f64 1 x))
Calls

2 calls:

83.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
6.0b2x
5.2b4y
Compiler

Compiled 24 to 14 computations (41.7% saved)

bsearch105.0ms (4.2%)

Algorithm
binary-search
Steps
TimeLeftRight
83.0ms
1.1876542452131991e-104
2.0055998424065925e-82
12.0ms
6.546416522748325e-117
3.6865197969633932e-115
10.0ms
1.8478681229585727e-137
2.0964640920388798e-135
Results
101.0ms399×body256valid
0.0msbody512valid
Compiler

Compiled 286 to 213 computations (25.5% saved)

regimes36.0ms (1.4%)

Counts
4 → 5
Calls
Call 1
Inputs
x
y
(*.f64 x (neg.f64 y))
(*.f64 y (-.f64 1 x))
Outputs
(*.f64 x (neg.f64 y))
x
y
x
(*.f64 y (-.f64 1 x))
Calls

2 calls:

21.0ms
y
14.0ms
x
Results
ErrorSegmentsBranch
12.3b4x
5.6b5y
Compiler

Compiled 19 to 11 computations (42.1% saved)

bsearch52.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
1.1876542452131991e-104
2.0055998424065925e-82
11.0ms
6.546416522748325e-117
3.6865197969633932e-115
10.0ms
1.8478681229585727e-137
2.0964640920388798e-135
13.0ms
-147.40395692425338
-0.018433075740239214
Results
46.0ms528×body256valid
Compiler

Compiled 346 to 256 computations (26% saved)

regimes36.0ms (1.4%)

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

2 calls:

19.0ms
y
16.0ms
x
Results
ErrorSegmentsBranch
12.5b5x
14.1b5y
Compiler

Compiled 14 to 8 computations (42.9% saved)

bsearch116.0ms (4.7%)

Algorithm
binary-search
Steps
TimeLeftRight
80.0ms
0.8130781389933688
8873298838312787000.0
12.0ms
-2.645456165720604e-152
-2.1258761189842153e-155
10.0ms
-1.3619918207864853e+67
-1.6274303502593663e+66
15.0ms
-1.3108675880278297e+82
-4.960000541832743e+78
Results
108.0ms512×body256valid
2.0ms29×body256infinite
Compiler

Compiled 342 to 249 computations (27.2% saved)

regimes19.0ms (0.8%)

Accuracy

Total -46.1b remaining (-287.5%)

Threshold costs -46.1b (-287.5%)

Counts
2 → 4
Calls
Call 1
Inputs
x
y
Outputs
x
y
x
y
Calls

2 calls:

13.0ms
y
6.0ms
x
Results
ErrorSegmentsBranch
17.0b2x
16.0b4y
Compiler

Compiled 10 to 6 computations (40% saved)

bsearch201.0ms (8.1%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
1.1876542452131991e-104
2.0055998424065925e-82
175.0ms
6.546416522748325e-117
3.6865197969633932e-115
10.0ms
1.8478681229585727e-137
2.0964640920388798e-135
Results
197.0ms400×body256valid
Compiler

Compiled 214 to 159 computations (25.7% saved)

simplify7.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065289
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 (+.f64 x y) (*.f64 x y))
(if (<=.f64 y 1636695303948071/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (+.f64 x (*.f64 x (neg.f64 y))) (if (<=.f64 y 4684702715186529/709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944) y (if (<=.f64 y 8530277826653747/1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912) x (*.f64 y (-.f64 1 x)))))
(if (<=.f64 y 621944215500267/3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376) (*.f64 (-.f64 1 y) x) (if (<=.f64 y 4684702715186529/709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944) y (if (<=.f64 y 3964391938669209/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) x (*.f64 y (-.f64 1 x)))))
(if (<=.f64 y -1) (*.f64 x (neg.f64 y)) (if (<=.f64 y 6710450746187091/3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376) x (if (<=.f64 y 248431204593225/22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262592) y (if (<=.f64 y 4429182717685599/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) x (*.f64 y (-.f64 1 x))))))
(if (<=.f64 x -5800000000000000337226301846611334638783052510209149944169771281552698140262400) x (if (<=.f64 x -13499999999999999542459821588873869492187716576813186756927910051840) (*.f64 x (neg.f64 y)) (if (<=.f64 x -6132688940335005/235872651551346334515097161311766805682307576276027526773512893765351510149509303255382920323603672971341773439422740306235661539370299539535089640714543502728087207936) x (if (<=.f64 x 1) y (*.f64 x (neg.f64 y))))))
(if (<=.f64 y 3109721077501335/1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794688) x (if (<=.f64 y 4684702715186529/709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944) y (if (<=.f64 y 5030676667000927/1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912) x y)))
x
Outputs
(-.f64 (+.f64 x y) (*.f64 x y))
(if (<=.f64 y 1636695303948071/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (+.f64 x (*.f64 x (neg.f64 y))) (if (<=.f64 y 4684702715186529/709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944) y (if (<=.f64 y 8530277826653747/1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912) x (*.f64 y (-.f64 1 x)))))
(if (<=.f64 y 621944215500267/3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376) (*.f64 (-.f64 1 y) x) (if (<=.f64 y 4684702715186529/709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944) y (if (<=.f64 y 3964391938669209/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) x (*.f64 y (-.f64 1 x)))))
(if (<=.f64 y -1) (*.f64 x (neg.f64 y)) (if (<=.f64 y 6710450746187091/3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376) x (if (<=.f64 y 248431204593225/22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262592) y (if (<=.f64 y 4429182717685599/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) x (*.f64 y (-.f64 1 x))))))
(if (<=.f64 x -5800000000000000337226301846611334638783052510209149944169771281552698140262400) x (if (<=.f64 x -13499999999999999542459821588873869492187716576813186756927910051840) (*.f64 x (neg.f64 y)) (if (<=.f64 x -6132688940335005/235872651551346334515097161311766805682307576276027526773512893765351510149509303255382920323603672971341773439422740306235661539370299539535089640714543502728087207936) x (if (<=.f64 x 1) y (*.f64 x (neg.f64 y))))))
(if (<=.f64 y 3109721077501335/1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794688) x (if (<=.f64 y 4684702715186529/709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944) y (if (<=.f64 y 5030676667000927/1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912) x y)))
x
Compiler

Compiled 142 to 87 computations (38.7% saved)

soundness0.0ms (0%)

end99.0ms (4%)

Remove

(sort x y)

Compiler

Compiled 148 to 81 computations (45.3% saved)

Profiling

Loading profile data...