Details

Time bar (total: 9.4s)

analyze108.0ms (1.1%)

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
53.3%50%43.7%0.1%6.2%0%0%7
63.3%59.3%34.3%0.1%6.2%0%0%8
74.1%67.1%23.4%0.1%9.4%0%0%9
80.2%72.6%18%0.1%9.4%0%0%10
86.4%76.9%12.1%0.1%10.9%0%0%11
89.7%79.8%9.2%0.1%10.9%0%0%12
Compiler

Compiled 12 to 10 computations (16.7% saved)

sample2.8s (30.3%)

Results
2.8s8256×body256valid
66.0ms161×body256infinite
Bogosity

preprocess10.0ms (0.1%)

Algorithm
egg-herbie
Rules
24×rational.json-simplify-2
rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01538
11938
22738
33538
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (*.f64 (-.f64 y (/.f64 16 116)) 3) x)
Outputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
(*.f64 (*.f64 (-.f64 y (/.f64 16 116)) 3) x)
(*.f64 x (*.f64 3 (-.f64 y 4/29)))
(*.f64 3 (*.f64 (-.f64 y 4/29) x))
(*.f64 3 (*.f64 x (-.f64 y 4/29)))
Compiler

Compiled 13 to 11 computations (15.4% saved)

simplify35.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01219
11419
21819
32219
Stop Event
saturated
Counts
1 → 3
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
Outputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))

eval2.0ms (0%)

Compiler

Compiled 25 to 19 computations (24% saved)

prune9.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New123
Fresh101
Picked000
Done000
Total224
Error
0.1b
Counts
4 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.6b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 15 computations (28.6% saved)

series6.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite151.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
17432
223132
385432
4347032
Stop Event
node limit
Counts
2 → 12
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x 4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (*.f64 (-.f64 x 4/29) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x 4/29) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x 4/29) 3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x 4/29) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x 4/29) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x 4/29) 3) (/.f64 (*.f64 (-.f64 x 4/29) 3) (*.f64 (-.f64 x 4/29) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 x 4/29) 3) 1)))))

simplify537.0ms (5.7%)

Algorithm
egg-herbie
Rules
1290×rational.json-simplify-49
1090×rational.json-simplify-43
858×rational.json-simplify-111
848×rational.json-simplify-76
820×rational.json-simplify-55
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
036810
166756
2182756
3619756
42969756
56361756
Stop Event
node limit
Counts
48 → 25
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
-12/29
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(+.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(+.f64 0 (*.f64 (-.f64 x 4/29) (*.f64 3 y)))
(-.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (*.f64 (-.f64 x 4/29) (*.f64 3 y))))
(pow.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(+.f64 (*.f64 (-.f64 x 4/29) 3) 0)
(+.f64 0 (*.f64 (-.f64 x 4/29) 3))
(-.f64 (*.f64 (-.f64 x 4/29) 3) 0)
(/.f64 (*.f64 (-.f64 x 4/29) 3) 1)
(/.f64 (*.f64 (-.f64 x 4/29) 3) (/.f64 (*.f64 (-.f64 x 4/29) 3) (*.f64 (-.f64 x 4/29) 3)))
(pow.f64 (*.f64 (-.f64 x 4/29) 3) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
-12/29
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(+.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(+.f64 0 (*.f64 (-.f64 x 4/29) (*.f64 3 y)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(-.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (*.f64 (-.f64 x 4/29) (*.f64 3 y))))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(pow.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(+.f64 (*.f64 (-.f64 x 4/29) 3) 0)
(*.f64 3 (-.f64 x 4/29))
(+.f64 0 (*.f64 (-.f64 x 4/29) 3))
(*.f64 3 (-.f64 x 4/29))
(-.f64 (*.f64 (-.f64 x 4/29) 3) 0)
(*.f64 3 (-.f64 x 4/29))
(/.f64 (*.f64 (-.f64 x 4/29) 3) 1)
(*.f64 3 (-.f64 x 4/29))
(/.f64 (*.f64 (-.f64 x 4/29) 3) (/.f64 (*.f64 (-.f64 x 4/29) 3) (*.f64 (-.f64 x 4/29) 3)))
(*.f64 3 (-.f64 x 4/29))
(pow.f64 (*.f64 (-.f64 x 4/29) 3) 1)
(*.f64 3 (-.f64 x 4/29))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
Compiler

Compiled 19 to 13 computations (31.6% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite109.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
17619
224619
390619
4367319
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x 4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (*.f64 (-.f64 x 4/29) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)))))

simplify203.0ms (2.2%)

Algorithm
egg-herbie
Rules
1248×rational.json-simplify-111
1110×rational.json-simplify-49
1046×rational.json-simplify-54
920×rational.json-simplify-43
902×rational.json-simplify-76
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
025600
147546
2129546
3445546
42027546
54854546
67349546
Stop Event
node limit
Counts
30 → 17
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(+.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(+.f64 0 (*.f64 (-.f64 x 4/29) (*.f64 3 y)))
(-.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (*.f64 (-.f64 x 4/29) (*.f64 3 y))))
(pow.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 x (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 x (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(+.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(+.f64 0 (*.f64 (-.f64 x 4/29) (*.f64 3 y)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(-.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 0)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (/.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) (*.f64 (-.f64 x 4/29) (*.f64 3 y))))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(pow.f64 (*.f64 (-.f64 x 4/29) (*.f64 3 y)) 1)
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))

eval9.0ms (0.1%)

Compiler

Compiled 352 to 254 computations (27.8% saved)

prune18.0ms (0.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New36642
Fresh000
Picked011
Done011
Total36844
Error
0.1b
Counts
44 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.6b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
36.8b
(*.f64 (*.f64 3 x) y)
36.9b
(*.f64 x (*.f64 y 3))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
36.8b
(*.f64 3 (*.f64 y x))
25.6b
(*.f64 -12/29 y)
Compiler

Compiled 106 to 80 computations (24.5% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 3 x) 12/29)
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
Compiler

Compiled 21 to 15 computations (28.6% saved)

series7.0ms (0.1%)

Counts
2 → 15
Calls

9 calls:

TimeVariablePointExpression
4.0ms
y
@0
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
1.0ms
x
@0
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
1.0ms
y
@inf
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.0ms
x
@-inf
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.0ms
x
@inf
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)

rewrite97.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
17432
222732
381632
4318532
Stop Event
node limit
Counts
2 → 19
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(-.f64 (*.f64 3 x) 12/29)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 (*.f64 3 x) 12/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) (/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) (*.f64 (-.f64 (*.f64 3 x) 12/29) y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 3 x) 12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 3 x) 12/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 3 x) 12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 3 x) 12/29) (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 3 x) 12/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (-.f64 (*.f64 3 x) 12/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (/.f64 1 (-.f64 (*.f64 3 x) 12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))) (/.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))) (*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 3 x) 12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 3 x) 12/29) (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 3 x) 12/29) 1)))))

simplify182.0ms (1.9%)

Algorithm
egg-herbie
Rules
1634×rational.json-simplify-47
1402×rational.json-simplify-2
966×rational.json-simplify-50
956×rational.json-simplify-43
878×rational.json-simplify-58
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
041556
174502
2284502
31741502
45824502
Stop Event
node limit
Counts
34 → 30
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
-12/29
(*.f64 3 x)
(*.f64 3 x)
(+.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 0)
(+.f64 0 (*.f64 (-.f64 (*.f64 3 x) 12/29) y))
(-.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 0)
(/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 1)
(/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) (/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) (*.f64 (-.f64 (*.f64 3 x) 12/29) y)))
(pow.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 1)
(+.f64 (-.f64 (*.f64 3 x) 12/29) 0)
(+.f64 0 (-.f64 (*.f64 3 x) 12/29))
(*.f64 (-.f64 (*.f64 3 x) 12/29) 1)
(*.f64 (-.f64 (*.f64 3 x) 12/29) (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))
(*.f64 1 (-.f64 (*.f64 3 x) 12/29))
(*.f64 (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (-.f64 (*.f64 3 x) 12/29))
(*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (/.f64 1 (-.f64 (*.f64 3 x) 12/29)))
(*.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))
(*.f64 (*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))) (/.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))))
(*.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))) (*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))))
(/.f64 (-.f64 (*.f64 3 x) 12/29) 1)
(/.f64 (-.f64 (*.f64 3 x) 12/29) (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))
(pow.f64 (-.f64 (*.f64 3 x) 12/29) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 x (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 x (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
-12/29
(*.f64 3 x)
(*.f64 3 x)
(+.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 0)
(*.f64 y (-.f64 (*.f64 3 x) 12/29))
(+.f64 0 (*.f64 (-.f64 (*.f64 3 x) 12/29) y))
(*.f64 y (-.f64 (*.f64 3 x) 12/29))
(-.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 0)
(*.f64 y (-.f64 (*.f64 3 x) 12/29))
(/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 1)
(*.f64 y (-.f64 (*.f64 3 x) 12/29))
(/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) (/.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) (*.f64 (-.f64 (*.f64 3 x) 12/29) y)))
(*.f64 y (-.f64 (*.f64 3 x) 12/29))
(pow.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) y) 1)
(*.f64 y (-.f64 (*.f64 3 x) 12/29))
(+.f64 (-.f64 (*.f64 3 x) 12/29) 0)
(-.f64 (*.f64 3 x) 12/29)
(+.f64 0 (-.f64 (*.f64 3 x) 12/29))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (-.f64 (*.f64 3 x) 12/29) 1)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (-.f64 (*.f64 3 x) 12/29) (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 1 (-.f64 (*.f64 3 x) 12/29))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (-.f64 (*.f64 3 x) 12/29))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (/.f64 1 (-.f64 (*.f64 3 x) 12/29)))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))) (/.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))))
(-.f64 (*.f64 3 x) 12/29)
(*.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))) (*.f64 (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)) (*.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29))))
(-.f64 (*.f64 3 x) 12/29)
(/.f64 (-.f64 (*.f64 3 x) 12/29) 1)
(-.f64 (*.f64 3 x) 12/29)
(/.f64 (-.f64 (*.f64 3 x) 12/29) (/.f64 (-.f64 (*.f64 3 x) 12/29) (-.f64 (*.f64 3 x) 12/29)))
(-.f64 (*.f64 3 x) 12/29)
(pow.f64 (-.f64 (*.f64 3 x) 12/29) 1)
(-.f64 (*.f64 3 x) 12/29)

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -12/29 y)
Compiler

Compiled 7 to 5 computations (28.6% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
y
@0
(*.f64 -12/29 y)
0.0ms
y
@inf
(*.f64 -12/29 y)
0.0ms
y
@-inf
(*.f64 -12/29 y)

rewrite166.0ms (1.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1427
21417
35077
419247
577657
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 -12/29 y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -12/29 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -12/29 y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -12/29 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 -12/29 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 -12/29 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -12/29 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -12/29 y) (/.f64 (*.f64 -12/29 y) (*.f64 -12/29 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -12/29 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 -12/29 y)))))))

simplify253.0ms (2.7%)

Algorithm
egg-herbie
Rules
1672×rational.json-simplify-47
758×rational.json-simplify-1
702×rational.json-simplify-111
674×rational.json-simplify-2
674×rational.json-simplify-104
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02263
14563
211363
334363
4133263
5334663
6602563
7778163
Stop Event
node limit
Counts
9 → 10
Calls
Call 1
Inputs
(+.f64 (*.f64 -12/29 y) 0)
(+.f64 0 (*.f64 -12/29 y))
(-.f64 (*.f64 -12/29 y) 0)
(-.f64 0 (neg.f64 (*.f64 -12/29 y)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 -12/29 y))) 1)
(/.f64 (*.f64 -12/29 y) 1)
(/.f64 (*.f64 -12/29 y) (/.f64 (*.f64 -12/29 y) (*.f64 -12/29 y)))
(pow.f64 (*.f64 -12/29 y) 1)
(neg.f64 (neg.f64 (*.f64 -12/29 y)))
Outputs
(+.f64 (*.f64 -12/29 y) 0)
(*.f64 -12/29 y)
(+.f64 0 (*.f64 -12/29 y))
(*.f64 -12/29 y)
(-.f64 (*.f64 -12/29 y) 0)
(*.f64 -12/29 y)
(-.f64 0 (neg.f64 (*.f64 -12/29 y)))
(*.f64 -12/29 y)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 -12/29 y))) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 -12/29 y) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 -12/29 y) (/.f64 (*.f64 -12/29 y) (*.f64 -12/29 y)))
(*.f64 -12/29 y)
(pow.f64 (*.f64 -12/29 y) 1)
(*.f64 -12/29 y)
(neg.f64 (neg.f64 (*.f64 -12/29 y)))
(*.f64 -12/29 y)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 3 (*.f64 y x))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series7.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

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

rewrite112.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16113
220913
377813
4316713
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 3 (*.f64 y x)) (*.f64 3 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y x)) 1)))))

simplify200.0ms (2.1%)

Algorithm
egg-herbie
Rules
1386×rational.json-simplify-79
922×rational.json-simplify-80
904×rational.json-simplify-2
752×rational.json-simplify-76
720×rational.json-simplify-111
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01678
13078
29678
332578
4140578
5327578
6481678
7625378
Stop Event
node limit
Counts
6 → 7
Calls
Call 1
Inputs
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(+.f64 0 (*.f64 3 (*.f64 y x)))
(-.f64 (*.f64 3 (*.f64 y x)) 0)
(/.f64 (*.f64 3 (*.f64 y x)) 1)
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 3 (*.f64 y x)) (*.f64 3 (*.f64 y x))))
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
Outputs
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(*.f64 3 (*.f64 y x))
(+.f64 0 (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 y x))
(-.f64 (*.f64 3 (*.f64 y x)) 0)
(*.f64 3 (*.f64 y x))
(/.f64 (*.f64 3 (*.f64 y x)) 1)
(*.f64 3 (*.f64 y x))
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 3 (*.f64 y x)) (*.f64 3 (*.f64 y x))))
(*.f64 3 (*.f64 y x))
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
(*.f64 3 (*.f64 y x))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.5b
(*.f64 x (*.f64 y 3))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite118.0ms (1.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16113
220913
378313
4321213
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 x (*.f64 y 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 3)) (/.f64 (*.f64 x (*.f64 y 3)) (*.f64 x (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y 3)) 1)))))

simplify241.0ms (2.6%)

Algorithm
egg-herbie
Rules
1508×rational.json-simplify-79
1064×rational.json-simplify-2
872×rational.json-simplify-76
852×rational.json-simplify-111
762×rational.json-simplify-104
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018390
136390
296390
3336390
41527390
53746390
65466390
77052390
Stop Event
node limit
Counts
30 → 8
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 x (*.f64 y 3)) 0)
(+.f64 0 (*.f64 x (*.f64 y 3)))
(-.f64 (*.f64 x (*.f64 y 3)) 0)
(/.f64 (*.f64 x (*.f64 y 3)) 1)
(/.f64 (*.f64 x (*.f64 y 3)) (/.f64 (*.f64 x (*.f64 y 3)) (*.f64 x (*.f64 y 3))))
(pow.f64 (*.f64 x (*.f64 y 3)) 1)
Outputs
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x (*.f64 y 3)) 0)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 0 (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(-.f64 (*.f64 x (*.f64 y 3)) 0)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 y 3)) 1)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 y 3)) (/.f64 (*.f64 x (*.f64 y 3)) (*.f64 x (*.f64 y 3))))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(pow.f64 (*.f64 x (*.f64 y 3)) 1)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 3 x) 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 (*.f64 3 x) y)
0.0ms
x
@0
(*.f64 (*.f64 3 x) y)
0.0ms
x
@inf
(*.f64 (*.f64 3 x) y)
0.0ms
x
@-inf
(*.f64 (*.f64 3 x) y)
0.0ms
y
@inf
(*.f64 (*.f64 3 x) y)

rewrite114.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
219613
374313
4307213
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 (*.f64 3 x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 x y)) (/.f64 (*.f64 3 (*.f64 x y)) (*.f64 3 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x y)) 1)))))

simplify259.0ms (2.8%)

Algorithm
egg-herbie
Rules
1448×rational.json-simplify-79
1134×rational.json-simplify-2
816×rational.json-simplify-76
790×rational.json-simplify-111
750×rational.json-simplify-104
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018390
133390
2104390
3377390
41636390
53918390
65610390
77131390
Stop Event
node limit
Counts
30 → 9
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 x y)) 0)
(+.f64 0 (*.f64 3 (*.f64 x y)))
(-.f64 (*.f64 3 (*.f64 x y)) 0)
(/.f64 (*.f64 3 (*.f64 x y)) 1)
(/.f64 (*.f64 3 (*.f64 x y)) (/.f64 (*.f64 3 (*.f64 x y)) (*.f64 3 (*.f64 x y))))
(pow.f64 (*.f64 3 (*.f64 x y)) 1)
Outputs
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 x y)) 0)
(*.f64 y (*.f64 x 3))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 0 (*.f64 3 (*.f64 x y)))
(*.f64 y (*.f64 x 3))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(-.f64 (*.f64 3 (*.f64 x y)) 0)
(*.f64 y (*.f64 x 3))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 3 (*.f64 x y)) 1)
(*.f64 y (*.f64 x 3))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 3 (*.f64 x y)) (/.f64 (*.f64 3 (*.f64 x y)) (*.f64 3 (*.f64 x y))))
(*.f64 y (*.f64 x 3))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(pow.f64 (*.f64 3 (*.f64 x y)) 1)
(*.f64 y (*.f64 x 3))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))

eval171.0ms (1.8%)

Compiler

Compiled 623 to 446 computations (28.4% saved)

prune23.0ms (0.2%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New64064
Fresh011
Picked011
Done066
Total64872
Error
0.1b
Counts
72 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.6b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
36.8b
(*.f64 (*.f64 3 x) y)
36.9b
(*.f64 x (*.f64 y 3))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
36.8b
(*.f64 3 (*.f64 y x))
25.6b
(*.f64 -12/29 y)
Compiler

Compiled 62 to 47 computations (24.2% saved)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 y (-.f64 x 4/29))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Compiler

Compiled 21 to 14 computations (33.3% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

12 calls:

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

rewrite306.0ms (3.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
17632
224432
389032
4356532
Stop Event
node limit
Counts
2 → 12
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (-.f64 x 4/29))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y (-.f64 x 4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) (/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) (*.f64 3 (*.f64 y (-.f64 x 4/29)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x 4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 x 4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 x 4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x 4/29)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x 4/29)) (/.f64 (*.f64 y (-.f64 x 4/29)) (*.f64 y (-.f64 x 4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (-.f64 x 4/29)) 1)))))

simplify126.0ms (1.3%)

Algorithm
egg-herbie
Rules
1662×rational.json-simplify-47
988×rational.json-simplify-104
874×rational.json-simplify-49
862×rational.json-simplify-54
772×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
033588
164534
2172534
3524534
42325534
55494534
Stop Event
node limit
Counts
36 → 29
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 -4/29 y)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 0)
(+.f64 0 (*.f64 3 (*.f64 y (-.f64 x 4/29))))
(-.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 0)
(/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 1)
(/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) (/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) (*.f64 3 (*.f64 y (-.f64 x 4/29)))))
(pow.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 1)
(+.f64 (*.f64 y (-.f64 x 4/29)) 0)
(+.f64 0 (*.f64 y (-.f64 x 4/29)))
(-.f64 (*.f64 y (-.f64 x 4/29)) 0)
(/.f64 (*.f64 y (-.f64 x 4/29)) 1)
(/.f64 (*.f64 y (-.f64 x 4/29)) (/.f64 (*.f64 y (-.f64 x 4/29)) (*.f64 y (-.f64 x 4/29))))
(pow.f64 (*.f64 y (-.f64 x 4/29)) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 -4/29 y)
(*.f64 y -4/29)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 -4/29 x))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 0)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(+.f64 0 (*.f64 3 (*.f64 y (-.f64 x 4/29))))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(-.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 0)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 1)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) (/.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) (*.f64 3 (*.f64 y (-.f64 x 4/29)))))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(pow.f64 (*.f64 3 (*.f64 y (-.f64 x 4/29))) 1)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(+.f64 (*.f64 y (-.f64 x 4/29)) 0)
(*.f64 y (-.f64 x 4/29))
(+.f64 0 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (-.f64 x 4/29))
(-.f64 (*.f64 y (-.f64 x 4/29)) 0)
(*.f64 y (-.f64 x 4/29))
(/.f64 (*.f64 y (-.f64 x 4/29)) 1)
(*.f64 y (-.f64 x 4/29))
(/.f64 (*.f64 y (-.f64 x 4/29)) (/.f64 (*.f64 y (-.f64 x 4/29)) (*.f64 y (-.f64 x 4/29))))
(*.f64 y (-.f64 x 4/29))
(pow.f64 (*.f64 y (-.f64 x 4/29)) 1)
(*.f64 y (-.f64 x 4/29))

eval7.0ms (0.1%)

Compiler

Compiled 243 to 174 computations (28.4% saved)

prune109.0ms (1.2%)

Pruning

10 alts after pruning (2 fresh and 8 done)

PrunedKeptTotal
New27229
Fresh000
Picked011
Done077
Total271037
Error
0.0b
Counts
37 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.6b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
36.8b
(*.f64 (*.f64 3 x) y)
36.9b
(*.f64 x (*.f64 y 3))
0.3b
(*.f64 3 (+.f64 (*.f64 y x) (*.f64 -4/29 y)))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
36.8b
(*.f64 3 (*.f64 y x))
25.8b
(*.f64 3 (*.f64 y -4/29))
25.6b
(*.f64 -12/29 y)
Compiler

Compiled 80 to 61 computations (23.8% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 y -4/29)
0.3b
(*.f64 3 (*.f64 y -4/29))
Compiler

Compiled 13 to 10 computations (23.1% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite316.0ms (3.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0714
16114
219214
369614
4285914
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y -4/29))
(*.f64 y -4/29)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) (*.f64 y -8/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -8/29) (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y -12/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -12/29) (/.f64 (*.f64 y -12/29) (*.f64 y -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y -12/29)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -8/29) (*.f64 y -8/29)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y -4/29)))))))

simplify200.0ms (2.1%)

Algorithm
egg-herbie
Rules
1010×rational.json-simplify-2
898×rational.json-simplify-79
802×rational.json-simplify-111
680×rational.json-simplify-1
606×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043332
185332
2200332
3589332
42167332
54707332
66905332
Stop Event
node limit
Counts
44 → 26
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(+.f64 (*.f64 y -4/29) (*.f64 y -8/29))
(+.f64 (*.f64 y -12/29) 0)
(+.f64 0 (*.f64 y -12/29))
(+.f64 (*.f64 y -8/29) (*.f64 y -4/29))
(-.f64 (*.f64 y -12/29) 0)
(-.f64 0 (neg.f64 (*.f64 y -12/29)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -12/29))) 1)
(/.f64 (*.f64 y -12/29) 1)
(/.f64 (*.f64 y -12/29) (/.f64 (*.f64 y -12/29) (*.f64 y -12/29)))
(pow.f64 (*.f64 y -12/29) 1)
(neg.f64 (neg.f64 (*.f64 y -12/29)))
(+.f64 (*.f64 y -4/29) 0)
(+.f64 0 (*.f64 y -4/29))
(-.f64 (*.f64 y -4/29) 0)
(-.f64 0 (neg.f64 (*.f64 y -4/29)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) 1)
(/.f64 (*.f64 y -4/29) 1)
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -8/29) (*.f64 y -8/29)))
(pow.f64 (*.f64 y -4/29) 1)
(neg.f64 (neg.f64 (*.f64 y -4/29)))
Outputs
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(+.f64 (*.f64 y -4/29) (*.f64 y -8/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -12/29) 0)
(*.f64 -12/29 y)
(+.f64 0 (*.f64 y -12/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -8/29) (*.f64 y -4/29))
(*.f64 -12/29 y)
(-.f64 (*.f64 y -12/29) 0)
(*.f64 -12/29 y)
(-.f64 0 (neg.f64 (*.f64 y -12/29)))
(*.f64 -12/29 y)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -12/29))) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -12/29) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -12/29) (/.f64 (*.f64 y -12/29) (*.f64 y -12/29)))
(*.f64 -12/29 y)
(pow.f64 (*.f64 y -12/29) 1)
(*.f64 -12/29 y)
(neg.f64 (neg.f64 (*.f64 y -12/29)))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -4/29) 0)
(*.f64 y -4/29)
(+.f64 0 (*.f64 y -4/29))
(*.f64 y -4/29)
(-.f64 (*.f64 y -4/29) 0)
(*.f64 y -4/29)
(-.f64 0 (neg.f64 (*.f64 y -4/29)))
(*.f64 y -4/29)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) 1)
(*.f64 y -4/29)
(/.f64 (*.f64 y -4/29) 1)
(*.f64 y -4/29)
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -8/29) (*.f64 y -8/29)))
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -16/29) (*.f64 y -16/29)))
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -32/29) (*.f64 y -32/29)))
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -4/29) (*.f64 y -4/29)))
(pow.f64 (*.f64 y -4/29) 1)
(*.f64 y -4/29)
(neg.f64 (neg.f64 (*.f64 y -4/29)))
(*.f64 y -4/29)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 15 computations (46.4% saved)

series4.0ms (0%)

Counts
3 → 39
Calls

15 calls:

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

rewrite304.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
920×rational.json-simplify-54
890×rational.json-simplify-79
722×rational.json-simplify-47
634×rational.json-simplify-49
544×rational.json-simplify-58
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
18639
227239
3101639
4416439
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(*.f64 3 (+.f64 (*.f64 y x) (*.f64 -4/29 y)))
(*.f64 -4/29 y)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (+.f64 (*.f64 y (+.f64 x -8/29)) (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) (+.f64 (*.f64 y (+.f64 (+.f64 x x) -4/29)) (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 (+.f64 x -4/29) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -8/29)) (*.f64 y (+.f64 (+.f64 x x) -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 (+.f64 x x) -4/29)) (*.f64 y (+.f64 x -8/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -4/29) (*.f64 y -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y -4/29)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 x -4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) (-.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y x))) (-.f64 1 (*.f64 y -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y -4/29) (-.f64 -1 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y x) (-.f64 -1 (*.f64 y -4/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 x -4/29)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 x -4/29)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 x -4/29)) (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -4/29) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (/.f64 1 (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (/.f64 (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 (+.f64 x -4/29) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (/.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) 1) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -4/29)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -4/29)) (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 x -4/29)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (+.f64 x -4/29))))))))

simplify366.0ms (3.9%)

Algorithm
egg-herbie
Rules
1286×rational.json-simplify-49
1210×rational.json-simplify-2
1078×rational.json-simplify-54
864×rational.json-simplify-41
644×rational.json-simplify-42
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01221854
12861596
28411416
327321376
477741376
Stop Event
node limit
Counts
90 → 76
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -4/29 y)
(*.f64 y x)
(*.f64 y x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 y (+.f64 x -8/29)) (*.f64 y (+.f64 x -4/29))))
(+.f64 (*.f64 y -4/29) (+.f64 (*.f64 y (+.f64 (+.f64 x x) -4/29)) (*.f64 y (+.f64 x -4/29))))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 (+.f64 x -4/29) (+.f64 y y)))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (*.f64 y (+.f64 (+.f64 x x) -4/29)))
(+.f64 (*.f64 y (+.f64 (+.f64 x x) -4/29)) (*.f64 y (+.f64 x -8/29)))
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(-.f64 0 (neg.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))) 1)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y))))
(pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(neg.f64 (neg.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y))))
(+.f64 (*.f64 y -4/29) 0)
(+.f64 0 (*.f64 y -4/29))
(-.f64 (*.f64 y -4/29) 0)
(-.f64 0 (neg.f64 (*.f64 y -4/29)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) 1)
(/.f64 (*.f64 y -4/29) 1)
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -4/29) (*.f64 y -4/29)))
(pow.f64 (*.f64 y -4/29) 1)
(neg.f64 (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y (+.f64 x -4/29)) 0)
(-.f64 0 (neg.f64 (*.f64 y (+.f64 x -4/29))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) (-.f64 1 (*.f64 y x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y x))) (-.f64 1 (*.f64 y -4/29)))
(-.f64 (-.f64 (*.f64 y -4/29) (-.f64 -1 (*.f64 y x))) 1)
(-.f64 (-.f64 (*.f64 y x) (-.f64 -1 (*.f64 y -4/29))) 1)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 x -4/29)))) 1)
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 y (+.f64 x -4/29)) 1)
(*.f64 (*.f64 y (+.f64 x -4/29)) (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))
(*.f64 1 (*.f64 y (+.f64 x -4/29)))
(*.f64 (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 y (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) y)
(*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (/.f64 1 (*.f64 y (+.f64 x -4/29))))
(*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) 1))
(*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (/.f64 (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 y (+.f64 x -4/29))))
(*.f64 (*.f64 y y) (*.f64 (+.f64 x -4/29) (/.f64 1 y)))
(*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (/.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) 1) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))
(/.f64 (*.f64 y (+.f64 x -4/29)) 1)
(/.f64 (*.f64 y (+.f64 x -4/29)) (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))
(pow.f64 (*.f64 y (+.f64 x -4/29)) 1)
(neg.f64 (neg.f64 (*.f64 y (+.f64 x -4/29))))
Outputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 4/29 (*.f64 x -1)) -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 y (*.f64 -3 (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (*.f64 y -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 4/29 (*.f64 x -1)) -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 y (*.f64 -3 (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (*.f64 y -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 4/29 (*.f64 x -1)) -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 y (*.f64 -3 (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (*.f64 y -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 y (*.f64 (+.f64 4/29 (*.f64 x -1)) -3))
(*.f64 -3 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 y (*.f64 -3 (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (*.f64 y -3))
(*.f64 -12/29 y)
(*.f64 y -12/29)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 y -12/29) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 y (-.f64 x 4/29))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 x -1))))
(neg.f64 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (neg.f64 y))
(*.f64 y (-.f64 -4/29 (neg.f64 x)))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 x -1))))
(neg.f64 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (neg.f64 y))
(*.f64 y (-.f64 -4/29 (neg.f64 x)))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 x -1))))
(neg.f64 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (neg.f64 y))
(*.f64 y (-.f64 -4/29 (neg.f64 x)))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 4/29 (*.f64 x -1))))
(neg.f64 (*.f64 y (+.f64 4/29 (neg.f64 x))))
(*.f64 (+.f64 4/29 (neg.f64 x)) (neg.f64 y))
(*.f64 y (-.f64 -4/29 (neg.f64 x)))
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 y x)
(*.f64 y x)
(+.f64 (*.f64 y x) (+.f64 (*.f64 y (+.f64 x -8/29)) (*.f64 y (+.f64 x -4/29))))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y -4/29) (+.f64 (*.f64 y (+.f64 (+.f64 x x) -4/29)) (*.f64 y (+.f64 x -4/29))))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 (+.f64 x -4/29) (+.f64 y y)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (*.f64 y (+.f64 (+.f64 x x) -4/29)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (+.f64 (+.f64 x x) -4/29)) (*.f64 y (+.f64 x -8/29)))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(-.f64 0 (neg.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y))))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))) 1)
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) (*.f64 (+.f64 x -4/29) (*.f64 3 y))))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(neg.f64 (neg.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y))))
(+.f64 (*.f64 y (+.f64 x -8/29)) (+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y x)))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -4/29)) (+.f64 x -8/29)))
(*.f64 3 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y -4/29) 0)
(*.f64 y -4/29)
(+.f64 0 (*.f64 y -4/29))
(*.f64 y -4/29)
(-.f64 (*.f64 y -4/29) 0)
(*.f64 y -4/29)
(-.f64 0 (neg.f64 (*.f64 y -4/29)))
(*.f64 y -4/29)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) 1)
(*.f64 y -4/29)
(/.f64 (*.f64 y -4/29) 1)
(*.f64 y -4/29)
(/.f64 (*.f64 y -4/29) (/.f64 (*.f64 y -4/29) (*.f64 y -4/29)))
(*.f64 y -4/29)
(pow.f64 (*.f64 y -4/29) 1)
(*.f64 y -4/29)
(neg.f64 (neg.f64 (*.f64 y -4/29)))
(*.f64 y -4/29)
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 y -4/29))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(+.f64 (*.f64 y x) (*.f64 y -4/29))
(-.f64 (*.f64 y (+.f64 x -4/29)) 0)
(*.f64 y (+.f64 x -4/29))
(-.f64 0 (neg.f64 (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y -4/29))) (-.f64 1 (*.f64 y x)))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 y -4/29))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y x))) (-.f64 1 (*.f64 y -4/29)))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 y -4/29))
(-.f64 (-.f64 (*.f64 y -4/29) (-.f64 -1 (*.f64 y x))) 1)
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 y -4/29))
(-.f64 (-.f64 (*.f64 y x) (-.f64 -1 (*.f64 y -4/29))) 1)
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y -4/29)))
(-.f64 (*.f64 y -4/29) (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 y -4/29))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 x -4/29)))) 1)
(*.f64 y (+.f64 x -4/29))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 y (+.f64 x -4/29)) 1)
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 y (+.f64 x -4/29)) (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))
(*.f64 1 (*.f64 y (+.f64 x -4/29)))
(*.f64 y (+.f64 x -4/29))
(*.f64 (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 y (+.f64 x -4/29)))
(*.f64 y (+.f64 x -4/29))
(*.f64 (+.f64 x -4/29) y)
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (/.f64 1 (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) 1))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (/.f64 (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 y y) (*.f64 (+.f64 x -4/29) (/.f64 1 y)))
(*.f64 y (+.f64 x -4/29))
(*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (/.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) 1) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))))
(*.f64 y (+.f64 x -4/29))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29)))) (*.f64 (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))) (*.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))))
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 y (+.f64 x -4/29)) 1)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 y (+.f64 x -4/29)) (/.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))
(pow.f64 (*.f64 y (+.f64 x -4/29)) 1)
(*.f64 y (+.f64 x -4/29))
(neg.f64 (neg.f64 (*.f64 y (+.f64 x -4/29))))
(*.f64 y (+.f64 x -4/29))

eval46.0ms (0.5%)

Compiler

Compiled 1207 to 856 computations (29.1% saved)

prune147.0ms (1.6%)

Pruning

11 alts after pruning (1 fresh and 10 done)

PrunedKeptTotal
New1011102
Fresh000
Picked011
Done099
Total10111112
Error
0.0b
Counts
112 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.6b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
36.8b
(*.f64 (*.f64 3 x) y)
36.9b
(*.f64 x (*.f64 y 3))
0.3b
(*.f64 3 (+.f64 (*.f64 y x) (*.f64 -4/29 y)))
28.2b
(*.f64 3 (*.f64 (*.f64 y y) (*.f64 (+.f64 x -4/29) (/.f64 1 y))))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
36.8b
(*.f64 3 (*.f64 y x))
25.8b
(*.f64 3 (*.f64 y -4/29))
25.6b
(*.f64 -12/29 y)
Compiler

Compiled 95 to 72 computations (24.2% saved)

regimes72.0ms (0.8%)

Counts
12 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 y 3))
(*.f64 (*.f64 3 x) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 3 (+.f64 (*.f64 y x) (*.f64 -4/29 y)))
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 3 (*.f64 (*.f64 y y) (*.f64 (+.f64 x -4/29) (/.f64 1 y))))
Outputs
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
Calls

5 calls:

20.0ms
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
19.0ms
y
12.0ms
x
8.0ms
(-.f64 x (/.f64 16 116))
8.0ms
(*.f64 (-.f64 x (/.f64 16 116)) 3)
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
0.2b1(*.f64 (-.f64 x (/.f64 16 116)) 3)
0.2b1(-.f64 x (/.f64 16 116))
Compiler

Compiled 117 to 85 computations (27.4% saved)

regimes206.0ms (2.2%)

Counts
6 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 y 3))
(*.f64 (*.f64 3 x) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Outputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Calls

2 calls:

195.0ms
y
8.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 38 to 26 computations (31.6% saved)

regimes144.0ms (1.5%)

Counts
5 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 y 3))
(*.f64 (*.f64 3 x) y)
Outputs
(*.f64 (*.f64 3 x) y)
(*.f64 -12/29 y)
(*.f64 (*.f64 3 x) y)
Calls

2 calls:

113.0ms
y
30.0ms
x
Results
ErrorSegmentsBranch
1.1b3x
18.1b11y
Compiler

Compiled 31 to 21 computations (32.3% saved)

bsearch69.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
32.0ms
4.5550488334996883e-10
2.6601895447352484
37.0ms
-83.46497177913076
-4.234858206804041e-12
Results
60.0ms320×body256valid
Compiler

Compiled 296 to 233 computations (21.3% saved)

regimes136.0ms (1.5%)

Counts
4 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 y 3))
Outputs
(*.f64 x (*.f64 y 3))
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y x))
Calls

2 calls:

110.0ms
y
24.0ms
x
Results
ErrorSegmentsBranch
1.1b3x
18.1b11y
Compiler

Compiled 26 to 18 computations (30.8% saved)

bsearch75.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
4.5550488334996883e-10
2.6601895447352484
36.0ms
-83.46497177913076
-4.234858206804041e-12
Results
59.0ms320×body256valid
Compiler

Compiled 296 to 233 computations (21.3% saved)

regimes325.0ms (3.5%)

Counts
3 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
Outputs
(*.f64 3 (*.f64 y x))
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y x))
Calls

2 calls:

299.0ms
y
24.0ms
x
Results
ErrorSegmentsBranch
1.1b3x
18.1b11y
Compiler

Compiled 21 to 15 computations (28.6% saved)

bsearch73.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
37.0ms
4.5550488334996883e-10
2.6601895447352484
36.0ms
-83.46497177913076
-4.234858206804041e-12
Results
56.0ms320×body256valid
Compiler

Compiled 296 to 233 computations (21.3% saved)

regimes16.0ms (0.2%)

Accuracy

Total -0.2b remaining (-0.6%)

Threshold costs -0.2b (-0.6%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y -4/29))
Outputs
(*.f64 -12/29 y)
Calls

2 calls:

8.0ms
x
7.0ms
y
Results
ErrorSegmentsBranch
25.6b1x
25.6b1y
Compiler

Compiled 16 to 12 computations (25% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031198
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 (*.f64 3 x) y) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 (*.f64 3 x) y)))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 y 3)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(*.f64 -12/29 y)
Outputs
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 (*.f64 3 x) y) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 (*.f64 3 x) y)))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 y 3)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(*.f64 -12/29 y)
Compiler

Compiled 92 to 65 computations (29.3% saved)

soundness38.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01219
11419
21819
32219
Stop Event
saturated
Compiler

Compiled 18 to 14 computations (22.2% saved)

end201.0ms (2.1%)

Compiler

Compiled 82 to 54 computations (34.1% saved)

Profiling

Loading profile data...