Details

Time bar (total: 8.0s)

analyze63.0ms (0.8%)

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
51.6%50%46.8%0.1%3.1%0%0%7
61.3%59.3%37.5%0.1%3.1%0%0%8
72.3%67.1%25.8%0.1%7%0%0%9
78.2%72.6%20.3%0.1%7%0%0%10
85.1%76.9%13.5%0.1%9.6%0%0%11
88.3%79.8%10.5%0.1%9.6%0%0%12
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample1.1s (13.7%)

Results
1.1s8256×body256valid
26.0ms287×body256infinite
Bogosity

preprocess4.0ms (0%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
rational.json-simplify-16
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01762
12662
22862
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y (-.f64 x 1)) (*.f64 x 1/2)) 918938533204673/1000000000000000)
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 x (+.f64 y -1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y (-.f64 x 1)) (*.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y (+.f64 x -1)) (*.f64 x 1/2)))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
rational.json-simplify-16
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01231
11731
21831
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 x (+.f64 y -1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)

eval1.0ms (0%)

Compiler

Compiled 24 to 18 computations (25% saved)

prune1.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 (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 38 to 26 computations (31.6% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite89.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1446×bool.json-1
1446×bool.json-2
1390×rational.json-1
1390×rational.json-2
1390×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
110738
230438
359638
4116538
5260938
6552538
Stop Event
node limit
Counts
2 → 45
Calls
Call 1
Inputs
(-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2))
(*.f64 x (-.f64 y 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 y -2) (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 x (+.f64 y (+.f64 y -2))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))))))
((#(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 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y -1)) 0)))) (#(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 (+.f64 y -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1)))))))

simplify303.0ms (3.8%)

Algorithm
egg-herbie
Rules
2214×rational.json-simplify-35
1774×rational.json-simplify-2
1770×rational.json-simplify-1
880×rational.json-simplify-52
722×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01131917
12501843
25471843
313001815
426011815
534801815
644081815
752671815
857491815
962041815
1062231815
1162301815
1268691815
1369371815
1471981815
Stop Event
node limit
Counts
93 → 73
Calls
Call 1
Inputs
(*.f64 -1/2 y)
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(*.f64 -1 x)
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(*.f64 y (-.f64 x 1/2))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x))
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 -1 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 0)
(+.f64 0 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))
(+.f64 -1 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))))
(+.f64 (/.f64 y -2) (*.f64 x (+.f64 y -1)))
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))) -1)
(+.f64 -2 (-.f64 1 (+.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))
(+.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2))
(*.f64 1/2 (-.f64 (*.f64 x (+.f64 y (+.f64 y -2))) y))
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)
(*.f64 -1 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))
(*.f64 2 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))
(*.f64 2 (-.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 y 1/4)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))
(*.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 1/4)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))
(*.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) 2)
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 2)
(/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)
(/.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))) -2)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8)) 16)
(/.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) -4)
(/.f64 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)
(/.f64 (neg.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)
(neg.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 x (+.f64 y -1)) 0)
(+.f64 0 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 y -1)) 0)
(/.f64 (*.f64 x (+.f64 y -1)) 1)
(/.f64 (*.f64 x (+.f64 y (+.f64 y -2))) 2)
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)
Outputs
(*.f64 -1/2 y)
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (neg.f64 x) (*.f64 y (+.f64 -1/2 x)))
(*.f64 -1 x)
(*.f64 x -1)
(neg.f64 x)
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1))
(*.f64 y (neg.f64 (+.f64 (neg.f64 x) 1/2)))
(*.f64 (+.f64 (neg.f64 x) 1/2) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1)))
(*.f64 -1 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1/2)) x))
(*.f64 -1 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2))))
(neg.f64 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2))))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1)))
(*.f64 -1 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1/2)) x))
(*.f64 -1 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2))))
(neg.f64 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2))))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))) (*.f64 -1 x))
(+.f64 (*.f64 x -1) (*.f64 y (*.f64 (+.f64 (*.f64 x -1) 1/2) -1)))
(*.f64 -1 (+.f64 (*.f64 y (+.f64 (neg.f64 x) 1/2)) x))
(*.f64 -1 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2))))
(neg.f64 (+.f64 x (*.f64 y (+.f64 (neg.f64 x) 1/2))))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(*.f64 -1 x)
(*.f64 x -1)
(neg.f64 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 0)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(+.f64 0 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(+.f64 -1 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (/.f64 y -2) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(+.f64 (+.f64 (*.f64 x (+.f64 y -1)) (-.f64 1 (*.f64 y 1/2))) -1)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 -2 (-.f64 1 (+.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))
(+.f64 (/.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 2) (/.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 2))
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 1/2 (-.f64 (*.f64 x (+.f64 y (+.f64 y -2))) y))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 -1 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 2 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 2 (-.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 y 1/4)))
(*.f64 2 (-.f64 (*.f64 x (*.f64 1/2 (+.f64 y -1))) (*.f64 y 1/4)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 1/2)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 1/4)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4))
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(*.f64 (/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -2) 2)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 1)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 2) 2)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))) -1)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 4) 4)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))) -2)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8) 8)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8)) 16)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) -4)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(/.f64 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2))))) 2)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2)) 8))) 32)
(+.f64 (*.f64 x (+.f64 y -1)) (/.f64 y -2))
(/.f64 (*.f64 2 (neg.f64 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(/.f64 (neg.f64 (*.f64 2 (-.f64 y (*.f64 x (+.f64 y (+.f64 y -2)))))) 4)
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(neg.f64 (-.f64 (*.f64 y 1/2) (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 x -1) (*.f64 y (-.f64 x 1/2)))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 x (+.f64 y -1)) 0)
(*.f64 x (+.f64 y -1))
(+.f64 0 (*.f64 x (+.f64 y -1)))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) 0)
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 x (+.f64 y -1)) 1)
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 x (+.f64 y (+.f64 y -2))) 2)
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)
(*.f64 x (+.f64 y -1))

eval19.0ms (0.2%)

Compiler

Compiled 960 to 730 computations (24% saved)

prune13.0ms (0.2%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New67673
Fresh000
Picked101
Done000
Total68674
Error
0.0b
Counts
74 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
20.6b
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
0.0b
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000)
17.0b
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
20.6b
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
28.2b
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
25.4b
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
Compiler

Compiled 108 to 84 computations (22.2% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 20 computations (41.2% saved)

series3.0ms (0%)

Counts
2 → 36
Calls

12 calls:

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

rewrite85.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1518×bool.json-1
1518×bool.json-2
1464×rational.json-1
1464×rational.json-2
1464×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
110136
226936
356136
4120736
5276336
6579336
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1/2))
(+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 x -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 (+.f64 x -1/2) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))))))

simplify1.2s (14.4%)

Algorithm
egg-herbie
Rules
3862×rational.json-simplify-35
2330×rational.json-simplify-48
1584×rational.json-simplify-1
1330×rational.json-simplify-2
808×rational.json-simplify-42
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0941452
11881338
24411338
310721280
421381280
527761280
631221280
734771280
837651280
939961280
1041571280
1143361280
1245381280
1348161280
1448541280
1549551280
1650101280
1750581280
1851001280
1954401280
2056981280
2158531280
2260111280
2361711280
2463261280
2564781280
2666281280
2767511280
2868661280
2969811280
3073051280
3176411280
3276681280
3376971280
3477351280
3578221280
3678671280
3779131280
3879621280
Stop Event
node limit
Counts
68 → 53
Calls
Call 1
Inputs
(*.f64 -1/2 y)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 -1/2 y)
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(*.f64 -1 x)
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(*.f64 y (-.f64 x 1/2))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (+.f64 x -1/2)) 0)
(+.f64 0 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)))
(-.f64 (*.f64 y (+.f64 x -1/2)) 0)
(/.f64 (*.f64 y (+.f64 x -1/2)) 1)
(/.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 0)
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (-.f64 1 x)) 1)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2))
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 (+.f64 x -1/2) (+.f64 y y))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) (*.f64 x -2)))
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 x -1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 1/4)
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8))) 32)
Outputs
(*.f64 -1/2 y)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(*.f64 -1/2 y)
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(+.f64 (*.f64 (-.f64 y 1) x) (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(+.f64 (*.f64 -1/2 y) (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(+.f64 (*.f64 -1/2 y) (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (*.f64 -1 x))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(*.f64 y (-.f64 x 1/2))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(*.f64 y (-.f64 x 1/2))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) (neg.f64 x))
(+.f64 (*.f64 y (+.f64 x -1/2)) 0)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 0 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(-.f64 (*.f64 y (+.f64 x -1/2)) 0)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(/.f64 (*.f64 y (+.f64 x -1/2)) 1)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(/.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) 2)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (+.f64 -1/2 x))
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 0)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (-.f64 1 x)) 1)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 (+.f64 x -1/2) (+.f64 y y))))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x -1/2) (+.f64 y y)) (*.f64 x -2)))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 (+.f64 x -1/2) (*.f64 y 1/2))))
(*.f64 2 (+.f64 (*.f64 y (*.f64 1/2 (+.f64 -1/2 x))) (*.f64 -1/2 x)))
(*.f64 2 (+.f64 (*.f64 (+.f64 -1/2 x) (*.f64 y 1/2)) (*.f64 -1/2 x)))
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (+.f64 -1/2 x))) (*.f64 -1/2 x)))
(*.f64 2 (+.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/2)) (*.f64 x -1/2)))
(*.f64 2 (+.f64 (*.f64 y (*.f64 1/2 (+.f64 -1/2 x))) (*.f64 -1/2 x)))
(*.f64 2 (+.f64 (*.f64 (+.f64 -1/2 x) (*.f64 y 1/2)) (*.f64 -1/2 x)))
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (+.f64 -1/2 x))) (*.f64 -1/2 x)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 1/2)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 1/4)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x))) 2)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4))
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 1)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 2) 2)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 4) 4)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8) 8)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) 16)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) (neg.f64 x)) 8))) 32)
(+.f64 (*.f64 -1/2 y) (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (+.f64 -1/2 x)) (neg.f64 x))

localize4.0ms (0.1%)

Compiler

Compiled 10 to 6 computations (40% saved)

localize7.0ms (0.1%)

Compiler

Compiled 13 to 10 computations (23.1% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 14 computations (33.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite99.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1694×bool.json-1
1694×bool.json-2
1654×rational.json-1
1654×rational.json-2
1208×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18819
222719
345919
494119
5204119
6417019
7670219
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))))

simplify923.0ms (11.5%)

Algorithm
egg-herbie
Rules
4212×rational.json-simplify-1
3396×rational.json-simplify-41
1868×rational.json-simplify-35
1796×rational.json-simplify-2
1214×rational.json-simplify-49
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
053900
1108738
2274738
3711738
41228738
52062738
62435738
72470738
82504738
92537738
102567738
112597738
122636738
132666738
142696738
152726738
162756738
172786738
182816738
193706738
206550738
216602738
226655738
236700738
246740738
256778738
266815738
276850738
286883738
296916738
306949738
316982738
327015738
337048738
347081738
357114738
Stop Event
node limit
Counts
42 → 27
Calls
Call 1
Inputs
918938533204673/1000000000000000
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 -1/2 y))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)))) 64)
Outputs
918938533204673/1000000000000000
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 -1/2 y))
(+.f64 918938533204673/1000000000000000 (*.f64 y -1/2))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 -1/2 y) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)))) 64)
(+.f64 (*.f64 y -1/2) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
0.0b
(*.f64 (-.f64 y 1) x)
Compiler

Compiled 21 to 14 computations (33.3% saved)

series1.0ms (0%)

Counts
2 → 33
Calls

12 calls:

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

rewrite110.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1962×bool.json-1
1382×rational.json-simplify-35
1258×bool.json-2
1214×rational.json-1
1214×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
19832
228332
354432
4108432
5238032
6487732
7773132
Stop Event
node limit
Counts
2 → 29
Calls
Call 1
Inputs
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y -1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y -1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y -1) x) (*.f64 (+.f64 y -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y -1) x) (*.f64 (+.f64 y -1) x))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))))))

simplify765.0ms (9.6%)

Algorithm
egg-herbie
Rules
6230×rational.json-simplify-41
4066×rational.json-simplify-35
1412×rational.json-simplify-2
802×rational.json-simplify-1
470×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0741292
1162958
2416958
31093958
42262958
52919958
63212958
73426958
83583958
93713958
103830958
113943958
124209958
134228958
144260958
154279958
164302958
174321958
184439958
194551958
204663958
214775958
224887958
234999958
245111958
255223958
265335958
275447958
285559958
295671958
305671958
Stop Event
node limit
Counts
62 → 45
Calls
Call 1
Inputs
(*.f64 -1 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 x))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(*.f64 y x)
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(*.f64 y x)
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
918938533204673/1000000000000000
(*.f64 (-.f64 y 1) x)
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(*.f64 (-.f64 y 1) x)
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 0 (*.f64 (+.f64 y -1) x))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 y -1) x) 0)
(/.f64 (*.f64 (+.f64 y -1) x) 1)
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)
(-.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 0)
(*.f64 1 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))
(*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)
(*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2))
(*.f64 4 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 1/2)
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2) 2)
(*.f64 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)
(/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)))) 64)
Outputs
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 x))
(+.f64 (*.f64 -1 x) 918938533204673/1000000000000000)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 y x)
(*.f64 x y)
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 y x)
(*.f64 x y)
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
918938533204673/1000000000000000
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(+.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 0 (*.f64 (+.f64 y -1) x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(-.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) x) 1)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(-.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 0)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 1 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 4 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 1/2)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 1/4)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4))
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1/2) 2)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(*.f64 (/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 1)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 2) 2)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 4) 4)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8) 8)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)) 16)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) 32)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 y -1) x) 918938533204673/1000000000000000) 8)))) 64)
(+.f64 (*.f64 x y) (+.f64 (*.f64 -1 x) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 -1 y)))

eval34.0ms (0.4%)

Compiler

Compiled 1552 to 1160 computations (25.3% saved)

prune22.0ms (0.3%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1345139
Fresh011
Picked101
Done224
Total1378145
Error
0.0b
Counts
145 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.6b
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
17.0b
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000)
28.2b
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
25.4b
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
35.0b
(*.f64 (-.f64 y 1) x)
38.3b
(*.f64 y (-.f64 x 1/2))
54.9b
(*.f64 y x)
44.8b
918938533204673/1000000000000000
Compiler

Compiled 96 to 70 computations (27.1% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 24 to 8 computations (66.7% saved)

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite90.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1580×bool.json-1
1580×bool.json-2
1526×rational.json-1
1526×rational.json-2
1526×rational.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01040
110232
227732
360732
4139432
5311332
6590532
Stop Event
node limit
Counts
2 → 53
Calls
Call 1
Inputs
(+.f64 (neg.f64 x) (*.f64 y x))
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.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 1 (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 y -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 -1/2 (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y -1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 y -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y -1)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 x (+.f64 y -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 -2 (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y -1) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y -1) 2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 y -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 y -1)) (*.f64 x (+.f64 y -1)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x y) (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (-.f64 1 x) (+.f64 (*.f64 x y) 918938533204673/1000000000000000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))))))

simplify374.0ms (4.7%)

Algorithm
egg-herbie
Rules
2456×rational.json-simplify-2
1756×rational.json-simplify-35
1438×rational.json-simplify-1
1144×rational.json-simplify-52
850×rational.json-simplify-48
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01261547
12511533
26341533
313781533
426661533
534081533
636751533
739321533
841961533
944931533
1050021533
1153901533
1256821533
1362911533
1468591533
1577181533
1678871533
Stop Event
node limit
Counts
101 → 70
Calls
Call 1
Inputs
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
918938533204673/1000000000000000
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(*.f64 (-.f64 y 1) x)
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(-.f64 918938533204673/1000000000000000 x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(-.f64 (*.f64 x (+.f64 y -1)) 0)
(-.f64 (+.f64 (*.f64 x y) (-.f64 1 x)) 1)
(*.f64 x (+.f64 y -1))
(*.f64 (*.f64 x (+.f64 y -1)) 1)
(*.f64 1 (*.f64 x (+.f64 y -1)))
(*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 1/2))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2)))
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 x (*.f64 y 1/2))))
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 1/2)
(*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))
(*.f64 (+.f64 x x) (/.f64 (+.f64 y -1) 2))
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2))
(*.f64 (+.f64 x x) (+.f64 -1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 y -1) x)
(*.f64 4 (/.f64 (*.f64 x (+.f64 y -1)) 4))
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 1/4)
(*.f64 (*.f64 2 (+.f64 y -1)) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 (*.f64 x (+.f64 y -1)) 2))
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 x -2)))
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 x (+.f64 y y))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y -1)))
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) -2))
(*.f64 (*.f64 x 1/2) (+.f64 -2 (+.f64 y y)))
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 1/2) 2)
(*.f64 (*.f64 (+.f64 y -1) 1/2) (+.f64 x x))
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) 4))
(*.f64 (/.f64 (+.f64 y -1) 2) (+.f64 x x))
(*.f64 (/.f64 (*.f64 x (+.f64 y -1)) 4) 4)
(/.f64 (*.f64 x (+.f64 y -1)) 1)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 2)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)
(-.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 0)
(-.f64 (+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x y) (-.f64 1 x))) 1)
(-.f64 (+.f64 (-.f64 1 x) (+.f64 (*.f64 x y) 918938533204673/1000000000000000)) 1)
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8))) 32)
Outputs
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 -1 x)
(*.f64 x -1)
(neg.f64 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
918938533204673/1000000000000000
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 918938533204673/1000000000000000 x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (*.f64 x (+.f64 y -1)) 0)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(-.f64 (+.f64 (*.f64 x y) (-.f64 1 x)) 1)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 x (+.f64 y -1)) 1)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 1 (*.f64 x (+.f64 y -1)))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 1/2))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2)))
(*.f64 2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)))
(*.f64 2 (+.f64 (*.f64 x -1/2) (*.f64 x (*.f64 y 1/2))))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 x -1/2)))
(*.f64 2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)))
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 1/2)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (+.f64 x x) (/.f64 (+.f64 y -1) 2))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2))
(*.f64 (+.f64 x x) (+.f64 -1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) -1/2))
(*.f64 (+.f64 y -1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 4 (/.f64 (*.f64 x (+.f64 y -1)) 4))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 1/4)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 2 (+.f64 y -1)) (*.f64 x 1/2))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 1/2 (*.f64 (*.f64 x (+.f64 y -1)) 2))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 x -2)))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 x (+.f64 y y))))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y -1)))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) -2))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 x 1/2) (+.f64 -2 (+.f64 y y)))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) 1/2) 2)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (*.f64 (+.f64 y -1) 1/2) (+.f64 x x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) 4))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (/.f64 (+.f64 y -1) 2) (+.f64 x x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(*.f64 (/.f64 (*.f64 x (+.f64 y -1)) 4) 4)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(/.f64 (*.f64 x (+.f64 y -1)) 1)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 2) 2)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 4) 4)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) 8) 8)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) 16)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 y -1)) 8))) 32)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(-.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 0)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x y) (-.f64 1 x))) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 (-.f64 1 x) (+.f64 (*.f64 x y) 918938533204673/1000000000000000)) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 1/2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 1/4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1/2) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 2) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 4) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8) 8)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) 16)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y -1)) 918938533204673/1000000000000000) 8))) 32)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))

localize3.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 28 to 15 computations (46.4% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite85.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1672×bool.json-1
1672×bool.json-2
1610×rational.json-1
1610×rational.json-2
1114×bool.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01044
19832
225232
353432
4113432
5267432
6598732
Stop Event
node limit
Counts
2 → 76
Calls
Call 1
Inputs
(-.f64 (*.f64 y x) (*.f64 y 1/2))
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (/.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 y -2) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 y (+.f64 x -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (neg.f64 (-.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 2 (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 x (-.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 1/2 (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 x -1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (-.f64 (*.f64 x 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (-.f64 (*.f64 (+.f64 x x) 1/4) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 1/2 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -1/2) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 x -1/2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 (+.f64 x -1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 x) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 y (-.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 y 8) (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x -1/2)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 (+.f64 x -1/2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 x -1/2)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -1/2) 1/4) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x -1/2) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 1/2 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 x -1/2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 1/2 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 y (*.f64 y (+.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) (neg.f64 (-.f64 y (*.f64 y (+.f64 x x))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -1) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (-.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 x -1/2)) (*.f64 y (+.f64 x -1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))))))

simplify181.0ms (2.3%)

Algorithm
egg-herbie
Rules
1896×rational.json-simplify-35
1324×rational.json-simplify-52
1054×rational.json-simplify-51
1022×rational.json-simplify-2
938×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01641924
13361886
28071886
319701886
444961886
552511886
656231886
761671886
870991886
Stop Event
node limit
Counts
124 → 99
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1/2 y)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
918938533204673/1000000000000000
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(*.f64 y (-.f64 x 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))))
(-.f64 918938533204673/1000000000000000 (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y x) (/.f64 y -2))
(+.f64 (*.f64 y (+.f64 x -1/2)) 0)
(+.f64 0 (*.f64 y (+.f64 x -1/2)))
(+.f64 (/.f64 y -2) (*.f64 y x))
(+.f64 -1 (+.f64 (*.f64 y (+.f64 x -1/2)) 1))
(+.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 1) -1)
(+.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))))
(*.f64 y (neg.f64 (-.f64 1/2 x)))
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 x -1/2))))
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 x -1/2)))
(*.f64 (*.f64 y 1/2) (+.f64 x (-.f64 x 1)))
(*.f64 (*.f64 y (+.f64 x -1/2)) 1)
(*.f64 1 (*.f64 y (+.f64 x -1/2)))
(*.f64 2 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))
(*.f64 2 (-.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y 1/4)))
(*.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 1/2)
(*.f64 (+.f64 y y) (*.f64 1/2 (+.f64 x -1/2)))
(*.f64 (+.f64 y y) (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4))
(*.f64 (+.f64 y y) (/.f64 (+.f64 x -1/2) 2))
(*.f64 (+.f64 y y) (-.f64 (*.f64 x 1/2) 1/4))
(*.f64 (+.f64 y y) (-.f64 (*.f64 (+.f64 x x) 1/4) 1/4))
(*.f64 (*.f64 y (-.f64 1/2 x)) -1)
(*.f64 (+.f64 x -1/2) y)
(*.f64 4 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)))
(*.f64 4 (/.f64 (*.f64 y (+.f64 x -1/2)) 4))
(*.f64 (*.f64 y 4) (*.f64 (+.f64 x -1/2) 1/4))
(*.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 1/4)
(*.f64 (-.f64 1/2 x) (neg.f64 y))
(*.f64 -1 (*.f64 y (-.f64 1/2 x)))
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 x -1/2)))
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x -1/2)))
(*.f64 (*.f64 2 (+.f64 x -1/2)) (*.f64 y 1/2))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 x -1/2) 4)))
(*.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) 2)
(*.f64 (*.f64 1/2 (+.f64 x -1/2)) (+.f64 y y))
(*.f64 (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))) y)
(*.f64 (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4) (+.f64 y y))
(*.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)) 4)
(*.f64 (*.f64 (+.f64 x -1/2) 1/4) (*.f64 y 4))
(*.f64 (/.f64 (+.f64 x -1/2) 2) (+.f64 y y))
(*.f64 (neg.f64 y) (-.f64 1/2 x))
(*.f64 (neg.f64 (-.f64 1/2 x)) y)
(*.f64 (/.f64 (*.f64 y (+.f64 x -1/2)) 4) 4)
(*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2))
(/.f64 (*.f64 y (+.f64 x -1/2)) 1)
(/.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 2)
(/.f64 (*.f64 y (-.f64 1/2 x)) -1)
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)
(/.f64 (-.f64 y (*.f64 y (+.f64 x x))) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)
(/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -4)
(/.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) (neg.f64 (-.f64 y (*.f64 y (+.f64 x x))))) 4)
(/.f64 (/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -1) 4)
(neg.f64 (*.f64 y (-.f64 1/2 x)))
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)
Outputs
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 -1/2 y)
(*.f64 y -1/2)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
918938533204673/1000000000000000
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))))
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) 918938533204673/1000000000000000)
(+.f64 (*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) 918938533204673/1000000000000000)
(+.f64 (*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))))
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) 918938533204673/1000000000000000)
(+.f64 (*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) 918938533204673/1000000000000000)
(+.f64 (*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x)))))
(+.f64 (*.f64 y (*.f64 (+.f64 1/2 (*.f64 x -1)) -1)) 918938533204673/1000000000000000)
(+.f64 (*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x)))) 918938533204673/1000000000000000)
(+.f64 (*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y)) 918938533204673/1000000000000000)
(-.f64 918938533204673/1000000000000000 (*.f64 1/2 y))
(-.f64 918938533204673/1000000000000000 (*.f64 y 1/2))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 y x)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (*.f64 1/2 y))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(+.f64 (*.f64 y x) (/.f64 y -2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 y (+.f64 x -1/2)) 0)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 0 (*.f64 y (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (/.f64 y -2) (*.f64 y x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 -1 (+.f64 (*.f64 y (+.f64 x -1/2)) 1))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 1) -1)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(+.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 y (neg.f64 (-.f64 1/2 x)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 x -1/2))))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y 1/2) (+.f64 x (-.f64 x 1)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y (+.f64 x -1/2)) 1)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 1 (*.f64 y (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 2 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 2 (-.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y 1/4)))
(*.f64 2 (-.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 y 1/4)))
(*.f64 2 (*.f64 y (-.f64 (*.f64 x 1/2) 1/4)))
(*.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 1/2)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (*.f64 1/2 (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (/.f64 (+.f64 x -1/2) 2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (-.f64 (*.f64 x 1/2) 1/4))
(*.f64 (+.f64 y y) (-.f64 (*.f64 (+.f64 x x) 1/4) 1/4))
(*.f64 (+.f64 y y) (-.f64 (*.f64 1/4 (+.f64 x x)) 1/4))
(*.f64 (*.f64 y (-.f64 1/2 x)) -1)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 x -1/2) y)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 4 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 4 (/.f64 (*.f64 y (+.f64 x -1/2)) 4))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y 4) (*.f64 (+.f64 x -1/2) 1/4))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 1/4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (-.f64 1/2 x) (neg.f64 y))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 -1 (*.f64 y (-.f64 1/2 x)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x -1/2)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 2 (+.f64 x -1/2)) (*.f64 y 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 x -1/2) 4)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 (*.f64 y 1/2) (+.f64 x -1/2)) 2)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 1/2 (+.f64 x -1/2)) (+.f64 y y))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 1/2 (*.f64 2 (+.f64 x -1/2))) y)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 (*.f64 2 (+.f64 x -1/2)) 1/4) (+.f64 y y))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 (+.f64 x -1/2) (*.f64 y 1/4)) 4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 (+.f64 x -1/2) 1/4) (*.f64 y 4))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (/.f64 (+.f64 x -1/2) 2) (+.f64 y y))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (neg.f64 y) (-.f64 1/2 x))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (neg.f64 (-.f64 1/2 x)) y)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (/.f64 (*.f64 y (+.f64 x -1/2)) 4) 4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (+.f64 x -1/2)) 1)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (*.f64 2 (+.f64 x -1/2))) 2)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (-.f64 1/2 x)) -1)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (*.f64 (+.f64 x -1/2) 4)) 4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 (*.f64 y (+.f64 x -1/2)) 8) 8)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (-.f64 y (*.f64 y (+.f64 x x))) -2)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) 16)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) 2)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8)) (*.f64 2 (*.f64 (*.f64 y (+.f64 x -1/2)) 8))) 32)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (+.f64 (neg.f64 (-.f64 y (*.f64 y (+.f64 x x)))) (neg.f64 (-.f64 y (*.f64 y (+.f64 x x))))) 4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(/.f64 (/.f64 (*.f64 (*.f64 y (-.f64 1/2 x)) 4) -1) 4)
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(neg.f64 (*.f64 y (-.f64 1/2 x)))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (+.f64 x -1/2))
(-.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 0)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 1 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 2 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 1/2)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 1/4)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000)) 2)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 1)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 2) 2)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 4) 4)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8) 8)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) 16)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 x -1/2)) 918938533204673/1000000000000000) 8))) 32)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 y (-.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 y (+.f64 x -1/2)))

eval46.0ms (0.6%)

Compiler

Compiled 2013 to 1494 computations (25.8% saved)

prune32.0ms (0.4%)

Pruning

11 alts after pruning (7 fresh and 4 done)

PrunedKeptTotal
New1956201
Fresh011
Picked101
Done246
Total19811209
Error
0b
Counts
209 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
17.0b
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
25.4b
(-.f64 918938533204673/1000000000000000 x)
20.6b
(+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
38.3b
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
28.2b
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
35.0b
(*.f64 (-.f64 y 1) x)
38.3b
(*.f64 y (-.f64 x 1/2))
54.9b
(*.f64 y x)
46.1b
(*.f64 -1/2 y)
43.6b
(neg.f64 x)
44.8b
918938533204673/1000000000000000
Compiler

Compiled 119 to 88 computations (26.1% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 9 computations (55% saved)

series3.0ms (0%)

Counts
2 → 21
Calls

12 calls:

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

rewrite91.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1764×bool.json-1
1764×bool.json-2
1712×rational.json-1
1712×rational.json-2
1146×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
18132
222932
351332
4115232
5279132
6627232
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (+.f64 918938533204673/1000000000000000 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 918938533204673/1000000000000000 x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) x) 918938533204673/1000000000000000)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 918938533204673/1000000000000000 (neg.f64 x)) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 x 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (-.f64 918938533204673/1000000000000000 x) 2) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -1) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))))))

simplify348.0ms (4.4%)

Algorithm
egg-herbie
Rules
1852×rational.json-simplify-52
1722×rational.json-simplify-35
1718×rational.json-simplify-2
1194×rational.json-simplify-48
1126×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01261322
12521322
26091322
314761322
430041322
538271322
642461322
751871322
860171322
964451322
1071871322
1174161322
1274551322
1374571322
1474571322
Stop Event
node limit
Counts
80 → 73
Calls
Call 1
Inputs
918938533204673/1000000000000000
(*.f64 y x)
(*.f64 y x)
918938533204673/1000000000000000
(*.f64 y x)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(*.f64 y x)
(*.f64 y x)
918938533204673/1000000000000000
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(*.f64 (-.f64 y 1) x)
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 0)
(*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)
(*.f64 1 (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)
(/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 2)
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8))) 32)
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 y x) (+.f64 918938533204673/1000000000000000 (neg.f64 x)))
(+.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (neg.f64 x))
(+.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 0)
(+.f64 0 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))
(+.f64 (-.f64 918938533204673/1000000000000000 x) (*.f64 y x))
(+.f64 (-.f64 (*.f64 y x) x) 918938533204673/1000000000000000)
(+.f64 (neg.f64 x) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 -1 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000))
(+.f64 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000) -1)
(+.f64 (+.f64 918938533204673/1000000000000000 (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))
(*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)
(*.f64 1 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))
(*.f64 2 (+.f64 (*.f64 y (*.f64 x 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2)))
(*.f64 2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) (*.f64 x 1/2)))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 1/2)
(*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 1/4)
(*.f64 -1 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 918938533204673/1000000000000000 x) 2) (*.f64 y (+.f64 x x))))
(*.f64 1/2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) (+.f64 x x)))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)
(/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 2)
(/.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8) 8)
(/.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) -2)
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) 16)
(/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -4)
(/.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) 4)
(/.f64 (/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -1) 4)
(neg.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))
Outputs
918938533204673/1000000000000000
(*.f64 y x)
(*.f64 y x)
918938533204673/1000000000000000
(*.f64 y x)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(*.f64 y x)
(*.f64 y x)
918938533204673/1000000000000000
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (-.f64 y 1) x)
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 (-.f64 y 1) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 x (+.f64 y -1))
(-.f64 (*.f64 y x) x)
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 0)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 1 (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 1/2)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 1/4)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2))
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4))
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(/.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 4) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8) 8)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) 16)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 8))) 32)
(+.f64 918938533204673/1000000000000000 (*.f64 y x))
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (+.f64 918938533204673/1000000000000000 (neg.f64 x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) (neg.f64 x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 0)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 0 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (-.f64 918938533204673/1000000000000000 x) (*.f64 y x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (-.f64 (*.f64 y x) x) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (neg.f64 x) (+.f64 918938533204673/1000000000000000 (*.f64 y x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 -1 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (+.f64 (-.f64 (*.f64 y x) x) 1918938533204673/1000000000000000) -1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (+.f64 918938533204673/1000000000000000 (neg.f64 x)) (*.f64 y x))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(+.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 2 (+.f64 (*.f64 y (*.f64 x 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2)))
(*.f64 2 (+.f64 (*.f64 x (*.f64 1/2 y)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2)))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (/.f64 (+.f64 x -918938533204673/1000000000000000) -2)))
(*.f64 2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 1/2) (*.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 1/2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 4 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 1/4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 -1 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1/2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 918938533204673/1000000000000000 x) 2) (*.f64 y (+.f64 x x))))
(*.f64 1/2 (-.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) 2) (+.f64 x x)))
(*.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1/2) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 1/4 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(*.f64 (/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 2) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) -1)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 4) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8) 8)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))) -2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) 16)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) 2)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8)) (*.f64 2 (*.f64 (+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y x) x)) 8))) 32)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))) (neg.f64 (*.f64 2 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x)))))) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(/.f64 (/.f64 (*.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))) 4) -1) 4)
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))
(neg.f64 (-.f64 x (+.f64 918938533204673/1000000000000000 (*.f64 y x))))
(+.f64 918938533204673/1000000000000000 (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y x) (-.f64 918938533204673/1000000000000000 x))

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 9 computations (50% saved)

series1.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite104.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
2068×bool.json-1
1286×bool.json-2
1248×rational.json-simplify-35
1236×rational.json-1
1236×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
18013
221713
346713
496813
5214013
6457813
7788513
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 -1/2 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 -1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 -1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 -1/2 x) 1/2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 -1/2 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 -1/2 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1/2 x) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 -1/2 x)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (neg.f64 y) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 (+.f64 x x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -1/2 x) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 4 (+.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -1/2 x) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 -1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (+.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (+.f64 -1/2 x)) (*.f64 y (+.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (+.f64 -1/2 x)) (*.f64 y (+.f64 -1/2 x)))))))

simplify719.0ms (9%)

Algorithm
egg-herbie
Rules
3322×rational.json-simplify-35
2062×rational.json-simplify-1
1916×rational.json-simplify-48
1782×rational.json-simplify-2
864×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
083664
1181636
2377636
31239636
42427636
53553636
64305636
74511636
84680636
94920636
105211636
115445636
125938636
136142636
146502636
156664636
166664636
176666636
186763636
196858636
207083636
217222636
227361636
237462636
247555636
257648636
267741636
Stop Event
node limit
Counts
46 → 43
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1/2 y)
(*.f64 y x)
(*.f64 y x)
(-.f64 (*.f64 y (+.f64 -1/2 x)) 0)
(*.f64 y (+.f64 -1/2 x))
(*.f64 (*.f64 y (+.f64 -1/2 x)) 1)
(*.f64 1 (*.f64 y (+.f64 -1/2 x)))
(*.f64 2 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)))
(*.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 -1/2 x) 1/2) y))
(*.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 1/2)
(*.f64 (+.f64 y y) (*.f64 (+.f64 -1/2 x) 1/2))
(*.f64 (+.f64 y y) (/.f64 (+.f64 -1/2 x) 2))
(*.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2)))
(*.f64 (+.f64 -1/2 x) y)
(*.f64 4 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4))
(*.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 1/4)
(*.f64 (*.f64 2 (+.f64 -1/2 x)) (*.f64 y 1/2))
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -1/2 x))))
(*.f64 1/2 (+.f64 (neg.f64 y) (*.f64 y (+.f64 x x))))
(*.f64 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)) 2)
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -1/2 x)))
(*.f64 (*.f64 y 1/2) (+.f64 (+.f64 x x) -1))
(*.f64 (*.f64 (+.f64 -1/2 x) 1/2) (+.f64 y y))
(*.f64 1/4 (*.f64 y (*.f64 4 (+.f64 -1/2 x))))
(*.f64 (/.f64 (+.f64 -1/2 x) 2) (+.f64 y y))
(*.f64 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4) 4)
(/.f64 (*.f64 y (+.f64 -1/2 x)) 1)
(/.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 2)
(/.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 4)
(/.f64 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)))) 64)
Outputs
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 y (-.f64 x 1/2))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1/2 (*.f64 x -1))))
(*.f64 (+.f64 1/2 (neg.f64 x)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 1/2 (neg.f64 x))))
(*.f64 -1/2 y)
(*.f64 y -1/2)
(*.f64 y x)
(*.f64 y x)
(-.f64 (*.f64 y (+.f64 -1/2 x)) 0)
(*.f64 y (+.f64 x -1/2))
(*.f64 y (+.f64 -1/2 x))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y (+.f64 -1/2 x)) 1)
(*.f64 y (+.f64 x -1/2))
(*.f64 1 (*.f64 y (+.f64 -1/2 x)))
(*.f64 y (+.f64 x -1/2))
(*.f64 2 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)))
(*.f64 y (+.f64 x -1/2))
(*.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2))))
(*.f64 2 (*.f64 y (+.f64 -1/4 (*.f64 x 1/2))))
(*.f64 y (*.f64 (+.f64 -1/4 (*.f64 x 1/2)) 2))
(*.f64 y (*.f64 2 (+.f64 -1/4 (*.f64 x 1/2))))
(*.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2)))
(*.f64 2 (*.f64 (*.f64 (+.f64 -1/2 x) 1/2) y))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 1/2)
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (*.f64 (+.f64 -1/2 x) 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (/.f64 (+.f64 -1/2 x) 2))
(*.f64 y (+.f64 x -1/2))
(*.f64 (+.f64 y y) (+.f64 -1/4 (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 y -1/4) (*.f64 y (*.f64 x 1/2))))
(*.f64 2 (*.f64 y (+.f64 -1/4 (*.f64 x 1/2))))
(*.f64 y (*.f64 (+.f64 -1/4 (*.f64 x 1/2)) 2))
(*.f64 y (*.f64 2 (+.f64 -1/4 (*.f64 x 1/2))))
(*.f64 (+.f64 -1/2 x) y)
(*.f64 y (+.f64 x -1/2))
(*.f64 4 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 1/4)
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 2 (+.f64 -1/2 x)) (*.f64 y 1/2))
(*.f64 y (+.f64 x -1/2))
(*.f64 1/2 (*.f64 y (*.f64 2 (+.f64 -1/2 x))))
(*.f64 y (+.f64 x -1/2))
(*.f64 1/2 (+.f64 (neg.f64 y) (*.f64 y (+.f64 x x))))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y (/.f64 (+.f64 -1/2 x) 2)) 2)
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 -1/2 x)))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 y 1/2) (+.f64 (+.f64 x x) -1))
(*.f64 y (+.f64 x -1/2))
(*.f64 (*.f64 (+.f64 -1/2 x) 1/2) (+.f64 y y))
(*.f64 y (+.f64 x -1/2))
(*.f64 1/4 (*.f64 y (*.f64 4 (+.f64 -1/2 x))))
(*.f64 y (+.f64 x -1/2))
(*.f64 (/.f64 (+.f64 -1/2 x) 2) (+.f64 y y))
(*.f64 y (+.f64 x -1/2))
(*.f64 (/.f64 (*.f64 y (+.f64 -1/2 x)) 4) 4)
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (+.f64 -1/2 x)) 1)
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (*.f64 2 (+.f64 -1/2 x))) 2)
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 y (*.f64 4 (+.f64 -1/2 x))) 4)
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8) 8)
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)) 16)
(*.f64 y (+.f64 x -1/2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) 32)
(*.f64 y (+.f64 x -1/2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -1/2 x)) 8)))) 64)
(*.f64 y (+.f64 x -1/2))

eval22.0ms (0.3%)

Compiler

Compiled 1119 to 699 computations (37.5% saved)

prune20.0ms (0.2%)

Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New1151116
Fresh022
Picked011
Done178
Total11611127
Error
0b
Counts
127 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
35.0b
(-.f64 (*.f64 y x) x)
25.4b
(-.f64 918938533204673/1000000000000000 x)
20.6b
(+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
38.3b
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
28.2b
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
35.0b
(*.f64 (-.f64 y 1) x)
38.3b
(*.f64 y (-.f64 x 1/2))
54.9b
(*.f64 y x)
46.1b
(*.f64 -1/2 y)
43.6b
(neg.f64 x)
44.8b
918938533204673/1000000000000000
Compiler

Compiled 72 to 53 computations (26.4% saved)

regimes41.0ms (0.5%)

Counts
19 → 1
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000)
(+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Calls

4 calls:

11.0ms
(-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2))
10.0ms
y
9.0ms
x
8.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
0.0b1(-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2))
Compiler

Compiled 145 to 90 computations (37.9% saved)

regimes23.0ms (0.3%)

Counts
18 → 1
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000)
(+.f64 (*.f64 (+.f64 x (-.f64 x 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Outputs
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000)
Calls

2 calls:

10.0ms
x
9.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
Compiler

Compiled 110 to 64 computations (41.8% saved)

regimes49.0ms (0.6%)

Counts
16 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
Outputs
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
Calls

2 calls:

24.0ms
x
23.0ms
y
Results
ErrorSegmentsBranch
0.4b3x
0.6b3y
Compiler

Compiled 89 to 50 computations (43.8% saved)

bsearch29.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
3.939488035470421e-38
5.1808661219950835e-30
13.0ms
-14740280.11391023
-63945.90558391673
Results
25.0ms256×body256valid
Compiler

Compiled 370 to 286 computations (22.7% saved)

regimes49.0ms (0.6%)

Counts
15 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y x)) x)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y x)) 918938533204673/1000000000000000)
Outputs
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)
Calls

2 calls:

23.0ms
x
23.0ms
y
Results
ErrorSegmentsBranch
0.4b3x
0.6b3y
Compiler

Compiled 80 to 45 computations (43.8% saved)

bsearch28.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
3.939488035470421e-38
5.1808661219950835e-30
12.0ms
-14740280.11391023
-63945.90558391673
Results
24.0ms256×body256valid
Compiler

Compiled 338 to 270 computations (20.1% saved)

regimes42.0ms (0.5%)

Counts
12 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
Outputs
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000)
(*.f64 (-.f64 y 1) x)
Calls

2 calls:

20.0ms
x
20.0ms
y
Results
ErrorSegmentsBranch
1.0b3x
1.6b3y
Compiler

Compiled 58 to 34 computations (41.4% saved)

bsearch31.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
6.875795999559287e-7
115733996952161.72
12.0ms
-14740280.11391023
-63945.90558391673
Results
27.0ms288×body256valid
Compiler

Compiled 342 to 266 computations (22.2% saved)

regimes39.0ms (0.5%)

Counts
11 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 -1/2 y) (*.f64 y x))
Outputs
(*.f64 (-.f64 y 1) x)
(+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000)
(*.f64 (-.f64 y 1) x)
Calls

2 calls:

19.0ms
y
18.0ms
x
Results
ErrorSegmentsBranch
1.5b3x
2.1b3y
Compiler

Compiled 51 to 29 computations (43.1% saved)

bsearch35.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
6.875795999559287e-7
115733996952161.72
16.0ms
-63945.90558391673
-0.17890390871090597
Results
30.0ms320×body256valid
Compiler

Compiled 338 to 274 computations (18.9% saved)

regimes46.0ms (0.6%)

Counts
8 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
(*.f64 y (-.f64 x 1/2))
(*.f64 (-.f64 y 1) x)
Outputs
(*.f64 y (-.f64 x 1/2))
(-.f64 918938533204673/1000000000000000 x)
(*.f64 y (-.f64 x 1/2))
Calls

2 calls:

29.0ms
x
15.0ms
y
Results
ErrorSegmentsBranch
13.8b6x
2.2b3y
Compiler

Compiled 34 to 21 computations (38.2% saved)

bsearch23.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
0.8332286219781533
2.364689922758369
14.0ms
-848.933060354832
-0.29189197902147296
Results
20.0ms208×body256valid
Compiler

Compiled 200 to 157 computations (21.5% saved)

regimes36.0ms (0.5%)

Counts
6 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
(-.f64 918938533204673/1000000000000000 x)
(+.f64 (neg.f64 x) 918938533204673/1000000000000000)
Outputs
(*.f64 -1/2 y)
(-.f64 918938533204673/1000000000000000 x)
(*.f64 -1/2 y)
Calls

2 calls:

22.0ms
x
13.0ms
y
Results
ErrorSegmentsBranch
21.3b5x
9.5b3y
Compiler

Compiled 24 to 15 computations (37.5% saved)

bsearch21.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
8.0ms
0.8332286219781533
2.364689922758369
12.0ms
-14476453796820976000.0
-822330720342328800.0
Results
18.0ms192×body256valid
0.0msbody256infinite
Compiler

Compiled 162 to 134 computations (17.3% saved)

regimes49.0ms (0.6%)

Counts
4 → 9
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
(*.f64 -1/2 y)
(*.f64 y x)
Outputs
(*.f64 -1/2 y)
918938533204673/1000000000000000
(neg.f64 x)
918938533204673/1000000000000000
(neg.f64 x)
918938533204673/1000000000000000
(neg.f64 x)
918938533204673/1000000000000000
(*.f64 -1/2 y)
Calls

2 calls:

31.0ms
y
17.0ms
x
Results
ErrorSegmentsBranch
23.9b5x
21.0b9y
Compiler

Compiled 17 to 11 computations (35.3% saved)

bsearch95.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.0005512598874770371
0.8332286219781533
16.0ms
2.7258416938323966e-34
1.2851403143341646e-30
7.0ms
8.931575094078147e-80
1.576256177309835e-79
12.0ms
3.093682395947294e-279
3.523344304170023e-277
12.0ms
-6.839457308517321e-296
-3.4842506370956016e-298
8.0ms
-3.971919944631368e-242
-1.7921513519677164e-242
12.0ms
-3.633676349931997e-168
-1.0529995377673893e-169
14.0ms
-9021522972.005451
-6423620.172662059
Results
84.0ms864×body256valid
Compiler

Compiled 520 to 462 computations (11.2% saved)

regimes34.0ms (0.4%)

Accuracy

Total -35.9b remaining (-136.7%)

Threshold costs -35.9b (-136.7%)

Counts
2 → 3
Calls
Call 1
Inputs
918938533204673/1000000000000000
(neg.f64 x)
Outputs
(neg.f64 x)
918938533204673/1000000000000000
(neg.f64 x)
Calls

2 calls:

24.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
26.3b3x
35.7b9y
Compiler

Compiled 11 to 8 computations (27.3% saved)

bsearch31.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
6.875795999559287e-7
115733996952161.72
12.0ms
-14740280.11391023
-63945.90558391673
Results
27.0ms288×body256valid
Compiler

Compiled 180 to 158 computations (12.2% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087561
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000)
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)))
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)))
(if (<=.f64 x -1050000) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 2800) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x)))
(if (<=.f64 x -3332663724254167/4503599627370496) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 8286623314361713/9007199254740992) (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x)))
(if (<=.f64 y -3422735716801577/2251799813685248) (*.f64 y (-.f64 x 1/2)) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 y (-.f64 x 1/2))))
(if (<=.f64 y -840000000000000000) (*.f64 -1/2 y) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 -1/2 y)))
(if (<=.f64 y -6500000) (*.f64 -1/2 y) (if (<=.f64 y -900810035817237/8498207885068273579033411304839498037273489883632510771191106211206456957773635883826600036243668570702229271779944016245545269402443315830552319660265397631101300333366291504507650048) 918938533204673/1000000000000000 (if (<=.f64 y -4684690501174133/120120269260875203679538523128148109780988153496792056586846390252202105001907707327158563177285302093576864306955287401906923050660835892188183374506238482560635630761454441237386053598226326597119676286686442018469285424714953873908233822195833562657193984) (neg.f64 x) (if (<=.f64 y -809968618843565/368167554019802297902961703073592265444961685287384386095984806211036520049665972495786961556290633771253993225976613596485201446531925242865351537949643006725668645734124513845866945743352000756639913885870091814580532597437363981258574050387614181710541845882032738795411959682006458992302809763070411033018368) 918938533204673/1000000000000000 (if (<=.f64 y 146179710171/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (neg.f64 x) (if (<=.f64 y 4071725287224235/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) 918938533204673/1000000000000000 (if (<=.f64 y 6722907531722153/2923003274661805836407369665432566039311865085952) (neg.f64 x) (if (<=.f64 y 7385903388887613/9007199254740992) 918938533204673/1000000000000000 (*.f64 -1/2 y)))))))))
(if (<=.f64 x -65000) (neg.f64 x) (if (<=.f64 x 8286623314361713/9007199254740992) 918938533204673/1000000000000000 (neg.f64 x)))
918938533204673/1000000000000000
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (+.f64 (neg.f64 x) (*.f64 y (-.f64 x 1/2))) 918938533204673/1000000000000000)
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (-.f64 (*.f64 y x) (*.f64 y 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)))
(if (<=.f64 x -65000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000) (if (<=.f64 x 7278963232800395/1427247692705959881058285969449495136382746624) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (+.f64 (*.f64 (-.f64 y 1) x) 918938533204673/1000000000000000)))
(if (<=.f64 x -1050000) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 2800) (+.f64 (*.f64 y (-.f64 x 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x)))
(if (<=.f64 x -3332663724254167/4503599627370496) (*.f64 (-.f64 y 1) x) (if (<=.f64 x 8286623314361713/9007199254740992) (+.f64 (*.f64 -1/2 y) 918938533204673/1000000000000000) (*.f64 (-.f64 y 1) x)))
(if (<=.f64 y -3422735716801577/2251799813685248) (*.f64 y (-.f64 x 1/2)) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 y (-.f64 x 1/2))))
(if (<=.f64 y -840000000000000000) (*.f64 -1/2 y) (if (<=.f64 y 4165829655317709/2251799813685248) (-.f64 918938533204673/1000000000000000 x) (*.f64 -1/2 y)))
(if (<=.f64 y -6500000) (*.f64 -1/2 y) (if (<=.f64 y -900810035817237/8498207885068273579033411304839498037273489883632510771191106211206456957773635883826600036243668570702229271779944016245545269402443315830552319660265397631101300333366291504507650048) 918938533204673/1000000000000000 (if (<=.f64 y -4684690501174133/120120269260875203679538523128148109780988153496792056586846390252202105001907707327158563177285302093576864306955287401906923050660835892188183374506238482560635630761454441237386053598226326597119676286686442018469285424714953873908233822195833562657193984) (neg.f64 x) (if (<=.f64 y -809968618843565/368167554019802297902961703073592265444961685287384386095984806211036520049665972495786961556290633771253993225976613596485201446531925242865351537949643006725668645734124513845866945743352000756639913885870091814580532597437363981258574050387614181710541845882032738795411959682006458992302809763070411033018368) 918938533204673/1000000000000000 (if (<=.f64 y 146179710171/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (neg.f64 x) (if (<=.f64 y 4071725287224235/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) 918938533204673/1000000000000000 (if (<=.f64 y 6722907531722153/2923003274661805836407369665432566039311865085952) (neg.f64 x) (if (<=.f64 y 7385903388887613/9007199254740992) 918938533204673/1000000000000000 (*.f64 -1/2 y)))))))))
(if (<=.f64 x -65000) (neg.f64 x) (if (<=.f64 x 8286623314361713/9007199254740992) 918938533204673/1000000000000000 (neg.f64 x)))
918938533204673/1000000000000000
Compiler

Compiled 251 to 181 computations (27.9% saved)

soundness0.0ms (0%)

end263.0ms (3.3%)

Compiler

Compiled 231 to 159 computations (31.2% saved)

Profiling

Loading profile data...