Details

Time bar (total: 3.6s)

analyze47.0ms (1.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
50%43.7%43.7%0.1%12.5%0%0%7
60.7%53.1%34.3%0.1%12.5%0%0%8
71.2%57.8%23.4%0.1%18.7%0%0%9
77.9%63.2%18%0.1%18.7%0%0%10
84.5%66%12.1%0.1%21.9%0%0%11
88.3%68.9%9.2%0.1%21.9%0%0%12
Compiler

Compiled 10 to 7 computations (30% saved)

sample837.0ms (23.2%)

Results
778.0ms8256×body256valid
29.0ms362×body256infinite
Bogosity

preprocess15.0ms (0.4%)

Algorithm
egg-herbie
Rules
48×rational_best-simplify-2
38×rational_best-simplify-44
rational_best-simplify-74
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
11738
22738
34338
46538
56538
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 (*.f64 x 3) y) y)
(*.f64 (*.f64 (*.f64 y 3) x) x)
Outputs
(*.f64 (*.f64 (*.f64 x 3) y) y)
(*.f64 y (*.f64 (*.f64 x 3) y))
(*.f64 (*.f64 x 3) (*.f64 y y))
(*.f64 3 (*.f64 y (*.f64 x y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 (*.f64 y 3) x) x)
(*.f64 x (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 3 y) (*.f64 x x))
(*.f64 3 (*.f64 x (*.f64 x y)))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify132.0ms (3.6%)

Algorithm
egg-herbie
Rules
32×rational_best-simplify-2
22×rational_best-simplify-44
rational_best-simplify-74
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
11119
21719
32819
44019
54219
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x 3) y) y)
Outputs
(*.f64 (*.f64 (*.f64 x 3) y) y)
(*.f64 y (*.f64 (*.f64 x 3) y))
(*.f64 (*.f64 x 3) (*.f64 y y))
(*.f64 x (*.f64 y (*.f64 3 y)))

eval1.0ms (0%)

Compiler

Compiled 30 to 18 computations (40% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New134
Fresh011
Picked000
Done000
Total145
Error
0.1b
Counts
5 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 (*.f64 x 3) y) y)
13.1b
(*.f64 (*.f64 x 3) (*.f64 y y))
13.2b
(*.f64 x (*.f64 y (*.f64 3 y)))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 12 computations (40% saved)

series3.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite98.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
1068×rational_best-simplify-44
1006×rational_best-simplify-57
668×rational_best-simplify-80
518×rational_best-simplify-43
508×rational_best-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
17232
224832
3104232
4511632
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 y (*.f64 3 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (*.f64 3 (*.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (*.f64 x y) 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 (*.f64 x y) 6))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y 3)) (/.f64 (*.f64 y (*.f64 y 3)) (*.f64 y (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 y 6))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 y 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (*.f64 y 3))))))))

simplify138.0ms (3.8%)

Algorithm
egg-herbie
Rules
1864×rational_best-simplify-80
1720×rational_best-simplify-78
1018×rational_best-simplify-132
976×rational_best-simplify-44
808×rational_best-simplify-76
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050932
198932
2202932
3552932
42862932
55703932
Stop Event
node limit
Counts
56 → 27
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(+.f64 0 (*.f64 3 (*.f64 y (*.f64 x y))))
(-.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (*.f64 3 (*.f64 y (*.f64 x y)))))
(/.f64 (*.f64 y (*.f64 (*.f64 x y) 6)) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 (*.f64 x y) 6))) -2)
(pow.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(+.f64 (*.f64 y (*.f64 y 3)) 0)
(+.f64 0 (*.f64 y (*.f64 y 3)))
(-.f64 (*.f64 y (*.f64 y 3)) 0)
(-.f64 0 (neg.f64 (*.f64 y (*.f64 y 3))))
(/.f64 (*.f64 y (*.f64 y 3)) 1)
(/.f64 (*.f64 y (*.f64 y 3)) (/.f64 (*.f64 y (*.f64 y 3)) (*.f64 y (*.f64 y 3))))
(/.f64 (*.f64 y (*.f64 y 6)) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 y 6))) -2)
(pow.f64 (*.f64 y (*.f64 y 3)) 1)
(neg.f64 (neg.f64 (*.f64 y (*.f64 y 3))))
Outputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(+.f64 0 (*.f64 3 (*.f64 y (*.f64 x y))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(-.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (*.f64 3 (*.f64 y (*.f64 x y)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (*.f64 y (*.f64 (*.f64 x y) 6)) 2)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (neg.f64 (*.f64 y (*.f64 (*.f64 x y) 6))) -2)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(pow.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(+.f64 (*.f64 y (*.f64 y 3)) 0)
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(+.f64 0 (*.f64 y (*.f64 y 3)))
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(-.f64 (*.f64 y (*.f64 y 3)) 0)
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(-.f64 0 (neg.f64 (*.f64 y (*.f64 y 3))))
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(/.f64 (*.f64 y (*.f64 y 3)) 1)
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(/.f64 (*.f64 y (*.f64 y 3)) (/.f64 (*.f64 y (*.f64 y 3)) (*.f64 y (*.f64 y 3))))
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(/.f64 (*.f64 y (*.f64 y 6)) 2)
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(/.f64 (neg.f64 (*.f64 y (*.f64 y 6))) -2)
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(pow.f64 (*.f64 y (*.f64 y 3)) 1)
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))
(neg.f64 (neg.f64 (*.f64 y (*.f64 y 3))))
(*.f64 y (*.f64 3 y))
(*.f64 3 (*.f64 y y))

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 9 computations (50% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite203.0ms (5.6%)

Algorithm
batch-egg-rewrite
Rules
1050×rational_best-simplify-57
1018×rational_best-simplify-54
1012×rational_best-simplify-44
546×rational_best-5
544×rational_best-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
17119
224319
3106819
4647619
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 (*.f64 x 3) (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (*.f64 y y) 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))))))

simplify223.0ms (6.2%)

Algorithm
egg-herbie
Rules
1976×rational_best-simplify-80
1830×rational_best-simplify-78
1622×rational_best-simplify-47
656×rational_best-simplify-132
646×rational_best-simplify-82
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029627
156627
2119627
3323627
41806627
54687627
67171627
Stop Event
node limit
Counts
33 → 13
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(+.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))
(-.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))
(/.f64 (*.f64 x (*.f64 (*.f64 y y) 6)) 2)
(pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
Outputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(+.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(-.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 (*.f64 y y) 6)) 2)
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 x (*.f64 y (*.f64 3 y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 12 computations (40% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite94.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
896×rational_best-simplify-57
830×rational_best-simplify-44
828×rational_best-simplify-82
608×rational_best-simplify-80
488×rational_best-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
16832
222332
395432
4452832
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 (*.f64 x 3) y)
(*.f64 (*.f64 (*.f64 x 3) y) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (*.f64 3 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 y)) (/.f64 (*.f64 x (*.f64 y 6)) (*.f64 x (*.f64 y 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x (*.f64 y 6))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (*.f64 3 y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 y (*.f64 y 6))) (*.f64 x (*.f64 y (*.f64 y 6)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (*.f64 y 6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x (*.f64 y (*.f64 y 6)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))))))

simplify163.0ms (4.5%)

Algorithm
egg-herbie
Rules
1662×rational_best-simplify-80
1238×rational_best-simplify-82
1224×rational_best-simplify-74
918×rational_best-simplify-44
862×rational_best-simplify-78
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511088
11021088
21941088
34621088
418621088
526851088
641301088
772701088
Stop Event
node limit
Counts
68 → 29
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 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 x (*.f64 3 y)) 0)
(+.f64 0 (*.f64 x (*.f64 3 y)))
(-.f64 (*.f64 x (*.f64 3 y)) 0)
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 y))))
(/.f64 (*.f64 x (*.f64 3 y)) 1)
(/.f64 (*.f64 x (*.f64 3 y)) (/.f64 (*.f64 x (*.f64 y 6)) (*.f64 x (*.f64 y 6))))
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(/.f64 (neg.f64 (*.f64 x (*.f64 y 6))) -2)
(pow.f64 (*.f64 x (*.f64 3 y)) 1)
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 y))))
(+.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(+.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))
(-.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 y (*.f64 y 6))) (*.f64 x (*.f64 y (*.f64 y 6)))))
(/.f64 (*.f64 x (*.f64 y (*.f64 y 6))) 2)
(/.f64 (neg.f64 (*.f64 x (*.f64 y (*.f64 y 6)))) -2)
(pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
Outputs
(*.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 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 x (pow.f64 y 2)))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 x (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x (*.f64 3 y)) 0)
(*.f64 3 (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 3 y)))
(*.f64 3 (*.f64 y x))
(-.f64 (*.f64 x (*.f64 3 y)) 0)
(*.f64 3 (*.f64 y x))
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 y))))
(*.f64 3 (*.f64 y x))
(/.f64 (*.f64 x (*.f64 3 y)) 1)
(*.f64 3 (*.f64 y x))
(/.f64 (*.f64 x (*.f64 3 y)) (/.f64 (*.f64 x (*.f64 y 6)) (*.f64 x (*.f64 y 6))))
(*.f64 3 (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(*.f64 3 (*.f64 y x))
(/.f64 (neg.f64 (*.f64 x (*.f64 y 6))) -2)
(*.f64 3 (*.f64 y x))
(pow.f64 (*.f64 x (*.f64 3 y)) 1)
(*.f64 3 (*.f64 y x))
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 y))))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(+.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(-.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 y (*.f64 y 6))) (*.f64 x (*.f64 y (*.f64 y 6)))))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 y (*.f64 y 6))) 2)
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (neg.f64 (*.f64 x (*.f64 y (*.f64 y 6)))) -2)
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(*.f64 y (*.f64 3 (*.f64 y x)))

eval32.0ms (0.9%)

Compiler

Compiled 654 to 379 computations (42% saved)

prune9.0ms (0.3%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New65469
Fresh000
Picked011
Done022
Total65772
Error
0.0b
Counts
72 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 (*.f64 x 3) y) y)
13.1b
(*.f64 (*.f64 x 3) (*.f64 y y))
0.3b
(*.f64 (*.f64 3 (*.f64 y x)) y)
13.2b
(*.f64 x (*.f64 y (*.f64 3 y)))
13.1b
(*.f64 x (*.f64 3 (*.f64 y y)))
0.3b
(*.f64 3 (*.f64 y (*.f64 y x)))
13.2b
(*.f64 3 (*.f64 x (*.f64 y y)))
Compiler

Compiled 63 to 42 computations (33.3% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 7 computations (65% saved)

series1.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite164.0ms (4.5%)

Algorithm
batch-egg-rewrite
Rules
932×rational_best-simplify-57
670×rational_best-simplify-54
550×rational_best-simplify-43
546×rational_best-5
544×rational_best-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
17332
225632
3109832
4547032
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 x (*.f64 y y))
(*.f64 3 (*.f64 x (*.f64 y y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y y)) (/.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 y (+.f64 x x)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (*.f64 y y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 x (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (*.f64 x (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (*.f64 y 3))) (/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) (*.f64 y (*.f64 x (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (*.f64 x (*.f64 y 3)))))))))

simplify150.0ms (4.2%)

Algorithm
egg-herbie
Rules
1154×rational_best-simplify-83
1150×rational_best-simplify-82
1090×rational_best-simplify-132
956×rational_best-simplify-80
932×rational_best-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511088
11021088
22111088
35621088
429341088
559471088
Stop Event
node limit
Counts
68 → 30
Calls
Call 1
Inputs
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 x (*.f64 y y)) 0)
(+.f64 0 (*.f64 x (*.f64 y y)))
(-.f64 (*.f64 x (*.f64 y y)) 0)
(-.f64 0 (neg.f64 (*.f64 x (*.f64 y y))))
(/.f64 (*.f64 x (*.f64 y y)) 1)
(/.f64 (*.f64 x (*.f64 y y)) (/.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))))
(/.f64 (*.f64 y (*.f64 y (+.f64 x x))) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 y (+.f64 x x)))) -2)
(pow.f64 (*.f64 x (*.f64 y y)) 1)
(neg.f64 (neg.f64 (*.f64 x (*.f64 y y))))
(+.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 0)
(+.f64 0 (*.f64 y (*.f64 x (*.f64 y 3))))
(-.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 0)
(-.f64 0 (neg.f64 (*.f64 y (*.f64 x (*.f64 y 3)))))
(/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 1)
(/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) (/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) (*.f64 y (*.f64 x (*.f64 y 3)))))
(/.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)
(pow.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 1)
(neg.f64 (neg.f64 (*.f64 y (*.f64 x (*.f64 y 3)))))
Outputs
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) (*.f64 3 x))
(*.f64 (pow.f64 y 2) (*.f64 x 3))
(+.f64 (*.f64 x (*.f64 y y)) 0)
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 y y)))
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(-.f64 (*.f64 x (*.f64 y y)) 0)
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(-.f64 0 (neg.f64 (*.f64 x (*.f64 y y))))
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y y)) 1)
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y y)) (/.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))))
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(/.f64 (*.f64 y (*.f64 y (+.f64 x x))) 2)
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(/.f64 (neg.f64 (*.f64 y (*.f64 y (+.f64 x x)))) -2)
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 x (*.f64 y y)) 1)
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(neg.f64 (neg.f64 (*.f64 x (*.f64 y y))))
(*.f64 y (*.f64 x y))
(*.f64 y (*.f64 y x))
(+.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 0)
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(+.f64 0 (*.f64 y (*.f64 x (*.f64 y 3))))
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(-.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 0)
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(-.f64 0 (neg.f64 (*.f64 y (*.f64 x (*.f64 y 3)))))
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 1)
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) (/.f64 (*.f64 y (*.f64 x (*.f64 y 3))) (*.f64 y (*.f64 x (*.f64 y 3)))))
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(/.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(/.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(pow.f64 (*.f64 y (*.f64 x (*.f64 y 3))) 1)
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))
(neg.f64 (neg.f64 (*.f64 y (*.f64 x (*.f64 y 3)))))
(*.f64 y (*.f64 y (*.f64 x 3)))
(*.f64 (*.f64 y 3) (*.f64 y x))
(*.f64 y (*.f64 x (*.f64 y 3)))
(*.f64 3 (*.f64 y (*.f64 y x)))

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 7 computations (65% saved)

series1.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite90.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
912×rational_best-simplify-44
896×rational_best-simplify-57
868×rational_best-simplify-82
608×rational_best-simplify-80
496×rational_best-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
17032
223532
398932
4468132
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y x) (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 y x) (*.f64 y 6))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y x)) (/.f64 (*.f64 y (*.f64 y x)) (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 y y) (+.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (*.f64 y x))))))))

simplify156.0ms (4.3%)

Algorithm
egg-herbie
Rules
1168×rational_best-simplify-82
1142×rational_best-simplify-132
1124×rational_best-simplify-44
970×rational_best-simplify-80
898×rational_best-simplify-78
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0491088
1961088
22041088
35851088
431471088
563061088
Stop Event
node limit
Counts
68 → 27
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(+.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))
(-.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))
(/.f64 (*.f64 (*.f64 y x) (*.f64 y 6)) 2)
(/.f64 (neg.f64 (*.f64 (*.f64 y x) (*.f64 y 6))) -2)
(pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(+.f64 (*.f64 y (*.f64 y x)) 0)
(+.f64 0 (*.f64 y (*.f64 y x)))
(-.f64 (*.f64 y (*.f64 y x)) 0)
(-.f64 0 (neg.f64 (*.f64 y (*.f64 y x))))
(/.f64 (*.f64 y (*.f64 y x)) 1)
(/.f64 (*.f64 y (*.f64 y x)) (/.f64 (*.f64 y (*.f64 y x)) (*.f64 y (*.f64 y x))))
(/.f64 (*.f64 (*.f64 y y) (+.f64 x x)) 2)
(/.f64 (neg.f64 (*.f64 (*.f64 y y) (+.f64 x x))) -2)
(pow.f64 (*.f64 y (*.f64 y x)) 1)
(neg.f64 (neg.f64 (*.f64 y (*.f64 y x))))
Outputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(+.f64 0 (*.f64 x (*.f64 3 (*.f64 y y))))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(-.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 0)
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(-.f64 0 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (*.f64 (*.f64 y x) (*.f64 y 6)) 2)
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(/.f64 (neg.f64 (*.f64 (*.f64 y x) (*.f64 y 6))) -2)
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(pow.f64 (*.f64 x (*.f64 3 (*.f64 y y))) 1)
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(neg.f64 (neg.f64 (*.f64 x (*.f64 3 (*.f64 y y)))))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 y (*.f64 x (*.f64 3 y)))
(*.f64 (*.f64 y y) (*.f64 3 x))
(*.f64 y (*.f64 3 (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 y x)) 0)
(*.f64 y (*.f64 y x))
(+.f64 0 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 y x))
(-.f64 (*.f64 y (*.f64 y x)) 0)
(*.f64 y (*.f64 y x))
(-.f64 0 (neg.f64 (*.f64 y (*.f64 y x))))
(*.f64 y (*.f64 y x))
(/.f64 (*.f64 y (*.f64 y x)) 1)
(*.f64 y (*.f64 y x))
(/.f64 (*.f64 y (*.f64 y x)) (/.f64 (*.f64 y (*.f64 y x)) (*.f64 y (*.f64 y x))))
(*.f64 y (*.f64 y x))
(/.f64 (*.f64 (*.f64 y y) (+.f64 x x)) 2)
(*.f64 y (*.f64 y x))
(/.f64 (neg.f64 (*.f64 (*.f64 y y) (+.f64 x x))) -2)
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 y (*.f64 y x)) 1)
(*.f64 y (*.f64 y x))
(neg.f64 (neg.f64 (*.f64 y (*.f64 y x))))
(*.f64 y (*.f64 y x))

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 9 computations (55% saved)

series1.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite102.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
1064×rational_best-simplify-44
1046×rational_best-simplify-57
520×rational_best-5
518×rational_best-4
518×rational_best-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
17332
225832
3108732
4568832
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 3 (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (*.f64 3 (*.f64 y (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y y)) (/.f64 (*.f64 3 (*.f64 y y)) (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 y 6))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 3 (*.f64 y y))))))))

simplify146.0ms (4.1%)

Algorithm
egg-herbie
Rules
1918×rational_best-simplify-80
1770×rational_best-simplify-78
1044×rational_best-simplify-132
1030×rational_best-simplify-44
832×rational_best-simplify-76
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051932
1101932
2207932
3573932
42977932
55891932
Stop Event
node limit
Counts
56 → 26
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(+.f64 0 (*.f64 3 (*.f64 y (*.f64 x y))))
(-.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (*.f64 3 (*.f64 y (*.f64 x y)))))
(/.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)
(pow.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(+.f64 (*.f64 3 (*.f64 y y)) 0)
(+.f64 0 (*.f64 3 (*.f64 y y)))
(-.f64 (*.f64 3 (*.f64 y y)) 0)
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y y))))
(/.f64 (*.f64 3 (*.f64 y y)) 1)
(/.f64 (*.f64 3 (*.f64 y y)) (/.f64 (*.f64 3 (*.f64 y y)) (*.f64 3 (*.f64 y y))))
(/.f64 (*.f64 y (*.f64 y 6)) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 y 6))) -2)
(pow.f64 (*.f64 3 (*.f64 y y)) 1)
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y y))))
Outputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(+.f64 0 (*.f64 3 (*.f64 y (*.f64 x y))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(-.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 0)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (/.f64 (*.f64 3 (*.f64 y (*.f64 x y))) (*.f64 3 (*.f64 y (*.f64 x y)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(/.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(pow.f64 (*.f64 3 (*.f64 y (*.f64 x y))) 1)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 x y)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 y (*.f64 3 (*.f64 y x)))
(*.f64 y (*.f64 y (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y y)) 0)
(*.f64 3 (*.f64 y y))
(+.f64 0 (*.f64 3 (*.f64 y y)))
(*.f64 3 (*.f64 y y))
(-.f64 (*.f64 3 (*.f64 y y)) 0)
(*.f64 3 (*.f64 y y))
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y y))))
(*.f64 3 (*.f64 y y))
(/.f64 (*.f64 3 (*.f64 y y)) 1)
(*.f64 3 (*.f64 y y))
(/.f64 (*.f64 3 (*.f64 y y)) (/.f64 (*.f64 3 (*.f64 y y)) (*.f64 3 (*.f64 y y))))
(*.f64 3 (*.f64 y y))
(/.f64 (*.f64 y (*.f64 y 6)) 2)
(*.f64 3 (*.f64 y y))
(/.f64 (neg.f64 (*.f64 y (*.f64 y 6))) -2)
(*.f64 3 (*.f64 y y))
(pow.f64 (*.f64 3 (*.f64 y y)) 1)
(*.f64 3 (*.f64 y y))
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y y))))
(*.f64 3 (*.f64 y y))

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 9 computations (55% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

12 calls:

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

rewrite182.0ms (5.1%)

Algorithm
batch-egg-rewrite
Rules
948×rational_best-simplify-44
938×rational_best-simplify-57
872×rational_best-simplify-82
596×rational_best-simplify-80
504×rational_best-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
17032
223532
3100632
4474232
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
(*.f64 (*.f64 3 (*.f64 y x)) y)
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 0 (neg.f64 (*.f64 3 (*.f64 y x))))))) (#(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 (*.f64 y x) 12) (*.f64 (*.f64 y x) 12)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 x 6))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 3 (*.f64 y x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (*.f64 y x))) (/.f64 (*.f64 y (*.f64 (*.f64 y x) 12)) (*.f64 y (*.f64 (*.f64 y x) 12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 y x)))))))))

simplify133.0ms (3.7%)

Algorithm
egg-herbie
Rules
1918×rational_best-simplify-82
1536×rational_best-simplify-83
1390×rational_best-simplify-47
1316×rational_best-simplify-2
1122×rational_best-simplify-80
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050860
198860
2196860
3457860
41494860
53283860
64408860
75787860
Stop Event
node limit
Counts
44 → 36
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(+.f64 0 (*.f64 3 (*.f64 y x)))
(-.f64 (*.f64 3 (*.f64 y x)) 0)
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y x))))
(/.f64 (*.f64 3 (*.f64 y x)) 1)
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 (*.f64 y x) 12) (*.f64 (*.f64 y x) 12)))
(/.f64 (*.f64 y (*.f64 x 6)) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 x 6))) -2)
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y x))))
(+.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 0)
(+.f64 0 (*.f64 3 (*.f64 y (*.f64 y x))))
(-.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 0)
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 y x)))))
(/.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 1)
(/.f64 (*.f64 3 (*.f64 y (*.f64 y x))) (/.f64 (*.f64 y (*.f64 (*.f64 y x) 12)) (*.f64 y (*.f64 (*.f64 y x) 12))))
(/.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)
(/.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)
(pow.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 1)
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 y x)))))
Outputs
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(*.f64 3 (*.f64 (pow.f64 y 2) x))
(+.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 0 (neg.f64 (*.f64 3 (*.f64 y x))))
(*.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 (*.f64 y x) 12) (*.f64 (*.f64 y x) 12)))
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 x (*.f64 y 12)) (*.f64 x (*.f64 y 12))))
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 y (*.f64 x 12)) (*.f64 y (*.f64 x 12))))
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 x (*.f64 y 48)) (*.f64 x (*.f64 y 48))))
(/.f64 (*.f64 3 (*.f64 y x)) (/.f64 (*.f64 y (*.f64 x 24)) (*.f64 y (*.f64 x 24))))
(/.f64 (*.f64 y (*.f64 x 6)) 2)
(*.f64 3 (*.f64 y x))
(/.f64 (neg.f64 (*.f64 y (*.f64 x 6))) -2)
(*.f64 3 (*.f64 y x))
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
(*.f64 3 (*.f64 y x))
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y x))))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 0)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(+.f64 0 (*.f64 3 (*.f64 y (*.f64 y x))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(-.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 0)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(-.f64 0 (neg.f64 (*.f64 3 (*.f64 y (*.f64 y x)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(/.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 1)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(/.f64 (*.f64 3 (*.f64 y (*.f64 y x))) (/.f64 (*.f64 y (*.f64 (*.f64 y x) 12)) (*.f64 y (*.f64 (*.f64 y x) 12))))
(/.f64 (*.f64 3 (*.f64 y (*.f64 y x))) (/.f64 (*.f64 (*.f64 y x) (*.f64 y 12)) (*.f64 (*.f64 y x) (*.f64 y 12))))
(/.f64 (*.f64 3 (*.f64 x (*.f64 y y))) (/.f64 (*.f64 y (*.f64 x (*.f64 y 12))) (*.f64 y (*.f64 x (*.f64 y 12)))))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 y (*.f64 y (*.f64 x 12))) (*.f64 y (*.f64 y (*.f64 x 12)))))
(/.f64 (*.f64 (*.f64 y x) (*.f64 3 y)) (/.f64 (*.f64 x (*.f64 y (*.f64 y 12))) (*.f64 x (*.f64 y (*.f64 y 12)))))
(/.f64 (*.f64 3 (*.f64 x (*.f64 y y))) (/.f64 (*.f64 x (*.f64 y (*.f64 y 12))) (*.f64 x (*.f64 y (*.f64 y 12)))))
(/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (/.f64 (*.f64 x (*.f64 3 (*.f64 y y))) (*.f64 x (*.f64 3 (*.f64 y y)))))
(/.f64 (*.f64 y (*.f64 y (*.f64 x 6))) 2)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(/.f64 (neg.f64 (*.f64 y (*.f64 y (*.f64 x 6)))) -2)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(pow.f64 (*.f64 3 (*.f64 y (*.f64 y x))) 1)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))
(neg.f64 (neg.f64 (*.f64 3 (*.f64 y (*.f64 y x)))))
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 3 (*.f64 y y)))
(*.f64 (*.f64 y x) (*.f64 3 y))

eval219.0ms (6.1%)

Compiler

Compiled 1259 to 657 computations (47.8% saved)

prune17.0ms (0.5%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New1190119
Fresh000
Picked011
Done066
Total1197126
Error
0.0b
Counts
126 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 (*.f64 x 3) y) y)
13.1b
(*.f64 (*.f64 x 3) (*.f64 y y))
0.3b
(*.f64 (*.f64 3 (*.f64 y x)) y)
13.2b
(*.f64 x (*.f64 y (*.f64 3 y)))
13.1b
(*.f64 x (*.f64 3 (*.f64 y y)))
0.3b
(*.f64 3 (*.f64 y (*.f64 y x)))
13.2b
(*.f64 3 (*.f64 x (*.f64 y y)))
Compiler

Compiled 63 to 42 computations (33.3% saved)

regimes21.0ms (0.6%)

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

4 calls:

6.0ms
(*.f64 x 3)
5.0ms
y
5.0ms
x
4.0ms
(*.f64 (*.f64 (*.f64 x 3) y) y)
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1(*.f64 (*.f64 (*.f64 x 3) y) y)
0.2b1(*.f64 x 3)
Compiler

Compiled 71 to 41 computations (42.3% saved)

regimes15.0ms (0.4%)

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

3 calls:

5.0ms
(*.f64 x 3)
4.0ms
y
4.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
0.3b1(*.f64 x 3)
Compiler

Compiled 55 to 31 computations (43.6% saved)

regimes9.0ms (0.2%)

Accuracy

Total -13.0b remaining (-4238.2%)

Threshold costs -13.0b (-4238.2%)

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

2 calls:

4.0ms
y
3.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 36 to 21 computations (41.7% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01676
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x 3) y) y)
(*.f64 (*.f64 3 (*.f64 y x)) y)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
Outputs
(*.f64 (*.f64 (*.f64 x 3) y) y)
(*.f64 (*.f64 3 (*.f64 y x)) y)
(*.f64 3 (*.f64 y (*.f64 y x)))
(*.f64 3 (*.f64 x (*.f64 y y)))
Compiler

Compiled 36 to 24 computations (33.3% saved)

soundness0.0ms (0%)

end146.0ms (4%)

Compiler

Compiled 30 to 17 computations (43.3% saved)

Profiling

Loading profile data...