Details

Time bar (total: 4.4s)

analyze103.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)

sample2.4s (53.6%)

Results
2.3s8255×body256valid
45.0ms344×body256infinite
0.0msbody512valid
Bogosity

preprocess33.0ms (0.7%)

Algorithm
egg-herbie
Rules
12×rational_best.json-simplify-1
rational_best.json-simplify-43
swap-x-y
rational_best.json-simplify-2
trig.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

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

(sort x y)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify34.0ms (0.8%)

Algorithm
egg-herbie
Rules
12×rational_best.json-simplify-1
rational_best.json-simplify-43
rational_best.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
11019
21419
31819
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) x) y)
Outputs
(+.f64 (+.f64 (*.f64 x y) x) y)
(+.f64 y (+.f64 x (*.f64 x y)))

eval2.0ms (0%)

Compiler

Compiled 16 to 7 computations (56.3% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 9 to 5 computations (44.4% saved)

localize10.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 5 computations (73.7% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite162.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
1736×rational_best.json-5
1734×rational_best.json-2
1734×rational_best.json-3
1734×rational_best.json-1
1734×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15213
218613
379113
4346213
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 y 1) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 y 1) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (/.f64 x x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 x (/.f64 1 x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x y)) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x y)) (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x y)) (/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (+.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))) (/.f64 1 (+.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (*.f64 (+.f64 y 1) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (+.f64 (*.f64 y (*.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 y (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))) (+.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y)))) (*.f64 (+.f64 x (*.f64 x y)) (*.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1)))) (*.f64 x (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))) (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))) (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x y)) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y 1) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 x y)) 1)))))

simplify420.0ms (9.5%)

Algorithm
egg-herbie
Rules
1054×rational_best.json-simplify-2
1054×rational_best.json-simplify-132
906×rational_best.json-simplify-49
856×rational_best.json-simplify-50
672×rational_best.json-simplify-54
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0821279
11651203
23651203
311241191
428121191
562791191
Stop Event
node limit
Counts
55 → 60
Calls
Call 1
Inputs
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
x
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(-.f64 (+.f64 x (*.f64 x y)) 0)
(*.f64 x (+.f64 y 1))
(*.f64 x (*.f64 (+.f64 y 1) (/.f64 x x)))
(*.f64 x (*.f64 (+.f64 y 1) (*.f64 x (/.f64 1 x))))
(*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 x (+.f64 y (/.f64 x x)))
(*.f64 x (+.f64 y (*.f64 x (/.f64 1 x))))
(*.f64 x (+.f64 (/.f64 x x) y))
(*.f64 x (+.f64 (*.f64 x (/.f64 1 x)) y))
(*.f64 (+.f64 x (*.f64 x y)) 1)
(*.f64 (+.f64 x (*.f64 x y)) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))
(*.f64 (+.f64 x (*.f64 x y)) (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))))
(*.f64 (+.f64 x (*.f64 x y)) (/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y)))))
(*.f64 1 (+.f64 x (*.f64 x y)))
(*.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (+.f64 x (*.f64 x y)))
(*.f64 (+.f64 y 1) x)
(*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))) (/.f64 1 (+.f64 x (*.f64 x y))))
(*.f64 (/.f64 1 x) (*.f64 (+.f64 y 1) (*.f64 x x)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 y (*.f64 x x)) (*.f64 x x)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 y (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))) (+.f64 x (*.f64 x y)))
(*.f64 (/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y)))) (*.f64 (+.f64 x (*.f64 x y)) (*.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1)))) (*.f64 x (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))) (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1)))))
(*.f64 (/.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))) (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(/.f64 (+.f64 x (*.f64 x y)) 1)
(/.f64 (+.f64 x (*.f64 x y)) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 2)) 2)
(pow.f64 (+.f64 x (*.f64 x y)) 1)
Outputs
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 y -1) -1)))
(neg.f64 (*.f64 x (+.f64 -1 (neg.f64 y))))
(*.f64 (+.f64 -1 (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 y -1) -1)))
(neg.f64 (*.f64 x (+.f64 -1 (neg.f64 y))))
(*.f64 (+.f64 -1 (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 y -1) -1)))
(neg.f64 (*.f64 x (+.f64 -1 (neg.f64 y))))
(*.f64 (+.f64 -1 (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 y -1) -1)))
(neg.f64 (*.f64 x (+.f64 -1 (neg.f64 y))))
(*.f64 (+.f64 -1 (neg.f64 y)) (neg.f64 x))
x
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(-.f64 (+.f64 x (*.f64 x y)) 0)
(+.f64 x (*.f64 y x))
(*.f64 x (+.f64 y 1))
(*.f64 x (+.f64 1 y))
(*.f64 x (*.f64 (+.f64 y 1) (/.f64 x x)))
(*.f64 x (+.f64 1 y))
(*.f64 x (*.f64 (+.f64 y 1) (*.f64 x (/.f64 1 x))))
(*.f64 x (+.f64 1 y))
(*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))))
(*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 x (+.f64 y (/.f64 x x)))
(*.f64 x (+.f64 y (*.f64 x (/.f64 1 x))))
(*.f64 x (+.f64 (/.f64 x x) y))
(*.f64 x (+.f64 y (/.f64 x x)))
(*.f64 x (+.f64 (*.f64 x (/.f64 1 x)) y))
(*.f64 x (+.f64 y (*.f64 x (/.f64 1 x))))
(*.f64 (+.f64 x (*.f64 x y)) 1)
(+.f64 x (*.f64 y x))
(*.f64 (+.f64 x (*.f64 x y)) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))
(+.f64 x (*.f64 y x))
(*.f64 (+.f64 x (*.f64 x y)) (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))))
(*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 x y)) (/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y)))))
(+.f64 x (*.f64 y x))
(*.f64 1 (+.f64 x (*.f64 x y)))
(+.f64 x (*.f64 y x))
(*.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (+.f64 x (*.f64 x y)))
(+.f64 x (*.f64 y x))
(*.f64 (+.f64 y 1) x)
(*.f64 x (+.f64 1 y))
(*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))))
(*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))) (/.f64 1 (+.f64 x (*.f64 x y))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))))
(*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (/.f64 1 x) (*.f64 (+.f64 y 1) (*.f64 x x)))
(*.f64 x (+.f64 1 y))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 y (*.f64 x x)) (*.f64 x x)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 y (*.f64 x x))))
(*.f64 (/.f64 1 x) (*.f64 x (+.f64 x (*.f64 y x))))
(*.f64 x (*.f64 (/.f64 1 x) (+.f64 x (*.f64 y x))))
(*.f64 x (/.f64 (+.f64 x (*.f64 y x)) x))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x x) (*.f64 y (*.f64 x x))))
(*.f64 (/.f64 1 x) (*.f64 x (+.f64 x (*.f64 y x))))
(*.f64 x (*.f64 (/.f64 1 x) (+.f64 x (*.f64 y x))))
(*.f64 x (/.f64 (+.f64 x (*.f64 y x)) x))
(*.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))) (+.f64 x (*.f64 x y)))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))))
(*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y)))) (*.f64 (+.f64 x (*.f64 x y)) (*.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))))
(+.f64 x (*.f64 y x))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1)))) (*.f64 x (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))) (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1)))))
(*.f64 x (*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y)))) (*.f64 (+.f64 x (*.f64 y x)) (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))) (+.f64 1 y)))))
(*.f64 x (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x))))) (/.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y)) (*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (+.f64 1 y))))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x)))) (/.f64 (+.f64 1 y) (*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (+.f64 1 y)))))))
(*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x))))) (/.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y)) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))))
(*.f64 x (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x))))) (/.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y)) (*.f64 (+.f64 1 y) (*.f64 x (+.f64 x (*.f64 y x)))))))
(*.f64 (/.f64 (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))) (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))))
(*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))))
(*.f64 (+.f64 x (*.f64 y x)) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (+.f64 x (*.f64 x y))) (+.f64 y 1))) (+.f64 x (*.f64 x y))) (*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (+.f64 y 1))))
(*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y))) (/.f64 (*.f64 x (*.f64 (+.f64 1 y) (/.f64 1 (+.f64 x (*.f64 y x))))) (+.f64 x (*.f64 y x))))
(*.f64 x (*.f64 (*.f64 x (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x))))) (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 (*.f64 (+.f64 x (*.f64 y x)) (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x)))) (*.f64 x (/.f64 (+.f64 1 y) (+.f64 x (*.f64 y x)))))
(*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 1 y)) (/.f64 (/.f64 (*.f64 x (+.f64 1 y)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x)))))
(/.f64 (+.f64 x (*.f64 x y)) 1)
(+.f64 x (*.f64 y x))
(/.f64 (+.f64 x (*.f64 x y)) (/.f64 (+.f64 x (*.f64 x y)) (+.f64 x (*.f64 x y))))
(+.f64 x (*.f64 y x))
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 2)) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 1 y) 2)) 2)
(/.f64 (*.f64 (+.f64 1 y) (*.f64 x 2)) 2)
(/.f64 (*.f64 x (-.f64 (+.f64 y y) -2)) 2)
(pow.f64 (+.f64 x (*.f64 x y)) 1)
(+.f64 x (*.f64 y x))

eval26.0ms (0.6%)

Compiler

Compiled 1096 to 419 computations (61.8% saved)

prune22.0ms (0.5%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New57360
Fresh000
Picked101
Done000
Total58361
Error
0b
Counts
61 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
27.1b
(+.f64 (*.f64 y x) y)
10.0b
(+.f64 x y)
Compiler

Compiled 21 to 13 computations (38.1% saved)

localize6.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 4 computations (66.7% saved)

series2.0ms (0%)

Counts
1 → 21
Calls

6 calls:

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

rewrite166.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
1736×rational_best.json-5
1734×rational_best.json-2
1734×rational_best.json-3
1734×rational_best.json-1
1734×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15213
218613
379113
4346213
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (+.f64 x 1) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (+.f64 x 1) (*.f64 y (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x (*.f64 y (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 (/.f64 y y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 (*.f64 y (/.f64 1 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y x)) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y x)) (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y x)) (/.f64 1 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (+.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))) (/.f64 1 (+.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (*.f64 (+.f64 x 1) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (+.f64 (*.f64 x (*.f64 y y)) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 x (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 (+.f64 x 1) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))) (+.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x)))) (*.f64 (+.f64 y (*.f64 y x)) (*.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1)))) (*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))) (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))) (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 y x)) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x 1) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 y x)) 1)))))

simplify371.0ms (8.4%)

Algorithm
egg-herbie
Rules
1054×rational_best.json-simplify-132
1048×rational_best.json-simplify-2
906×rational_best.json-simplify-49
856×rational_best.json-simplify-50
634×rational_best.json-simplify-80
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0801240
11631164
23621164
311261152
427591152
562291152
Stop Event
node limit
Counts
52 → 64
Calls
Call 1
Inputs
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
y
(*.f64 y x)
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(*.f64 y x)
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(-.f64 (+.f64 y (*.f64 y x)) 0)
(*.f64 y (+.f64 x 1))
(*.f64 y (*.f64 (+.f64 x 1) (/.f64 y y)))
(*.f64 y (*.f64 (+.f64 x 1) (*.f64 y (/.f64 1 y))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 y (+.f64 x (/.f64 y y)))
(*.f64 y (+.f64 x (*.f64 y (/.f64 1 y))))
(*.f64 y (+.f64 (/.f64 y y) x))
(*.f64 y (+.f64 (*.f64 y (/.f64 1 y)) x))
(*.f64 (+.f64 y (*.f64 y x)) 1)
(*.f64 (+.f64 y (*.f64 y x)) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))
(*.f64 (+.f64 y (*.f64 y x)) (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))))
(*.f64 (+.f64 y (*.f64 y x)) (/.f64 1 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x)))))
(*.f64 1 (+.f64 y (*.f64 y x)))
(*.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (+.f64 y (*.f64 y x)))
(*.f64 (+.f64 x 1) y)
(*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))) (/.f64 1 (+.f64 y (*.f64 y x))))
(*.f64 (/.f64 1 y) (*.f64 (+.f64 x 1) (*.f64 y y)))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 x (*.f64 y y)) (*.f64 y y)))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 x (*.f64 y y))))
(*.f64 (*.f64 y y) (*.f64 (+.f64 x 1) (/.f64 1 y)))
(*.f64 (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))) (+.f64 y (*.f64 y x)))
(*.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x)))) (*.f64 (+.f64 y (*.f64 y x)) (*.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1)))) (*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))) (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1)))))
(*.f64 (/.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))) (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(/.f64 (+.f64 y (*.f64 y x)) 1)
(/.f64 (+.f64 y (*.f64 y x)) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))
(/.f64 (*.f64 y (*.f64 (+.f64 x 1) 2)) 2)
(pow.f64 (+.f64 y (*.f64 y x)) 1)
Outputs
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 x -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 x))))
(*.f64 (+.f64 -1 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 x))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 x -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 x))))
(*.f64 (+.f64 -1 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 x))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 x -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 x))))
(*.f64 (+.f64 -1 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 x))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 x -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 x))))
(*.f64 (+.f64 -1 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 x))))
y
(*.f64 y x)
(*.f64 x y)
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 x y))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 x y))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 x y))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 x y))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 x y))
(-.f64 (+.f64 y (*.f64 y x)) 0)
(+.f64 y (*.f64 x y))
(*.f64 y (+.f64 x 1))
(*.f64 y (+.f64 1 x))
(*.f64 y (*.f64 (+.f64 x 1) (/.f64 y y)))
(*.f64 y (+.f64 1 x))
(*.f64 y (*.f64 (+.f64 x 1) (*.f64 y (/.f64 1 y))))
(*.f64 y (+.f64 1 x))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))
(*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 x y)) (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))))
(*.f64 y (+.f64 x (/.f64 y y)))
(*.f64 y (+.f64 x (*.f64 y (/.f64 1 y))))
(*.f64 y (+.f64 (/.f64 y y) x))
(*.f64 y (+.f64 x (/.f64 y y)))
(*.f64 y (+.f64 (*.f64 y (/.f64 1 y)) x))
(*.f64 y (+.f64 x (*.f64 y (/.f64 1 y))))
(*.f64 (+.f64 y (*.f64 y x)) 1)
(+.f64 y (*.f64 x y))
(*.f64 (+.f64 y (*.f64 y x)) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))
(+.f64 y (*.f64 x y))
(*.f64 (+.f64 y (*.f64 y x)) (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))
(*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 x y)) (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 y x)) (/.f64 1 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x)))))
(+.f64 y (*.f64 x y))
(*.f64 1 (+.f64 y (*.f64 y x)))
(+.f64 y (*.f64 x y))
(*.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (+.f64 y (*.f64 y x)))
(+.f64 y (*.f64 x y))
(*.f64 (+.f64 x 1) y)
(*.f64 y (+.f64 1 x))
(*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))
(*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 x y)) (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))) (/.f64 1 (+.f64 y (*.f64 y x))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))
(*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 x y)) (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))))
(*.f64 (/.f64 1 y) (*.f64 (+.f64 x 1) (*.f64 y y)))
(*.f64 y (+.f64 1 x))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 x (*.f64 y y)) (*.f64 y y)))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 x (*.f64 y y))))
(*.f64 (/.f64 1 y) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 y (*.f64 (/.f64 1 y) (+.f64 y (*.f64 x y))))
(*.f64 y (/.f64 (+.f64 y (*.f64 x y)) y))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 x (*.f64 y y))))
(*.f64 (/.f64 1 y) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 y (*.f64 (/.f64 1 y) (+.f64 y (*.f64 x y))))
(*.f64 y (/.f64 (+.f64 y (*.f64 x y)) y))
(*.f64 (*.f64 y y) (*.f64 (+.f64 x 1) (/.f64 1 y)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))) (+.f64 y (*.f64 y x)))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))
(*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 x y)) (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))))
(*.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x)))) (*.f64 (+.f64 y (*.f64 y x)) (*.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))))
(+.f64 y (*.f64 x y))
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1)))) (*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))) (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1)))))
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x)))) (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))) (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x)))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))) (/.f64 (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x))) (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x)))))
(*.f64 (*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y)))) (/.f64 (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x))) (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x)))))
(*.f64 (+.f64 y (*.f64 x y)) (*.f64 (*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))) (/.f64 (*.f64 y (+.f64 1 x)) (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))))
(*.f64 y (*.f64 (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))) (/.f64 (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x))) (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x))))))
(*.f64 (/.f64 (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))) (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 x y))) (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))))
(*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y))))
(*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))
(*.f64 (+.f64 y (*.f64 x y)) (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))))
(*.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y x))) (+.f64 x 1))) (+.f64 y (*.f64 y x))) (*.f64 y (*.f64 (+.f64 y (*.f64 y x)) (+.f64 x 1))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (+.f64 1 x))) (/.f64 (*.f64 y (*.f64 (+.f64 1 x) (/.f64 1 (+.f64 y (*.f64 x y))))) (+.f64 y (*.f64 x y))))
(*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 x y)) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (*.f64 (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y))) (*.f64 y (+.f64 y (*.f64 x y)))) (*.f64 y (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))))
(*.f64 (+.f64 1 x) (*.f64 (*.f64 (*.f64 y (+.f64 y (*.f64 x y))) (/.f64 (+.f64 1 x) (+.f64 y (*.f64 x y)))) (/.f64 y (+.f64 y (*.f64 x y)))))
(*.f64 (*.f64 (+.f64 y (*.f64 x y)) (*.f64 y (+.f64 1 x))) (/.f64 (/.f64 (*.f64 y (+.f64 1 x)) (+.f64 y (*.f64 x y))) (+.f64 y (*.f64 x y))))
(/.f64 (+.f64 y (*.f64 y x)) 1)
(+.f64 y (*.f64 x y))
(/.f64 (+.f64 y (*.f64 y x)) (/.f64 (+.f64 y (*.f64 y x)) (+.f64 y (*.f64 y x))))
(+.f64 y (*.f64 x y))
(/.f64 (*.f64 y (*.f64 (+.f64 x 1) 2)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 1 x) 2)) 2)
(/.f64 (*.f64 (+.f64 1 x) (*.f64 y 2)) 2)
(/.f64 (*.f64 y (-.f64 (+.f64 x x) -2)) 2)
(pow.f64 (+.f64 y (*.f64 y x)) 1)
(+.f64 y (*.f64 x y))

localize14.0ms (0.3%)

Compiler

Compiled 20 to 12 computations (40% saved)

eval25.0ms (0.6%)

Compiler

Compiled 1032 to 372 computations (64% saved)

prune33.0ms (0.7%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New62264
Fresh000
Picked011
Done022
Total62567
Error
0b
Counts
67 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
27.1b
(+.f64 (*.f64 y x) y)
10.0b
(+.f64 x y)
52.7b
(*.f64 y x)
36.7b
y
Compiler

Compiled 29 to 18 computations (37.9% saved)

localize6.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

eval3.0ms (0.1%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune7.0ms (0.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done033
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
27.1b
(+.f64 (*.f64 y x) y)
10.0b
(+.f64 x y)
52.7b
(*.f64 y x)
36.7b
y
Compiler

Compiled 29 to 18 computations (37.9% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune4.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
27.1b
(+.f64 (*.f64 y x) y)
10.0b
(+.f64 x y)
52.7b
(*.f64 y x)
36.7b
y
Compiler

Compiled 29 to 18 computations (37.9% saved)

regimes46.0ms (1%)

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

3 calls:

18.0ms
(+.f64 (+.f64 (*.f64 x y) x) y)
15.0ms
x
11.0ms
y
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1(+.f64 (+.f64 (*.f64 x y) x) y)
Compiler

Compiled 43 to 21 computations (51.2% saved)

regimes106.0ms (2.4%)

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

2 calls:

76.0ms
x
29.0ms
y
Results
ErrorSegmentsBranch
6.2b4x
0.6b3y
Compiler

Compiled 20 to 9 computations (55% saved)

bsearch65.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
1.7728554671256318e-6
5.7526754809063165
41.0ms
-3.9392888911852973e+37
-7.517067482962667e-13
Results
57.0ms336×body256valid
1.0msbody256infinite
Compiler

Compiled 284 to 186 computations (34.5% saved)

regimes58.0ms (1.3%)

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

2 calls:

31.0ms
x
26.0ms
y
Results
ErrorSegmentsBranch
6.2b4x
6.1b4y
Compiler

Compiled 15 to 8 computations (46.7% saved)

bsearch96.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
2.8828771207385535e+175
2.0095337014013098e+176
31.0ms
8.148227094925441e+153
3.411807570408439e+157
42.0ms
-3.9392888911852973e+37
-7.517067482962667e-13
Results
62.0ms416×body256valid
13.0ms54×body256infinite
Compiler

Compiled 314 to 211 computations (32.8% saved)

regimes44.0ms (1%)

Accuracy

Total -34.8b remaining (-127%)

Threshold costs -34.8b (-127%)

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

2 calls:

24.0ms
y
18.0ms
x
Results
ErrorSegmentsBranch
27.4b3x
32.7b4y
Compiler

Compiled 12 to 7 computations (41.7% saved)

bsearch58.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
33.0ms
2.3233783523799242e-26
14026216324550986.0
25.0ms
-23338.12657210939
-5.891651131095195e-6
Results
50.0ms336×body256valid
Compiler

Compiled 224 to 156 computations (30.4% saved)

simplify18.0ms (0.4%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033147
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 y 1) x) y)
(if (<=.f64 y -7200000000000000530478866792185856) (*.f64 y x) (if (<=.f64 y 1) (+.f64 x y) (+.f64 (*.f64 y x) y)))
(if (<=.f64 y -240000000000000000000) (*.f64 y x) (if (<=.f64 y 520000000000000037075512246079112743450259253807419235775074564963356919763958554118649826379548596691689873533189485921645255169775405911440771632144056320) (+.f64 x y) (if (<=.f64 y 29000000000000001340748883195954372554452480140406927015853913273545713996755561800607271582715272273605674001453469029708265239531707203111693021865945848527928423239743700992) (*.f64 y x) y)))
(if (<=.f64 x -1) (*.f64 y x) (if (<=.f64 x 1) y (*.f64 y x)))
y
Outputs
(+.f64 (*.f64 (+.f64 y 1) x) y)
(if (<=.f64 y -7200000000000000530478866792185856) (*.f64 y x) (if (<=.f64 y 1) (+.f64 x y) (+.f64 (*.f64 y x) y)))
(if (<=.f64 y -240000000000000000000) (*.f64 y x) (if (<=.f64 y 520000000000000037075512246079112743450259253807419235775074564963356919763958554118649826379548596691689873533189485921645255169775405911440771632144056320) (+.f64 x y) (if (<=.f64 y 29000000000000001340748883195954372554452480140406927015853913273545713996755561800607271582715272273605674001453469029708265239531707203111693021865945848527928423239743700992) (*.f64 y x) y)))
(if (<=.f64 x -1) (*.f64 y x) (if (<=.f64 x 1) y (*.f64 y x)))
y
Compiler

Compiled 74 to 41 computations (44.6% saved)

soundness0.0ms (0%)

end106.0ms (2.4%)

Compiler

Compiled 84 to 42 computations (50% saved)

Profiling

Loading profile data...