Details

Time bar (total: 17.6s)

analyze782.0ms (4.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.7%0.3%0%0%0%0
0%0%99.7%0.3%0%0%0%1
0%0%99.7%0.3%0%0%0%2
0%0%99.7%0.3%0%0%0%3
0%0%99.7%0.3%0%0%0%4
0%0%99.7%0.3%0%0%0%5
0%0%99.7%0.3%0%0%0%6
0%0%99.7%0.3%0%0%0%7
0%0%99.7%0.3%0%0%0%8
0%0%99.7%0.3%0%0%0%9
0%0%99.7%0.3%0%0%0%10
0%0%99.7%0.3%0%0%0%11
0%0%99.7%0.3%0%0%0%12
Compiler

Compiled 22 to 14 computations (36.4% saved)

sample3.9s (22%)

Results
2.4s3961×body256infinite
1.5s8256×body256valid
Bogosity

preprocess31.0ms (0.2%)

Algorithm
egg-herbie
Rules
818×rational.json-simplify-1
574×rational.json-simplify-41
142×rational.json-simplify-2
76×rational.json-simplify-51
40×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087688
1167688
2304646
3494592
4782592
51030592
61048592
066
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
3
4
5
Outputs
0
1
2
3
4
5
Call 2
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
Outputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 x (+.f64 (*.f64 y z) (*.f64 t a))) (*.f64 a (*.f64 z b)))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (+.f64 (*.f64 y z) (*.f64 a (+.f64 t (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 (*.f64 z a) b) (+.f64 (*.f64 t a) (+.f64 y (*.f64 x z))))
(+.f64 (*.f64 t a) (+.f64 (+.f64 y (*.f64 x z)) (*.f64 a (*.f64 z b))))
(+.f64 (+.f64 y (*.f64 x z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 x z) (+.f64 y (*.f64 a (+.f64 t (*.f64 z b)))))
(+.f64 y (+.f64 (*.f64 z (+.f64 x (*.f64 a b))) (*.f64 t a)))
(+.f64 (*.f64 t a) (+.f64 y (*.f64 z (+.f64 x (*.f64 a b)))))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 (*.f64 t a) (+.f64 z (*.f64 x y))) (*.f64 b (*.f64 x a)))
(+.f64 (+.f64 z (*.f64 x y)) (+.f64 (*.f64 t a) (*.f64 b (*.f64 x a))))
(+.f64 (+.f64 z (*.f64 x y)) (*.f64 a (+.f64 (*.f64 x b) t)))
(+.f64 (+.f64 z (*.f64 x y)) (*.f64 a (+.f64 t (*.f64 x b))))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 (*.f64 z a) b) (+.f64 (+.f64 (*.f64 y z) t) (*.f64 x a)))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 (*.f64 y z) (+.f64 t (*.f64 x a))))
(+.f64 (+.f64 (*.f64 y z) t) (*.f64 a (+.f64 x (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 a (+.f64 x (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (+.f64 (*.f64 y z) a) (*.f64 x t)) (*.f64 b (*.f64 x z)))
(+.f64 (+.f64 (*.f64 y z) a) (+.f64 (*.f64 x t) (*.f64 x (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (+.f64 a (*.f64 x t)) (*.f64 x (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 a (*.f64 x (+.f64 t (*.f64 z b)))))
(+.f64 (+.f64 a (*.f64 x t)) (*.f64 z (+.f64 (*.f64 x b) y)))
(+.f64 (+.f64 a (*.f64 x t)) (*.f64 z (+.f64 y (*.f64 x b))))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 (*.f64 t a) (+.f64 (*.f64 y z) b)) (*.f64 x (*.f64 z a)))
(+.f64 (+.f64 (*.f64 y z) b) (+.f64 (*.f64 t a) (*.f64 a (*.f64 x z))))
(+.f64 b (+.f64 (+.f64 (*.f64 y z) (*.f64 t a)) (*.f64 a (*.f64 x z))))
(+.f64 b (+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 x z) t))))
(+.f64 b (+.f64 (*.f64 y z) (*.f64 a (+.f64 t (*.f64 x z)))))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 b (*.f64 y a)))
(+.f64 (*.f64 t a) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b (*.f64 y a))))
(+.f64 x (+.f64 (+.f64 (*.f64 y z) (*.f64 t a)) (*.f64 b (*.f64 y a))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 y b) t)))
(+.f64 (+.f64 x (*.f64 t a)) (*.f64 y (+.f64 (*.f64 a b) z)))
(+.f64 (+.f64 x (*.f64 t a)) (*.f64 y (+.f64 z (*.f64 a b))))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 (*.f64 z a) b) (+.f64 (+.f64 x (*.f64 z t)) (*.f64 y a)))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y a) (*.f64 z t))))
(+.f64 (+.f64 x (*.f64 z t)) (*.f64 a (+.f64 (*.f64 z b) y)))
(+.f64 x (+.f64 (*.f64 y a) (*.f64 z (+.f64 t (*.f64 a b)))))
(+.f64 x (+.f64 (*.f64 z t) (*.f64 a (+.f64 y (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 z a)) (*.f64 y t)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 x (*.f64 z a)) (+.f64 (*.f64 y t) (*.f64 (*.f64 y z) b)))
(+.f64 x (+.f64 (+.f64 (*.f64 z a) (*.f64 y t)) (*.f64 (*.f64 y z) b)))
(+.f64 x (+.f64 (*.f64 z a) (*.f64 y (+.f64 t (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 (*.f64 t a) (+.f64 x (*.f64 z b))) (*.f64 y (*.f64 z a)))
(+.f64 (+.f64 (*.f64 z b) (+.f64 x (*.f64 t a))) (*.f64 z (*.f64 y a)))
(+.f64 x (+.f64 (*.f64 z b) (*.f64 a (+.f64 (*.f64 y z) t))))
(+.f64 (+.f64 x (*.f64 z b)) (*.f64 a (+.f64 (*.f64 y z) t)))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 (*.f64 z a) (+.f64 x (*.f64 y t))) (*.f64 (*.f64 t a) b))
(+.f64 (*.f64 z a) (+.f64 (+.f64 x (*.f64 y t)) (*.f64 (*.f64 t a) b)))
(+.f64 (+.f64 x (*.f64 z a)) (+.f64 (*.f64 y t) (*.f64 (*.f64 t a) b)))
(+.f64 x (+.f64 (*.f64 y t) (*.f64 a (+.f64 (*.f64 t b) z))))
(+.f64 x (+.f64 (*.f64 z a) (*.f64 t (+.f64 y (*.f64 a b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 (*.f64 z a) b) (+.f64 (+.f64 x (*.f64 z t)) (*.f64 y a)))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y a) (*.f64 z t))))
(+.f64 (+.f64 x (*.f64 z t)) (*.f64 a (+.f64 (*.f64 z b) y)))
(+.f64 x (+.f64 (*.f64 y a) (*.f64 z (+.f64 t (*.f64 a b)))))
(+.f64 x (+.f64 (*.f64 z t) (*.f64 a (+.f64 y (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (+.f64 (*.f64 t a) (+.f64 x (*.f64 y b))) (*.f64 z (*.f64 a b)))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 (*.f64 y b) (+.f64 x (*.f64 t a))))
(+.f64 (+.f64 x (*.f64 y b)) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (+.f64 x (*.f64 y b)) (*.f64 a (+.f64 t (*.f64 z b))))
(+.f64 x (+.f64 (*.f64 t a) (*.f64 b (+.f64 (*.f64 z a) y))))
(+.f64 x (+.f64 (*.f64 y b) (*.f64 a (+.f64 t (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 b (*.f64 z t)))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 z (*.f64 t b))))
(+.f64 x (+.f64 (+.f64 (*.f64 y z) (*.f64 t a)) (*.f64 z (*.f64 t b))))
(+.f64 x (+.f64 (*.f64 y z) (*.f64 t (+.f64 (*.f64 z b) a))))
(+.f64 x (+.f64 (*.f64 y z) (*.f64 t (+.f64 a (*.f64 z b)))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a b)) (*.f64 t (*.f64 z a)))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 a b) (*.f64 a (*.f64 z t))))
(+.f64 (*.f64 y z) (+.f64 (+.f64 x (*.f64 a b)) (*.f64 a (*.f64 z t))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z t) b)))
(+.f64 x (+.f64 (*.f64 z (+.f64 y (*.f64 t a))) (*.f64 a b)))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 b (*.f64 z t))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 a (*.f64 z b)))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t b) (*.f64 a (*.f64 z b))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 b (+.f64 (*.f64 z a) t)))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 b (+.f64 t (*.f64 z a))))
Compiler

Compiled 27 to 19 computations (29.6% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
64×rational.json-simplify-1
40×rational.json-simplify-41
20×rational.json-simplify-2
rational.json-simplify-51
rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01543
12243
23443
35037
47237
59237
69537
Stop Event
saturated
Counts
1 → 6
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Outputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(+.f64 x (+.f64 (+.f64 (*.f64 y z) (*.f64 t a)) (*.f64 a (*.f64 z b))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 t (*.f64 z b))))

eval2.0ms (0%)

Compiler

Compiled 92 to 29 computations (68.5% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New426
Fresh101
Picked000
Done000
Total527
Error
0.0b
Counts
7 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
3.0b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 z a) b))
2.8b
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
Compiler

Compiled 40 to 25 computations (37.5% saved)

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
2.7b
(*.f64 a (+.f64 (*.f64 z b) t))
Compiler

Compiled 48 to 12 computations (75% saved)

series10.0ms (0.1%)

Counts
2 → 116
Calls

30 calls:

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

rewrite100.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1712×bool.json-1
1712×bool.json-2
1688×rational.json-1
1122×bool.json-3
1032×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01456
113756
233756
371556
4157756
5342256
6636956
Stop Event
node limit
Counts
2 → 31
Calls
Call 1
Inputs
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (+.f64 (*.f64 z b) t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)) (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8)) (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 a (+.f64 (*.f64 z b) t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 a (+.f64 (*.f64 z b) t)) (*.f64 a (+.f64 (*.f64 z b) t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (+.f64 (*.f64 z b) t)) (*.f64 a (+.f64 (*.f64 z b) t)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x (*.f64 z y)) 1/2) (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)) (*.f64 (+.f64 x (*.f64 z y)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x (*.f64 z y)) 2) (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2)) (*.f64 (+.f64 x (*.f64 z y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))))))))

simplify505.0ms (2.9%)

Algorithm
egg-herbie
Rules
5026×rational.json-simplify-51
2160×rational.json-simplify-35
1530×rational.json-simplify-2
1310×rational.json-simplify-1
1166×rational.json-simplify-45
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01143993
12443993
25523987
314143987
423853987
528233987
631693987
733353987
834703987
936003987
1037593987
1139973987
1244233987
1350243987
1454703987
1555903987
1656973987
1757153987
1857173987
1959493987
Stop Event
node limit
Counts
147 → 72
Calls
Call 1
Inputs
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 0)
(+.f64 0 (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)) (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)))
(-.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 0)
(/.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 1)
(/.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2)) 2)
(/.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 4)) 4)
(/.f64 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8)) (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8))) 32)
(-.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 0)
(*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1)
(*.f64 1 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))))
(*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1/2))
(*.f64 2 (+.f64 (*.f64 (+.f64 x (*.f64 z y)) 1/2) (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)) (*.f64 (+.f64 x (*.f64 z y)) 1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x (*.f64 z y)) 2) (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2))))
(*.f64 1/2 (+.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2)) (*.f64 (+.f64 x (*.f64 z y)) 2)))
(*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 4)
(/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8))) 32)
Outputs
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 z y) (*.f64 a (+.f64 t (*.f64 b z))))
(+.f64 (*.f64 t a) (*.f64 z (+.f64 y (*.f64 b a))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 x (*.f64 a (+.f64 t (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 y (*.f64 b a)))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (+.f64 y (*.f64 b a)))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 t a) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 t a) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 b (*.f64 z a)) (+.f64 (*.f64 z y) x))
(+.f64 x (*.f64 z (+.f64 y (*.f64 b a))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 0)
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 0 (*.f64 a (+.f64 (*.f64 z b) t)))
(*.f64 a (+.f64 t (*.f64 b z)))
(+.f64 (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)) (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)))
(*.f64 a (+.f64 t (*.f64 b z)))
(-.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 0)
(*.f64 a (+.f64 t (*.f64 b z)))
(/.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 1)
(*.f64 a (+.f64 t (*.f64 b z)))
(/.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2)) 2)
(*.f64 a (+.f64 t (*.f64 b z)))
(/.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 4)) 4)
(*.f64 a (+.f64 t (*.f64 b z)))
(/.f64 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8) 8)
(*.f64 a (+.f64 t (*.f64 b z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8)) 16)
(*.f64 a (+.f64 t (*.f64 b z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8)) (*.f64 2 (*.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 8))) 32)
(*.f64 a (+.f64 t (*.f64 b z)))
(-.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 0)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 1 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1/2))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 2 (+.f64 (*.f64 (+.f64 x (*.f64 z y)) 1/2) (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2))))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 z b) t) (*.f64 a 1/2)) (*.f64 (+.f64 x (*.f64 z y)) 1/2)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2) 1/2)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 4 (/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 1/4)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x (*.f64 z y)) 2) (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2))))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 1/2 (+.f64 (*.f64 a (*.f64 (+.f64 (*.f64 z b) t) 2)) (*.f64 (+.f64 x (*.f64 z y)) 2)))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1/2) 2)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4))
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(*.f64 (/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 4)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(/.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 1)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(/.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 2) 2)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(/.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 4) 4)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(/.f64 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8) 8)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8)) 16)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) (+.f64 x (*.f64 z y))) 8))) 32)
(+.f64 (*.f64 z y) (+.f64 x (*.f64 a (+.f64 t (*.f64 b z)))))
(+.f64 (*.f64 a (+.f64 t (*.f64 b z))) (+.f64 (*.f64 z y) x))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
5.3b
(*.f64 (*.f64 z a) b)
Compiler

Compiled 55 to 13 computations (76.4% saved)

series6.0ms (0%)

Counts
2 → 96
Calls

24 calls:

TimeVariablePointExpression
1.0ms
z
@inf
(*.f64 (*.f64 z a) b)
0.0ms
b
@inf
(*.f64 (*.f64 z a) b)
0.0ms
z
@0
(*.f64 (*.f64 z a) b)
0.0ms
b
@0
(*.f64 (*.f64 z a) b)
0.0ms
a
@0
(*.f64 (*.f64 z a) b)

rewrite97.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1592×bool.json-1
1592×bool.json-2
1570×rational.json-1
1570×rational.json-2
1570×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01438
113738
234138
374138
4162438
5359538
6638038
Stop Event
node limit
Counts
2 → 27
Calls
Call 1
Inputs
(*.f64 (*.f64 z a) b)
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z a) (/.f64 b 2)) (*.f64 (*.f64 z a) (/.f64 b 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 a (+.f64 b b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z a) (*.f64 b 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 a b)) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 a b)) (*.f64 z (*.f64 a b)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)))))))

simplify392.0ms (2.2%)

Algorithm
egg-herbie
Rules
5430×rational.json-simplify-41
2576×rational.json-simplify-35
1966×rational.json-simplify-2
1742×rational.json-simplify-53
696×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0772307
11582295
24212289
39972289
420212289
527192289
631092289
734612289
837652289
940482289
1041832289
1143182289
1248642289
1348642289
1451112289
1552602289
1654862289
1757282289
Stop Event
node limit
Counts
123 → 46
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z (*.f64 a b)) 0)
(+.f64 0 (*.f64 z (*.f64 a b)))
(+.f64 (*.f64 (*.f64 z a) (/.f64 b 2)) (*.f64 (*.f64 z a) (/.f64 b 2)))
(-.f64 (*.f64 z (*.f64 a b)) 0)
(/.f64 (*.f64 z (*.f64 a b)) 1)
(/.f64 (*.f64 z (*.f64 a (+.f64 b b))) 2)
(/.f64 (*.f64 (*.f64 z a) (*.f64 b 4)) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4))))) 32)
(-.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 0)
(*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1)
(*.f64 1 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)))
(*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1/2))
(*.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))
(*.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2))
(*.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))
(*.f64 (/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 4)
(/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1)
(/.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2) 2)
(/.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4)))) 32)
Outputs
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 z (*.f64 a b)) 0)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(+.f64 0 (*.f64 z (*.f64 a b)))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 (*.f64 z a) (/.f64 b 2)) (*.f64 (*.f64 z a) (/.f64 b 2)))
(+.f64 (*.f64 (*.f64 a z) (/.f64 b 2)) (*.f64 (*.f64 a z) (/.f64 b 2)))
(*.f64 (*.f64 a z) (+.f64 (/.f64 b 2) (/.f64 b 2)))
(*.f64 (/.f64 b 2) (*.f64 z (+.f64 a a)))
(*.f64 (*.f64 z (/.f64 b 2)) (+.f64 a a))
(-.f64 (*.f64 z (*.f64 a b)) 0)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(/.f64 (*.f64 z (*.f64 a b)) 1)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(/.f64 (*.f64 z (*.f64 a (+.f64 b b))) 2)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(/.f64 (*.f64 (*.f64 z a) (*.f64 b 4)) 4)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(/.f64 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4))) 8)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4)))) 16)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z a) (*.f64 b 4))))) 32)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(-.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 0)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 1 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1/2))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2) 1/2)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 4 (/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 1/4)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 1/2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1/2) 2)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 1/4 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(*.f64 (/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 4)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(/.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 1)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(/.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 2) 2)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(/.f64 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4) 4)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4)) 8)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))) 16)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 a t)) 4)))) 32)
(+.f64 (*.f64 a t) (+.f64 (*.f64 z y) x))
(+.f64 (*.f64 z y) (+.f64 (*.f64 a t) x))

eval50.0ms (0.3%)

Compiler

Compiled 1808 to 457 computations (74.7% saved)

prune45.0ms (0.3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1099118
Fresh000
Picked101
Done101
Total1119120
Error
0.0b
Counts
120 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
8.6b
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
24.1b
(+.f64 (*.f64 z y) x)
23.7b
(+.f64 (*.f64 t a) x)
40.8b
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
32.5b
(+.f64 x (*.f64 (*.f64 z a) b))
39.9b
(*.f64 z (+.f64 (*.f64 a b) y))
47.2b
(*.f64 z y)
40.8b
(*.f64 a (+.f64 (*.f64 z b) t))
39.1b
x
Compiler

Compiled 207 to 146 computations (29.5% saved)

localize52.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 31 to 10 computations (67.7% saved)

localize4.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize6.0ms (0%)

Compiler

Compiled 17 to 8 computations (52.9% saved)

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 a b) y)
1.5b
(*.f64 z (+.f64 (*.f64 a b) y))
Compiler

Compiled 25 to 9 computations (64% saved)

series4.0ms (0%)

Counts
2 → 45
Calls

21 calls:

TimeVariablePointExpression
0.0ms
z
@0
(*.f64 z (+.f64 (*.f64 a b) y))
0.0ms
z
@inf
(*.f64 z (+.f64 (*.f64 a b) y))
0.0ms
a
@0
(*.f64 z (+.f64 (*.f64 a b) y))
0.0ms
y
@inf
(*.f64 z (+.f64 (*.f64 a b) y))
0.0ms
a
@inf
(*.f64 z (+.f64 (*.f64 a b) y))

rewrite113.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1970×bool.json-1
1344×rational.json-simplify-35
1218×bool.json-2
1188×rational.json-1
1188×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
18932
223532
349232
4101832
5225132
6465932
7768332
Stop Event
node limit
Counts
2 → 31
Calls
Call 1
Inputs
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a b) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 a b) y) (*.f64 z 1/2)) (*.f64 (+.f64 (*.f64 a b) y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 (*.f64 a b) y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 (*.f64 a b) y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (+.f64 (*.f64 a b) y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 z (+.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 z (+.f64 (*.f64 a b) y)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 a b) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 a b) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y 1/2) (*.f64 a (*.f64 b 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 a b) y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) y) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 a b) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 a (+.f64 b b)) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) y) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 a b) y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 a b) y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 a b) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) y) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) y) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) y) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 a b) y) (+.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 a b) y) (+.f64 (*.f64 a b) y))))))

simplify373.0ms (2.1%)

Algorithm
egg-herbie
Rules
3420×rational.json-simplify-41
2188×rational.json-simplify-35
1808×rational.json-simplify-2
1440×rational.json-simplify-53
758×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0811342
11821114
24531114
314801114
429931114
534351114
636291114
737301114
838231114
939131114
1051941114
1152871114
1253761114
1354651114
1455541114
1555541114
Stop Event
node limit
Counts
76 → 42
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 0)
(+.f64 0 (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 (+.f64 (*.f64 a b) y) (*.f64 z 1/2)) (*.f64 (+.f64 (*.f64 a b) y) (*.f64 z 1/2)))
(-.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 0)
(/.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 1)
(/.f64 (*.f64 z (*.f64 (+.f64 (*.f64 a b) y) 2)) 2)
(/.f64 (*.f64 z (*.f64 (+.f64 (*.f64 a b) y) 4)) 4)
(/.f64 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8)))) 64)
(-.f64 (+.f64 (*.f64 a b) y) 0)
(*.f64 (+.f64 (*.f64 a b) y) 1)
(*.f64 1 (+.f64 (*.f64 a b) y))
(*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 1/2))
(*.f64 2 (+.f64 (*.f64 y 1/2) (*.f64 a (*.f64 b 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 a b) y) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 a b) y) 4))
(*.f64 (*.f64 (+.f64 (*.f64 a b) y) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a b) y) 2))
(*.f64 1/2 (+.f64 (*.f64 a (+.f64 b b)) (+.f64 y y)))
(*.f64 (*.f64 (+.f64 (*.f64 a b) y) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a b) y) 4))
(*.f64 (/.f64 (+.f64 (*.f64 a b) y) 4) 4)
(/.f64 (+.f64 (*.f64 a b) y) 1)
(/.f64 (*.f64 (+.f64 (*.f64 a b) y) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 a b) y) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 a b) y) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8)))) 64)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 0)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 0 (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(+.f64 (*.f64 (+.f64 (*.f64 a b) y) (*.f64 z 1/2)) (*.f64 (+.f64 (*.f64 a b) y) (*.f64 z 1/2)))
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(-.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 0)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 1)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (*.f64 z (*.f64 (+.f64 (*.f64 a b) y) 2)) 2)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (*.f64 z (*.f64 (+.f64 (*.f64 a b) y) 4)) 4)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8) 8)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8)) 16)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8))) 32)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 (*.f64 a b) y)) 8)))) 64)
(+.f64 (*.f64 y z) (*.f64 z (*.f64 a b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(-.f64 (+.f64 (*.f64 a b) y) 0)
(+.f64 y (*.f64 a b))
(*.f64 (+.f64 (*.f64 a b) y) 1)
(+.f64 y (*.f64 a b))
(*.f64 1 (+.f64 (*.f64 a b) y))
(+.f64 y (*.f64 a b))
(*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 1/2))
(+.f64 y (*.f64 a b))
(*.f64 2 (+.f64 (*.f64 y 1/2) (*.f64 a (*.f64 b 1/2))))
(+.f64 y (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) y) 2) 1/2)
(+.f64 y (*.f64 a b))
(*.f64 4 (/.f64 (+.f64 (*.f64 a b) y) 4))
(+.f64 y (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) y) 4) 1/4)
(+.f64 y (*.f64 a b))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a b) y) 2))
(+.f64 y (*.f64 a b))
(*.f64 1/2 (+.f64 (*.f64 a (+.f64 b b)) (+.f64 y y)))
(+.f64 y (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) y) 1/2) 2)
(+.f64 y (*.f64 a b))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a b) y) 4))
(+.f64 y (*.f64 a b))
(*.f64 (/.f64 (+.f64 (*.f64 a b) y) 4) 4)
(+.f64 y (*.f64 a b))
(/.f64 (+.f64 (*.f64 a b) y) 1)
(+.f64 y (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) y) 2) 2)
(+.f64 y (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) y) 4) 4)
(+.f64 y (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) y) 8) 8)
(+.f64 y (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8)) 16)
(+.f64 y (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8))) 32)
(+.f64 y (*.f64 a b))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) y) 8)))) 64)
(+.f64 y (*.f64 a b))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.3b
(*.f64 (*.f64 z a) b)
Compiler

Compiled 30 to 10 computations (66.7% saved)

eval27.0ms (0.2%)

Compiler

Compiled 998 to 379 computations (62% saved)

prune23.0ms (0.1%)

Pruning

12 alts after pruning (8 fresh and 4 done)

PrunedKeptTotal
New84488
Fresh044
Picked011
Done134
Total851297
Error
0.0b
Counts
97 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
32.4b
(+.f64 (*.f64 z y) (*.f64 a t))
24.1b
(+.f64 (*.f64 z y) x)
23.7b
(+.f64 (*.f64 t a) x)
40.8b
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
32.5b
(+.f64 x (*.f64 (*.f64 z a) b))
39.9b
(*.f64 z (+.f64 (*.f64 a b) y))
55.2b
(*.f64 z (*.f64 a b))
47.2b
(*.f64 z y)
40.8b
(*.f64 a (+.f64 (*.f64 z b) t))
55.9b
(*.f64 a (*.f64 z b))
47.6b
(*.f64 a t)
39.1b
x
Compiler

Compiled 217 to 156 computations (28.1% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 t a) x)
Compiler

Compiled 17 to 8 computations (52.9% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
t
@0
(+.f64 (*.f64 t a) x)
0.0ms
t
@-inf
(+.f64 (*.f64 t a) x)
0.0ms
x
@-inf
(+.f64 (*.f64 t a) x)
0.0ms
t
@inf
(+.f64 (*.f64 t a) x)
0.0ms
a
@-inf
(+.f64 (*.f64 t a) x)

rewrite90.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1618×bool.json-1
1618×bool.json-2
1586×rational.json-1
1586×rational.json-2
1586×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
219613
341713
486113
5188513
6389913
7638113
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 t a) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 t a) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 t a) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 t a) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 t (*.f64 a 1/2)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 t a) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 t a) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 t a) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 t a) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 t (+.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 t a) x) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 t a) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 t a) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 t a) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 t a) x) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 t a) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 t a) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 t a) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 t a) x) (+.f64 (*.f64 t a) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 t a) x) (+.f64 (*.f64 t a) x))))))

simplify986.0ms (5.6%)

Algorithm
egg-herbie
Rules
5902×rational.json-simplify-51
1986×rational.json-simplify-35
1694×rational.json-simplify-2
1294×rational.json-simplify-1
1142×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055650
1112650
2282650
3692650
41113650
52521650
63369650
73427650
83457650
93483650
103509650
113535650
123584650
133610650
143636650
153662650
163688650
173714650
183740650
194579650
204945650
214977650
225007650
235036650
245065650
255094650
265123650
275152650
285181650
295210650
305239650
315268650
325297650
335326650
345355650
355384650
365413650
375442650
385471650
395500650
405500650
Stop Event
node limit
Counts
56 → 24
Calls
Call 1
Inputs
x
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
x
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
x
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
x
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) x)
(-.f64 (+.f64 (*.f64 t a) x) 0)
(*.f64 (+.f64 (*.f64 t a) x) 1)
(*.f64 1 (+.f64 (*.f64 t a) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 1/2))
(*.f64 2 (+.f64 (*.f64 t (*.f64 a 1/2)) (*.f64 x 1/2)))
(*.f64 (*.f64 (+.f64 (*.f64 t a) x) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 t a) x) 4))
(*.f64 (*.f64 (+.f64 (*.f64 t a) x) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 t a) x) 2))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 t (+.f64 a a))))
(*.f64 (*.f64 (+.f64 (*.f64 t a) x) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 t a) x) 4))
(*.f64 (/.f64 (+.f64 (*.f64 t a) x) 4) 4)
(/.f64 (+.f64 (*.f64 t a) x) 1)
(/.f64 (*.f64 (+.f64 (*.f64 t a) x) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 t a) x) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 t a) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8)))) 64)
Outputs
x
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
x
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
x
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
x
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(+.f64 (*.f64 a t) x)
(+.f64 x (*.f64 a t))
(-.f64 (+.f64 (*.f64 t a) x) 0)
(+.f64 x (*.f64 a t))
(*.f64 (+.f64 (*.f64 t a) x) 1)
(+.f64 x (*.f64 a t))
(*.f64 1 (+.f64 (*.f64 t a) x))
(+.f64 x (*.f64 a t))
(*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 1/2))
(+.f64 x (*.f64 a t))
(*.f64 2 (+.f64 (*.f64 t (*.f64 a 1/2)) (*.f64 x 1/2)))
(+.f64 x (*.f64 a t))
(*.f64 (*.f64 (+.f64 (*.f64 t a) x) 2) 1/2)
(+.f64 x (*.f64 a t))
(*.f64 4 (/.f64 (+.f64 (*.f64 t a) x) 4))
(+.f64 x (*.f64 a t))
(*.f64 (*.f64 (+.f64 (*.f64 t a) x) 4) 1/4)
(+.f64 x (*.f64 a t))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 t a) x) 2))
(+.f64 x (*.f64 a t))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 t (+.f64 a a))))
(+.f64 x (*.f64 a t))
(*.f64 (*.f64 (+.f64 (*.f64 t a) x) 1/2) 2)
(+.f64 x (*.f64 a t))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 t a) x) 4))
(+.f64 x (*.f64 a t))
(*.f64 (/.f64 (+.f64 (*.f64 t a) x) 4) 4)
(+.f64 x (*.f64 a t))
(/.f64 (+.f64 (*.f64 t a) x) 1)
(+.f64 x (*.f64 a t))
(/.f64 (*.f64 (+.f64 (*.f64 t a) x) 2) 2)
(+.f64 x (*.f64 a t))
(/.f64 (*.f64 (+.f64 (*.f64 t a) x) 4) 4)
(+.f64 x (*.f64 a t))
(/.f64 (*.f64 (+.f64 (*.f64 t a) x) 8) 8)
(+.f64 x (*.f64 a t))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8)) 16)
(+.f64 x (*.f64 a t))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8))) 32)
(+.f64 x (*.f64 a t))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 t a) x) 8)))) 64)
(+.f64 x (*.f64 a t))

localize4.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.1b
(*.f64 a (*.f64 z b))
Compiler

Compiled 17 to 8 computations (52.9% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

9 calls:

TimeVariablePointExpression
0.0ms
a
@0
(*.f64 a (*.f64 z b))
0.0ms
z
@0
(*.f64 a (*.f64 z b))
0.0ms
b
@0
(*.f64 a (*.f64 z b))
0.0ms
a
@-inf
(*.f64 a (*.f64 z b))
0.0ms
a
@inf
(*.f64 a (*.f64 z b))

rewrite98.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1186×rational.json-1
1186×rational.json-2
1186×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221413
347213
494513
5210213
6453413
7754113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 z b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 z (*.f64 b 1/2))) (*.f64 a (*.f64 z (*.f64 b 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (*.f64 z b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 z b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 z (+.f64 b b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 a (*.f64 b 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a (*.f64 z b)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 a (*.f64 z b)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 z b)) (*.f64 a (*.f64 z b)))))))

simplify453.0ms (2.6%)

Algorithm
egg-herbie
Rules
3720×rational.json-simplify-35
2700×rational.json-simplify-2
2412×rational.json-simplify-53
1034×rational.json-simplify-43
824×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042299
1104299
2229299
3580299
42452299
53912299
64625299
74959299
84964299
94967299
106031299
116031299
126031299
136292299
146553299
156814299
167075299
177336299
187336299
Stop Event
node limit
Counts
23 → 13
Calls
Call 1
Inputs
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 z b)) 0)
(+.f64 0 (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a (*.f64 z (*.f64 b 1/2))) (*.f64 a (*.f64 z (*.f64 b 1/2))))
(-.f64 (*.f64 a (*.f64 z b)) 0)
(/.f64 (*.f64 a (*.f64 z b)) 1)
(/.f64 (*.f64 a (*.f64 z (+.f64 b b))) 2)
(/.f64 (*.f64 z (*.f64 a (*.f64 b 4))) 4)
(/.f64 (*.f64 (*.f64 a (*.f64 z b)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8)))) 64)
Outputs
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(+.f64 (*.f64 a (*.f64 z b)) 0)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(+.f64 0 (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(+.f64 (*.f64 a (*.f64 z (*.f64 b 1/2))) (*.f64 a (*.f64 z (*.f64 b 1/2))))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(-.f64 (*.f64 a (*.f64 z b)) 0)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 a (*.f64 z b)) 1)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 a (*.f64 z (+.f64 b b))) 2)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 z (*.f64 a (*.f64 b 4))) 4)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 (*.f64 a (*.f64 z b)) 8) 8)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8)) 16)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8))) 32)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 a (*.f64 z b)) 8)))) 64)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.6b
(*.f64 z (*.f64 a b))
Compiler

Compiled 17 to 8 computations (52.9% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
z
@-inf
(*.f64 z (*.f64 a b))
0.0ms
z
@0
(*.f64 z (*.f64 a b))
0.0ms
z
@inf
(*.f64 z (*.f64 a b))
0.0ms
a
@inf
(*.f64 z (*.f64 a b))
0.0ms
b
@-inf
(*.f64 z (*.f64 a b))

rewrite101.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1186×rational.json-1
1186×rational.json-2
1186×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221413
347213
494513
5210213
6453413
7754113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 z (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 a (*.f64 b 1/2))) (*.f64 z (*.f64 a (*.f64 b 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 a (+.f64 b b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 z (*.f64 b 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (*.f64 a b)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 a b)) (*.f64 z (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 a b)) (*.f64 z (*.f64 a b)))))))

simplify492.0ms (2.8%)

Algorithm
egg-herbie
Rules
3766×rational.json-simplify-35
2962×rational.json-simplify-2
2754×rational.json-simplify-53
1116×rational.json-simplify-43
858×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044611
1107611
2238611
3608611
42582611
54068611
64763611
75098611
85103611
95106611
106272611
116272611
126272611
136538611
146804611
157070611
167336611
177602611
187602611
Stop Event
node limit
Counts
47 → 14
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 z (*.f64 a b)) 0)
(+.f64 0 (*.f64 z (*.f64 a b)))
(+.f64 (*.f64 z (*.f64 a (*.f64 b 1/2))) (*.f64 z (*.f64 a (*.f64 b 1/2))))
(-.f64 (*.f64 z (*.f64 a b)) 0)
(/.f64 (*.f64 z (*.f64 a b)) 1)
(/.f64 (*.f64 z (*.f64 a (+.f64 b b))) 2)
(/.f64 (*.f64 a (*.f64 z (*.f64 b 4))) 4)
(/.f64 (*.f64 (*.f64 z (*.f64 a b)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8)))) 64)
Outputs
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 z (*.f64 a b)) 0)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 0 (*.f64 z (*.f64 a b)))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 z (*.f64 a (*.f64 b 1/2))) (*.f64 z (*.f64 a (*.f64 b 1/2))))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(-.f64 (*.f64 z (*.f64 a b)) 0)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (*.f64 z (*.f64 a b)) 1)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (*.f64 z (*.f64 a (+.f64 b b))) 2)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (*.f64 a (*.f64 z (*.f64 b 4))) 4)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (*.f64 (*.f64 z (*.f64 a b)) 8) 8)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8)) 16)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8))) 32)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 a b)) 8)))) 64)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.7b
(*.f64 a (+.f64 (*.f64 z b) t))
Compiler

Compiled 25 to 9 computations (64% saved)

eval12.0ms (0.1%)

Compiler

Compiled 669 to 291 computations (56.5% saved)

prune15.0ms (0.1%)

Pruning

12 alts after pruning (3 fresh and 9 done)

PrunedKeptTotal
New70171
Fresh123
Picked011
Done088
Total711283
Error
0.0b
Counts
83 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
32.4b
(+.f64 (*.f64 z y) (*.f64 a t))
24.1b
(+.f64 (*.f64 z y) x)
23.7b
(+.f64 (*.f64 t a) x)
40.8b
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
39.9b
(*.f64 z (+.f64 (*.f64 a b) y))
55.2b
(*.f64 z (*.f64 a b))
47.2b
(*.f64 z y)
55.1b
(*.f64 b (*.f64 z a))
40.8b
(*.f64 a (+.f64 (*.f64 z b) t))
55.9b
(*.f64 a (*.f64 z b))
47.6b
(*.f64 a t)
39.1b
x
Compiler

Compiled 134 to 97 computations (27.6% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.3b
(*.f64 b (*.f64 z a))
Compiler

Compiled 17 to 8 computations (52.9% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
b
@0
(*.f64 b (*.f64 z a))
0.0ms
b
@inf
(*.f64 b (*.f64 z a))
0.0ms
b
@-inf
(*.f64 b (*.f64 z a))
0.0ms
z
@-inf
(*.f64 b (*.f64 z a))
0.0ms
a
@-inf
(*.f64 b (*.f64 z a))

rewrite97.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1186×rational.json-1
1186×rational.json-2
1186×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221413
347213
494513
5210213
6453413
7754113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 b (*.f64 z a))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 z a)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 z (*.f64 a 1/2))) (*.f64 b (*.f64 z (*.f64 a 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 z a)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 z a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 z (+.f64 a a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 b (*.f64 a 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 b (*.f64 z a)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 b (*.f64 z a))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 b (*.f64 z a)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 b (*.f64 z a)) (*.f64 b (*.f64 z a)))))))

simplify503.0ms (2.9%)

Algorithm
egg-herbie
Rules
3874×rational.json-simplify-35
2992×rational.json-simplify-2
2628×rational.json-simplify-53
1142×rational.json-simplify-43
878×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044611
1109611
2239611
3608611
42626611
54136611
64870611
75210611
85215611
95218611
106403611
116403611
126403611
136672611
146941611
157210611
167479611
177748611
187748611
Stop Event
node limit
Counts
47 → 14
Calls
Call 1
Inputs
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 b (*.f64 z a)) 0)
(+.f64 0 (*.f64 b (*.f64 z a)))
(+.f64 (*.f64 b (*.f64 z (*.f64 a 1/2))) (*.f64 b (*.f64 z (*.f64 a 1/2))))
(-.f64 (*.f64 b (*.f64 z a)) 0)
(/.f64 (*.f64 b (*.f64 z a)) 1)
(/.f64 (*.f64 b (*.f64 z (+.f64 a a))) 2)
(/.f64 (*.f64 z (*.f64 b (*.f64 a 4))) 4)
(/.f64 (*.f64 (*.f64 b (*.f64 z a)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8)))) 64)
Outputs
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(+.f64 (*.f64 b (*.f64 z a)) 0)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(+.f64 0 (*.f64 b (*.f64 z a)))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(+.f64 (*.f64 b (*.f64 z (*.f64 a 1/2))) (*.f64 b (*.f64 z (*.f64 a 1/2))))
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(-.f64 (*.f64 b (*.f64 z a)) 0)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 b (*.f64 z a)) 1)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 b (*.f64 z (+.f64 a a))) 2)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 z (*.f64 b (*.f64 a 4))) 4)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 (*.f64 b (*.f64 z a)) 8) 8)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8)) 16)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8))) 32)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 b (*.f64 z a)) 8)))) 64)
(*.f64 a (*.f64 b z))
(*.f64 b (*.f64 a z))

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 z y) (*.f64 a t))
Compiler

Compiled 23 to 9 computations (60.9% saved)

series1.0ms (0%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
z
@0
(+.f64 (*.f64 z y) (*.f64 a t))
0.0ms
a
@-inf
(+.f64 (*.f64 z y) (*.f64 a t))
0.0ms
z
@inf
(+.f64 (*.f64 z y) (*.f64 a t))
0.0ms
z
@-inf
(+.f64 (*.f64 z y) (*.f64 a t))
0.0ms
t
@-inf
(+.f64 (*.f64 z y) (*.f64 a t))

rewrite106.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1950×bool.json-1
1344×rational.json-simplify-35
1218×bool.json-2
1188×rational.json-1
1188×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18919
223519
349219
4101819
5225119
6465719
7765919
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 z y) (*.f64 a t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 z y) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 t (*.f64 a 1/2)) (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 a (+.f64 t t)) (*.f64 z (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 z y) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 z y) (*.f64 a t)) (+.f64 (*.f64 z y) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 z y) (*.f64 a t)) (+.f64 (*.f64 z y) (*.f64 a t)))))))

simplify1.0s (5.7%)

Algorithm
egg-herbie
Rules
5874×rational.json-simplify-51
1976×rational.json-simplify-35
1706×rational.json-simplify-2
1166×rational.json-simplify-1
1098×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0591148
11211148
22901148
37051148
411151148
524271148
632071148
732631148
832931148
933191148
1033451148
1133711148
1234201148
1334461148
1434721148
1534981148
1635241148
1735501148
1835761148
1943811148
2047611148
2147931148
2248231148
2348521148
2448811148
2549101148
2649391148
2749681148
2849971148
2950261148
3050551148
3150841148
3251131148
3351421148
3451711148
3552001148
3652291148
3752581148
3852871148
3953161148
4053161148
Stop Event
node limit
Counts
68 → 24
Calls
Call 1
Inputs
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(-.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 0)
(*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1)
(*.f64 1 (+.f64 (*.f64 z y) (*.f64 a t)))
(*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1/2))
(*.f64 2 (+.f64 (*.f64 t (*.f64 a 1/2)) (*.f64 y (*.f64 z 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2))
(*.f64 1/2 (+.f64 (*.f64 a (+.f64 t t)) (*.f64 z (+.f64 y y))))
(*.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 4)
(/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8)))) 64)
Outputs
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 y z))
(-.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 0)
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1)
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 1 (+.f64 (*.f64 z y) (*.f64 a t)))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1/2))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 2 (+.f64 (*.f64 t (*.f64 a 1/2)) (*.f64 y (*.f64 z 1/2))))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2) 1/2)
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 4 (/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 1/4)
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 1/2 (+.f64 (*.f64 a (+.f64 t t)) (*.f64 z (+.f64 y y))))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1/2) 2)
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4))
(+.f64 (*.f64 a t) (*.f64 y z))
(*.f64 (/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 4)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 1)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 2) 2)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 4) 4)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8) 8)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8)) 16)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8))) 32)
(+.f64 (*.f64 a t) (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 z y) (*.f64 a t)) 8)))) 64)
(+.f64 (*.f64 a t) (*.f64 y z))

eval6.0ms (0%)

Compiler

Compiled 400 to 178 computations (55.5% saved)

prune11.0ms (0.1%)

Pruning

12 alts after pruning (1 fresh and 11 done)

PrunedKeptTotal
New38038
Fresh011
Picked011
Done01010
Total381250
Error
0.0b
Counts
50 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
32.4b
(+.f64 (*.f64 z y) (*.f64 a t))
24.1b
(+.f64 (*.f64 z y) x)
23.7b
(+.f64 (*.f64 t a) x)
40.8b
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
39.9b
(*.f64 z (+.f64 (*.f64 a b) y))
55.2b
(*.f64 z (*.f64 a b))
47.2b
(*.f64 z y)
55.1b
(*.f64 b (*.f64 z a))
40.8b
(*.f64 a (+.f64 (*.f64 z b) t))
55.9b
(*.f64 a (*.f64 z b))
47.6b
(*.f64 a t)
39.1b
x
Compiler

Compiled 134 to 97 computations (27.6% saved)

regimes101.0ms (0.6%)

Counts
17 → 3
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 z a) b))
Outputs
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
Calls

7 calls:

24.0ms
b
24.0ms
a
16.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
9.0ms
x
8.0ms
z
Results
ErrorSegmentsBranch
2.8b1x
2.8b1y
2.8b1z
2.8b1t
0.3b3a
0.5b3b
1.2b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 190 to 82 computations (56.8% saved)

bsearch14.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
7.0ms
3.4377927686279806e-117
1.5137369997998983e-112
6.0ms
-7.811362500041568e-192
-4.707700967019963e-199
Results
12.0ms96×body256valid
0.0msbody256infinite
Compiler

Compiled 282 to 183 computations (35.1% saved)

regimes52.0ms (0.3%)

Counts
15 → 1
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
Outputs
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
Calls

6 calls:

9.0ms
x
9.0ms
z
8.0ms
a
7.0ms
b
7.0ms
y
Results
ErrorSegmentsBranch
2.8b1x
2.8b1y
2.8b1z
2.8b1t
2.8b1a
2.8b1b
Compiler

Compiled 139 to 65 computations (53.2% saved)

regimes57.0ms (0.3%)

Counts
14 → 2
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
Outputs
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
Calls

6 calls:

15.0ms
b
9.0ms
t
9.0ms
x
7.0ms
y
7.0ms
a
Results
ErrorSegmentsBranch
8.6b1x
8.6b1y
8.6b1z
8.6b1t
8.6b1a
7.2b2b
Compiler

Compiled 126 to 64 computations (49.2% saved)

bsearch21.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
1.1781383625580926e+155
6.601160302316619e+160
Results
17.0ms144×body256valid
2.0ms16×body256infinite
Compiler

Compiled 318 to 219 computations (31.1% saved)

regimes563.0ms (3.2%)

Counts
13 → 7
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b))
Outputs
(+.f64 (*.f64 t a) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 z y) (*.f64 a t))
(+.f64 x (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 t a) x)
Calls

6 calls:

198.0ms
a
125.0ms
z
72.0ms
t
63.0ms
y
55.0ms
b
Results
ErrorSegmentsBranch
10.7b7x
12.3b9y
14.8b5z
13.4b5t
16.1b7a
13.9b9b
Compiler

Compiled 117 to 61 computations (47.9% saved)

bsearch244.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
3.572028632207517e+90
1.5249598829488862e+93
96.0ms
1.6019915870366402e+78
1.1959509132713319e+85
19.0ms
3.569644897672022e-15
0.01183020906810694
87.0ms
1.2946194218080378e-40
3.2815153730071997e-40
14.0ms
-5.81295374138228e-41
-2.9730330324345035e-42
12.0ms
-3.832271553021866e+84
-3.909396841249911e+83
Results
158.0ms720×body256valid
Compiler

Compiled 1232 to 892 computations (27.6% saved)

regimes615.0ms (3.5%)

Counts
11 → 7
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 z a) b))
Outputs
(+.f64 (*.f64 t a) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 t a) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 t a) x)
Calls

6 calls:

145.0ms
x
133.0ms
b
129.0ms
a
120.0ms
y
51.0ms
z
Results
ErrorSegmentsBranch
12.3b7x
13.3b8y
16.1b3z
13.4b5t
18.3b3a
14.2b9b
Compiler

Compiled 101 to 59 computations (41.6% saved)

bsearch362.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
94.0ms
1.3758023266900438e-58
4.378123445469184e-58
69.0ms
9.769758836697115e-161
1.779655087590666e-159
16.0ms
9.013527890698751e-303
2.188227865388196e-299
114.0ms
-9.420143514350303e-157
-1.2438539257165623e-158
16.0ms
-1.6417882231711085e-84
-2.9374871112522093e-89
53.0ms
-3.832271553021866e+84
-3.909396841249911e+83
Results
299.0ms656×body256valid
Compiler

Compiled 1126 to 815 computations (27.6% saved)

regimes2.6s (14.5%)

Counts
9 → 8
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
Outputs
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
Calls

6 calls:

1.1s
x
972.0ms
t
172.0ms
y
135.0ms
z
102.0ms
a
Results
ErrorSegmentsBranch
14.3b8x
13.3b8y
16.5b3z
13.4b5t
18.3b3a
14.7b8b
Compiler

Compiled 87 to 55 computations (36.8% saved)

bsearch418.0ms (2.4%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.26656117013259e+20
3.3068535836798335e+28
210.0ms
1.183292103296651e-34
9.546518602106783e-33
17.0ms
7.831416653967921e-134
3.171209996545145e-127
16.0ms
-1.4705265938228968e-14
-1.72491653621287e-18
104.0ms
-6.512716361801812e+76
-5.913644477186814e+75
26.0ms
-6.87789959076739e+129
-6.985264943656486e+118
24.0ms
-1.3445125466208141e+175
-1.2746634947352709e+169
Results
200.0ms928×body256valid
10.0ms77×body256infinite
Compiler

Compiled 1450 to 1079 computations (25.6% saved)

regimes848.0ms (4.8%)

Counts
8 → 5
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
Outputs
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
(+.f64 (*.f64 t a) x)
(+.f64 (*.f64 z y) x)
Calls

6 calls:

669.0ms
z
80.0ms
a
31.0ms
x
28.0ms
b
23.0ms
y
Results
ErrorSegmentsBranch
16.5b6x
14.5b5y
16.5b3z
14.7b3t
18.3b3a
17.2b6b
Compiler

Compiled 80 to 53 computations (33.8% saved)

bsearch182.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.26656117013259e+20
3.3068535836798335e+28
28.0ms
1.183292103296651e-34
9.546518602106783e-33
18.0ms
7.831416653967921e-134
3.171209996545145e-127
117.0ms
-1.3445125466208141e+175
-1.2746634947352709e+169
Results
172.0ms544×body256valid
4.0ms38×body256infinite
Compiler

Compiled 846 to 633 computations (25.2% saved)

regimes187.0ms (1.1%)

Counts
7 → 7
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 t a) x)
Outputs
(+.f64 (*.f64 t a) x)
(*.f64 z y)
(+.f64 (*.f64 t a) x)
(*.f64 z y)
(+.f64 (*.f64 t a) x)
(*.f64 z y)
(+.f64 (*.f64 t a) x)
Calls

6 calls:

94.0ms
b
34.0ms
x
23.0ms
z
15.0ms
y
14.0ms
t
Results
ErrorSegmentsBranch
17.0b7x
21.4b2y
20.6b5z
22.5b3t
23.7b1a
22.6b2b
Compiler

Compiled 75 to 52 computations (30.7% saved)

bsearch137.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
1.3758023266900438e-58
4.378123445469184e-58
17.0ms
9.769758836697115e-161
1.779655087590666e-159
11.0ms
1.9195267051965732e-296
5.05725577795908e-296
58.0ms
-6.23998243079174e-176
-2.4697453845829474e-183
21.0ms
-7.436013141871941e-69
-1.2776671561942532e-78
20.0ms
-5475696339147.536
-10889076.52624907
Results
128.0ms720×body256valid
Compiler

Compiled 1020 to 786 computations (22.9% saved)

regimes319.0ms (1.8%)

Counts
6 → 7
Calls
Call 1
Inputs
x
(*.f64 a t)
(*.f64 z y)
(*.f64 a (*.f64 z b))
(*.f64 b (*.f64 z a))
(*.f64 z (*.f64 a b))
Outputs
x
(*.f64 z y)
(*.f64 a t)
(*.f64 z y)
(*.f64 a t)
(*.f64 z y)
x
Calls

6 calls:

106.0ms
y
81.0ms
x
46.0ms
z
33.0ms
a
29.0ms
b
Results
ErrorSegmentsBranch
23.8b7x
30.3b8y
30.1b11z
31.7b4t
33.9b7a
32.1b7b
Compiler

Compiled 70 to 50 computations (28.6% saved)

bsearch100.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
1.2946194218080378e-40
3.2815153730071997e-40
17.0ms
9.769758836697115e-161
1.779655087590666e-159
10.0ms
1.9195267051965732e-296
5.05725577795908e-296
24.0ms
-1.0092706358099184e-169
-6.23998243079174e-176
20.0ms
-7.436013141871941e-69
-1.2776671561942532e-78
20.0ms
-1.066331646156207e+73
-2.220512139418284e+62
Results
92.0ms736×body256valid
Compiler

Compiled 920 to 742 computations (19.3% saved)

regimes106.0ms (0.6%)

Accuracy

Total -32.0b remaining (-104.9%)

Threshold costs -32.0b (-104.9%)

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

6 calls:

25.0ms
y
20.0ms
z
20.0ms
b
18.0ms
a
11.0ms
x
Results
ErrorSegmentsBranch
30.5b3x
33.8b9y
35.1b7z
32.9b3t
34.9b5a
34.4b7b
Compiler

Compiled 52 to 43 computations (17.3% saved)

bsearch30.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
1.2946194218080378e-40
3.2815153730071997e-40
20.0ms
-1.3436705192669588e+26
-5475696339147.536
Results
27.0ms240×body256valid
Compiler

Compiled 300 to 246 computations (18% saved)

simplify14.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01541089
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 a -4109481173084667/41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 2772669694120815/2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157824) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(if (<=.f64 b 88000000000000004632772996976793837798494849641315348115527417465042999761880041567074230553597336071581747720186709417480011493135792831216792411198627774464) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b)))
(if (<=.f64 x -400000000000000012322665292386102763108100816030573385384358976277655941165325746176) (+.f64 (*.f64 t a) x) (if (<=.f64 x -41377379603379/1532495540865888858358347027150309183618739122183602176) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x 3984488406251311/12259964326927110866866776217202473468949912977468817408) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 x 6653927711158919/154742504910672534362390528) (+.f64 (*.f64 z y) x) (if (<=.f64 x 12200000000000000227035023290104829470638901771906167387624178975492612003201024) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 x 3599999999999999924574090633996679016703085952451165815910416310328892447487683983562506240) (+.f64 x (*.f64 (*.f64 z a) b)) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 x -820000000000000017173479849246318725971502146756786237946792574607022935057834704896) (+.f64 (*.f64 t a) x) (if (<=.f64 x -6474262145357715/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x -6569713789129339/7729075046034516689390703781863974688597854659412869997314470502903038284579120849072387533163845155924927232063004354354730157322085975311485817346934161497393961629646848) (+.f64 (*.f64 t a) x) (if (<=.f64 x 7479750934274947/48256457640483526790736996345261885416402018013988046254372920519692978755949818346967788625106125949665803400115206697318508323999832505432847356782135608177546840733663168278805472312472633443174306792848764674320699568611310171751523817932405366025164140823449795139392236379439950593039113881265164914919783530496) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x 7123115562425411/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (*.f64 a (+.f64 (*.f64 z b) t)) (if (<=.f64 x 8198170380571703/28269553036454149273332760011886696253239742350009903329945699220681916416) (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 y -13199999999999999462153730067172191712660367812026529232658490769271482979523804241703240862103840922702929574888606175727916281399622800215135922569993466411767107158016) (+.f64 (*.f64 z y) x) (if (<=.f64 y -9800000000000000015237690353756876941571565496969265682322830178470241786095882551017890275550314915148674055579809186591014912) (+.f64 (*.f64 t a) x) (if (<=.f64 y -6200000000000000227495312104254300431088469179230806972964680160325201297408) (+.f64 (*.f64 z y) x) (if (<=.f64 y -2139160387885137/158456325028528675187087900672) (*.f64 a (+.f64 (*.f64 z b) t)) (if (<=.f64 y 4633845504375301/24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955392) (+.f64 (*.f64 t a) x) (if (<=.f64 y 63940696633227/11417981541647679048466287755595961091061972992) (+.f64 (*.f64 z y) x) (if (<=.f64 y 3800000000000000215419453440) (+.f64 (*.f64 t a) x) (+.f64 (*.f64 z y) x))))))))
(if (<=.f64 y -12999999999999999978174428473070988034211915201459692709412370477024694514817437651744253503342683363339032845227545009809003087230160744672250636316909093679530067886080) (+.f64 (*.f64 z y) x) (if (<=.f64 y 1487708293509965/12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477696) (+.f64 (*.f64 t a) x) (if (<=.f64 y 1549191735570757/2923003274661805836407369665432566039311865085952) (+.f64 (*.f64 z y) x) (if (<=.f64 y 249999999999999995805696) (+.f64 (*.f64 t a) x) (+.f64 (*.f64 z y) x)))))
(if (<=.f64 x -11000000) (+.f64 (*.f64 t a) x) (if (<=.f64 x -2875149960494079/7770675568902916283677847627294075626569627356208558085007249638955617140820833992704) (*.f64 z y) (if (<=.f64 x -5547927791028589/583992399055640987986069965529637289586333248927815671114136642291107221402710705472756839848623539171666215625420084135768154204336056063776340648924443416096255318318113913610607896607565283328) (+.f64 (*.f64 t a) x) (if (<=.f64 x 517735622840347/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (*.f64 z y) (if (<=.f64 x 6173366820768689/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (+.f64 (*.f64 t a) x) (if (<=.f64 x 3957737425103581/28269553036454149273332760011886696253239742350009903329945699220681916416) (*.f64 z y) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 x -1199999999999999996354470064727217882687812791195897543010549760) x (if (<=.f64 x -6216540455122333/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 z y) (if (<=.f64 x -1087770609288739/33992831540273094316133645219357992149093959534530043084764424844825827831094543535306400144974674282808917087119776064982181077609773263322209278641061590524405201333465166018030600192) (*.f64 a t) (if (<=.f64 x 5890680864316837/184083777009901148951480851536796132722480842643692193047992403105518260024832986247893480778145316885626996612988306798242600723265962621432675768974821503362834322867062256922933472871676000378319956942935045907290266298718681990629287025193807090855270922941016369397705979841003229496151404881535205516509184) (*.f64 z y) (if (<=.f64 x 8231155761024919/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (*.f64 a t) (if (<=.f64 x 7846377169233351/24519928653854221733733552434404946937899825954937634816) (*.f64 z y) x))))))
(if (<=.f64 x -5999999999999999899336704) x (if (<=.f64 x 1777694827404431/12259964326927110866866776217202473468949912977468817408) (*.f64 a t) x))
x
Outputs
(if (<=.f64 a -4109481173084667/41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 2772669694120815/2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157824) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 a (+.f64 (*.f64 z b) t)))
(if (<=.f64 b 88000000000000004632772996976793837798494849641315348115527417465042999761880041567074230553597336071581747720186709417480011493135792831216792411198627774464) (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (+.f64 (*.f64 a t) (*.f64 (*.f64 z a) b)))
(if (<=.f64 x -400000000000000012322665292386102763108100816030573385384358976277655941165325746176) (+.f64 (*.f64 t a) x) (if (<=.f64 x -41377379603379/1532495540865888858358347027150309183618739122183602176) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x 3984488406251311/12259964326927110866866776217202473468949912977468817408) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 x 6653927711158919/154742504910672534362390528) (+.f64 (*.f64 z y) x) (if (<=.f64 x 12200000000000000227035023290104829470638901771906167387624178975492612003201024) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 x 3599999999999999924574090633996679016703085952451165815910416310328892447487683983562506240) (+.f64 x (*.f64 (*.f64 z a) b)) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 x -820000000000000017173479849246318725971502146756786237946792574607022935057834704896) (+.f64 (*.f64 t a) x) (if (<=.f64 x -6474262145357715/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x -6569713789129339/7729075046034516689390703781863974688597854659412869997314470502903038284579120849072387533163845155924927232063004354354730157322085975311485817346934161497393961629646848) (+.f64 (*.f64 t a) x) (if (<=.f64 x 7479750934274947/48256457640483526790736996345261885416402018013988046254372920519692978755949818346967788625106125949665803400115206697318508323999832505432847356782135608177546840733663168278805472312472633443174306792848764674320699568611310171751523817932405366025164140823449795139392236379439950593039113881265164914919783530496) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x 7123115562425411/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (*.f64 a (+.f64 (*.f64 z b) t)) (if (<=.f64 x 8198170380571703/28269553036454149273332760011886696253239742350009903329945699220681916416) (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 y -13199999999999999462153730067172191712660367812026529232658490769271482979523804241703240862103840922702929574888606175727916281399622800215135922569993466411767107158016) (+.f64 (*.f64 z y) x) (if (<=.f64 y -9800000000000000015237690353756876941571565496969265682322830178470241786095882551017890275550314915148674055579809186591014912) (+.f64 (*.f64 t a) x) (if (<=.f64 y -6200000000000000227495312104254300431088469179230806972964680160325201297408) (+.f64 (*.f64 z y) x) (if (<=.f64 y -2139160387885137/158456325028528675187087900672) (*.f64 a (+.f64 (*.f64 z b) t)) (if (<=.f64 y 4633845504375301/24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955392) (+.f64 (*.f64 t a) x) (if (<=.f64 y 63940696633227/11417981541647679048466287755595961091061972992) (+.f64 (*.f64 z y) x) (if (<=.f64 y 3800000000000000215419453440) (+.f64 (*.f64 t a) x) (+.f64 (*.f64 z y) x))))))))
(if (<=.f64 y -12999999999999999978174428473070988034211915201459692709412370477024694514817437651744253503342683363339032845227545009809003087230160744672250636316909093679530067886080) (+.f64 (*.f64 z y) x) (if (<=.f64 y 1487708293509965/12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477696) (+.f64 (*.f64 t a) x) (if (<=.f64 y 1549191735570757/2923003274661805836407369665432566039311865085952) (+.f64 (*.f64 z y) x) (if (<=.f64 y 249999999999999995805696) (+.f64 (*.f64 t a) x) (+.f64 (*.f64 z y) x)))))
(if (<=.f64 x -11000000) (+.f64 (*.f64 t a) x) (if (<=.f64 x -2875149960494079/7770675568902916283677847627294075626569627356208558085007249638955617140820833992704) (*.f64 z y) (if (<=.f64 x -5547927791028589/583992399055640987986069965529637289586333248927815671114136642291107221402710705472756839848623539171666215625420084135768154204336056063776340648924443416096255318318113913610607896607565283328) (+.f64 (*.f64 t a) x) (if (<=.f64 x 517735622840347/11505236063118821809467553221049758295155052665230762065499525194094891251552061640493342548634082305351687288311769174890162545204122663839542235560926343960177145179191391057683342054479750023644997308933440369205641643669917624414330439074612943178454432683813523087356623740062701843509462805095950344781824) (*.f64 z y) (if (<=.f64 x 6173366820768689/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (+.f64 (*.f64 t a) x) (if (<=.f64 x 3957737425103581/28269553036454149273332760011886696253239742350009903329945699220681916416) (*.f64 z y) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 x -1199999999999999996354470064727217882687812791195897543010549760) x (if (<=.f64 x -6216540455122333/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352) (*.f64 z y) (if (<=.f64 x -1087770609288739/33992831540273094316133645219357992149093959534530043084764424844825827831094543535306400144974674282808917087119776064982181077609773263322209278641061590524405201333465166018030600192) (*.f64 a t) (if (<=.f64 x 5890680864316837/184083777009901148951480851536796132722480842643692193047992403105518260024832986247893480778145316885626996612988306798242600723265962621432675768974821503362834322867062256922933472871676000378319956942935045907290266298718681990629287025193807090855270922941016369397705979841003229496151404881535205516509184) (*.f64 z y) (if (<=.f64 x 8231155761024919/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (*.f64 a t) (if (<=.f64 x 7846377169233351/24519928653854221733733552434404946937899825954937634816) (*.f64 z y) x))))))
(if (<=.f64 x -5999999999999999899336704) x (if (<=.f64 x 1777694827404431/12259964326927110866866776217202473468949912977468817408) (*.f64 a t) x))
x
Compiler

Compiled 503 to 248 computations (50.7% saved)

soundness13.0ms (0.1%)

Algorithm
egg-herbie
Rules
64×rational.json-simplify-1
40×rational.json-simplify-41
20×rational.json-simplify-2
rational.json-simplify-51
rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01543
12243
23443
35037
47237
59237
69537
Stop Event
saturated
Compiler

Compiled 124 to 32 computations (74.2% saved)

end112.0ms (0.6%)

Compiler

Compiled 443 to 149 computations (66.4% saved)

Profiling

Loading profile data...