Details

Time bar (total: 14.3s)

analyze843.0ms (5.9%)

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)

sample2.9s (20.2%)

Results
2.1s8256×body256valid
801.0ms3962×body256infinite
Bogosity

preprocess59.0ms (0.4%)

Algorithm
egg-herbie
Rules
1158×fma-def_binary64
333×associate-+l+_binary64
303×associate-+r+_binary64
244×+-commutative_binary64
64×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
086352
1257254
2793236
31763236
41917236
51939236
61939208
72483208
82483208
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 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y z x))
(fma.f64 z (fma.f64 a b y) (fma.f64 t a x))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 y (*.f64 x z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 x z y)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 x z y))
(+.f64 (fma.f64 t a y) (*.f64 z (fma.f64 a b x)))
(fma.f64 x z (fma.f64 a (fma.f64 z b t) y))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 z (*.f64 x y)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 x b))))
(fma.f64 a (*.f64 x b) (fma.f64 t a (fma.f64 x y z)))
(fma.f64 a (+.f64 t (*.f64 x b)) (fma.f64 x y z))
(fma.f64 x y (fma.f64 a (fma.f64 x b t) z))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 t (+.f64 (*.f64 y z) (*.f64 x a))))
(+.f64 (fma.f64 y z t) (*.f64 a (fma.f64 z b x)))
(fma.f64 a (fma.f64 z b x) (fma.f64 y z t))
(fma.f64 x a (fma.f64 z (fma.f64 a b y) t))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (*.f64 y z) a) (+.f64 (*.f64 x t) (*.f64 x (*.f64 z b))))
(fma.f64 x (*.f64 z b) (fma.f64 x t (fma.f64 y z a)))
(fma.f64 x (+.f64 t (*.f64 z b)) (fma.f64 y z a))
(fma.f64 x (fma.f64 z b t) (fma.f64 y z a))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 b (+.f64 (*.f64 y z) (*.f64 t a))) (*.f64 x (*.f64 z a)))
(fma.f64 x (*.f64 z a) (fma.f64 t a (fma.f64 y z b)))
(fma.f64 a (+.f64 t (*.f64 x z)) (fma.f64 y z b))
(fma.f64 y z (fma.f64 a (fma.f64 x z t) b))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 b (*.f64 y a))))
(fma.f64 a (*.f64 y b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 a (+.f64 t (*.f64 y b)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 a (fma.f64 y b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a))))
(fma.f64 z (*.f64 a b) (fma.f64 z t (fma.f64 y a x)))
(fma.f64 z (+.f64 t (*.f64 a b)) (fma.f64 y a x))
(fma.f64 y a (fma.f64 z (fma.f64 a b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 x (+.f64 (*.f64 z a) (*.f64 y t))) (*.f64 y (*.f64 z b)))
(fma.f64 y (*.f64 z b) (fma.f64 y t (fma.f64 z a x)))
(fma.f64 y (+.f64 t (*.f64 z b)) (fma.f64 z a x))
(fma.f64 y t (fma.f64 z (fma.f64 y b a) x))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 x (*.f64 z b)) (+.f64 (*.f64 t a) (*.f64 y (*.f64 z a))))
(+.f64 (fma.f64 z b x) (*.f64 a (fma.f64 y z t)))
(fma.f64 a (fma.f64 y z t) (fma.f64 z b x))
(fma.f64 t a (fma.f64 z (fma.f64 y a b) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 x (*.f64 y t)) (+.f64 (*.f64 z a) (*.f64 (*.f64 t a) b)))
(fma.f64 a (*.f64 t b) (fma.f64 y t (fma.f64 z a x)))
(fma.f64 a (+.f64 z (*.f64 t b)) (fma.f64 y t x))
(fma.f64 z a (fma.f64 t (fma.f64 a b y) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a))))
(fma.f64 z (*.f64 a b) (fma.f64 z t (fma.f64 y a x)))
(fma.f64 z (+.f64 t (*.f64 a b)) (fma.f64 y a x))
(fma.f64 y a (fma.f64 z (fma.f64 a b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y b) (*.f64 t a))))
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 y b x)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y b x))
(fma.f64 a (fma.f64 z b t) (fma.f64 y b x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 t (*.f64 z b))))
(fma.f64 t (*.f64 z b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 t (+.f64 a (*.f64 z b)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 t (fma.f64 z b a) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 a b) (*.f64 t (*.f64 z a))))
(fma.f64 t (*.f64 z a) (fma.f64 a b (fma.f64 y z x)))
(fma.f64 a (+.f64 b (*.f64 z t)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 a (fma.f64 z t b) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t b) (*.f64 a (*.f64 z b))))
(fma.f64 z (*.f64 a b) (fma.f64 t b (fma.f64 y z x)))
(fma.f64 b (+.f64 t (*.f64 z a)) (fma.f64 y z x))
(fma.f64 z (fma.f64 a b y) (fma.f64 t b x))
Compiler

Compiled 27 to 19 computations (29.6% saved)

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
89×fma-def_binary64
23×associate-+l+_binary64
21×associate-+r+_binary64
19×+-commutative_binary64
10×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01422
12716
26915
314813
419113
520313
620613
Stop Event
saturated
Counts
1 → 2
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 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(fma.f64 a (*.f64 z b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))

eval1.0ms (0%)

Compiler

Compiled 31 to 16 computations (48.4% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
3.8b
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
2.1b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 37 to 22 computations (40.5% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

Compiled 55 to 13 computations (76.4% saved)

series27.0ms (0.2%)

Counts
4 → 204
Calls

51 calls:

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

rewrite100.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
854×log-prod_binary64
458×fma-neg_binary64
296×expm1-udef_binary64
296×log1p-udef_binary64
245×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01449
131137
2468637
Stop Event
node limit
Counts
4 → 170
Calls
Call 1
Inputs
(*.f64 (*.f64 a z) b)
(+.f64 x (*.f64 y z))
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z))) (cbrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (*.f64 z b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 z b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 a z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (*.f64 z b))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 z y))) (/.f64 (pow.f64 (*.f64 z y) 2) (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z y x)) (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)) (cbrt.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2)) (/.f64 1 (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x)))) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 z y)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3)) (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3)) (+.f64 (pow.f64 (*.f64 z y) 2) (-.f64 (*.f64 x x) (*.f64 x (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2)) (-.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z y) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 z y) (fma.f64 z y (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z y) 2))) (neg.f64 (-.f64 x (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (*.f64 x x)) (fma.f64 z y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z y x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z y x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z y x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) z) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z y x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z y x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (cbrt.f64 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z y)) (sqrt.f64 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 z y))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a t (fma.f64 z y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 z y x) 2) (-.f64 (fma.f64 z y x) (*.f64 a t))) (/.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (fma.f64 z y x) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a t (fma.f64 z y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a t (fma.f64 z y x))) (cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)) (cbrt.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) (sqrt.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2)) (/.f64 1 (-.f64 (fma.f64 z y x) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x)))) (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 z y x) (*.f64 a t)) (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (fma.f64 z y x) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (fma.f64 z y x) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a t) 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 a t) 2))) (neg.f64 (-.f64 (fma.f64 z y x) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 z y (*.f64 a t)) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (fma.f64 z y (*.f64 a t)) (fma.f64 z y (*.f64 a t))) (*.f64 x (fma.f64 z y (*.f64 a t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (fma.f64 z y (*.f64 a t)) (fma.f64 z y (*.f64 a t)))) (-.f64 x (fma.f64 z y (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (fma.f64 z y x) 2)) (-.f64 (*.f64 a t) (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a t (fma.f64 z y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a t (fma.f64 z y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 z y (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (pow.f64 (exp.f64 t) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y x)) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 t) a) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y (*.f64 a t))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y (*.f64 a t))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 y) z) (pow.f64 (exp.f64 t) a)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a t (fma.f64 z y x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 z y (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z y x) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)) (cbrt.f64 (fma.f64 z y x)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (fma.f64 z y (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 z y (*.f64 a t)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))) (/.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (/.f64 1 (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))) (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b))) (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2))) (neg.f64 (-.f64 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 a (+.f64 t (*.f64 z b))) 3)) (+.f64 (pow.f64 (fma.f64 z y x) 2) (-.f64 (*.f64 (*.f64 a (+.f64 t (*.f64 z b))) (*.f64 a (+.f64 t (*.f64 z b)))) (*.f64 (fma.f64 z y x) (*.f64 a (+.f64 t (*.f64 z b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (*.f64 (*.f64 a (+.f64 t (*.f64 z b))) (*.f64 a (+.f64 t (*.f64 z b))))) (-.f64 (fma.f64 z y x) (*.f64 a (+.f64 t (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b)))) (exp.f64 (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 b) (*.f64 a z)) (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b)))) (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (exp.f64 (*.f64 a (+.f64 t (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y x)) (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z y x))) (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x)))) (pow.f64 (exp.f64 b) (*.f64 a z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a t (fma.f64 z y x))) (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (fma.f64 z y x)))) (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a (+.f64 t (*.f64 z b)))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a (+.f64 t (*.f64 z b)))) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 t) a) (pow.f64 (exp.f64 b) (*.f64 a z))) (+.f64 1 (expm1.f64 (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z y x) (*.f64 a (+.f64 t (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t (fma.f64 z y x)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 a t (fma.f64 z y x)) 2)) (cbrt.f64 (fma.f64 a t (fma.f64 z y x))) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 z y x) 2)) (cbrt.f64 (fma.f64 z y x)) (*.f64 a (+.f64 t (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) (sqrt.f64 (fma.f64 a t (fma.f64 z y x))) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)) (*.f64 a (+.f64 t (*.f64 z b))))))))

simplify184.0ms (1.3%)

Algorithm
egg-herbie
Rules
1275×fma-neg_binary64
1117×fma-def_binary64
185×cancel-sign-sub-inv_binary64
150×distribute-rgt-in_binary64
134×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0561812
11881693
23941693
37901693
420051693
533421693
638321693
741371693
841631693
941631693
1042991693
1142991693
Stop Event
saturated
Counts
374 → 204
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 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 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.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 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(+.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) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) 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 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(+.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)))
Outputs
(*.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 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.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 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
x
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 z y (*.f64 a t))
(fma.f64 a t (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 y z (*.f64 a (+.f64 (*.f64 b z) t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (+.f64 (*.f64 b z) t) a x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 y z (fma.f64 a (*.f64 b z) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 (*.f64 b z) t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (+.f64 (*.f64 b z) t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
3.7b
(fma.f64 a (fma.f64 z b t) x)
Compiler

Compiled 33 to 9 computations (72.7% saved)

series13.0ms (0.1%)

Counts
2 → 132
Calls

33 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
(fma.f64 a (fma.f64 z b t) x)
1.0ms
z
@0
(fma.f64 a (fma.f64 z b t) x)
1.0ms
b
@inf
(fma.f64 a (fma.f64 z b t) x)
1.0ms
z
@-inf
(fma.f64 a (fma.f64 z b t) x)
1.0ms
a
@0
(fma.f64 a (fma.f64 z b t) x)

rewrite68.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
977×pow1_binary64
889×add-log-exp_binary64
889×log1p-expm1-u_binary64
889×expm1-log1p-u_binary64
866×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01022
119722
2235522
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (fma.f64 z b t)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 a (fma.f64 z b t) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) (cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2)) (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 a (fma.f64 z b t)) (*.f64 a (fma.f64 z b t))) (-.f64 (*.f64 x x) (*.f64 (*.f64 a (fma.f64 z b t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a (fma.f64 z b t)) (*.f64 a (fma.f64 z b t))) (*.f64 x x)) (-.f64 (*.f64 a (fma.f64 z b t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (fma.f64 z b t) x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 a (fma.f64 z b t) x) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z y) (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z y) 1) (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 2) (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) (sqrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3)) (+.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (-.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2) (*.f64 (*.f64 z y) (fma.f64 a (fma.f64 z b t) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2)) (-.f64 (*.f64 z y) (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (fma.f64 a (fma.f64 z b t) x))))))))

simplify137.0ms (1%)

Algorithm
egg-herbie
Rules
1240×fma-neg_binary64
695×fma-def_binary64
292×cancel-sign-sub-inv_binary64
189×distribute-rgt-in_binary64
128×associate--r+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0511304
11561301
22861301
35361301
410581301
521011301
630061301
737961301
840131301
940131301
1040701301
Stop Event
saturated
Counts
175 → 85
Calls
Call 1
Inputs
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 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 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 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 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 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(+.f64 (*.f64 y z) (*.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))))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
Outputs
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 b z) a x)
(fma.f64 b (*.f64 z a) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (fma.f64 b a y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(*.f64 z (fma.f64 b a y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 t a x))
(fma.f64 t a (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 y z (fma.f64 a (*.f64 b z) x))
(fma.f64 z (fma.f64 b a y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 y z (*.f64 (fma.f64 z b t) a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z (fma.f64 b a y) (*.f64 t a))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))
(fma.f64 y z (fma.f64 (fma.f64 z b t) a x))
(fma.f64 t a (fma.f64 z (fma.f64 b a y) x))
(fma.f64 z y (fma.f64 (fma.f64 b z t) a x))

eval60.0ms (0.4%)

Compiler

Compiled 5228 to 1171 computations (77.6% saved)

prune69.0ms (0.5%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New27712289
Fresh000
Picked101
Done101
Total27912291
Error
0.0b
Counts
291 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
40.1b
(*.f64 z (+.f64 (*.f64 a b) y))
18.6b
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
12.6b
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
16.3b
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
38.2b
(*.f64 (+.f64 t (*.f64 b z)) a)
27.0b
(+.f64 (*.f64 y z) x)
26.9b
(fma.f64 z y x)
37.7b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
15.7b
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b))
26.2b
(fma.f64 z (fma.f64 b a y) (*.f64 t a))
24.8b
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b))
49.4b
(*.f64 z y)
Compiler

Compiled 334 to 222 computations (33.5% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 10 computations (67.7% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

24 calls:

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

rewrite75.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
577×fma-def_binary64
567×log-prod_binary64
449×pow-prod-down_binary64
306×pow2_binary64
304×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
122014
2316314
Stop Event
node limit
Counts
2 → 151
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 y z (fma.f64 a t x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (-.f64 (*.f64 y z) (fma.f64 a t x))) (/.f64 (pow.f64 (fma.f64 a t x) 2) (-.f64 (*.f64 y z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) 2) (cbrt.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a t x))) (sqrt.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3)) (/.f64 1 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2)) (/.f64 1 (-.f64 (*.f64 y z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2)) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y z) (fma.f64 a t x)) (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3)) (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3)) (+.f64 (pow.f64 (fma.f64 a t x) 2) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 y z) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2)) (-.f64 (*.f64 y z) (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3))) (neg.f64 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2))) (neg.f64 (-.f64 (*.f64 y z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 2) (-.f64 (*.f64 x x) (*.f64 (fma.f64 y z (*.f64 a t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a t x) 2) (pow.f64 (*.f64 y z) 2)) (-.f64 (fma.f64 a t x) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 2) (*.f64 x x)) (-.f64 (fma.f64 y z (*.f64 a t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (fma.f64 a t x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (fma.f64 a t x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 a t x) (-.f64 (fma.f64 a t x) (*.f64 y z)) (pow.f64 (*.f64 y z) 2)) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (fma.f64 a t x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 y z) (fma.f64 a t x)) (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (fma.f64 a t x) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 y z (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y z))) (exp.f64 (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y z)) (+.f64 1 (expm1.f64 (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y z))) (+.f64 1 (expm1.f64 (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (exp.f64 (fma.f64 y z (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 y z (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))) (exp.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a t x)) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))) (+.f64 1 (expm1.f64 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 y z (*.f64 a t))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 (*.f64 y z)) (pow.f64 (exp.f64 a) t)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (fma.f64 a t x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 y z (fma.f64 a t x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) 1 (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a t) 1 (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a t x) 1 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t x) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y z (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a t x)) (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2) (cbrt.f64 (fma.f64 a t x)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a t)) (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y z)) (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a t x)) (sqrt.f64 (fma.f64 a t x)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2))) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 a t) x)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y z (*.f64 a t)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 2) (cbrt.f64 (fma.f64 y z (*.f64 a t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y z (*.f64 a t))) (sqrt.f64 (fma.f64 y z (*.f64 a t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (cbrt.f64 (*.f64 y y))) (cbrt.f64 y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 a t x))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a t x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (*.f64 a t) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 a t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a t x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a t x)) (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a t x)) 2) (cbrt.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a t x)) (sqrt.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 a t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2)) (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a t) x) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (fma.f64 x x (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 a (*.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (-.f64 (*.f64 a t) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 a t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a t) 2)) (-.f64 x (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a t x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a t x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a t x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (-.f64 x (*.f64 a t)) (pow.f64 (*.f64 a t) 2)) (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 a t) x) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a t x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) t) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 a) t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a t x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a t x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a t) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a t)) (pow.f64 (cbrt.f64 (*.f64 a t)) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) x)))))

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01186
11986
22486
Stop Event
saturated
Counts
175 → 159
Calls
Call 1
Inputs
(+.f64 (*.f64 a t) x)
(*.f64 y z)
(*.f64 y z)
(+.f64 (*.f64 a t) x)
(*.f64 y z)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(*.f64 a t)
(*.f64 a t)
(+.f64 (*.f64 y z) x)
(*.f64 a t)
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
x
x
x
(*.f64 a t)
(*.f64 a t)
x
(*.f64 a t)
(*.f64 a t)
(*.f64 a t)
x
x
Outputs
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(*.f64 y z)
(*.f64 y z)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(*.f64 y z)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(*.f64 a t)
(*.f64 a t)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(*.f64 a t)
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
x
x
x
(*.f64 a t)
(*.f64 a t)
x
(*.f64 a t)
(*.f64 a t)
(*.f64 a t)
x
x

localize6.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series10.0ms (0.1%)

Counts
2 → 45
Calls

21 calls:

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

rewrite64.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
973×pow1_binary64
901×add-log-exp_binary64
901×log1p-expm1-u_binary64
901×expm1-log1p-u_binary64
93×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
117413
2247813
Stop Event
node limit
Counts
2 → 61
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 (*.f64 z a) b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z y) (*.f64 (*.f64 z a) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 z a) b) 1) (*.f64 (*.f64 z y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (fma.f64 a b y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (*.f64 z a) b) 3) (pow.f64 (*.f64 z y) 3)) (+.f64 (*.f64 (*.f64 (*.f64 z a) b) (*.f64 (*.f64 z a) b)) (-.f64 (*.f64 (*.f64 z y) (*.f64 z y)) (*.f64 (*.f64 (*.f64 z a) b) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (*.f64 z a) b) (*.f64 (*.f64 z a) b)) (*.f64 (*.f64 z y) (*.f64 z y))) (-.f64 (*.f64 (*.f64 z a) b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) z) (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))) (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (fma.f64 a b y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (fma.f64 a b y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (fma.f64 a b y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (fma.f64 a b y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (fma.f64 a b y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (fma.f64 a b y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (fma.f64 a b y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (fma.f64 a b y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 a b y) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 a b) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (*.f64 z y))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a b y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (-.f64 (*.f64 a b) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a b y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a b y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a b y)) (pow.f64 (cbrt.f64 (fma.f64 a b y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a b y)) 2) (cbrt.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a b y)) (sqrt.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (/.f64 1 (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))) (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a b) y) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3)) (+.f64 (*.f64 y y) (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 b (*.f64 a y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) (-.f64 (*.f64 a b) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y (-.f64 y (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 a b) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 a b) 2)) (-.f64 y (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a b y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a b y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a b y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a b y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a b y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a b y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a b y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a b y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a b y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b a y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a b) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (*.f64 a b)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 y) (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a b)) (sqrt.f64 (*.f64 a b)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (sqrt.f64 y) (*.f64 a b))))))

simplify113.0ms (0.8%)

Algorithm
egg-herbie
Rules
11×fma-def_binary64
*-commutative_binary64
+-commutative_binary64
associate-*l*_binary64
associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
013372
124345
237291
343291
Stop Event
saturated
Counts
106 → 70
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
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(fma.f64 y z (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 y (*.f64 a b)))
(*.f64 z (fma.f64 a b y))
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y

localize156.0ms (1.1%)

Local error

Found 2 expressions with local error:

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

Compiled 35 to 10 computations (71.4% saved)

series20.0ms (0.1%)

Counts
2 → 98
Calls

27 calls:

TimeVariablePointExpression
3.0ms
a
@inf
(*.f64 a (+.f64 (*.f64 z b) t))
2.0ms
x
@inf
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
1.0ms
z
@inf
(*.f64 a (+.f64 (*.f64 z b) t))
1.0ms
b
@inf
(*.f64 a (+.f64 (*.f64 z b) t))
1.0ms
z
@-inf
(*.f64 a (+.f64 (*.f64 z b) t))

rewrite97.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
594×log-prod_binary64
537×fma-def_binary64
487×pow-prod-down_binary64
313×pow2_binary64
249×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01019
122317
2333417
Stop Event
node limit
Counts
2 → 133
Calls
Call 1
Inputs
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (*.f64 z b)) 1) (*.f64 (*.f64 a t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (fma.f64 z b t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 (*.f64 a (*.f64 z b)) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 a (*.f64 z b)) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3)) a) (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) a) (fma.f64 z b (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3))) (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t))) (fma.f64 z b (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (fma.f64 z b t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a t)) (exp.f64 (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 z b t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 b a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z b) 2)) (*.f64 (cbrt.f64 (*.f64 z b)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (*.f64 (sqrt.f64 (*.f64 z b)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (*.f64 z b)) 1 (*.f64 (*.f64 a t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (cbrt.f64 (pow.f64 (*.f64 z b) 2))) (cbrt.f64 (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a t))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 a (fma.f64 z b t)))) (/.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (-.f64 x (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (fma.f64 z b t) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2) (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (/.f64 1 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (/.f64 1 (-.f64 x (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 a (fma.f64 z b t))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (+.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 a (fma.f64 z b t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (-.f64 x (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))) (neg.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))) (neg.f64 (-.f64 x (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (*.f64 x x)) (-.f64 (*.f64 a (fma.f64 z b t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (fma.f64 z b t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (-.f64 (*.f64 a (fma.f64 z b t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (*.f64 a (fma.f64 z b t))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (fma.f64 z b t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 a) (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (fma.f64 z b t) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (fma.f64 z b t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 b a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z b t) a x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (fma.f64 z b t)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) (cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (cbrt.f64 (*.f64 a (fma.f64 z b t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z b) 2)) (*.f64 (cbrt.f64 (*.f64 z b)) a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 z b t)) 2) (*.f64 (cbrt.f64 (fma.f64 z b t)) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t))) (sqrt.f64 (*.f64 a (fma.f64 z b t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (*.f64 (sqrt.f64 (*.f64 z b)) a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z b t)) (*.f64 (sqrt.f64 (fma.f64 z b t)) a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (cbrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) (sqrt.f64 (*.f64 a (*.f64 z b))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (fma.f64 z b t)) 2)) (cbrt.f64 (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (fma.f64 z b t))) (sqrt.f64 (fma.f64 z b t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 z b t) (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 z b t) (sqrt.f64 a)) (sqrt.f64 a) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (cbrt.f64 (pow.f64 (*.f64 z b) 2))) (cbrt.f64 (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (cbrt.f64 (*.f64 a a))) (cbrt.f64 a) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (fma.f64 a t x))))))

simplify26.0ms (0.2%)

Algorithm
egg-herbie
Rules
32×fma-def_binary64
11×+-commutative_binary64
10×*-commutative_binary64
associate-+r+_binary64
distribute-lft-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028763
168763
287763
393763
Stop Event
saturated
Counts
231 → 155
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 a (+.f64 (*.f64 z b) t))
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
Outputs
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 b z) a x)
(fma.f64 b (*.f64 z a) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 40 to 11 computations (72.5% saved)

series10.0ms (0.1%)

Counts
2 → 66
Calls

24 calls:

TimeVariablePointExpression
2.0ms
a
@inf
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
1.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))

rewrite75.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
657×log-prod_binary64
610×fma-def_binary64
336×pow2_binary64
311×fma-neg_binary64
232×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01121
124119
2350319
Stop Event
node limit
Counts
2 → 117
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (*.f64 b a))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (*.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (*.f64 b a)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (*.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (*.f64 b a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 b a)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (*.f64 b a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (*.f64 b a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (*.f64 b a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (*.f64 b a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z (*.f64 b a))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z y) 2) (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x))) (/.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 2) (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) (fma.f64 z y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (*.f64 z b) x) 3)) (/.f64 1 (fma.f64 (fma.f64 a (*.f64 z b) x) (-.f64 (fma.f64 a (*.f64 z b) x) (*.f64 z y)) (pow.f64 (*.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (fma.f64 a (*.f64 z b) x) 2)) (/.f64 1 (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 a (*.f64 z b) x) (-.f64 (fma.f64 a (*.f64 z b) x) (*.f64 z y)) (pow.f64 (*.f64 z y) 2)) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (*.f64 z b) x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x)) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (fma.f64 a (*.f64 z b) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (*.f64 z b) x) 3)) (fma.f64 (fma.f64 a (*.f64 z b) x) (-.f64 (fma.f64 a (*.f64 z b) x) (*.f64 z y)) (pow.f64 (*.f64 z y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (*.f64 z b) x) 3)) (+.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 2) (-.f64 (pow.f64 (*.f64 z y) 2) (*.f64 z (*.f64 y (fma.f64 a (*.f64 z b) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (fma.f64 a (*.f64 z b) x) 2)) (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (*.f64 z b) x) 3))) (neg.f64 (fma.f64 (fma.f64 a (*.f64 z b) x) (-.f64 (fma.f64 a (*.f64 z b) x) (*.f64 z y)) (pow.f64 (*.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (fma.f64 a (*.f64 z b) x) 2))) (neg.f64 (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z y x) 3) (pow.f64 (*.f64 z (*.f64 b a)) 3)) (+.f64 (pow.f64 (fma.f64 z y x) 2) (-.f64 (pow.f64 (*.f64 z (*.f64 b a)) 2) (*.f64 (fma.f64 z y x) (*.f64 z (*.f64 b a))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 2) (pow.f64 (*.f64 z y) 2)) (-.f64 (fma.f64 a (*.f64 z b) x) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 z y x) 2) (pow.f64 (*.f64 z (*.f64 b a)) 2)) (-.f64 (fma.f64 z y x) (*.f64 z (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 a (*.f64 z b) x) (-.f64 (fma.f64 a (*.f64 z b) x) (*.f64 z y)) (pow.f64 (*.f64 z y) 2)) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (fma.f64 a (*.f64 z b) x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 z y) (fma.f64 a (*.f64 z b) x)) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (fma.f64 a (*.f64 z b) x) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (*.f64 b a)) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 b a)))) (exp.f64 (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (*.f64 b a)) (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (*.f64 b a)))) (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (exp.f64 (fma.f64 a (*.f64 z b) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) y) (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) x))) (pow.f64 (exp.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a (*.f64 z b) x)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) x))) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 x)) (pow.f64 (exp.f64 z) (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z y x)) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 b a))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 x)) (+.f64 1 (expm1.f64 (*.f64 z (*.f64 b a))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 z y x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 b a) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (*.f64 b a)) 1 (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z y) 1 (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (fma.f64 a (*.f64 z b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a (*.f64 z b) x) 1 (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (*.f64 b a)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z y) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 a (*.f64 z b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a (*.f64 z b) x) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z y x) (*.f64 z (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z y)) (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (cbrt.f64 (*.f64 z y)) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z b)) 2) (*.f64 (cbrt.f64 (*.f64 z b)) a) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 z b)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (fma.f64 a (*.f64 z b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (fma.f64 a (*.f64 z b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (*.f64 b a))) (cbrt.f64 (pow.f64 (*.f64 z (*.f64 b a)) 2)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z (*.f64 b a)) 2)) (cbrt.f64 (*.f64 z (*.f64 b a))) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) y) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) x)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) z) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z y)) (sqrt.f64 (*.f64 z y)) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (*.f64 (sqrt.f64 (*.f64 z b)) a) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 a (*.f64 z b) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (*.f64 b a))) (sqrt.f64 (*.f64 z (*.f64 b a))) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) (sqrt.f64 (fma.f64 a (*.f64 z b) x)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (*.f64 b a)) 3)) (/.f64 1 (fma.f64 (*.f64 z (*.f64 b a)) (-.f64 (*.f64 z (*.f64 b a)) x) (*.f64 x x))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (*.f64 b a)) 2)) (/.f64 1 (-.f64 x (*.f64 z (*.f64 b a)))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z y x) 1 (*.f64 z (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 z y x)) 2) (cbrt.f64 (fma.f64 z y x)) (*.f64 z (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z y x)) (sqrt.f64 (fma.f64 z y x)) (*.f64 z (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (*.f64 z b)) 2)) (cbrt.f64 (*.f64 z b)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (*.f64 z b))) (sqrt.f64 (*.f64 z b)) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) 1) b (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (fma.f64 z y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (fma.f64 z y x))))))

simplify67.0ms (0.5%)

Algorithm
egg-herbie
Rules
410×fma-neg_binary64
387×fma-def_binary64
138×cancel-sign-sub-inv_binary64
90×distribute-rgt-in_binary64
80×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028516
176516
2154516
3344516
4751516
51263516
61640516
71847516
81920516
91930516
Stop Event
saturated
Counts
183 → 135
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 b z)) x)
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
x
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
x
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
x
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.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 (*.f64 b z)) x))
Outputs
(*.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 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
x
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)

eval102.0ms (0.7%)

Compiler

Compiled 7387 to 1951 computations (73.6% saved)

prune135.0ms (0.9%)

Pruning

20 alts after pruning (18 fresh and 2 done)

PrunedKeptTotal
New50415519
Fresh437
Picked101
Done224
Total51120531
Error
0b
Counts
531 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
35.2b
(+.f64 x (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) a) (fma.f64 z b (neg.f64 t))))
26.1b
(fma.f64 t a x)
34.9b
(+.f64 (*.f64 y z) (*.f64 a t))
53.2b
(*.f64 z (*.f64 a b))
17.8b
(+.f64 x (fma.f64 (*.f64 a b) z (*.f64 a t)))
47.9b
(*.f64 a t)
26.9b
(fma.f64 z y x)
27.0b
(+.f64 (*.f64 y z) x)
38.2b
(*.f64 (+.f64 t (*.f64 b z)) a)
40.6b
x
12.6b
(fma.f64 t a (+.f64 x (*.f64 y z)))
49.4b
(*.f64 z y)
38.4b
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (fma.f64 z y x))
40.1b
(*.f64 z (+.f64 (*.f64 a b) y))
39.1b
(+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))
53.0b
(*.f64 a (*.f64 z b))
31.1b
(+.f64 (*.f64 a (*.f64 b z)) x)
37.7b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
26.1b
(+.f64 (*.f64 a t) x)
30.0b
(+.f64 x (*.f64 b (*.f64 z a)))
Compiler

Compiled 487 to 332 computations (31.8% saved)

localize14.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 27 to 9 computations (66.7% saved)

localize5.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 8 computations (52.9% saved)

series2.0ms (0%)

Counts
1 → 9
Calls

9 calls:

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

rewrite56.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
707×pow1_binary64
655×add-log-exp_binary64
655×log1p-expm1-u_binary64
655×expm1-log1p-u_binary64
640×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065
11295
217755
Stop Event
node limit
Counts
1 → 35
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (-.f64 (*.f64 y z) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z x)) (pow.f64 (cbrt.f64 (fma.f64 y z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z x)) 2) (cbrt.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z x)) (sqrt.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z)))) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y z) x) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x)) (-.f64 (*.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x (-.f64 x (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 y z) 2)) (-.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) x)))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0524
1624
Stop Event
saturated
Counts
44 → 37
Calls
Call 1
Inputs
x
(*.f64 y z)
(*.f64 y z)
x
(*.f64 y z)
(*.f64 y z)
(*.f64 y z)
x
x
Outputs
x
(*.f64 y z)
(*.f64 y z)
x
(*.f64 y z)
(*.f64 y z)
(*.f64 y z)
x
x

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 9 computations (60.9% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

12 calls:

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

rewrite63.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
903×pow1_binary64
833×add-log-exp_binary64
833×log1p-expm1-u_binary64
833×expm1-log1p-u_binary64
814×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
088
11688
222708
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (*.f64 a t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 y z (*.f64 a t))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 y z) 2) (-.f64 (*.f64 y z) (*.f64 a t))) (/.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (*.f64 y z) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y z (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y z (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 2) (cbrt.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y z (*.f64 a t))) (sqrt.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2)) (/.f64 1 (-.f64 (*.f64 y z) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z)))) (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y z) (*.f64 a t)) (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a t) 2) (-.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 y z) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 y z) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 3) (pow.f64 (*.f64 a t) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 y z) 2) (*.f64 (*.f64 a t) (-.f64 (*.f64 a t) (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y z) 2) (pow.f64 (*.f64 a t) 2))) (neg.f64 (-.f64 (*.f64 y z) (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 y z) 2)) (-.f64 (*.f64 a t) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y z (*.f64 a t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y z (*.f64 a t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y z (*.f64 a t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y z (*.f64 a t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y z (*.f64 a t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y z) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (cbrt.f64 (*.f64 y z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)) (*.f64 a t))))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0748
1948
Stop Event
saturated
Counts
49 → 39
Calls
Call 1
Inputs
(*.f64 a t)
(*.f64 y z)
(*.f64 y z)
(*.f64 a t)
(*.f64 y z)
(*.f64 y z)
(*.f64 y z)
(*.f64 a t)
(*.f64 a t)
(*.f64 y z)
(*.f64 a t)
(*.f64 a t)
Outputs
(*.f64 a t)
(*.f64 y z)
(*.f64 y z)
(*.f64 a t)
(*.f64 y z)
(*.f64 y z)
(*.f64 y z)
(*.f64 a t)
(*.f64 a t)
(*.f64 y z)
(*.f64 a t)
(*.f64 a t)

localize6.0ms (0%)

Compiler

Compiled 13 to 7 computations (46.2% saved)

eval29.0ms (0.2%)

Compiler

Compiled 1595 to 535 computations (66.5% saved)

prune38.0ms (0.3%)

Pruning

20 alts after pruning (14 fresh and 6 done)

PrunedKeptTotal
New1203123
Fresh21113
Picked011
Done156
Total12320143
Error
0b
Counts
143 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
40.6b
x
17.8b
(+.f64 x (fma.f64 (*.f64 a b) z (*.f64 a t)))
34.9b
(+.f64 (*.f64 y z) (*.f64 a t))
53.2b
(*.f64 z (*.f64 a b))
47.9b
(*.f64 a t)
26.9b
(fma.f64 z y x)
27.0b
(+.f64 (*.f64 y z) x)
38.2b
(*.f64 (+.f64 t (*.f64 b z)) a)
34.9b
(fma.f64 t a (*.f64 z y))
49.4b
(*.f64 z y)
38.4b
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (fma.f64 z y x))
40.1b
(*.f64 z (+.f64 (*.f64 a b) y))
39.1b
(+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))
35.2b
(+.f64 x (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) a) (fma.f64 z b (neg.f64 t))))
53.0b
(*.f64 a (*.f64 z b))
31.1b
(+.f64 (*.f64 a (*.f64 b z)) x)
37.7b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
26.1b
(fma.f64 t a x)
26.1b
(+.f64 (*.f64 a t) x)
30.0b
(+.f64 x (*.f64 b (*.f64 z a)))
Compiler

Compiled 440 to 299 computations (32% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 35 to 10 computations (71.4% saved)

series11.0ms (0.1%)

Counts
2 → 108
Calls

27 calls:

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

rewrite66.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
721×prod-diff_binary64
531×log-prod_binary64
391×pow-prod-down_binary64
286×pow2_binary64
252×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01025
120725
2273923
Stop Event
node limit
Counts
2 → 89
Calls
Call 1
Inputs
(fma.f64 (*.f64 a b) z (*.f64 a t))
(+.f64 x (fma.f64 (*.f64 a b) z (*.f64 a t)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (*.f64 b z)) 1) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a t (*.f64 a (*.f64 b z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) (cbrt.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2)) (cbrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) (sqrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 b z)) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 b z)) 2) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 b z)) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (*.f64 a (*.f64 b z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) t) (exp.f64 (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (exp.f64 (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a (*.f64 b z))) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z))))) (/.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2) (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 b z) (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) 2) (cbrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) (sqrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3)) (/.f64 1 (fma.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) (-.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2)) (/.f64 1 (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) (-.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z)))) (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3)) (fma.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) (-.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3)) (+.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2) (-.f64 (*.f64 x x) (*.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2)) (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3))) (neg.f64 (fma.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) (-.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2))) (neg.f64 (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2) (*.f64 x x)) (-.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) (-.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (fma.f64 a t (*.f64 a (*.f64 b z)))) (-.f64 (*.f64 x x) (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (*.f64 a (*.f64 b z))))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t (*.f64 a (*.f64 b z))))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 a t (*.f64 a (*.f64 b z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 b z) (fma.f64 a t x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 b z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 a b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t (*.f64 a (*.f64 b z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) (cbrt.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 a t (*.f64 a (*.f64 b z))) 2)) (cbrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) (sqrt.f64 (fma.f64 a t (*.f64 a (*.f64 b z)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 a t (*.f64 a (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b z))) 2) (cbrt.f64 (*.f64 a (*.f64 b z))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 b z))) (sqrt.f64 (*.f64 a (*.f64 b z))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) (cbrt.f64 (*.f64 z z))) (cbrt.f64 z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a b) (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 a t x))))))

simplify81.0ms (0.6%)

Algorithm
egg-herbie
Rules
465×fma-neg_binary64
424×fma-def_binary64
95×cancel-sign-sub-inv_binary64
71×unsub-neg_binary64
69×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
034849
199849
2202849
3392849
4876849
51389849
61618849
71821849
81894849
91904849
Stop Event
saturated
Counts
197 → 110
Calls
Call 1
Inputs
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.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 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 (*.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 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 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 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
x
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
x
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
Outputs
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
x
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
x
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 a (fma.f64 z b t) x)

localize6.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)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series4.0ms (0%)

Counts
1 → 44
Calls

12 calls:

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

rewrite60.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
911×pow1_binary64
841×add-log-exp_binary64
841×log1p-expm1-u_binary64
841×expm1-log1p-u_binary64
822×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0810
11678
222678
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f64 (+.f64 t (*.f64 b z)) a)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 t a) (*.f64 (*.f64 b z) a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b z) a) (*.f64 t a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 b z t) a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3)) a) (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3))) (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2))) (-.f64 t (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 b z t) a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 b z t) a) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 b z t) a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 b z t) a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 b z t) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 b z t)) a))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 b z t) a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 b z t) 3) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (fma.f64 b z t) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 b z t) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 b z t) a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 b z t) a)))))))

simplify16.0ms (0.1%)

Algorithm
egg-herbie
Rules
11×fma-def_binary64
*-commutative_binary64
+-commutative_binary64
distribute-lft-out_binary64
associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015331
137331
248331
350331
Stop Event
saturated
Counts
65 → 28
Calls
Call 1
Inputs
(*.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 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 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 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 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 (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
Outputs
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 30 to 10 computations (66.7% saved)

series4.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite76.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
532×log-prod_binary64
401×pow-prod-down_binary64
389×fma-def_binary64
377×exp-prod_binary64
260×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0911
119010
226148
Stop Event
node limit
Counts
1 → 83
Calls
Call 1
Inputs
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (fma.f64 z b t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a t) 2) (*.f64 a (-.f64 t (*.f64 z b)))) (/.f64 (pow.f64 (*.f64 (*.f64 a z) b) 2) (*.f64 a (-.f64 t (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (+.f64 t (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (fma.f64 z b t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (fma.f64 z b t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) (pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 2) (cbrt.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t))) (sqrt.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 (*.f64 (*.f64 a z) b) 3)) (/.f64 1 (fma.f64 (*.f64 (*.f64 a z) b) (-.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 (*.f64 a z) b) 2)) (/.f64 1 (*.f64 a (-.f64 t (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (*.f64 a z) b) (-.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) (pow.f64 (*.f64 a t) 2)) (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 (*.f64 (*.f64 a z) b) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 a (-.f64 t (*.f64 z b))) (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 (*.f64 a z) b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 (*.f64 (*.f64 a z) b) 3)) (fma.f64 (*.f64 (*.f64 a z) b) (-.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) (pow.f64 (*.f64 a t) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 (*.f64 (*.f64 a z) b) 3)) (+.f64 (pow.f64 (*.f64 (*.f64 a z) b) 2) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 a (*.f64 t (*.f64 (*.f64 a z) b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 (*.f64 a z) b) 2)) (*.f64 a (-.f64 t (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 (*.f64 (*.f64 a z) b) 3))) (neg.f64 (fma.f64 (*.f64 (*.f64 a z) b) (-.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) (pow.f64 (*.f64 a t) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 (*.f64 a z) b) 2))) (neg.f64 (*.f64 a (-.f64 t (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (*.f64 a z) b) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (fma.f64 z b t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (*.f64 a z) b) (-.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) (pow.f64 (*.f64 a t) 2)) (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 (*.f64 (*.f64 a z) b) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 a (-.f64 t (*.f64 z b))) (-.f64 (pow.f64 (*.f64 a t) 2) (pow.f64 (*.f64 (*.f64 a z) b) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 a (fma.f64 z b t)))) 2)) (cbrt.f64 (log.f64 (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 a (fma.f64 z b t))))) (sqrt.f64 (log.f64 (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (pow.f64 (exp.f64 a) (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) t) (+.f64 1 (expm1.f64 (*.f64 (*.f64 a z) b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a t))) (+.f64 1 (expm1.f64 (*.f64 (*.f64 a z) b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 a z) b))) (pow.f64 (exp.f64 a) t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) (*.f64 z b)) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 a z) b))) (+.f64 1 (expm1.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 z b t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (fma.f64 z b t)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (fma.f64 z b t)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 z b t))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t a (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a t) 1 (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 a b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) b) 1 (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 a z) b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 a z) b)) (pow.f64 (cbrt.f64 (*.f64 (*.f64 a z) b)) 2) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a z) b)) 2) (cbrt.f64 (*.f64 (*.f64 a z) b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) t) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a z)) 2) (*.f64 (cbrt.f64 (*.f64 a z)) b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) a) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b b)) (*.f64 (cbrt.f64 b) (*.f64 a z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a t)) (cbrt.f64 (pow.f64 (*.f64 a t) 2)) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 a t) 2)) (cbrt.f64 (*.f64 a t)) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (*.f64 a z) b)) (sqrt.f64 (*.f64 (*.f64 a z) b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) t) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a z)) (*.f64 (sqrt.f64 (*.f64 a z)) b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) a) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (*.f64 (*.f64 a z) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) (cbrt.f64 (*.f64 b b))) (cbrt.f64 b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b a) z (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (pow.f64 (cbrt.f64 (*.f64 a z)) 2)) (cbrt.f64 (*.f64 a z)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 (*.f64 a z))) (sqrt.f64 (*.f64 a z)) (*.f64 a t))))))

simplify41.0ms (0.3%)

Algorithm
egg-herbie
Rules
230×fma-neg_binary64
153×fma-def_binary64
61×associate-*l*_binary64
57×cancel-sign-sub-inv_binary64
55×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023363
163363
2154363
3322363
4657363
5926363
61046363
71097363
Stop Event
saturated
Counts
131 → 92
Calls
Call 1
Inputs
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.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 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.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 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 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 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)))
Outputs
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (fma.f64 z b t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (fma.f64 z b t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (fma.f64 z b t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))

localize7.0ms (0%)

Compiler

Compiled 19 to 8 computations (57.9% saved)

eval51.0ms (0.4%)

Compiler

Compiled 3681 to 945 computations (74.3% saved)

prune57.0ms (0.4%)

Pruning

20 alts after pruning (10 fresh and 10 done)

PrunedKeptTotal
New2606266
Fresh549
Picked011
Done1910
Total26620286
Error
0b
Counts
286 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
39.3b
(fma.f64 (*.f64 b a) z (*.f64 a t))
53.0b
(*.f64 a (*.f64 z b))
31.1b
(+.f64 (*.f64 a (*.f64 z b)) x)
34.9b
(+.f64 (*.f64 y z) (*.f64 a t))
40.6b
x
47.9b
(*.f64 a t)
26.9b
(fma.f64 z y x)
53.2b
(*.f64 z (*.f64 a b))
34.9b
(fma.f64 t a (*.f64 z y))
26.1b
(+.f64 (*.f64 a t) x)
27.0b
(+.f64 (*.f64 y z) x)
38.2b
(*.f64 (+.f64 t (*.f64 b z)) a)
40.1b
(*.f64 z (+.f64 (*.f64 a b) y))
39.1b
(+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))
51.1b
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (*.f64 a t))
37.7b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
26.1b
(fma.f64 t a x)
52.0b
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))
30.0b
(+.f64 x (*.f64 b (*.f64 z a)))
49.4b
(*.f64 z y)
Compiler

Compiled 251 to 173 computations (31.1% saved)

regimes267.0ms (1.9%)

Counts
38 → 2
Calls
Call 1
Inputs
x
x
(*.f64 a t)
(*.f64 z y)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) x)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) x)
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 x (*.f64 b (*.f64 z a)))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(fma.f64 t a x)
(fma.f64 t a x)
(fma.f64 z y x)
(fma.f64 t a (*.f64 z y))
(fma.f64 (*.f64 b a) z (*.f64 a t))
(fma.f64 t a (+.f64 x (*.f64 y z)))
(+.f64 x (fma.f64 (*.f64 a b) z (*.f64 a t)))
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b))
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b))
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))
(fma.f64 z (fma.f64 b a y) (*.f64 t a))
(+.f64 x (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) a) (fma.f64 z b (neg.f64 t))))
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (*.f64 a t))
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (fma.f64 z y x))
Outputs
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Calls

7 calls:

63.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
52.0ms
y
42.0ms
a
36.0ms
b
22.0ms
t
Results
ErrorSegmentsBranch
2.1b1x
1.1b3y
2.1b1z
2.1b1t
0.6b2a
0.8b2b
0.8b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 362 to 127 computations (64.9% saved)

bsearch10.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
-5.850392312947233e+89
-1.598069794680488e+85
Compiler

Compiled 69 to 45 computations (34.8% saved)

regimes215.0ms (1.5%)

Counts
35 → 2
Calls
Call 1
Inputs
x
x
(*.f64 a t)
(*.f64 z y)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a t) x)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) x)
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 x (*.f64 b (*.f64 z a)))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(fma.f64 t a x)
(fma.f64 t a x)
(fma.f64 z y x)
(fma.f64 t a (*.f64 z y))
(fma.f64 (*.f64 b a) z (*.f64 a t))
(fma.f64 t a (+.f64 x (*.f64 y z)))
(+.f64 x (fma.f64 (*.f64 a b) z (*.f64 a t)))
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b))
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b))
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))
(fma.f64 z (fma.f64 b a y) (*.f64 t a))
(+.f64 x (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) a) (fma.f64 z b (neg.f64 t))))
Outputs
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Calls

7 calls:

50.0ms
y
40.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
35.0ms
a
25.0ms
t
19.0ms
x
Results
ErrorSegmentsBranch
2.1b1x
1.1b3y
2.1b1z
2.1b1t
1.1b2a
2.1b1b
0.8b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 327 to 120 computations (63.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-inf
-7.723781685858306e+304
Compiler

Compiled 30 to 21 computations (30% saved)

regimes238.0ms (1.7%)

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

6 calls:

52.0ms
z
44.0ms
x
40.0ms
y
33.0ms
b
32.0ms
t
Results
ErrorSegmentsBranch
10.4b4x
7.5b3y
7.3b4z
7.2b3t
7.5b3a
6.9b3b
Compiler

Compiled 180 to 74 computations (58.9% saved)

bsearch88.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
64.0ms
8.505415790478113e+148
1.219102952042142e+150
23.0ms
-14693103565411.047
-1.5764759868141796e-16
Compiler

Compiled 222 to 153 computations (31.1% saved)

regimes156.0ms (1.1%)

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

6 calls:

36.0ms
a
30.0ms
x
29.0ms
y
28.0ms
z
19.0ms
b
Results
ErrorSegmentsBranch
11.3b3x
10.0b3y
11.4b2z
12.6b1t
10.0b4a
9.8b2b
Compiler

Compiled 151 to 66 computations (56.3% saved)

bsearch89.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
89.0ms
8.505415790478113e+148
1.219102952042142e+150
Compiler

Compiled 210 to 147 computations (30% saved)

regimes452.0ms (3.2%)

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

6 calls:

104.0ms
b
101.0ms
z
81.0ms
x
71.0ms
y
45.0ms
a
Results
ErrorSegmentsBranch
14.0b6x
17.1b5y
16.2b5z
17.0b5t
16.7b5a
16.1b7b
Compiler

Compiled 142 to 65 computations (54.2% saved)

bsearch180.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
49.0ms
2.772879766392634e+60
1.588259208547528e+64
24.0ms
1.4936948615263083e-118
6.648620860454453e-115
28.0ms
8.491568749645182e-187
5.66843916041461e-186
54.0ms
-4.0556144258841084e-112
-1.9313587414908917e-115
24.0ms
-1.1359356546424513e+43
-3.2185361290655416e+28
Compiler

Compiled 30 to 21 computations (30% saved)

regimes977.0ms (6.8%)

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

6 calls:

279.0ms
x
250.0ms
b
249.0ms
a
87.0ms
y
54.0ms
t
Results
ErrorSegmentsBranch
13.2b9x
17.1b5y
16.2b5z
17.0b5t
16.7b5a
16.1b7b
Compiler

Compiled 133 to 63 computations (52.6% saved)

bsearch652.0ms (4.6%)

Algorithm
binary-search
Steps
TimeLeftRight
54.0ms
2.772879766392634e+60
1.588259208547528e+64
24.0ms
1.4936948615263083e-118
6.648620860454453e-115
169.0ms
8.491568749645182e-187
5.66843916041461e-186
55.0ms
4.465289602063735e-222
3.549542375367158e-218
23.0ms
6.805891224584618e-256
7.856086612440164e-255
120.0ms
6.864780957937609e-299
3.6345822210783117e-298
156.0ms
-4.0556144258841084e-112
-1.9313587414908917e-115
50.0ms
-7.550512763587508e-11
-7.965561233632055e-12
Compiler

Compiled 30 to 21 computations (30% saved)

regimes658.0ms (4.6%)

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

6 calls:

193.0ms
b
192.0ms
a
129.0ms
x
49.0ms
y
49.0ms
z
Results
ErrorSegmentsBranch
14.2b6x
17.1b5y
16.2b5z
17.0b5t
17.0b6a
16.1b7b
Compiler

Compiled 126 to 61 computations (51.6% saved)

bsearch535.0ms (3.7%)

Algorithm
binary-search
Steps
TimeLeftRight
154.0ms
2.772879766392634e+60
1.588259208547528e+64
62.0ms
1.4936948615263083e-118
6.648620860454453e-115
79.0ms
8.491568749645182e-187
5.66843916041461e-186
49.0ms
-4.0556144258841084e-112
-1.9313587414908917e-115
189.0ms
-7.550512763587508e-11
-7.965561233632055e-12
Compiler

Compiled 30 to 21 computations (30% saved)

regimes412.0ms (2.9%)

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

6 calls:

165.0ms
a
90.0ms
b
51.0ms
x
43.0ms
y
38.0ms
t
Results
ErrorSegmentsBranch
14.4b7x
17.4b5y
18.7b3z
17.0b5t
18.2b4a
18.6b5b
Compiler

Compiled 112 to 56 computations (50% saved)

bsearch472.0ms (3.3%)

Algorithm
binary-search
Steps
TimeLeftRight
161.0ms
2.772879766392634e+60
1.588259208547528e+64
22.0ms
6.648620860454453e-115
7.285941776662251e-110
59.0ms
8.491568749645182e-187
5.66843916041461e-186
24.0ms
-3.189634565979898e-72
-7.734767468335498e-98
150.0ms
-3.243150823716611e-70
-8.899019967384116e-71
54.0ms
-7.550512763587508e-11
-7.965561233632055e-12
Compiler

Compiled 30 to 21 computations (30% saved)

regimes380.0ms (2.7%)

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

6 calls:

94.0ms
x
71.0ms
t
70.0ms
y
56.0ms
a
43.0ms
b
Results
ErrorSegmentsBranch
18.5b7x
18.6b4y
18.7b3z
17.0b5t
18.2b4a
18.6b5b
Compiler

Compiled 98 to 52 computations (46.9% saved)

bsearch171.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
37.0ms
2.1286021875143142e-51
3.4205618867844126e-36
47.0ms
2.4993624231611803e-154
1.1643551043918473e-151
41.0ms
9.925897071846565e-200
2.143981593656971e-198
45.0ms
-1.6119965428106187e-28
-1.766487049603961e-31
Compiler

Compiled 30 to 21 computations (30% saved)

regimes153.0ms (1.1%)

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

6 calls:

35.0ms
b
34.0ms
x
21.0ms
z
21.0ms
a
20.0ms
y
Results
ErrorSegmentsBranch
19.7b5x
20.4b3y
18.7b3z
18.1b3t
19.5b3a
20.3b5b
Compiler

Compiled 91 to 51 computations (44% saved)

bsearch81.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
2.1286021875143142e-51
3.4205618867844126e-36
39.0ms
-1.6119965428106187e-28
-1.766487049603961e-31
Compiler

Compiled 30 to 21 computations (30% saved)

regimes192.0ms (1.3%)

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

6 calls:

49.0ms
a
45.0ms
x
31.0ms
b
28.0ms
z
26.0ms
y
Results
ErrorSegmentsBranch
22.6b5x
23.8b2y
22.5b4z
26.1b1t
23.6b5a
24.7b3b
Compiler

Compiled 71 to 47 computations (33.8% saved)

bsearch290.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
3.095093373837307e+236
1.016669659401574e+237
248.0ms
-111913704095.22339
-3.206884974786228e-7
30.0ms
-1.1390807533813e+153
-8.6737325905459e+150
Compiler

Compiled 514 to 395 computations (23.2% saved)

regimes489.0ms (3.4%)

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

6 calls:

180.0ms
z
167.0ms
b
61.0ms
x
28.0ms
a
26.0ms
y
Results
ErrorSegmentsBranch
26.7b6x
33.0b6y
33.2b8z
34.5b5t
32.9b7a
38.1b3b
Compiler

Compiled 61 to 46 computations (24.6% saved)

bsearch217.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
2.772879766392634e+60
1.588259208547528e+64
144.0ms
4.465289602063735e-222
3.549542375367158e-218
23.0ms
6.805891224584618e-256
7.856086612440164e-255
0.0ms
-7.031283581943568e-124
-6.861346613830855e-124
27.0ms
-3.298003913576571e+88
-1.4299138090894838e+78
Compiler

Compiled 30 to 21 computations (30% saved)

regimes77.0ms (0.5%)

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

6 calls:

17.0ms
z
17.0ms
y
14.0ms
t
12.0ms
x
11.0ms
a
Results
ErrorSegmentsBranch
30.1b3x
37.3b4y
38.2b5z
35.5b3t
36.2b3a
40.6b1b
Compiler

Compiled 53 to 43 computations (18.9% saved)

bsearch49.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
2.772879766392634e+60
1.588259208547528e+64
26.0ms
-3.189634565979898e-72
-7.734767468335498e-98
Compiler

Compiled 30 to 21 computations (30% saved)

regimes53.0ms (0.4%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

Counts
2 → 1
Calls
Call 1
Inputs
x
x
Outputs
x
Calls

6 calls:

34.0ms
t
3.0ms
a
3.0ms
b
3.0ms
z
3.0ms
y
Results
ErrorSegmentsBranch
40.6b1x
40.6b1y
40.6b1z
40.6b1t
40.6b1a
40.6b1b
Compiler

Compiled 50 to 42 computations (16% saved)

simplify22.0ms (0.2%)

Algorithm
egg-herbie
Rules
12×+-commutative_binary64
11×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0128782
1156782
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 a -9999999999999999594167244563503627314919960896484514396697390098067039229509544255160320) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(if (<=.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) -inf.0) (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(if (<=.f64 b -940358628186307/64) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 b 1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))
(if (<=.f64 b 1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 b (*.f64 z a))))
(if (<=.f64 x -11359356546424513292503930648689229908934656) (+.f64 (*.f64 y z) x) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y)) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 (*.f64 y z) x) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 1617529353065987/23562723457267347065789548996709904988477547858392600710143027597506337283178622239730365539602600561360255566462503270175052892578043215543382498428777152430442793326983968886135484527574528048424954488695685876133154086235991294800548739224807307629474678136450095282906365419648413375507379824836506306113175552) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 5752824181523631/8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 x 1817298310153157/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 (*.f64 y z) x) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 (*.f64 y z) x) (if (<=.f64 x -630036821803051/1942668892225729070919461906823518906642406839052139521251812409738904285205208498176) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 x -99142461582353/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (+.f64 (*.f64 y z) x) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 7373771826992607/11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))
(if (<=.f64 t -3594872416213187/22300745198530623141535718272648361505980416) (+.f64 (*.f64 a t) x) (if (<=.f64 t 1069292903274373/10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048) (+.f64 (*.f64 y z) x) (if (<=.f64 t 7545999896816969/30191699398572330817932436647906151127335369763331523427009650401964993299137190816689013801421270140331747000246110759198164677039398341060491474011461568349195162615808) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t 3586687590685381/1684996666696914987166688442938726917102321526408785780068975640576) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 t -3594872416213187/22300745198530623141535718272648361505980416) (+.f64 (*.f64 a t) x) (if (<=.f64 t 3586687590685381/1684996666696914987166688442938726917102321526408785780068975640576) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))
(if (<=.f64 z -9000000000000000009230046625838093952489032098274002726230823463216416080205657041946506445895471199212081220836475439155733692547420118917750768795648) (*.f64 z (*.f64 a b)) (if (<=.f64 z -110000000000) (*.f64 z y) (if (<=.f64 z 999999999999999940205461314330949157639035769339395563281540824641288164893139324951747214686990494667615328372051330560380424582445502262385046995766402482607793500255578094113131409067638500218263478644773697770829313903654699186257920) (+.f64 (*.f64 a t) x) (*.f64 z y))))
(if (<=.f64 x -32980039135765709581335908040923902659271835805021912453435747442693665337778153229123584) x (if (<=.f64 x -520997997575091/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (*.f64 z y) (if (<=.f64 x 5752824181523631/8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376) (*.f64 a t) (if (<=.f64 x 1817298310153157/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 z y) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (*.f64 a t) x)))))
(if (<=.f64 x -99142461582353/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) x (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (*.f64 a t) x))
x
Outputs
(if (<=.f64 a -9999999999999999594167244563503627314919960896484514396697390098067039229509544255160320) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(if (<=.f64 a -9999999999999999594167244563503627314919960896484514396697390098067039229509544255160320) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))))
(if (<=.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) -inf.0) (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(if (<=.f64 (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))) -inf.0) (*.f64 z (+.f64 y (*.f64 a b))) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 y z))) (*.f64 b (*.f64 a z))))
(if (<=.f64 b -940358628186307/64) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 b 1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))
(if (<=.f64 b -940358628186307/64) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 b 1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 y z)) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b))))))
(if (<=.f64 b 1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 b (*.f64 z a))))
(if (<=.f64 b 1200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361548664795008007589484566806519110758981414610129649664) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 y z)) (+.f64 x (*.f64 b (*.f64 a z))))
(if (<=.f64 x -11359356546424513292503930648689229908934656) (+.f64 (*.f64 y z) x) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y)) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))))))
(if (<=.f64 x -11359356546424513292503930648689229908934656) (+.f64 x (*.f64 y z)) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 (*.f64 b (*.f64 a z)) (*.f64 y z)) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z)))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 (*.f64 y z) x) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 1617529353065987/23562723457267347065789548996709904988477547858392600710143027597506337283178622239730365539602600561360255566462503270175052892578043215543382498428777152430442793326983968886135484527574528048424954488695685876133154086235991294800548739224807307629474678136450095282906365419648413375507379824836506306113175552) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 5752824181523631/8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 x 1817298310153157/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 x (*.f64 y z)) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 x 1617529353065987/23562723457267347065789548996709904988477547858392600710143027597506337283178622239730365539602600561360255566462503270175052892578043215543382498428777152430442793326983968886135484527574528048424954488695685876133154086235991294800548739224807307629474678136450095282906365419648413375507379824836506306113175552) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 x 5752824181523631/8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 x 1817298310153157/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z))))))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 (*.f64 y z) x) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 x (*.f64 y z)) (if (<=.f64 x -8785061882568793/21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 x 3392735211370891/22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208) (+.f64 x (*.f64 b (*.f64 a z))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z)))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 (*.f64 y z) x) (if (<=.f64 x -630036821803051/1942668892225729070919461906823518906642406839052139521251812409738904285205208498176) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 x -99142461582353/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (+.f64 (*.f64 y z) x) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 y z) (*.f64 a t)) (if (<=.f64 x 7373771826992607/11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 y z) x)))))))
(if (<=.f64 x -2920963145993839/38685626227668133590597632) (+.f64 x (*.f64 y z)) (if (<=.f64 x -630036821803051/1942668892225729070919461906823518906642406839052139521251812409738904285205208498176) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 x -99142461582353/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (+.f64 x (*.f64 y z)) (if (<=.f64 x 2079960221446811/2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712) (+.f64 (*.f64 a t) (*.f64 y z)) (if (<=.f64 x 7373771826992607/11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (+.f64 (*.f64 a t) (*.f64 y z)) (+.f64 x (*.f64 y z))))))))
(if (<=.f64 t -3594872416213187/22300745198530623141535718272648361505980416) (+.f64 (*.f64 a t) x) (if (<=.f64 t 1069292903274373/10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048) (+.f64 (*.f64 y z) x) (if (<=.f64 t 7545999896816969/30191699398572330817932436647906151127335369763331523427009650401964993299137190816689013801421270140331747000246110759198164677039398341060491474011461568349195162615808) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t 3586687590685381/1684996666696914987166688442938726917102321526408785780068975640576) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 t -3594872416213187/22300745198530623141535718272648361505980416) (+.f64 x (*.f64 a t)) (if (<=.f64 t 1069292903274373/10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048) (+.f64 x (*.f64 y z)) (if (<=.f64 t 7545999896816969/30191699398572330817932436647906151127335369763331523427009650401964993299137190816689013801421270140331747000246110759198164677039398341060491474011461568349195162615808) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 t 3586687590685381/1684996666696914987166688442938726917102321526408785780068975640576) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 a t))))))
(if (<=.f64 t -3594872416213187/22300745198530623141535718272648361505980416) (+.f64 (*.f64 a t) x) (if (<=.f64 t 3586687590685381/1684996666696914987166688442938726917102321526408785780068975640576) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))
(if (<=.f64 t -3594872416213187/22300745198530623141535718272648361505980416) (+.f64 x (*.f64 a t)) (if (<=.f64 t 3586687590685381/1684996666696914987166688442938726917102321526408785780068975640576) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 a t))))
(if (<=.f64 z -9000000000000000009230046625838093952489032098274002726230823463216416080205657041946506445895471199212081220836475439155733692547420118917750768795648) (*.f64 z (*.f64 a b)) (if (<=.f64 z -110000000000) (*.f64 z y) (if (<=.f64 z 999999999999999940205461314330949157639035769339395563281540824641288164893139324951747214686990494667615328372051330560380424582445502262385046995766402482607793500255578094113131409067638500218263478644773697770829313903654699186257920) (+.f64 (*.f64 a t) x) (*.f64 z y))))
(if (<=.f64 z -9000000000000000009230046625838093952489032098274002726230823463216416080205657041946506445895471199212081220836475439155733692547420118917750768795648) (*.f64 z (*.f64 a b)) (if (<=.f64 z -110000000000) (*.f64 y z) (if (<=.f64 z 999999999999999940205461314330949157639035769339395563281540824641288164893139324951747214686990494667615328372051330560380424582445502262385046995766402482607793500255578094113131409067638500218263478644773697770829313903654699186257920) (+.f64 x (*.f64 a t)) (*.f64 y z))))
(if (<=.f64 x -32980039135765709581335908040923902659271835805021912453435747442693665337778153229123584) x (if (<=.f64 x -520997997575091/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (*.f64 z y) (if (<=.f64 x 5752824181523631/8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376) (*.f64 a t) (if (<=.f64 x 1817298310153157/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 z y) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (*.f64 a t) x)))))
(if (<=.f64 x -32980039135765709581335908040923902659271835805021912453435747442693665337778153229123584) x (if (<=.f64 x -520997997575091/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (*.f64 y z) (if (<=.f64 x 5752824181523631/8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376) (*.f64 a t) (if (<=.f64 x 1817298310153157/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 y z) (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (*.f64 a t) x)))))
(if (<=.f64 x -99142461582353/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) x (if (<=.f64 x 2772879766392633979406594918028684662571840957031782773948416) (*.f64 a t) x))
x
Compiler

Compiled 626 to 308 computations (50.8% saved)

soundness150.0ms (1%)

Algorithm
egg-herbie
Rules
89×fma-def_binary64
23×associate-+l+_binary64
21×associate-+r+_binary64
19×+-commutative_binary64
10×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01422
12716
26915
314813
419113
520313
620613
Stop Event
saturated
Compiler

Compiled 232 to 140 computations (39.7% saved)

end298.0ms (2.1%)

Compiler

Compiled 548 to 166 computations (69.7% saved)

Profiling

Loading profile data...