Details

Time bar (total: 3.2s)

analyze432.0ms (13.5%)

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
56.3%56.2%43.7%0.1%0%0%0%7
65.6%65.6%34.3%0.1%0%0%0%8
76.6%76.5%23.4%0.1%0%0%0%9
82%82%18%0.1%0%0%0%10
87.9%87.8%12.1%0.1%0%0%0%11
90.8%90.7%9.2%0.1%0%0%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample1.3s (40.7%)

Results
1.2s7736×body256valid
45.0ms195×body2048valid
36.0ms196×body1024valid
18.0ms129×body512valid
Bogosity

preprocess10.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01226
11426
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(-.f64 x (*.f64 (/.f64 3 8) y))
(-.f64 y (*.f64 (/.f64 3 8) x))
Outputs
(-.f64 x (*.f64 (/.f64 3 8) y))
(-.f64 x (*.f64 3/8 y))
(-.f64 y (*.f64 (/.f64 3 8) x))
(-.f64 y (*.f64 x 3/8))
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify10.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
11113
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 x (*.f64 (/.f64 3 8) y))
Outputs
(-.f64 x (*.f64 (/.f64 3 8) y))
(-.f64 x (*.f64 3/8 y))

eval1.0ms (0%)

Compiler

Compiled 14 to 10 computations (28.6% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.1b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 x (*.f64 3/8 y))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (*.f64 3/8 y))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(-.f64 x (*.f64 3/8 y))
0.0ms
x
@inf
(-.f64 x (*.f64 3/8 y))
0.0ms
x
@0
(-.f64 x (*.f64 3/8 y))
0.0ms
y
@0
(-.f64 x (*.f64 3/8 y))
0.0ms
x
@-inf
(-.f64 x (*.f64 3/8 y))

rewrite128.0ms (4%)

Algorithm
batch-egg-rewrite
Rules
1790×rational.json-simplify-35
1624×rational.json-1
1136×exponential.json-3
1136×rational.json-2
1136×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
210013
321213
439213
588113
6234513
7425713
8563713
9778613
Stop Event
node limit
Counts
1 → 53
Calls
Call 1
Inputs
(-.f64 x (*.f64 3/8 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 y -3/8))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (*.f64 y -3/8)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 x (*.f64 y -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 x (+.f64 (*.f64 y -3/8) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -3/8) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 x (+.f64 (*.f64 3/8 y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (+.f64 (*.f64 3/8 y) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 3/8 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 y -3/8)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 2 (-.f64 (*.f64 3/8 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 y -3/8) -1) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 (*.f64 y -3/8) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x 1) (+.f64 (*.f64 y -3/8) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -1) (+.f64 1 (*.f64 y -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (-.f64 (*.f64 3/8 y) x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) -1) (+.f64 1 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x 1/2) (*.f64 3/8 y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y -3/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 3/8 y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (-.f64 (*.f64 3/8 y) x) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 3/8 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 y -3/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (-.f64 (*.f64 3/8 y) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (*.f64 3/8 y) x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (+.f64 (*.f64 y 3/4) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y -3/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 3/8 y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y 3/2) (*.f64 x 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y 3) (*.f64 x 8)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 y 3) (*.f64 x 8))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 y 3) (*.f64 x 8)))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y -3/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 3/8 y) x))))))

simplify253.0ms (7.9%)

Algorithm
egg-herbie
Rules
1888×rational.json-simplify-35
1770×rational.json-simplify-1
1766×rational.json-simplify-45
1476×rational.json-simplify-2
934×rational.json-simplify-41
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01281427
12511427
24001247
37261247
417761247
529071247
638521247
744381247
847191247
949881247
1052311247
1157981247
1263261247
1374901247
1476701247
1578991247
Stop Event
node limit
Counts
77 → 62
Calls
Call 1
Inputs
(*.f64 -3/8 y)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
x
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
x
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
x
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(*.f64 -3/8 y)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(*.f64 -3/8 y)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 y -3/8))
(+.f64 (+.f64 x (*.f64 y -3/8)) 0)
(+.f64 0 (+.f64 x (*.f64 y -3/8)))
(+.f64 1 (+.f64 x (+.f64 (*.f64 y -3/8) -1)))
(+.f64 (*.f64 y -3/8) x)
(+.f64 -1 (-.f64 x (+.f64 (*.f64 3/8 y) -1)))
(+.f64 (-.f64 x (+.f64 (*.f64 3/8 y) -1)) -1)
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 3/8 y)))
(+.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))
(+.f64 (+.f64 1 (*.f64 y -3/8)) (+.f64 x -1))
(+.f64 -2 (-.f64 2 (-.f64 (*.f64 3/8 y) x)))
(+.f64 (+.f64 (*.f64 y -3/8) -1) (+.f64 x 1))
(+.f64 (+.f64 x (+.f64 (*.f64 y -3/8) -1)) 1)
(+.f64 (+.f64 x 1) (+.f64 (*.f64 y -3/8) -1))
(+.f64 (+.f64 x -1) (+.f64 1 (*.f64 y -3/8)))
(+.f64 (-.f64 2 (-.f64 (*.f64 3/8 y) x)) -2)
(+.f64 (+.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) -1) (+.f64 1 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16))))
(+.f64 (-.f64 (*.f64 x 1/2) (*.f64 3/8 y)) (*.f64 x 1/2))
(*.f64 (+.f64 x (*.f64 y -3/8)) 1)
(*.f64 1 (+.f64 x (*.f64 y -3/8)))
(*.f64 2 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 1/2)
(*.f64 (-.f64 (*.f64 3/8 y) x) -1)
(*.f64 4 (*.f64 (-.f64 (*.f64 3/8 y) x) -1/4))
(*.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -4) 1/4)
(*.f64 -1 (-.f64 (*.f64 3/8 y) x))
(*.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -1/2)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y -3/4))))
(*.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) 2)
(*.f64 -2 (*.f64 (-.f64 (*.f64 3/8 y) x) 1/2))
(*.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) 1/2) -2)
(*.f64 1/4 (*.f64 (-.f64 (*.f64 3/8 y) x) -4))
(*.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -1/4) 4)
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 y 3)))
(*.f64 -1/2 (+.f64 (*.f64 y 3/4) (*.f64 x -2)))
(/.f64 (+.f64 x (*.f64 y -3/8)) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)
(/.f64 (-.f64 (*.f64 3/8 y) x) -1)
(/.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -4) 4)
(/.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -2)
(/.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 8)
(/.f64 (-.f64 (*.f64 y 3/2) (*.f64 x 4)) -4)
(/.f64 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))) 16)
(/.f64 (-.f64 (*.f64 y 3) (*.f64 x 8)) -8)
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))) 32)
(/.f64 (*.f64 2 (-.f64 (*.f64 y 3) (*.f64 x 8))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 y 3) (*.f64 x 8)))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))))))) 256)
(pow.f64 (+.f64 x (*.f64 y -3/8)) 1)
(neg.f64 (-.f64 (*.f64 3/8 y) x))
Outputs
(*.f64 -3/8 y)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
x
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
x
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
x
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(*.f64 -3/8 y)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(*.f64 -3/8 y)
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 -3/8 y) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 x (*.f64 y -3/8))
(+.f64 x (*.f64 -3/8 y))
(+.f64 (+.f64 x (*.f64 y -3/8)) 0)
(+.f64 x (*.f64 -3/8 y))
(+.f64 0 (+.f64 x (*.f64 y -3/8)))
(+.f64 x (*.f64 -3/8 y))
(+.f64 1 (+.f64 x (+.f64 (*.f64 y -3/8) -1)))
(+.f64 x (*.f64 -3/8 y))
(+.f64 (*.f64 y -3/8) x)
(+.f64 x (*.f64 -3/8 y))
(+.f64 -1 (-.f64 x (+.f64 (*.f64 3/8 y) -1)))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(+.f64 (-.f64 x (+.f64 (*.f64 3/8 y) -1)) -1)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 3/8 y)))
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 y 3/8)))
(+.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))
(+.f64 (+.f64 1 (*.f64 y -3/8)) (+.f64 x -1))
(+.f64 x (*.f64 -3/8 y))
(+.f64 -2 (-.f64 2 (-.f64 (*.f64 3/8 y) x)))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(+.f64 (+.f64 (*.f64 y -3/8) -1) (+.f64 x 1))
(+.f64 x (*.f64 -3/8 y))
(+.f64 (+.f64 x (+.f64 (*.f64 y -3/8) -1)) 1)
(+.f64 x (*.f64 -3/8 y))
(+.f64 (+.f64 x 1) (+.f64 (*.f64 y -3/8) -1))
(+.f64 x (*.f64 -3/8 y))
(+.f64 (+.f64 x -1) (+.f64 1 (*.f64 y -3/8)))
(+.f64 x (*.f64 -3/8 y))
(+.f64 (-.f64 2 (-.f64 (*.f64 3/8 y) x)) -2)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(+.f64 (+.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) -1) (+.f64 1 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16))))
(+.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))
(+.f64 (-.f64 (*.f64 x 1/2) (*.f64 3/8 y)) (*.f64 x 1/2))
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 y 3/8)))
(*.f64 (+.f64 x (*.f64 y -3/8)) 1)
(+.f64 x (*.f64 -3/8 y))
(*.f64 1 (+.f64 x (*.f64 y -3/8)))
(+.f64 x (*.f64 -3/8 y))
(*.f64 2 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)))
(*.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) 2)
(*.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 1/2)
(+.f64 x (*.f64 -3/8 y))
(*.f64 (-.f64 (*.f64 3/8 y) x) -1)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 4 (*.f64 (-.f64 (*.f64 3/8 y) x) -1/4))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -4) 1/4)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 -1 (-.f64 (*.f64 3/8 y) x))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -1/2)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y -3/4))))
(+.f64 x (*.f64 -3/8 y))
(*.f64 (-.f64 (*.f64 x 1/2) (*.f64 y 3/16)) 2)
(*.f64 -2 (*.f64 (-.f64 (*.f64 3/8 y) x) 1/2))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) 1/2) -2)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 1/4 (*.f64 (-.f64 (*.f64 3/8 y) x) -4))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -1/4) 4)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 y 3)))
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(*.f64 -1/2 (+.f64 (*.f64 y 3/4) (*.f64 x -2)))
(*.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -1/2)
(/.f64 (+.f64 x (*.f64 y -3/8)) 1)
(+.f64 x (*.f64 -3/8 y))
(/.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)
(+.f64 x (*.f64 -3/8 y))
(/.f64 (-.f64 (*.f64 3/8 y) x) -1)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(/.f64 (*.f64 (-.f64 (*.f64 3/8 y) x) -4) 4)
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))
(/.f64 (+.f64 (*.f64 y 3/4) (*.f64 x -2)) -2)
(/.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 8)
(/.f64 (-.f64 (*.f64 y 3/2) (*.f64 x 4)) -4)
(/.f64 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))) 16)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(/.f64 (-.f64 (*.f64 y 3) (*.f64 x 8)) -8)
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))) 32)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(/.f64 (*.f64 2 (-.f64 (*.f64 y 3) (*.f64 x 8))) -16)
(*.f64 (-.f64 (*.f64 y 3) (*.f64 x 8)) -1/8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))))) 64)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 y 3) (*.f64 x 8)))) -32)
(*.f64 (-.f64 (*.f64 y 3) (*.f64 x 8)) -1/8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) 128)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (-.f64 (*.f64 x 8) (*.f64 y 3))))))) 256)
(*.f64 (-.f64 (*.f64 x 8) (*.f64 y 3)) 1/8)
(pow.f64 (+.f64 x (*.f64 y -3/8)) 1)
(+.f64 x (*.f64 -3/8 y))
(neg.f64 (-.f64 (*.f64 3/8 y) x))
(+.f64 -1 (-.f64 x (+.f64 -1 (*.f64 y 3/8))))
(-.f64 (+.f64 x -1) (+.f64 -1 (*.f64 y 3/8)))
(-.f64 x (*.f64 y 3/8))

eval14.0ms (0.4%)

Compiler

Compiled 577 to 443 computations (23.2% saved)

prune10.0ms (0.3%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New59362
Fresh000
Picked011
Done000
Total59463
Error
0.1b
Counts
63 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(/.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)
0.1b
(-.f64 x (*.f64 3/8 y))
33.2b
(*.f64 -3/8 y)
30.6b
x
Compiler

Compiled 26 to 19 computations (26.9% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize11.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 30 to 19 computations (36.7% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite272.0ms (8.5%)

Algorithm
batch-egg-rewrite
Rules
3206×rational.json-simplify-35
2024×rational.json-simplify-2
1250×rational.json-simplify-1
1150×exponential.json-3
1150×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
15332
211132
323132
446032
5109232
6257432
7412732
8490932
9571232
10617932
11617932
12669032
13690032
14739032
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(+.f64 x (*.f64 y -3/4))
(+.f64 x (+.f64 x (*.f64 y -3/4)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y -3/4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y -3/4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y -3/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -3/2) (+.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 y -3/4)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y -3/2) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y -3/4)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y -3/4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y -3/2) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y -3/4)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y -3/4) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 y -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 x (*.f64 y -3/8))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (+.f64 x (*.f64 y -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8 (+.f64 x (*.f64 y -3/8))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 4 (+.f64 x (*.f64 y -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y -3/2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y -3/8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 8 (+.f64 x (*.f64 y -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 x (*.f64 y -3/8))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -3/2) (*.f64 x 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 x (*.f64 y -3/8))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8 (+.f64 x (*.f64 y -3/8))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)))))

simplify574.0ms (18%)

Algorithm
egg-herbie
Rules
4398×rational.json-simplify-51
2202×rational.json-simplify-35
1324×rational.json-simplify-2
902×rational.json-simplify-1
596×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01111516
12411516
25751516
319061516
436821516
541941516
642901516
743541516
844151516
944751516
1048051516
1148651516
1249251516
1349851516
1450451516
1551051516
1651651516
1752251516
1852251516
1977331516
2078791516
2178821516
2279301516
2379781516
Stop Event
node limit
Counts
100 → 62
Calls
Call 1
Inputs
(*.f64 -3/4 y)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
x
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
x
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
x
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(*.f64 -3/4 y)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(*.f64 -3/4 y)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 (*.f64 -3/4 y) x)
(*.f64 -3/4 y)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(-.f64 (+.f64 x (*.f64 y -3/4)) 0)
(*.f64 (+.f64 x (*.f64 y -3/4)) 1)
(*.f64 1 (+.f64 x (*.f64 y -3/4)))
(*.f64 2 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)))
(*.f64 (+.f64 (*.f64 y -3/2) (+.f64 x x)) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 y -3/4)) 1/4))
(*.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 y -3/2) (+.f64 x x)))
(*.f64 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y -3/4)) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))
(/.f64 (+.f64 x (*.f64 y -3/4)) 1)
(/.f64 (+.f64 (*.f64 y -3/2) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))))))) 1024)
(pow.f64 (+.f64 x (*.f64 y -3/4)) 1)
(-.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 0)
(*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)
(*.f64 1 (+.f64 (*.f64 y -3/4) (+.f64 x x)))
(*.f64 2 (+.f64 x (*.f64 y -3/8)))
(*.f64 (*.f64 4 (+.f64 x (*.f64 y -3/8))) 1/2)
(*.f64 4 (*.f64 1/2 (+.f64 x (*.f64 y -3/8))))
(*.f64 (*.f64 8 (+.f64 x (*.f64 y -3/8))) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8) 1/8)
(*.f64 1/2 (*.f64 4 (+.f64 x (*.f64 y -3/8))))
(*.f64 1/2 (+.f64 (*.f64 y -3/2) (*.f64 x 4)))
(*.f64 (+.f64 x (*.f64 y -3/8)) 2)
(*.f64 1/4 (*.f64 8 (+.f64 x (*.f64 y -3/8))))
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 y -3/8))) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))
(*.f64 (+.f64 (*.f64 y -3/2) (*.f64 x 4)) 1/2)
(/.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)
(/.f64 (*.f64 4 (+.f64 x (*.f64 y -3/8))) 2)
(/.f64 (*.f64 8 (+.f64 x (*.f64 y -3/8))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))))))) 1024)
(pow.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)
Outputs
(*.f64 -3/4 y)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
x
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
x
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
x
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(+.f64 (*.f64 -3/4 y) x)
(+.f64 x (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(*.f64 -3/4 y)
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(+.f64 (*.f64 2 x) (*.f64 -3/4 y))
(+.f64 (*.f64 x 2) (*.f64 -3/4 y))
(-.f64 (+.f64 x (*.f64 y -3/4)) 0)
(+.f64 x (*.f64 -3/4 y))
(*.f64 (+.f64 x (*.f64 y -3/4)) 1)
(+.f64 x (*.f64 -3/4 y))
(*.f64 1 (+.f64 x (*.f64 y -3/4)))
(+.f64 x (*.f64 -3/4 y))
(*.f64 2 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)))
(*.f64 (+.f64 (*.f64 y -3/2) (+.f64 x x)) 1/2)
(+.f64 x (*.f64 -3/4 y))
(*.f64 4 (*.f64 (+.f64 x (*.f64 y -3/4)) 1/4))
(+.f64 x (*.f64 -3/4 y))
(*.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 4) 1/4)
(+.f64 x (*.f64 -3/4 y))
(*.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 8) 1/8)
(+.f64 x (*.f64 -3/4 y))
(*.f64 1/2 (+.f64 (*.f64 y -3/2) (+.f64 x x)))
(+.f64 x (*.f64 -3/4 y))
(*.f64 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)) 2)
(*.f64 2 (+.f64 (*.f64 y -3/8) (*.f64 x 1/2)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y -3/4)) 4))
(+.f64 x (*.f64 -3/4 y))
(*.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 1/4) 4)
(+.f64 x (*.f64 -3/4 y))
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))
(+.f64 x (*.f64 -3/4 y))
(/.f64 (+.f64 x (*.f64 y -3/4)) 1)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (+.f64 (*.f64 y -3/2) (+.f64 x x)) 2)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 4) 4)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 (+.f64 x (*.f64 y -3/4)) 8) 8)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)) 16)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))) 32)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))) 64)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))) 128)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))))) 256)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))))) 512)
(+.f64 x (*.f64 -3/4 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y -3/4)) 8)))))))) 1024)
(+.f64 x (*.f64 -3/4 y))
(pow.f64 (+.f64 x (*.f64 y -3/4)) 1)
(+.f64 x (*.f64 -3/4 y))
(-.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 0)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 1 (+.f64 (*.f64 y -3/4) (+.f64 x x)))
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 2 (+.f64 x (*.f64 y -3/8)))
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 (*.f64 4 (+.f64 x (*.f64 y -3/8))) 1/2)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 4 (*.f64 1/2 (+.f64 x (*.f64 y -3/8))))
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 (*.f64 8 (+.f64 x (*.f64 y -3/8))) 1/4)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8) 1/8)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 1/2 (*.f64 4 (+.f64 x (*.f64 y -3/8))))
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 1/2 (+.f64 (*.f64 y -3/2) (*.f64 x 4)))
(*.f64 (+.f64 x (*.f64 y -3/8)) 2)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 1/4 (*.f64 8 (+.f64 x (*.f64 y -3/8))))
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 y -3/8))) 4)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(*.f64 (+.f64 (*.f64 y -3/2) (*.f64 x 4)) 1/2)
(*.f64 1/2 (+.f64 (*.f64 y -3/2) (*.f64 x 4)))
(/.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 4 (+.f64 x (*.f64 y -3/8))) 2)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 8 (+.f64 x (*.f64 y -3/8))) 4)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8) 8)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)) 16)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))) 32)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))) 64)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))) 128)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))))) 256)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))))) 512)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 8)))))))) 1024)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))
(pow.f64 (+.f64 (*.f64 y -3/4) (+.f64 x x)) 1)
(+.f64 x (+.f64 x (*.f64 -3/4 y)))
(+.f64 (*.f64 -3/4 y) (+.f64 x x))

eval19.0ms (0.6%)

Compiler

Compiled 856 to 662 computations (22.7% saved)

prune9.0ms (0.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New62062
Fresh011
Picked011
Done022
Total62466
Error
0.1b
Counts
66 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(/.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)
0.1b
(-.f64 x (*.f64 3/8 y))
33.2b
(*.f64 -3/8 y)
30.6b
x
Compiler

Compiled 26 to 19 computations (26.9% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.1b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(/.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)
0.1b
(-.f64 x (*.f64 3/8 y))
33.2b
(*.f64 -3/8 y)
30.6b
x
Compiler

Compiled 26 to 19 computations (26.9% saved)

eval1.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.1b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(/.f64 (+.f64 x (+.f64 x (*.f64 y -3/4))) 2)
0.1b
(-.f64 x (*.f64 3/8 y))
33.2b
(*.f64 -3/8 y)
30.6b
x
Compiler

Compiled 26 to 19 computations (26.9% saved)

regimes19.0ms (0.6%)

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

4 calls:

5.0ms
y
4.0ms
(-.f64 x (*.f64 (/.f64 3 8) y))
4.0ms
(*.f64 (/.f64 3 8) y)
4.0ms
x
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1(-.f64 x (*.f64 (/.f64 3 8) y))
0.1b1(*.f64 (/.f64 3 8) y)
Compiler

Compiled 49 to 35 computations (28.6% saved)

regimes24.0ms (0.7%)

Accuracy

Total -48.9b remaining (-380.9%)

Threshold costs -48.9b (-380.9%)

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

2 calls:

14.0ms
x
9.0ms
y
Results
ErrorSegmentsBranch
12.8b5x
14.0b3y
Compiler

Compiled 12 to 8 computations (33.3% saved)

bsearch55.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
1.7974011298973362e-7
864.8332090444151
14.0ms
3.610172691968534e-61
2.4621441676184363e-57
14.0ms
7.174842090862157e-84
7.563314317552312e-81
11.0ms
-3.269345415763413e-87
-8.113317393511023e-88
Results
43.0ms480×body256valid
4.0ms17×body2048valid
2.0ms10×body1024valid
1.0msbody512valid
Compiler

Compiled 334 to 267 computations (20.1% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02467
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 x (*.f64 3/8 y))
(if (<=.f64 x -909896301509733/279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889472) x (if (<=.f64 x 8009951384703413/1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468288) (*.f64 -3/8 y) (if (<=.f64 x 2894802230932905/7237005577332262213973186563042994240829374041602535252466099000494570602496) x (if (<=.f64 x 6139076427730539/1180591620717411303424) (*.f64 -3/8 y) x))))
x
Outputs
(-.f64 x (*.f64 3/8 y))
(if (<=.f64 x -909896301509733/279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889472) x (if (<=.f64 x 8009951384703413/1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468288) (*.f64 -3/8 y) (if (<=.f64 x 2894802230932905/7237005577332262213973186563042994240829374041602535252466099000494570602496) x (if (<=.f64 x 6139076427730539/1180591620717411303424) (*.f64 -3/8 y) x))))
x
Compiler

Compiled 37 to 25 computations (32.4% saved)

soundness10.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
11113
Stop Event
saturated
Compiler

Compiled 14 to 10 computations (28.6% saved)

end26.0ms (0.8%)

Compiler

Compiled 33 to 21 computations (36.4% saved)

Profiling

Loading profile data...