Details

Time bar (total: 6.9s)

analyze99.0ms (1.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
12.5%12.5%87.4%0.1%0%0%0%5
18.8%18.7%81.2%0.1%0%0%0%6
46.9%46.8%53.1%0.1%0%0%0%7
54.7%54.6%45.3%0.1%0%0%0%8
71.1%71%28.9%0.1%0%0%0%9
76.2%76.1%23.8%0.1%0%0%0%10
85%84.9%15%0.1%0%0%0%11
87.8%87.7%12.2%0.1%0%0%0%12
Compiler

Compiled 10 to 7 computations (30% saved)

sample2.3s (33.2%)

Results
2.3s8253×body256valid
0.0msbody512valid
0.0msbody1024valid
Bogosity

preprocess32.0ms (0.5%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
rational.json-simplify-17
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
11438
21738
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(/.f64 (+.f64 x y) (+.f64 y 1))
(/.f64 (+.f64 y x) (+.f64 x 1))
Outputs
(/.f64 (+.f64 x y) (+.f64 y 1))
(/.f64 (+.f64 y x) (+.f64 x 1))
(/.f64 (+.f64 x y) (+.f64 x 1))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify38.0ms (0.5%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
rational.json-simplify-17
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
11019
21219
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 y 1))
Outputs
(/.f64 (+.f64 x y) (+.f64 y 1))

eval1.0ms (0%)

Compiler

Compiled 9 to 6 computations (33.3% 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 y 1))
Compiler

Compiled 9 to 6 computations (33.3% saved)

localize13.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 9 computations (50% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite106.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1550×rational.json-5
1548×exponential.json-3
1548×rational.json-1
1548×rational.json-2
1548×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
16819
221519
378919
4304019
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 y 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 x y) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (/.f64 (+.f64 x y) (+.f64 y 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (+.f64 x y) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (+.f64 x y) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y 1))))))))

simplify244.0ms (3.5%)

Algorithm
egg-herbie
Rules
1010×rational.json-simplify-47
926×rational.json-simplify-58
852×exponential.json-simplify-26
842×rational.json-simplify-1
730×rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0871169
11851145
23651129
311301105
440251105
566391105
Stop Event
node limit
Counts
41 → 68
Calls
Call 1
Inputs
(/.f64 y (+.f64 1 y))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(/.f64 x (+.f64 1 y))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(/.f64 x (+.f64 1 y))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
x
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 (*.f64 (pow.f64 y 2) (-.f64 x 1)) x))
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 (*.f64 (pow.f64 y 3) (-.f64 1 x)) (+.f64 (*.f64 (pow.f64 y 2) (-.f64 x 1)) x)))
1
(-.f64 (+.f64 1 (/.f64 x y)) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (/.f64 x y))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(-.f64 (+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (/.f64 x y)))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3)))))
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) y)))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) y)))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) y))))))
(+.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 0)
(+.f64 0 (/.f64 (+.f64 x y) (+.f64 y 1)))
(-.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 0)
(-.f64 0 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y 1))))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (+.f64 x y) (+.f64 y 1)))) 1)
(*.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1)))
(*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 1)
(*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))
(*.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (+.f64 x y) (+.f64 y 1)))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (+.f64 x y) (+.f64 y 1))))
(*.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))
(*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))))
(*.f64 (*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))))
(pow.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 1)
(neg.f64 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y 1))))
Outputs
(/.f64 y (+.f64 1 y))
(/.f64 y (+.f64 y 1))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 y 1))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 y 1))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
(+.f64 (/.f64 y (+.f64 1 y)) (/.f64 x (+.f64 1 y)))
(+.f64 (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1)))
x
(+.f64 (*.f64 y (-.f64 1 x)) x)
(+.f64 x (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 (*.f64 (pow.f64 y 2) (-.f64 x 1)) x))
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 x (*.f64 (pow.f64 y 2) (+.f64 x -1))))
(+.f64 x (+.f64 (*.f64 (pow.f64 y 2) (+.f64 x -1)) (*.f64 y (-.f64 1 x))))
(+.f64 x (+.f64 (*.f64 y (-.f64 1 x)) (*.f64 (pow.f64 y 2) (+.f64 x -1))))
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 (*.f64 (pow.f64 y 3) (-.f64 1 x)) (+.f64 (*.f64 (pow.f64 y 2) (-.f64 x 1)) x)))
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 (+.f64 x (*.f64 (pow.f64 y 2) (+.f64 x -1))) (*.f64 (-.f64 1 x) (pow.f64 y 3))))
(+.f64 (*.f64 y (-.f64 1 x)) (+.f64 x (+.f64 (*.f64 (-.f64 1 x) (pow.f64 y 3)) (*.f64 (pow.f64 y 2) (+.f64 x -1)))))
(+.f64 (+.f64 x (*.f64 (pow.f64 y 2) (+.f64 x -1))) (*.f64 (-.f64 1 x) (+.f64 (pow.f64 y 3) y)))
(+.f64 x (+.f64 (*.f64 (pow.f64 y 2) (+.f64 x -1)) (*.f64 (-.f64 1 x) (+.f64 y (pow.f64 y 3)))))
1
(-.f64 (+.f64 1 (/.f64 x y)) (/.f64 1 y))
(+.f64 1 (-.f64 (/.f64 x y) (/.f64 1 y)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (/.f64 x y))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (/.f64 1 (pow.f64 y 2)))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(-.f64 (+.f64 (/.f64 x y) (+.f64 1 (/.f64 1 (pow.f64 y 2)))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(-.f64 (+.f64 (/.f64 x y) (/.f64 1 (pow.f64 y 2))) (+.f64 (+.f64 (/.f64 1 y) -1) (/.f64 x (pow.f64 y 2))))
(+.f64 1 (-.f64 (+.f64 (/.f64 x y) (/.f64 1 (pow.f64 y 2))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))))
(+.f64 1 (-.f64 (-.f64 (+.f64 (/.f64 x y) (/.f64 1 (pow.f64 y 2))) (/.f64 1 y)) (/.f64 x (pow.f64 y 2))))
(-.f64 (+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (/.f64 x y)))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (+.f64 1 (/.f64 x y)) (/.f64 x (pow.f64 y 3)))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3)))))
(-.f64 (-.f64 (+.f64 (+.f64 1 (/.f64 x y)) (+.f64 (/.f64 1 (pow.f64 y 2)) (/.f64 x (pow.f64 y 3)))) (/.f64 1 y)) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3))))
(-.f64 (+.f64 (/.f64 x y) (+.f64 (+.f64 1 (/.f64 1 (pow.f64 y 2))) (/.f64 x (pow.f64 y 3)))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3)))))
(-.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (/.f64 x y) (/.f64 x (pow.f64 y 3))))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3)))))
(-.f64 (+.f64 1 (-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (/.f64 x y) (/.f64 x (pow.f64 y 3)))) (/.f64 1 y))) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 (pow.f64 y 3))))
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) y)))
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 x -1)) y)))
(+.f64 1 (neg.f64 (/.f64 (+.f64 1 (neg.f64 x)) y)))
(-.f64 1 (/.f64 (-.f64 1 x) y))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) y)))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 x -1)) y)) (*.f64 (/.f64 x (pow.f64 y 2)) -1))))
(+.f64 (*.f64 -1 (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (+.f64 1 (neg.f64 x)) y))) (+.f64 (/.f64 1 (pow.f64 y 2)) 1))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (*.f64 -1 (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (+.f64 1 (neg.f64 x)) y)))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (neg.f64 (/.f64 (-.f64 1 x) y)) (-.f64 1 (/.f64 x (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 1 (pow.f64 y 2)) (neg.f64 (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (-.f64 1 x) y)))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 x)) y))))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (+.f64 (*.f64 (/.f64 x (pow.f64 y 2)) -1) (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 x -1)) y)) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 x -1)) (pow.f64 y 3)))))))
(+.f64 (+.f64 (neg.f64 (/.f64 x (pow.f64 y 2))) (*.f64 -1 (+.f64 (/.f64 (+.f64 1 (neg.f64 x)) y) (/.f64 (+.f64 1 (neg.f64 x)) (pow.f64 y 3))))) (+.f64 (/.f64 1 (pow.f64 y 2)) 1))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (+.f64 1 (neg.f64 x)) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 (+.f64 1 (neg.f64 x)) y))))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (neg.f64 (+.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) (pow.f64 y 3)))) (-.f64 1 (/.f64 x (pow.f64 y 2)))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 1 (neg.f64 (+.f64 (/.f64 x (pow.f64 y 2)) (+.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) (pow.f64 y 3)))))))
(+.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (-.f64 (neg.f64 (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) (pow.f64 y 3))) (-.f64 1 (/.f64 x (pow.f64 y 2)))))
(+.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 0)
(/.f64 (+.f64 y x) (+.f64 y 1))
(+.f64 0 (/.f64 (+.f64 x y) (+.f64 y 1)))
(/.f64 (+.f64 y x) (+.f64 y 1))
(-.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 0)
(/.f64 (+.f64 y x) (+.f64 y 1))
(-.f64 0 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y 1))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (+.f64 x y) (+.f64 y 1)))) 1)
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1)))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 1)
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (+.f64 x y) (+.f64 y 1)))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (/.f64 (+.f64 x y) (+.f64 y 1))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(*.f64 (*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) (/.f64 (+.f64 x y) (+.f64 y 1))))))
(/.f64 (+.f64 y x) (+.f64 y 1))
(pow.f64 (/.f64 (+.f64 x y) (+.f64 y 1)) 1)
(/.f64 (+.f64 y x) (+.f64 y 1))
(neg.f64 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y 1))))
(/.f64 (+.f64 y x) (+.f64 y 1))

eval27.0ms (0.4%)

Compiler

Compiled 1425 to 925 computations (35.1% saved)

prune20.0ms (0.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New63568
Fresh000
Picked011
Done000
Total63669
Error
0.0b
Counts
69 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x y) (+.f64 y 1))
29.3b
(/.f64 y (+.f64 y 1))
33.5b
(/.f64 x (+.f64 y 1))
35.2b
(-.f64 1 (/.f64 (-.f64 1 x) y))
41.3b
x
42.2b
1
Compiler

Compiled 38 to 28 computations (26.3% saved)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 13 computations (35% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite85.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1326×rational.json-5
1324×exponential.json-3
1324×rational.json-1
1324×rational.json-2
1324×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15813
218813
368313
4259413
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(/.f64 (-.f64 1 x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 1 x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (-.f64 1 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (-.f64 1 x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 (-.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (/.f64 (-.f64 1 x) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 1 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 x) y) (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 1 (/.f64 (-.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))) (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 (-.f64 1 x) y)))))))

simplify143.0ms (2.1%)

Algorithm
egg-herbie
Rules
1502×rational.json-simplify-111
1030×rational.json-simplify-47
808×rational.json-simplify-2
702×rational.json-simplify-55
620×rational.json-simplify-54
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
043479
181457
2180457
3927457
44631457
Stop Event
node limit
Counts
29 → 23
Calls
Call 1
Inputs
(/.f64 1 y)
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(*.f64 -1 (/.f64 x y))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(*.f64 -1 (/.f64 x y))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 (-.f64 1 x) y) 0)
(+.f64 0 (/.f64 (-.f64 1 x) y))
(-.f64 (/.f64 (-.f64 1 x) y) 0)
(-.f64 0 (neg.f64 (/.f64 (-.f64 1 x) y)))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (-.f64 1 x) y))) 1)
(*.f64 1 (/.f64 (-.f64 1 x) y))
(*.f64 (/.f64 (-.f64 1 x) y) 1)
(*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))
(*.f64 (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) y))
(*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 1 (/.f64 (-.f64 1 x) y)))
(*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) y)))
(*.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))
(*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))) (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))))
(*.f64 (*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))))
(pow.f64 (/.f64 (-.f64 1 x) y) 1)
(neg.f64 (neg.f64 (/.f64 (-.f64 1 x) y)))
Outputs
(/.f64 1 y)
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(*.f64 -1 (/.f64 x y))
(neg.f64 (/.f64 x y))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(*.f64 -1 (/.f64 x y))
(neg.f64 (/.f64 x y))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 x y)))
(+.f64 (/.f64 1 y) (neg.f64 (/.f64 x y)))
(+.f64 (/.f64 (-.f64 1 x) y) 0)
(/.f64 (-.f64 1 x) y)
(+.f64 0 (/.f64 (-.f64 1 x) y))
(/.f64 (-.f64 1 x) y)
(-.f64 (/.f64 (-.f64 1 x) y) 0)
(/.f64 (-.f64 1 x) y)
(-.f64 0 (neg.f64 (/.f64 (-.f64 1 x) y)))
(/.f64 (-.f64 1 x) y)
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (-.f64 1 x) y))) 1)
(/.f64 (-.f64 1 x) y)
(*.f64 1 (/.f64 (-.f64 1 x) y))
(/.f64 (-.f64 1 x) y)
(*.f64 (/.f64 (-.f64 1 x) y) 1)
(/.f64 (-.f64 1 x) y)
(*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))
(/.f64 (-.f64 1 x) y)
(*.f64 (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) y))
(/.f64 (-.f64 1 x) y)
(*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 1 (/.f64 (-.f64 1 x) y)))
(/.f64 (-.f64 1 x) y)
(*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (/.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)) (/.f64 (-.f64 1 x) y)))
(/.f64 (-.f64 1 x) y)
(*.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))
(/.f64 (-.f64 1 x) y)
(*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))) (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))
(/.f64 (-.f64 1 x) y)
(*.f64 (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))))
(/.f64 (-.f64 1 x) y)
(*.f64 (*.f64 (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y)))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (-.f64 1 x) y)) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (*.f64 (/.f64 (-.f64 1 x) y) (/.f64 (-.f64 1 x) y))))))
(/.f64 (-.f64 1 x) y)
(pow.f64 (/.f64 (-.f64 1 x) y) 1)
(/.f64 (-.f64 1 x) y)
(neg.f64 (neg.f64 (/.f64 (-.f64 1 x) y)))
(/.f64 (-.f64 1 x) y)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series6.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite86.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1334×rational.json-5
1332×exponential.json-3
1332×rational.json-1
1332×rational.json-2
1332×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
218913
368713
4261613
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(/.f64 x (+.f64 y 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 x (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 x (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 x (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (/.f64 x (+.f64 y 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 x (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (+.f64 y 1)) (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 x (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 1 (/.f64 x (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 x (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))) (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 x (+.f64 y 1))))))))

simplify148.0ms (2.1%)

Algorithm
egg-herbie
Rules
1518×rational.json-simplify-111
1052×rational.json-simplify-47
822×rational.json-simplify-2
702×rational.json-simplify-55
622×rational.json-simplify-54
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
064815
1125791
2266779
31066769
44808769
Stop Event
node limit
Counts
41 → 48
Calls
Call 1
Inputs
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
(/.f64 x (+.f64 1 y))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(/.f64 x y)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))
(+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y)))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 4))) (+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))))
(/.f64 x y)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))
(+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y)))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 4))) (+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))))
(+.f64 (/.f64 x (+.f64 y 1)) 0)
(+.f64 0 (/.f64 x (+.f64 y 1)))
(-.f64 (/.f64 x (+.f64 y 1)) 0)
(-.f64 0 (neg.f64 (/.f64 x (+.f64 y 1))))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 x (+.f64 y 1)))) 1)
(*.f64 1 (/.f64 x (+.f64 y 1)))
(*.f64 (/.f64 x (+.f64 y 1)) 1)
(*.f64 (/.f64 x (+.f64 y 1)) (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))
(*.f64 (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 x (+.f64 y 1)))
(*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 1 (/.f64 x (+.f64 y 1))))
(*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 x (+.f64 y 1))))
(*.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))
(*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))) (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))
(*.f64 (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))
(*.f64 (*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))))
(pow.f64 (/.f64 x (+.f64 y 1)) 1)
(neg.f64 (neg.f64 (/.f64 x (+.f64 y 1))))
Outputs
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 y (*.f64 x -1)) (+.f64 x (*.f64 x (pow.f64 y 2))))
(+.f64 x (+.f64 (*.f64 x (pow.f64 y 2)) (*.f64 y (neg.f64 x))))
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (neg.f64 y))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 x (pow.f64 y 2)) (+.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 -1 (*.f64 x (pow.f64 y 3)))))
(+.f64 (*.f64 y (neg.f64 x)) (+.f64 (+.f64 x (*.f64 x (pow.f64 y 2))) (*.f64 (pow.f64 y 3) (neg.f64 x))))
(+.f64 x (+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (neg.f64 y))) (*.f64 x (neg.f64 (pow.f64 y 3)))))
(+.f64 x (*.f64 x (+.f64 (neg.f64 (pow.f64 y 3)) (+.f64 (pow.f64 y 2) (neg.f64 y)))))
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (+.f64 (neg.f64 (pow.f64 y 3)) (neg.f64 y)))))
(/.f64 x y)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x (pow.f64 y 2))))
(+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2))))
(+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y)))
(+.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x (pow.f64 y 2)))) (/.f64 x (pow.f64 y 3)))
(+.f64 (+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2)))) (/.f64 x (pow.f64 y 3)))
(+.f64 (/.f64 x y) (+.f64 (neg.f64 (/.f64 x (pow.f64 y 2))) (/.f64 x (pow.f64 y 3))))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 4))) (+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))))
(+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x (pow.f64 y 2)))) (*.f64 -1 (/.f64 x (pow.f64 y 4)))))
(+.f64 (+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2)))) (+.f64 (neg.f64 (/.f64 x (pow.f64 y 4))) (/.f64 x (pow.f64 y 3))))
(+.f64 (+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2)))) (+.f64 (/.f64 x (pow.f64 y 3)) (neg.f64 (/.f64 x (pow.f64 y 4)))))
(+.f64 (+.f64 (/.f64 x y) (/.f64 x (pow.f64 y 3))) (*.f64 -1 (+.f64 (/.f64 x (pow.f64 y 4)) (/.f64 x (pow.f64 y 2)))))
(+.f64 (/.f64 x y) (+.f64 (/.f64 x (pow.f64 y 3)) (*.f64 -1 (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 x (pow.f64 y 4))))))
(/.f64 x y)
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x (pow.f64 y 2))))
(+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2))))
(+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y)))
(+.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x (pow.f64 y 2)))) (/.f64 x (pow.f64 y 3)))
(+.f64 (+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2)))) (/.f64 x (pow.f64 y 3)))
(+.f64 (/.f64 x y) (+.f64 (neg.f64 (/.f64 x (pow.f64 y 2))) (/.f64 x (pow.f64 y 3))))
(+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 4))) (+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (*.f64 -1 (/.f64 x (pow.f64 y 2))) (/.f64 x y))))
(+.f64 (/.f64 x (pow.f64 y 3)) (+.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x (pow.f64 y 2)))) (*.f64 -1 (/.f64 x (pow.f64 y 4)))))
(+.f64 (+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2)))) (+.f64 (neg.f64 (/.f64 x (pow.f64 y 4))) (/.f64 x (pow.f64 y 3))))
(+.f64 (+.f64 (/.f64 x y) (neg.f64 (/.f64 x (pow.f64 y 2)))) (+.f64 (/.f64 x (pow.f64 y 3)) (neg.f64 (/.f64 x (pow.f64 y 4)))))
(+.f64 (+.f64 (/.f64 x y) (/.f64 x (pow.f64 y 3))) (*.f64 -1 (+.f64 (/.f64 x (pow.f64 y 4)) (/.f64 x (pow.f64 y 2)))))
(+.f64 (/.f64 x y) (+.f64 (/.f64 x (pow.f64 y 3)) (*.f64 -1 (+.f64 (/.f64 x (pow.f64 y 2)) (/.f64 x (pow.f64 y 4))))))
(+.f64 (/.f64 x (+.f64 y 1)) 0)
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(+.f64 0 (/.f64 x (+.f64 y 1)))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(-.f64 (/.f64 x (+.f64 y 1)) 0)
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(-.f64 0 (neg.f64 (/.f64 x (+.f64 y 1))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 x (+.f64 y 1)))) 1)
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 1 (/.f64 x (+.f64 y 1)))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (/.f64 x (+.f64 y 1)) 1)
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (/.f64 x (+.f64 y 1)) (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 x (+.f64 y 1)))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 1 (/.f64 x (+.f64 y 1))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 (/.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))) (/.f64 x (+.f64 y 1))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))) (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(*.f64 (*.f64 (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1))))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (/.f64 x (+.f64 y 1))) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (*.f64 (/.f64 x (+.f64 y 1)) (/.f64 x (+.f64 y 1)))))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(pow.f64 (/.f64 x (+.f64 y 1)) 1)
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))
(neg.f64 (neg.f64 (/.f64 x (+.f64 y 1))))
(/.f64 x (+.f64 1 y))
(/.f64 x (-.f64 y -1))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 8 computations (33.3% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(/.f64 y (+.f64 y 1))
0.0ms
y
@0
(/.f64 y (+.f64 y 1))
0.0ms
y
@-inf
(/.f64 y (+.f64 y 1))

rewrite83.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1138×rational.json-5
1136×exponential.json-3
1136×rational.json-1
1136×rational.json-2
1136×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15113
216413
359213
4223713
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(/.f64 y (+.f64 y 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 y (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 y (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 y (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (/.f64 y (+.f64 y 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (+.f64 y 1)) (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 y (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 1 (/.f64 y (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 y (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))) (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 y (+.f64 y 1))))))))

simplify321.0ms (4.6%)

Algorithm
egg-herbie
Rules
1518×rational.json-simplify-111
1032×rational.json-simplify-47
824×rational.json-simplify-2
702×rational.json-simplify-55
622×rational.json-simplify-54
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060509
1113501
2230501
31031499
44764499
Stop Event
node limit
Counts
29 → 41
Calls
Call 1
Inputs
y
(+.f64 (*.f64 -1 (pow.f64 y 2)) y)
(+.f64 (*.f64 -1 (pow.f64 y 2)) (+.f64 (pow.f64 y 3) y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (+.f64 (pow.f64 y 3) (+.f64 y (*.f64 -1 (pow.f64 y 4)))))
1
(-.f64 1 (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3))))
1
(-.f64 1 (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3))))
(+.f64 (/.f64 y (+.f64 y 1)) 0)
(+.f64 0 (/.f64 y (+.f64 y 1)))
(-.f64 (/.f64 y (+.f64 y 1)) 0)
(-.f64 0 (neg.f64 (/.f64 y (+.f64 y 1))))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 y (+.f64 y 1)))) 1)
(*.f64 1 (/.f64 y (+.f64 y 1)))
(*.f64 (/.f64 y (+.f64 y 1)) 1)
(*.f64 (/.f64 y (+.f64 y 1)) (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))
(*.f64 (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 y (+.f64 y 1)))
(*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 1 (/.f64 y (+.f64 y 1))))
(*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 y (+.f64 y 1))))
(*.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))
(*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))) (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))
(*.f64 (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))))
(*.f64 (*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))))
(pow.f64 (/.f64 y (+.f64 y 1)) 1)
(neg.f64 (neg.f64 (/.f64 y (+.f64 y 1))))
Outputs
y
(+.f64 (*.f64 -1 (pow.f64 y 2)) y)
(+.f64 y (*.f64 -1 (pow.f64 y 2)))
(+.f64 y (neg.f64 (pow.f64 y 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (+.f64 (pow.f64 y 3) y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (+.f64 y (pow.f64 y 3)))
(+.f64 y (+.f64 (pow.f64 y 3) (neg.f64 (pow.f64 y 2))))
(+.f64 (neg.f64 (pow.f64 y 2)) (+.f64 y (pow.f64 y 3)))
(+.f64 y (+.f64 (neg.f64 (pow.f64 y 2)) (pow.f64 y 3)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (+.f64 (pow.f64 y 3) (+.f64 y (*.f64 -1 (pow.f64 y 4)))))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (+.f64 y (+.f64 (*.f64 -1 (pow.f64 y 4)) (pow.f64 y 3))))
(+.f64 y (+.f64 (+.f64 (pow.f64 y 3) (neg.f64 (pow.f64 y 4))) (neg.f64 (pow.f64 y 2))))
(+.f64 (neg.f64 (pow.f64 y 2)) (+.f64 (pow.f64 y 3) (+.f64 y (neg.f64 (pow.f64 y 4)))))
(+.f64 (+.f64 y (pow.f64 y 3)) (*.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 y 4))))
(+.f64 y (+.f64 (pow.f64 y 3) (*.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 y 4)))))
1
(-.f64 1 (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (/.f64 1 y))
(-.f64 (+.f64 1 (/.f64 1 (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 -1 (/.f64 1 y)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3))))
(-.f64 (+.f64 1 (/.f64 1 (pow.f64 y 2))) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3))))
(+.f64 1 (-.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3)))))
1
(-.f64 1 (/.f64 1 y))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (/.f64 1 y))
(-.f64 (+.f64 1 (/.f64 1 (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 -1 (/.f64 1 y)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 y 2)) 1) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3))))
(-.f64 (+.f64 1 (/.f64 1 (pow.f64 y 2))) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3))))
(+.f64 1 (-.f64 (/.f64 1 (pow.f64 y 2)) (+.f64 (/.f64 1 y) (/.f64 1 (pow.f64 y 3)))))
(+.f64 (/.f64 y (+.f64 y 1)) 0)
(/.f64 y (+.f64 y 1))
(+.f64 0 (/.f64 y (+.f64 y 1)))
(/.f64 y (+.f64 y 1))
(-.f64 (/.f64 y (+.f64 y 1)) 0)
(/.f64 y (+.f64 y 1))
(-.f64 0 (neg.f64 (/.f64 y (+.f64 y 1))))
(/.f64 y (+.f64 y 1))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 y (+.f64 y 1)))) 1)
(/.f64 y (+.f64 y 1))
(*.f64 1 (/.f64 y (+.f64 y 1)))
(/.f64 y (+.f64 y 1))
(*.f64 (/.f64 y (+.f64 y 1)) 1)
(/.f64 y (+.f64 y 1))
(*.f64 (/.f64 y (+.f64 y 1)) (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))
(/.f64 y (+.f64 y 1))
(*.f64 (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 y (+.f64 y 1)))
(/.f64 y (+.f64 y 1))
(*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 1 (/.f64 y (+.f64 y 1))))
(/.f64 y (+.f64 y 1))
(*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 (/.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))) (/.f64 y (+.f64 y 1))))
(/.f64 y (+.f64 y 1))
(*.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))
(/.f64 y (+.f64 y 1))
(*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))) (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))
(/.f64 y (+.f64 y 1))
(*.f64 (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))))
(/.f64 y (+.f64 y 1))
(*.f64 (*.f64 (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1))))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (/.f64 y (+.f64 y 1))) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (*.f64 (/.f64 y (+.f64 y 1)) (/.f64 y (+.f64 y 1)))))))
(/.f64 y (+.f64 y 1))
(pow.f64 (/.f64 y (+.f64 y 1)) 1)
(/.f64 y (+.f64 y 1))
(neg.f64 (neg.f64 (/.f64 y (+.f64 y 1))))
(/.f64 y (+.f64 y 1))

eval83.0ms (1.2%)

Compiler

Compiled 1818 to 1223 computations (32.7% saved)

prune207.0ms (3%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1093112
Fresh022
Picked011
Done123
Total1108118
Error
0.0b
Counts
118 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x y) (+.f64 y 1))
29.3b
(/.f64 y (+.f64 y 1))
33.5b
(/.f64 x (+.f64 y 1))
54.4b
(/.f64 x y)
34.9b
(-.f64 1 (neg.f64 (/.f64 x y)))
49.1b
y
41.3b
x
42.2b
1
Compiler

Compiled 45 to 32 computations (28.9% saved)

localize12.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 7 computations (61.1% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite102.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1602×rational.json-1
1602×rational.json-2
1602×rational.json-3
1600×rational.json-5
1598×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0917
17713
224613
385813
4322913
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(-.f64 1 (neg.f64 (/.f64 x y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (/.f64 x y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (/.f64 x y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 x y) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 x y) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (/.f64 x y)) (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))) (+.f64 1 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 -1 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -1 (/.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))) (/.f64 1 (+.f64 1 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))) (/.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y)))) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (/.f64 x y)) (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 -1 (/.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 -1 (/.f64 x y)))))))

simplify259.0ms (3.8%)

Algorithm
egg-herbie
Rules
1110×rational.json-simplify-111
862×rational.json-simplify-2
812×exponential.json-simplify-26
766×rational.json-simplify-54
648×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043557
166557
2120557
3423557
41579557
53634557
66788557
Stop Event
node limit
Counts
47 → 25
Calls
Call 1
Inputs
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 (/.f64 x y) 1)
(+.f64 (+.f64 1 (/.f64 x y)) 0)
(+.f64 0 (+.f64 1 (/.f64 x y)))
(+.f64 -1 (-.f64 (/.f64 x y) -2))
(+.f64 2 (+.f64 (/.f64 x y) -1))
(+.f64 (-.f64 (/.f64 x y) -2) -1)
(+.f64 (+.f64 (/.f64 x y) -1) 2)
(*.f64 1 (+.f64 1 (/.f64 x y)))
(*.f64 (+.f64 1 (/.f64 x y)) 1)
(*.f64 (+.f64 1 (/.f64 x y)) (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))))
(*.f64 (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))) (+.f64 1 (/.f64 x y)))
(*.f64 -1 (-.f64 -1 (/.f64 x y)))
(*.f64 (-.f64 -1 (/.f64 x y)) -1)
(*.f64 (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))) (/.f64 1 (+.f64 1 (/.f64 x y))))
(*.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))
(*.f64 (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))) (/.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y)))))
(*.f64 (/.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y)))) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))))
(/.f64 (+.f64 1 (/.f64 x y)) 1)
(/.f64 (+.f64 1 (/.f64 x y)) (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))))
(/.f64 (-.f64 -1 (/.f64 x y)) -1)
(pow.f64 (+.f64 1 (/.f64 x y)) 1)
(neg.f64 (-.f64 -1 (/.f64 x y)))
Outputs
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 (/.f64 x y) 1)
(+.f64 1 (/.f64 x y))
(+.f64 (+.f64 1 (/.f64 x y)) 0)
(+.f64 1 (/.f64 x y))
(+.f64 0 (+.f64 1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(+.f64 -1 (-.f64 (/.f64 x y) -2))
(+.f64 1 (/.f64 x y))
(+.f64 2 (+.f64 (/.f64 x y) -1))
(+.f64 1 (/.f64 x y))
(+.f64 (-.f64 (/.f64 x y) -2) -1)
(+.f64 1 (/.f64 x y))
(+.f64 (+.f64 (/.f64 x y) -1) 2)
(+.f64 1 (/.f64 x y))
(*.f64 1 (+.f64 1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(*.f64 (+.f64 1 (/.f64 x y)) 1)
(+.f64 1 (/.f64 x y))
(*.f64 (+.f64 1 (/.f64 x y)) (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))))
(+.f64 1 (/.f64 x y))
(*.f64 (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))) (+.f64 1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(*.f64 -1 (-.f64 -1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(*.f64 (-.f64 -1 (/.f64 x y)) -1)
(+.f64 1 (/.f64 x y))
(*.f64 (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))) (/.f64 1 (+.f64 1 (/.f64 x y))))
(+.f64 1 (/.f64 x y))
(*.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))
(+.f64 1 (/.f64 x y))
(*.f64 (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))) (/.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y)))))
(+.f64 1 (/.f64 x y))
(*.f64 (/.f64 (/.f64 1 (+.f64 1 (/.f64 x y))) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y)))) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (+.f64 1 (/.f64 x y)) (+.f64 1 (/.f64 x y))))))
(+.f64 1 (/.f64 x y))
(/.f64 (+.f64 1 (/.f64 x y)) 1)
(+.f64 1 (/.f64 x y))
(/.f64 (+.f64 1 (/.f64 x y)) (/.f64 (-.f64 -1 (/.f64 x y)) (-.f64 -1 (/.f64 x y))))
(+.f64 1 (/.f64 x y))
(/.f64 (-.f64 -1 (/.f64 x y)) -1)
(+.f64 1 (/.f64 x y))
(pow.f64 (+.f64 1 (/.f64 x y)) 1)
(+.f64 1 (/.f64 x y))
(neg.f64 (-.f64 -1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))

localize5.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

eval10.0ms (0.1%)

Compiler

Compiled 288 to 151 computations (47.6% saved)

prune11.0ms (0.2%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New24125
Fresh033
Picked011
Done134
Total25833
Error
0.0b
Counts
33 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x y) (+.f64 y 1))
29.3b
(/.f64 y (+.f64 y 1))
33.5b
(/.f64 x (+.f64 y 1))
54.4b
(/.f64 x y)
34.9b
(+.f64 (/.f64 x y) 1)
49.1b
y
41.3b
x
42.2b
1
Compiler

Compiled 44 to 31 computations (29.5% saved)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite98.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1334×rational.json-5
1332×exponential.json-3
1332×rational.json-1
1332×rational.json-2
1332×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
218913
368713
4261613
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(+.f64 (/.f64 x y) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (neg.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 x y) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 -1 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (-.f64 -1 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -2 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x y) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x y) 1) (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (+.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (/.f64 1 (+.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (/.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (+.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (-.f64 -1 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))) (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x y) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x y) 1) (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 x y) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 -1 (/.f64 x y)))))))

simplify270.0ms (3.9%)

Algorithm
egg-herbie
Rules
1624×rational.json-simplify-47
844×rational.json-simplify-1
664×rational.json-simplify-58
630×rational.json-simplify-49
576×rational.json-simplify-54
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048531
193531
2340531
31086531
44398531
56401531
Stop Event
node limit
Counts
45 → 24
Calls
Call 1
Inputs
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(-.f64 (/.f64 x y) -1)
(-.f64 1 (neg.f64 (/.f64 x y)))
(-.f64 (+.f64 (/.f64 x y) 1) 0)
(-.f64 0 (-.f64 -1 (/.f64 x y)))
(-.f64 (-.f64 1 (-.f64 -1 (/.f64 x y))) 1)
(-.f64 (-.f64 0 (-.f64 -2 (/.f64 x y))) 1)
(*.f64 1 (+.f64 (/.f64 x y) 1))
(*.f64 (+.f64 (/.f64 x y) 1) 1)
(*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))
(*.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (+.f64 (/.f64 x y) 1))
(*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (/.f64 1 (+.f64 (/.f64 x y) 1)))
(*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (/.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (+.f64 (/.f64 x y) 1)))
(*.f64 (neg.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (-.f64 -1 (/.f64 x y)))
(*.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))
(*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))) (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))
(*.f64 (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))))
(*.f64 (*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))))
(/.f64 (+.f64 (/.f64 x y) 1) 1)
(/.f64 (+.f64 (/.f64 x y) 1) (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))
(pow.f64 (+.f64 (/.f64 x y) 1) 1)
(neg.f64 (-.f64 -1 (/.f64 x y)))
Outputs
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(-.f64 (/.f64 x y) -1)
(+.f64 1 (/.f64 x y))
(-.f64 1 (neg.f64 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(-.f64 (+.f64 (/.f64 x y) 1) 0)
(+.f64 1 (/.f64 x y))
(-.f64 0 (-.f64 -1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(-.f64 (-.f64 1 (-.f64 -1 (/.f64 x y))) 1)
(+.f64 1 (/.f64 x y))
(-.f64 (-.f64 0 (-.f64 -2 (/.f64 x y))) 1)
(+.f64 1 (/.f64 x y))
(*.f64 1 (+.f64 (/.f64 x y) 1))
(+.f64 1 (/.f64 x y))
(*.f64 (+.f64 (/.f64 x y) 1) 1)
(+.f64 1 (/.f64 x y))
(*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))
(+.f64 1 (/.f64 x y))
(*.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (+.f64 (/.f64 x y) 1))
(+.f64 1 (/.f64 x y))
(*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (/.f64 1 (+.f64 (/.f64 x y) 1)))
(+.f64 1 (/.f64 x y))
(*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (/.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)) (+.f64 (/.f64 x y) 1)))
(+.f64 1 (/.f64 x y))
(*.f64 (neg.f64 (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (-.f64 -1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))
(*.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))
(+.f64 1 (/.f64 x y))
(*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))) (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))
(+.f64 1 (/.f64 x y))
(*.f64 (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))))
(+.f64 1 (/.f64 x y))
(*.f64 (*.f64 (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (/.f64 x y) 1)) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (*.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1))))))
(+.f64 1 (/.f64 x y))
(/.f64 (+.f64 (/.f64 x y) 1) 1)
(+.f64 1 (/.f64 x y))
(/.f64 (+.f64 (/.f64 x y) 1) (/.f64 (+.f64 (/.f64 x y) 1) (+.f64 (/.f64 x y) 1)))
(+.f64 1 (/.f64 x y))
(pow.f64 (+.f64 (/.f64 x y) 1) 1)
(+.f64 1 (/.f64 x y))
(neg.f64 (-.f64 -1 (/.f64 x y)))
(+.f64 1 (/.f64 x y))

eval11.0ms (0.2%)

Compiler

Compiled 401 to 207 computations (48.4% saved)

prune12.0ms (0.2%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New24024
Fresh033
Picked011
Done044
Total24832
Error
0.0b
Counts
32 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x y) (+.f64 y 1))
29.3b
(/.f64 y (+.f64 y 1))
33.5b
(/.f64 x (+.f64 y 1))
54.4b
(/.f64 x y)
34.9b
(+.f64 (/.f64 x y) 1)
49.1b
y
41.3b
x
42.2b
1
Compiler

Compiled 44 to 31 computations (29.5% saved)

regimes44.0ms (0.6%)

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

3 calls:

15.0ms
x
14.0ms
y
11.0ms
(/.f64 (+.f64 x y) (+.f64 y 1))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(/.f64 (+.f64 x y) (+.f64 y 1))
Compiler

Compiled 58 to 34 computations (41.4% saved)

regimes131.0ms (1.9%)

Counts
9 → 5
Calls
Call 1
Inputs
1
x
y
(/.f64 x y)
(+.f64 (/.f64 x y) 1)
(/.f64 x (+.f64 y 1))
(/.f64 y (+.f64 y 1))
(-.f64 1 (neg.f64 (/.f64 x y)))
(-.f64 1 (/.f64 (-.f64 1 x) y))
Outputs
(/.f64 x (+.f64 y 1))
(+.f64 (/.f64 x y) 1)
(/.f64 x (+.f64 y 1))
(/.f64 y (+.f64 y 1))
(/.f64 x (+.f64 y 1))
Calls

2 calls:

69.0ms
x
59.0ms
y
Results
ErrorSegmentsBranch
10.5b5x
10.7b5y
Compiler

Compiled 42 to 24 computations (42.9% saved)

bsearch114.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
33.0ms
9.639527239033934e-32
3.887977971940055e-25
23.0ms
-1.1025260533105798e-97
-4.637706295576204e-101
31.0ms
-6.703937864795611e-25
-1.4348896741682023e-39
27.0ms
-3.052678335681246e+153
-1.6689925134519165e+145
Results
99.0ms576×body256valid
Compiler

Compiled 590 to 442 computations (25.1% saved)

regimes240.0ms (3.5%)

Counts
6 → 5
Calls
Call 1
Inputs
1
x
y
(/.f64 x y)
(+.f64 (/.f64 x y) 1)
(/.f64 x (+.f64 y 1))
Outputs
(+.f64 (/.f64 x y) 1)
y
(/.f64 x (+.f64 y 1))
y
(+.f64 (/.f64 x y) 1)
Calls

2 calls:

181.0ms
x
56.0ms
y
Results
ErrorSegmentsBranch
18.8b7x
11.1b5y
Compiler

Compiled 24 to 13 computations (45.8% saved)

bsearch290.0ms (4.2%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
2.015832189373008e-13
491004.2644397081
41.0ms
1.1428048856083743e-107
2.6023605673354517e-95
25.0ms
-4.001412371189013e-42
-2.1115265801409415e-48
197.0ms
-1070613006097.2338
-0.004384406723826972
Results
104.0ms624×body256valid
Compiler

Compiled 482 to 361 computations (25.1% saved)

regimes159.0ms (2.3%)

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

2 calls:

108.0ms
x
48.0ms
y
Results
ErrorSegmentsBranch
24.1b8x
11.1b5y
Compiler

Compiled 19 to 10 computations (47.4% saved)

bsearch345.0ms (5%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
2.015832189373008e-13
491004.2644397081
27.0ms
1.1428048856083743e-107
2.6023605673354517e-95
265.0ms
-4.001412371189013e-42
-2.1115265801409415e-48
26.0ms
-1070613006097.2338
-0.004384406723826972
Results
328.0ms624×body256valid
Compiler

Compiled 406 to 304 computations (25.1% saved)

regimes323.0ms (4.7%)

Counts
4 → 5
Calls
Call 1
Inputs
1
x
y
(/.f64 x y)
Outputs
1
y
x
y
1
Calls

2 calls:

113.0ms
y
64.0ms
x
Results
ErrorSegmentsBranch
25.4b9x
18.9b5y
Compiler

Compiled 14 to 8 computations (42.9% saved)

bsearch98.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
491004.2644397081
44540339.34786555
28.0ms
1.1428048856083743e-107
2.6023605673354517e-95
26.0ms
-4.001412371189013e-42
-2.1115265801409415e-48
26.0ms
-1070613006097.2338
-0.004384406723826972
Results
85.0ms576×body256valid
Compiler

Compiled 302 to 243 computations (19.5% saved)

regimes42.0ms (0.6%)

Accuracy

Total -39.9b remaining (-182.1%)

Threshold costs -39.9b (-182.1%)

Counts
2 → 3
Calls
Call 1
Inputs
1
x
Outputs
1
x
1
Calls

2 calls:

25.0ms
x
15.0ms
y
Results
ErrorSegmentsBranch
30.9b5x
21.9b3y
Compiler

Compiled 10 to 7 computations (30% saved)

bsearch64.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
6.037172997650765e-18
2.015832189373008e-13
26.0ms
-1070613006097.2338
-0.004384406723826972
Results
58.0ms288×body256valid
Compiler

Compiled 158 to 136 computations (13.9% saved)

simplify11.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
061325
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 y 1))
(if (<=.f64 x -30000000000000002445281529585042447958768602924287780271977121769992482367810355061183646224998513223864382889102439793143309245973934840311971840) (/.f64 x (+.f64 y 1)) (if (<=.f64 x -568699517118201/5986310706507378352962293074805895248510699696029696) (+.f64 (/.f64 x y) 1) (if (<=.f64 x -4232637384378313/38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784) (/.f64 x (+.f64 y 1)) (if (<=.f64 x 8275667163517223/21778071482940061661655974875633165533184) (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))
(if (<=.f64 y -1) (+.f64 (/.f64 x y) 1) (if (<=.f64 y -8474087342772019/6277101735386680763835789423207666416102355444464034512896) y (if (<=.f64 y 7815949715471317/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (/.f64 x (+.f64 y 1)) (if (<=.f64 y 8358680908399641/144115188075855872) y (+.f64 (/.f64 x y) 1)))))
(if (<=.f64 y -1) (+.f64 (/.f64 x y) 1) (if (<=.f64 y -4001652356309009/1569275433846670190958947355801916604025588861116008628224) y (if (<=.f64 y 7815949715471317/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) x (if (<=.f64 y 4496393867966703/1152921504606846976) y (+.f64 (/.f64 x y) 1)))))
(if (<=.f64 y -1) 1 (if (<=.f64 y -6749139785887759/3213876088517980551083924184682325205044405987565585670602752) y (if (<=.f64 y 3306747956545557/150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838464) x (if (<=.f64 y 500000) y 1))))
(if (<=.f64 y -1) 1 (if (<=.f64 y 3961408125713217/19807040628566084398385987584) x 1))
1
Outputs
(/.f64 (+.f64 x y) (+.f64 y 1))
(if (<=.f64 x -30000000000000002445281529585042447958768602924287780271977121769992482367810355061183646224998513223864382889102439793143309245973934840311971840) (/.f64 x (+.f64 y 1)) (if (<=.f64 x -568699517118201/5986310706507378352962293074805895248510699696029696) (+.f64 (/.f64 x y) 1) (if (<=.f64 x -4232637384378313/38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784) (/.f64 x (+.f64 y 1)) (if (<=.f64 x 8275667163517223/21778071482940061661655974875633165533184) (/.f64 y (+.f64 y 1)) (/.f64 x (+.f64 y 1))))))
(if (<=.f64 y -1) (+.f64 (/.f64 x y) 1) (if (<=.f64 y -8474087342772019/6277101735386680763835789423207666416102355444464034512896) y (if (<=.f64 y 7815949715471317/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (/.f64 x (+.f64 y 1)) (if (<=.f64 y 8358680908399641/144115188075855872) y (+.f64 (/.f64 x y) 1)))))
(if (<=.f64 y -1) (+.f64 (/.f64 x y) 1) (if (<=.f64 y -4001652356309009/1569275433846670190958947355801916604025588861116008628224) y (if (<=.f64 y 7815949715471317/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) x (if (<=.f64 y 4496393867966703/1152921504606846976) y (+.f64 (/.f64 x y) 1)))))
(if (<=.f64 y -1) 1 (if (<=.f64 y -6749139785887759/3213876088517980551083924184682325205044405987565585670602752) y (if (<=.f64 y 3306747956545557/150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838464) x (if (<=.f64 y 500000) y 1))))
(if (<=.f64 y -1) 1 (if (<=.f64 y 3961408125713217/19807040628566084398385987584) x 1))
1
Compiler

Compiled 157 to 105 computations (33.1% saved)

soundness0.0ms (0%)

end176.0ms (2.5%)

Compiler

Compiled 145 to 91 computations (37.2% saved)

Profiling

Loading profile data...