Details

Time bar (total: 15.6s)

analyze508.0ms (3.3%)

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.3s (15%)

Results
1.5s8256×body256valid
796.0ms3802×body256infinite
Bogosity

preprocess101.0ms (0.6%)

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)

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

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 37 to 22 computations (40.5% saved)

localize75.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (*.f64 y z))
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))
6.2b
(*.f64 (*.f64 a z) b)
Compiler

Compiled 55 to 13 computations (76.4% saved)

series46.0ms (0.3%)

Counts
4 → 204
Calls

51 calls:

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

rewrite113.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 (+.f64 x (*.f64 y z)) (*.f64 t a))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 x (*.f64 y z))
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 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))))))))
((#(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))))))

simplify201.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
37911693
420081693
533611693
638511693
741551693
841811693
941811693
1043171693
1143171693
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 (*.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)))
(*.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)
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 (*.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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t 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 z (fma.f64 a b y) (fma.f64 a t x))
(fma.f64 a t (fma.f64 z (fma.f64 a b 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)
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)

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))
1.7b
(fma.f64 a (fma.f64 z b t) x)
Compiler

Compiled 33 to 9 computations (72.7% saved)

series14.0ms (0.1%)

Counts
2 → 132
Calls

33 calls:

TimeVariablePointExpression
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
a
@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)

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

simplify146.0ms (0.9%)

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

eval58.0ms (0.4%)

Compiler

Compiled 5208 to 1166 computations (77.6% saved)

prune116.0ms (0.7%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New27514289
Fresh000
Picked101
Done101
Total27714291
Error
0.0b
Counts
291 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
39.3b
(*.f64 (+.f64 t (*.f64 b z)) a)
17.2b
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
40.6b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
10.7b
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
22.5b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2))
24.6b
(fma.f64 z y x)
38.7b
(*.f64 z (+.f64 (*.f64 a b) y))
31.8b
(+.f64 x (*.f64 (*.f64 a z) b))
17.2b
(fma.f64 a (fma.f64 b z t) x)
24.2b
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
47.0b
(*.f64 z y)
24.6b
(+.f64 (*.f64 y z) x)
18.5b
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b))
25.1b
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 404 to 270 computations (33.2% saved)

localize98.0ms (0.6%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 10 computations (67.7% saved)

series6.0ms (0%)

Counts
2 → 24
Calls

24 calls:

TimeVariablePointExpression
0.0ms
a
@0
(+.f64 (*.f64 a t) x)
0.0ms
a
@inf
(+.f64 (*.f64 a t) x)
0.0ms
y
@-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
a
@-inf
(+.f64 (*.f64 a t) x)

rewrite78.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
2316214
Stop Event
node limit
Counts
2 → 151
Calls
Call 1
Inputs
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
Outputs
((#(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 (*.f64 a 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 (exp.f64 (*.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)) (exp.f64 (*.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)))))
((#(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 (fma.f64 a t x) (*.f64 y z)))))))) (#(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 a t (*.f64 y z)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (fma.f64 a t (*.f64 y z)) 2) (-.f64 (*.f64 x x) (*.f64 (fma.f64 a t (*.f64 y z)) 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 a t (*.f64 y z)) 2) (*.f64 x x)) (-.f64 (fma.f64 a t (*.f64 y z)) 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 (exp.f64 x) (exp.f64 (fma.f64 a t (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 a t (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t x))) (pow.f64 (exp.f64 z) y)))))) (#(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 1 (expm1.f64 (*.f64 y z))) (exp.f64 (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) y) (+.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 (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 (*.f64 a t))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 a t (*.f64 y z))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 z) y) (exp.f64 (*.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 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 a t (*.f64 y z)))))) (#(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 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 1 (*.f64 a t) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 a t (*.f64 y z)))))) (#(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 (*.f64 y z) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z z)) (*.f64 (cbrt.f64 z) y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x x)) (fma.f64 a t (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (fma.f64 a t (*.f64 y z)))))) (#(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 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 (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 y) 2) (*.f64 (cbrt.f64 y) z) (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 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 a t (*.f64 y z)))))) (#(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 (*.f64 y z)) (sqrt.f64 (*.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 y) (*.f64 (sqrt.f64 y) z) (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 (+.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 a t (*.f64 y z)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 a t (*.f64 y z))) 2) (cbrt.f64 (fma.f64 a t (*.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a t (*.f64 y z))) (sqrt.f64 (fma.f64 a t (*.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 z z))) (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 (pow.f64 (cbrt.f64 y) 2)) (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 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)))))))

simplify50.0ms (0.3%)

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
x
(*.f64 a t)
(*.f64 a t)
x
(*.f64 a t)
(*.f64 a t)
(*.f64 a t)
x
x
(+.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
Outputs
x
(*.f64 a t)
(*.f64 a t)
x
(*.f64 a t)
(*.f64 a t)
(*.f64 a t)
x
x
(+.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))
(fma.f64 a t (*.f64 y z))
x
x

localize4.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 t (*.f64 b z))
1.7b
(*.f64 (+.f64 t (*.f64 b z)) a)
Compiler

Compiled 25 to 9 computations (64% saved)

series9.0ms (0.1%)

Counts
2 → 71
Calls

21 calls:

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

rewrite175.0ms (1.1%)

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
0817
116713
2226713
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 t (*.f64 b z))
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)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 b z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 t t) (-.f64 t (*.f64 b z))) (/.f64 (pow.f64 (*.f64 b z) 2) (-.f64 t (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 b z t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 b z t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 b z t)) (pow.f64 (cbrt.f64 (fma.f64 b z t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 b z t)) 2) (cbrt.f64 (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 b z t)) (sqrt.f64 (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3)) (/.f64 1 (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) (/.f64 1 (-.f64 t (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t))) (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 t (*.f64 b z)) (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.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 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3)) (+.f64 (pow.f64 (*.f64 b z) 2) (-.f64 (*.f64 t t) (*.f64 t (*.f64 b z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) (-.f64 t (*.f64 b z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 b z) 3))) (neg.f64 (fma.f64 t t (*.f64 (*.f64 b z) (-.f64 (*.f64 b z) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2))) (neg.f64 (-.f64 t (*.f64 b z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 b z) 2) (*.f64 t t)) (-.f64 (*.f64 b z) t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 b z t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b z t) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 b z t)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 b z t)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 b z t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 b z t) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 b z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b z t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z b t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 t (*.f64 b z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b z) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 b z)) 2) (cbrt.f64 (*.f64 b z)) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (cbrt.f64 t) (*.f64 b z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b z)) (sqrt.f64 (*.f64 b z)) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (sqrt.f64 t) (*.f64 b z))))))

simplify42.0ms (0.3%)

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
015445
137445
248445
350445
Stop Event
saturated
Counts
127 → 67
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))
(*.f64 z b)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
t
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
t
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
t
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(*.f64 z b)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(*.f64 z b)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 z b) t)
t
(*.f64 b z)
(*.f64 b z)
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))
(*.f64 z b)
(*.f64 b z)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 z b)
(*.f64 b z)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 z b)
(*.f64 b z)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 (*.f64 z b) t)
(fma.f64 z b t)
(fma.f64 b z t)
t
(*.f64 b z)
(*.f64 b z)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
6.2b
(*.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
@0
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
0.0ms
a
@inf
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
0.0ms
a
@-inf
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
0.0ms
t
@0
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
0.0ms
t
@-inf
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))

rewrite94.0ms (0.6%)

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

simplify177.0ms (1.1%)

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

localize26.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 10 computations (69.7% saved)

series5.0ms (0%)

Counts
1 → 60
Calls

15 calls:

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

rewrite109.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
556×log-prod_binary64
416×pow-prod-down_binary64
412×exp-prod_binary64
334×fma-def_binary64
290×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01014
120912
2282312
Stop Event
node limit
Counts
1 → 80
Calls
Call 1
Inputs
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 a t x) 2) (fma.f64 a t (-.f64 x (*.f64 a (*.f64 z b))))) (/.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (fma.f64 a t (-.f64 x (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 a t x) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (/.f64 1 (fma.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t x)) (pow.f64 (fma.f64 a t x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 a t x) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (/.f64 1 (fma.f64 a t (-.f64 x (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t x)) (pow.f64 (fma.f64 a t x) 2)) (+.f64 (pow.f64 (fma.f64 a t x) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 a t (-.f64 x (*.f64 a (*.f64 z b)))) (-.f64 (pow.f64 (fma.f64 a t 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 x) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (fma.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t x)) (pow.f64 (fma.f64 a t x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 a t 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 x) 2) (*.f64 (fma.f64 a t x) (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 a t x) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (fma.f64 a t (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 a t x) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))) (neg.f64 (fma.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t x)) (pow.f64 (fma.f64 a t x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 a t x) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2))) (neg.f64 (fma.f64 a t (-.f64 x (*.f64 a (*.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 x) 2)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t 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 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) (fma.f64 a t x)) (pow.f64 (fma.f64 a t x) 2)) (+.f64 (pow.f64 (fma.f64 a t x) 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 a t (-.f64 x (*.f64 a (*.f64 z b)))) (-.f64 (pow.f64 (fma.f64 a t x) 2) (pow.f64 (*.f64 a (*.f64 z b)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))) 2)) (cbrt.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))) (sqrt.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 a t 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 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 x))) (+.f64 1 (expm1.f64 (*.f64 a (*.f64 z b))))))))) (#(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 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 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 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 z b) (fma.f64 a t x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a t (+.f64 x (*.f64 a (*.f64 z b))))))) (#(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 t a (+.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a t x) 1 (*.f64 a (*.f64 z b)))))) (#(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 (*.f64 a z) b (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 (*.f64 z b)) 1 (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 a t x) (*.f64 a (*.f64 z b)))))) (#(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 1 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b b)) (*.f64 (cbrt.f64 b) (*.f64 a z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a t x)) (cbrt.f64 (pow.f64 (fma.f64 a t x) 2)) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 a t x) 2)) (cbrt.f64 (fma.f64 a t x)) (*.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)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) t) (+.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 2) (fma.f64 a t 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 (pow.f64 (cbrt.f64 (*.f64 a z)) 2) (*.f64 (cbrt.f64 (*.f64 a z)) b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a 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 a (*.f64 z b)))))) (#(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 a) (*.f64 (sqrt.f64 a) t) (+.f64 x (*.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))) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a z)) (*.f64 (sqrt.f64 (*.f64 a z)) b) (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 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (+.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (+.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) (cbrt.f64 (*.f64 b b))) (cbrt.f64 b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b a) z (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (pow.f64 (cbrt.f64 (*.f64 a z)) 2)) (cbrt.f64 (*.f64 a z)) (fma.f64 a t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 (*.f64 a z))) (sqrt.f64 (*.f64 a z)) (fma.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 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (+.f64 x (*.f64 a (*.f64 z b))))))))

simplify68.0ms (0.4%)

Algorithm
egg-herbie
Rules
465×fma-neg_binary64
423×fma-def_binary64
95×cancel-sign-sub-inv_binary64
71×unsub-neg_binary64
66×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033486
197486
2200486
3389486
4866486
51378486
61608486
71811486
81884486
91894486
Stop Event
saturated
Counts
140 → 100
Calls
Call 1
Inputs
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 (+.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 x (*.f64 a (*.f64 z b)))
(+.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 t)
(+.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 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 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))
(+.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))
Outputs
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) 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 a (fma.f64 z b t) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) 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 a (fma.f64 z b t) x)
(+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) 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 a (fma.f64 z b t) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 z b) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a t)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) 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 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.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 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
x
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
x
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) 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 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(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 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)

eval352.0ms (2.3%)

Compiler

Compiled 6359 to 1666 computations (73.8% saved)

prune266.0ms (1.7%)

Pruning

19 alts after pruning (16 fresh and 3 done)

PrunedKeptTotal
New44113454
Fresh639
Picked101
Done134
Total44919468
Error
0b
Counts
468 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
26.4b
(fma.f64 a t x)
47.0b
(*.f64 z y)
33.1b
(fma.f64 a t (*.f64 y z))
26.4b
(+.f64 (*.f64 a t) x)
53.6b
(*.f64 (*.f64 z b) a)
31.5b
(+.f64 x (*.f64 a (*.f64 z b)))
24.6b
(fma.f64 z y x)
47.6b
(+.f64 (*.f64 a t) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2))
33.1b
(+.f64 (*.f64 y z) (*.f64 a t))
54.0b
(*.f64 z (*.f64 a b))
40.3b
x
49.4b
(fma.f64 (*.f64 b (sqrt.f64 (*.f64 a z))) (sqrt.f64 (*.f64 a z)) (*.f64 a t))
48.5b
(*.f64 t a)
39.3b
(*.f64 (+.f64 t (*.f64 b z)) a)
40.6b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
31.5b
(fma.f64 a (*.f64 z b) x)
24.6b
(+.f64 (*.f64 y z) x)
31.8b
(+.f64 x (*.f64 (*.f64 a z) b))
24.2b
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
Compiler

Compiled 426 to 294 computations (31% saved)

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 40 to 11 computations (72.5% saved)

series59.0ms (0.4%)

Counts
3 → 116
Calls

36 calls:

TimeVariablePointExpression
38.0ms
t
@-inf
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
6.0ms
a
@-inf
(*.f64 a (+.f64 (*.f64 z b) t))
4.0ms
z
@-inf
(*.f64 a (+.f64 (*.f64 z b) t))
1.0ms
a
@0
(*.f64 a (+.f64 (*.f64 z b) t))
1.0ms
a
@inf
(*.f64 a (+.f64 (*.f64 z b) t))

rewrite237.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
664×log-prod_binary64
646×fma-def_binary64
339×pow2_binary64
296×fma-neg_binary64
233×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01125
124425
2361325
Stop Event
node limit
Counts
3 → 207
Calls
Call 1
Inputs
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 (*.f64 z b) t)
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 z a)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a t) (*.f64 b (*.f64 z a)))))) (#(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 b (*.f64 z a)) 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 b (*.f64 z a)) 3) (pow.f64 (*.f64 a t) 3)) (+.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 (*.f64 b (*.f64 z a)) (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 b (*.f64 z a)) 2) (pow.f64 (*.f64 a t) 2)) (-.f64 (*.f64 b (*.f64 z a)) (*.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) (-.f64 (*.f64 z b) 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))) (-.f64 (*.f64 z b) 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 b (*.f64 z a)))))))) (#(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 b (*.f64 z a)))))) (#(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 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 z a)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z b)) 2) (*.f64 (cbrt.f64 (*.f64 z b)) a) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) t) (*.f64 b (*.f64 z a)))))) (#(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 (cbrt.f64 (*.f64 t t)) (*.f64 (cbrt.f64 t) a) (*.f64 b (*.f64 z a)))))) (#(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 b (*.f64 z a)))))) (#(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 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (*.f64 z a)) 1 (*.f64 (*.f64 a t) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) 2) (cbrt.f64 (*.f64 b (*.f64 z a))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a t)) 2) (cbrt.f64 (*.f64 a t)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b (*.f64 z a))) (sqrt.f64 (*.f64 b (*.f64 z a))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 a) (sqrt.f64 t)) (*.f64 (sqrt.f64 a) (sqrt.f64 t)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 z b))) (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 z b))) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z b)) (sqrt.f64 a)) (*.f64 (sqrt.f64 (*.f64 z b)) (sqrt.f64 a)) (*.f64 a t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 t) (sqrt.f64 a)) (*.f64 (sqrt.f64 t) (sqrt.f64 a)) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (cbrt.f64 (*.f64 t t))) (cbrt.f64 t) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 t)) (sqrt.f64 t) (*.f64 b (*.f64 z a)))))) (#(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 (pow.f64 (cbrt.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) (pow.f64 (cbrt.f64 a) 2)) (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 fma.f64 (*.f64 t (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 b (*.f64 z a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 a)) (sqrt.f64 a) (*.f64 b (*.f64 z a)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z b t))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z b) 2) (-.f64 (*.f64 z b) t)) (/.f64 (*.f64 t t) (-.f64 (*.f64 z b) t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z b t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z b t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z b t)) (pow.f64 (cbrt.f64 (fma.f64 z b t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z b t)) 2) (cbrt.f64 (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z b t)) (sqrt.f64 (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3)) (/.f64 1 (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) (/.f64 1 (-.f64 (*.f64 z b) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2)) (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 z b) t) (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.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 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3)) (fma.f64 t t (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 b (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t)) (-.f64 (*.f64 z b) t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3))) (neg.f64 (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t))) (neg.f64 (-.f64 (*.f64 z b) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 z b) 2)) (-.f64 t (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z b t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z b t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z b t) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z b t)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z b t)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 t (-.f64 t (*.f64 z b)) (pow.f64 (*.f64 z b) 2)) (+.f64 (pow.f64 (*.f64 z b) 3) (pow.f64 t 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 z b) t) (-.f64 (pow.f64 (*.f64 z b) 2) (*.f64 t t))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z b t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z b))) (exp.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) b) (+.f64 1 (expm1.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z b))) (+.f64 1 (expm1.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 t)) (pow.f64 (exp.f64 z) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 t) (+.f64 1 (expm1.f64 (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 t)) (+.f64 1 (expm1.f64 (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z b t) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z b t)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z b t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b z t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) 1 t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t 1 (*.f64 z b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z b) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 t (*.f64 z b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z b)) (pow.f64 (cbrt.f64 (*.f64 z b)) 2) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z b)) 2) (cbrt.f64 (*.f64 z b)) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 t) (cbrt.f64 (*.f64 t t)) (*.f64 z b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 t t)) (cbrt.f64 t) (*.f64 z b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) b) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) z) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z b)) (sqrt.f64 (*.f64 z b)) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (sqrt.f64 t) (*.f64 z b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) b) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) z) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 b)) (sqrt.f64 b) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 z)) (sqrt.f64 z) t)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z y) 2) (-.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t)))) (/.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (-.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (fma.f64 z b t) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) 2) (cbrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) (sqrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (/.f64 1 (fma.f64 (*.f64 a (fma.f64 z b t)) (fma.f64 a (fma.f64 z b t) (neg.f64 (*.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 (*.f64 a (fma.f64 z b t)) 2)) (/.f64 1 (-.f64 (*.f64 z y) (*.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)) (fma.f64 a (fma.f64 z b t) (neg.f64 (*.f64 z y))) (pow.f64 (*.f64 z y) 2)) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t))) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 a (fma.f64 z b t)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3)) (fma.f64 (*.f64 a (fma.f64 z b t)) (fma.f64 a (fma.f64 z b t) (neg.f64 (*.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 (*.f64 a (fma.f64 z b t)) 3)) (+.f64 (pow.f64 (*.f64 a (fma.f64 z b t)) 2) (-.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (*.f64 a (fma.f64 z b t)) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (*.f64 a (fma.f64 z b t)) 2)) (-.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))) (neg.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (fma.f64 a (fma.f64 z b t) (neg.f64 (*.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 (*.f64 a (fma.f64 z b t)) 2))) (neg.f64 (-.f64 (*.f64 z y) (*.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) (pow.f64 (*.f64 z y) 2)) (fma.f64 a (fma.f64 z b t) (neg.f64 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 a (fma.f64 z b t)) (fma.f64 a (fma.f64 z b t) (neg.f64 (*.f64 z y))) (pow.f64 (*.f64 z y) 2)) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (*.f64 a (fma.f64 z b t)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 z y) (*.f64 a (fma.f64 z b t))) (-.f64 (pow.f64 (*.f64 z y) 2) (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) (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 z b t)))) (pow.f64 (exp.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a) (fma.f64 z b t)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(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 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (pow.f64 (exp.f64 a) (fma.f64 z b t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) y) (+.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 z y))) (+.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) (*.f64 z y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (fma.f64 z b t) (*.f64 z y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (fma.f64 z b t) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z y (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (*.f64 b a) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 z a) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z b t) a (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (fma.f64 z b t)) 1 (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y z (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z y) 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)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z y) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 z a)) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) (pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 2) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (fma.f64 z b t))) 2) (cbrt.f64 (*.f64 a (fma.f64 z b t))) (*.f64 z y))))) (#(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 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (fma.f64 z b t)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 z b)) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) z) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) y) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z y)) (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (cbrt.f64 (*.f64 z y)) (*.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) (*.f64 z y))))) (#(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))) (*.f64 z y))))) (#(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 (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (fma.f64 z b t)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 z b)) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) z) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) y) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z y)) (sqrt.f64 (*.f64 z y)) (*.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) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) 2) (cbrt.f64 (*.f64 b (*.f64 z a))) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b (*.f64 z a))) (sqrt.f64 (*.f64 b (*.f64 z a))) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 z b))) (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 z b))) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (*.f64 z b)) (sqrt.f64 a)) (*.f64 (sqrt.f64 (*.f64 z b)) (sqrt.f64 a)) (fma.f64 a t (*.f64 z y)))))) (#(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)) (*.f64 z y))))) (#(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)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 z b t) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (fma.f64 z b t) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a b) z (fma.f64 a t (*.f64 z y)))))) (#(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 a t (*.f64 z y)))))) (#(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 (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a) (fma.f64 a t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (cbrt.f64 (*.f64 y y))) (cbrt.f64 y) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 y)) (sqrt.f64 y) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 a (fma.f64 z b t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 z)) (sqrt.f64 z) (*.f64 a (fma.f64 z b t)))))))

simplify164.0ms (1.1%)

Algorithm
egg-herbie
Rules
529×fma-neg_binary64
495×fma-def_binary64
167×cancel-sign-sub-inv_binary64
95×distribute-rgt-in_binary64
93×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036899
192899
2178899
3368899
4795899
51353899
61855899
72246899
82353899
92357899
Stop Event
saturated
Counts
323 → 237
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)))
t
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(*.f64 b z)
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(*.f64 b z)
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
t
(*.f64 z b)
(*.f64 z b)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
t
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
t
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 y z)
(*.f64 y z)
(*.f64 a t)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(*.f64 y z)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
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)
t
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
t
(*.f64 z b)
(*.f64 b z)
(*.f64 z b)
(*.f64 b z)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 y z)
(*.f64 z y)
(*.f64 y z)
(*.f64 z y)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.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 z (+.f64 (*.f64 a b) y)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.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 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.f64 y z)
(*.f64 z y)
(*.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 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 t a))
(fma.f64 t a (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 z (fma.f64 b a y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z (fma.f64 a b y) (*.f64 t a))
(fma.f64 t a (*.f64 z (fma.f64 b a y)))
(fma.f64 z y (*.f64 (fma.f64 b z t) a))

localize8.0ms (0.1%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 8 computations (52.9% saved)

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series6.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite97.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
933×pow1_binary64
862×add-log-exp_binary64
862×log1p-expm1-u_binary64
862×expm1-log1p-u_binary64
842×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0810
11698
223288
Stop Event
node limit
Counts
1 → 36
Calls
Call 1
Inputs
(+.f64 x (*.f64 (*.f64 a z) b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 a (*.f64 z b) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 a (*.f64 z b)))) (/.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) (sqrt.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (/.f64 1 (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x))) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 a (*.f64 z b))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (*.f64 x x) (*.f64 (*.f64 x a) (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (-.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 a (*.f64 z b)) 3))) (neg.f64 (fma.f64 x x (*.f64 (*.f64 a (*.f64 z b)) (-.f64 (*.f64 a (*.f64 z b)) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2))) (neg.f64 (-.f64 x (*.f64 a (*.f64 z b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x x)) (-.f64 (*.f64 a (*.f64 z b)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 a z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 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))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.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))) x)))))

simplify145.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
012342
120342
229342
331342
Stop Event
saturated
Counts
84 → 43
Calls
Call 1
Inputs
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
Outputs
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)

localize6.0ms (0%)

Compiler

Compiled 13 to 7 computations (46.2% saved)

eval118.0ms (0.8%)

Compiler

Compiled 5222 to 1410 computations (73% saved)

prune336.0ms (2.2%)

Pruning

19 alts after pruning (11 fresh and 8 done)

PrunedKeptTotal
New3516357
Fresh6511
Picked011
Done077
Total35719376
Error
0b
Counts
376 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
49.4b
(fma.f64 (*.f64 b (sqrt.f64 (*.f64 a z))) (sqrt.f64 (*.f64 a z)) (*.f64 a t))
33.1b
(fma.f64 t a (*.f64 z y))
31.5b
(+.f64 (*.f64 a (*.f64 z b)) x)
40.6b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
42.8b
(+.f64 x (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2))
26.4b
(fma.f64 t a x)
31.8b
(+.f64 x (*.f64 (*.f64 a z) b))
54.0b
(*.f64 z (*.f64 a b))
40.3b
x
47.0b
(*.f64 z y)
26.4b
(+.f64 (*.f64 a t) x)
48.5b
(*.f64 t a)
39.3b
(*.f64 (+.f64 t (*.f64 b z)) a)
31.8b
(fma.f64 (*.f64 a z) b x)
53.6b
(*.f64 (*.f64 z b) a)
24.6b
(fma.f64 z y x)
24.6b
(+.f64 (*.f64 y z) x)
33.1b
(+.f64 (*.f64 y z) (*.f64 t a))
24.2b
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
Compiler

Compiled 362 to 250 computations (30.9% saved)

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

series4.0ms (0%)

Counts
1 → 9
Calls

9 calls:

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

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

simplify8.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

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 8 computations (52.9% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite57.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
582×pow1_binary64
532×add-log-exp_binary64
532×log1p-expm1-u_binary64
532×expm1-log1p-u_binary64
519×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08252
114252
220252
Stop Event
saturated
Counts
47 → 13
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
Outputs
(*.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 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 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))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series8.0ms (0.1%)

Counts
2 → 51
Calls

21 calls:

TimeVariablePointExpression
1.0ms
a
@inf
(*.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))

rewrite76.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
117015
2231715
Stop Event
node limit
Counts
2 → 47
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a (*.f64 z b)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.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 (pow.f64 (exp.f64 z) b) a))))) (#(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 -.f64 (+.f64 1 (fma.f64 a (*.f64 z b) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (-.f64 (*.f64 a (*.f64 z b)) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 a (*.f64 z b)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 z b) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 z b) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 2) (cbrt.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) (sqrt.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x (-.f64 x (*.f64 a (*.f64 z b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 a (*.f64 z b)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x (-.f64 x (*.f64 a (*.f64 z b))))) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a (*.f64 z b)) x) (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x (-.f64 x (*.f64 a (*.f64 z b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 x 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 a (*.f64 (*.f64 z b) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x x)) (-.f64 (*.f64 a (*.f64 z b)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x (-.f64 x (*.f64 a (*.f64 z b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 a (*.f64 z b)) 2) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 a (*.f64 z b)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 a (*.f64 z b)) 2)) (-.f64 x (*.f64 a (*.f64 z b))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 z b) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 z b) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a (*.f64 z b) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 z b) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 z b) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 z b) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z b) a x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 z b)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 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))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.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))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 a (*.f64 z b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a z) b x)))))

simplify16.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
011354
119354
228354
330354
Stop Event
saturated
Counts
98 → 53
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))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
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))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
x

localize5.0ms (0%)

Compiler

Compiled 13 to 7 computations (46.2% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.0b
(fma.f64 (*.f64 a z) b x)
Compiler

Compiled 19 to 8 computations (57.9% saved)

series5.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite55.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
663×pow1_binary64
604×add-log-exp_binary64
604×log1p-expm1-u_binary64
604×expm1-log1p-u_binary64
589×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify17.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
012342
120342
229342
331342
Stop Event
saturated
Counts
69 → 26
Calls
Call 1
Inputs
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
Outputs
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.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)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.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)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.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)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)

eval27.0ms (0.2%)

Compiler

Compiled 1447 to 440 computations (69.6% saved)

prune39.0ms (0.2%)

Pruning

19 alts after pruning (7 fresh and 12 done)

PrunedKeptTotal
New1263129
Fresh246
Picked101
Done01212
Total12919148
Error
0b
Counts
148 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
26.4b
(+.f64 (*.f64 a t) x)
40.3b
x
49.4b
(fma.f64 (*.f64 b (sqrt.f64 (*.f64 a z))) (sqrt.f64 (*.f64 a z)) (*.f64 a t))
33.1b
(fma.f64 t a (*.f64 z y))
42.8b
(+.f64 (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2) x)
40.6b
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
31.5b
(+.f64 (*.f64 a (*.f64 z b)) x)
24.6b
(+.f64 (*.f64 y z) x)
48.6b
(/.f64 (-.f64 (*.f64 (*.f64 a (*.f64 z b)) (*.f64 a (*.f64 z b))) (*.f64 x x)) (-.f64 (*.f64 a (*.f64 z b)) x))
26.4b
(fma.f64 t a x)
31.8b
(+.f64 x (*.f64 (*.f64 a z) b))
47.0b
(*.f64 z y)
48.5b
(*.f64 t a)
39.3b
(*.f64 (+.f64 t (*.f64 b z)) a)
53.6b
(*.f64 (*.f64 z b) a)
24.6b
(fma.f64 z y x)
33.1b
(+.f64 (*.f64 y z) (*.f64 t a))
24.2b
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
54.0b
(*.f64 z (*.f64 a b))
Compiler

Compiled 250 to 167 computations (33.2% saved)

regimes190.0ms (1.2%)

Counts
38 → 3
Calls
Call 1
Inputs
x
x
(*.f64 t a)
(*.f64 z y)
(+.f64 (*.f64 a t) x)
(*.f64 (*.f64 z b) a)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 y z) (*.f64 t a))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 a z) b))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(/.f64 (-.f64 (*.f64 (*.f64 a (*.f64 z b)) (*.f64 a (*.f64 z b))) (*.f64 x x)) (-.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 t a x)
(fma.f64 a t x)
(fma.f64 z y x)
(fma.f64 t a (*.f64 z y))
(fma.f64 (*.f64 a z) b x)
(fma.f64 a t (*.f64 y z))
(fma.f64 a (*.f64 z b) x)
(+.f64 (fma.f64 a t x) (*.f64 (*.f64 a z) b))
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b))
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2) x)
(+.f64 x (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2))
(+.f64 (*.f64 a t) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (sqrt.f64 (*.f64 a (*.f64 z b))) 2))
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
(fma.f64 (*.f64 b (sqrt.f64 (*.f64 a z))) (sqrt.f64 (*.f64 a z)) (*.f64 a t))
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))
(+.f64 (*.f64 y z) (*.f64 t a))
Calls

7 calls:

54.0ms
z
22.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
22.0ms
x
21.0ms
a
20.0ms
b
Results
ErrorSegmentsBranch
1.8b1x
1.8b1y
0.8b3z
1.8b1t
1.8b1a
1.8b1b
1.8b1(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 366 to 123 computations (66.4% saved)

bsearch37.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
4.975965349032508e+256
9.91837881035595e+256
24.0ms
1.5703291912154536e-249
3.962103341258948e-247
Compiler

Compiled 174 to 117 computations (32.8% saved)

regimes191.0ms (1.2%)

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

7 calls:

51.0ms
b
35.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
19.0ms
x
19.0ms
z
19.0ms
a
Results
ErrorSegmentsBranch
2.7b1x
2.7b1y
2.7b1z
2.7b1t
2.7b1a
1.6b3b
1.4b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 342 to 117 computations (65.8% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-inf
-1.3169500956851503e+306
Compiler

Compiled 30 to 21 computations (30% saved)

regimes452.0ms (2.9%)

Counts
20 → 6
Calls
Call 1
Inputs
x
x
(*.f64 t a)
(*.f64 z y)
(+.f64 (*.f64 a t) x)
(*.f64 (*.f64 z b) a)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 y z) (*.f64 t a))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 a z) b))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
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)))
(+.f64 (*.f64 y z) (*.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:

102.0ms
t
90.0ms
z
75.0ms
b
67.0ms
a
55.0ms
x
Results
ErrorSegmentsBranch
5.1b3x
6.3b3y
8.2b5z
8.0b6t
4.9b6a
6.9b3b
Compiler

Compiled 168 to 71 computations (57.7% saved)

bsearch980.0ms (6.3%)

Algorithm
binary-search
Steps
TimeLeftRight
47.0ms
8.807898931961538e-58
1.0263192250649708e-47
50.0ms
-2.0307319620061763e-120
-3.116323963777475e-121
51.0ms
-2.5449072808821636e-60
-1.1893715896078757e-60
536.0ms
-2.488222151804848e+31
-1.1213896346376829e+31
296.0ms
-4.152369508884947e+101
-7.527051851069353e+99
Compiler

Compiled 414 to 285 computations (31.2% saved)

regimes358.0ms (2.3%)

Counts
19 → 3
Calls
Call 1
Inputs
x
x
(*.f64 t a)
(*.f64 z y)
(+.f64 (*.f64 a t) x)
(*.f64 (*.f64 z b) a)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 y z) (*.f64 t a))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 x (*.f64 (*.f64 a z) b))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 a t) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
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:

61.0ms
b
60.0ms
z
59.0ms
y
57.0ms
a
55.0ms
t
Results
ErrorSegmentsBranch
7.8b5x
6.3b3y
9.4b3z
9.5b3t
5.9b3a
6.9b3b
Compiler

Compiled 157 to 70 computations (55.4% saved)

bsearch98.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
8.807898931961538e-58
1.0263192250649708e-47
74.0ms
-4.152369508884947e+101
-7.527051851069353e+99
Compiler

Compiled 254 to 175 computations (31.1% saved)

regimes282.0ms (1.8%)

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

6 calls:

77.0ms
t
59.0ms
x
51.0ms
b
34.0ms
y
27.0ms
a
Results
ErrorSegmentsBranch
11.3b7x
11.2b3y
12.8b3z
11.9b9t
8.6b3a
14.0b5b
Compiler

Compiled 148 to 69 computations (53.4% saved)

bsearch50.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
8.807898931961538e-58
1.0263192250649708e-47
25.0ms
-2.0980731287900596e-73
-8.201713519669358e-78
Compiler

Compiled 30 to 21 computations (30% saved)

regimes330.0ms (2.1%)

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

6 calls:

68.0ms
z
63.0ms
b
52.0ms
x
52.0ms
y
51.0ms
t
Results
ErrorSegmentsBranch
13.4b7x
14.8b7y
14.5b9z
16.2b7t
14.2b5a
16.9b8b
Compiler

Compiled 130 to 65 computations (50% saved)

bsearch141.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
6.957507898832278e-33
4.1814019306738066e-24
23.0ms
1.0780123679677304e-255
5.642031098623604e-243
24.0ms
1.0246143971709643e-307
1.170639342674792e-306
23.0ms
-6.2495148087402634e-83
-1.5349665955092422e-83
24.0ms
-1.4555404919756758e+53
-1.9380503935894148e+46
23.0ms
-2.6253938453907235e+107
-2.6137408000375136e+106
Compiler

Compiled 30 to 21 computations (30% saved)

regimes440.0ms (2.8%)

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

6 calls:

152.0ms
z
89.0ms
y
63.0ms
b
54.0ms
t
52.0ms
x
Results
ErrorSegmentsBranch
15.1b5x
14.8b7y
15.6b7z
15.7b8t
15.8b3a
17.6b8b
Compiler

Compiled 109 to 57 computations (47.7% saved)

bsearch303.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
72.0ms
3.668089285901979e+79
4.005359366954478e+83
58.0ms
2.1416334490377924e-165
7.517281489792868e-156
44.0ms
1.9401533206040207e-295
1.4579942604879926e-289
27.0ms
-9.856332271791031e-147
-1.0600827966684176e-148
24.0ms
-2.900504814083603e-120
-5.331579678285671e-127
78.0ms
-3.755469762699624e-34
-8.408090426820411e-37
Compiler

Compiled 30 to 21 computations (30% saved)

regimes558.0ms (3.6%)

Counts
9 → 3
Calls
Call 1
Inputs
x
x
(*.f64 t a)
(*.f64 z y)
(+.f64 (*.f64 a t) x)
(*.f64 (*.f64 z b) a)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) 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:

152.0ms
y
134.0ms
b
95.0ms
t
79.0ms
z
63.0ms
a
Results
ErrorSegmentsBranch
21.5b5x
16.5b5y
17.3b5z
19.7b3t
15.8b3a
20.9b5b
Compiler

Compiled 81 to 52 computations (35.8% saved)

bsearch74.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
48.0ms
8.807898931961538e-58
1.0263192250649708e-47
26.0ms
-1.1893715896078757e-60
-2.0980731287900596e-73
Compiler

Compiled 30 to 21 computations (30% saved)

regimes231.0ms (1.5%)

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

6 calls:

72.0ms
y
41.0ms
t
34.0ms
z
30.0ms
b
26.0ms
x
Results
ErrorSegmentsBranch
23.3b5x
19.6b9y
22.7b5z
26.4b1t
23.0b5a
24.0b5b
Compiler

Compiled 71 to 50 computations (29.6% saved)

bsearch1.5s (9.9%)

Algorithm
binary-search
Steps
TimeLeftRight
71.0ms
2.0059873973662027e+247
6.420723118630195e+253
249.0ms
8.315865281868053e+171
2.1656708288761242e+176
50.0ms
4.005359366954478e+83
9.54172211265611e+83
37.0ms
-9.856332271791031e-147
-1.0600827966684176e-148
29.0ms
-2.900504814083603e-120
-5.331579678285671e-127
72.0ms
-1.3156571901672518e+100
-1.3400523469118426e+98
67.0ms
-8.71718206744736e+114
-1.0190429748967163e+113
970.0ms
-2.9132415551097665e+172
-1.1504745226086999e+160
Compiler

Compiled 624 to 480 computations (23.1% saved)

regimes212.0ms (1.4%)

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

6 calls:

60.0ms
z
50.0ms
y
47.0ms
b
24.0ms
x
24.0ms
a
Results
ErrorSegmentsBranch
23.5b5x
20.7b7y
22.7b5z
26.4b1t
23.0b5a
24.0b5b
Compiler

Compiled 66 to 48 computations (27.3% saved)

bsearch678.0ms (4.3%)

Algorithm
binary-search
Steps
TimeLeftRight
152.0ms
2.0059873973662027e+247
6.420723118630195e+253
175.0ms
8.315865281868053e+171
2.1656708288761242e+176
65.0ms
4.005359366954478e+83
9.54172211265611e+83
26.0ms
-1.3156571901672518e+100
-1.3400523469118426e+98
47.0ms
-8.71718206744736e+114
-1.0190429748967163e+113
213.0ms
-2.9132415551097665e+172
-1.1504745226086999e+160
Compiler

Compiled 624 to 480 computations (23.1% saved)

regimes422.0ms (2.7%)

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

6 calls:

76.0ms
z
73.0ms
x
71.0ms
a
61.0ms
b
50.0ms
t
Results
ErrorSegmentsBranch
27.4b10x
33.2b5y
30.8b10z
33.3b9t
30.8b9a
36.2b7b
Compiler

Compiled 56 to 44 computations (21.4% saved)

bsearch387.0ms (2.5%)

Algorithm
binary-search
Steps
TimeLeftRight
43.0ms
5.6763599314358845e+41
1.335974018881191e+43
41.0ms
6.663579596843868e-48
3.239205174728195e-38
43.0ms
7.909972935330018e-86
5.30307401807725e-85
42.0ms
8.430999092213408e-151
1.8475156752634862e-149
44.0ms
3.803906526333651e-187
1.1018300637809102e-185
43.0ms
-2.975158977951405e-131
-6.475050742620168e-133
44.0ms
-1.5349665955092422e-83
-2.1899348184467957e-85
42.0ms
-0.0001738094526306546
-2.6605085040124653e-9
44.0ms
-1.102288111590218e+37
-1.7025836966688787e+36
Compiler

Compiled 30 to 21 computations (30% saved)

regimes182.0ms (1.2%)

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

6 calls:

53.0ms
t
45.0ms
z
33.0ms
b
21.0ms
x
20.0ms
a
Results
ErrorSegmentsBranch
32.1b3x
40.3b1y
36.4b7z
35.0b7t
35.6b3a
37.7b5b
Compiler

Compiled 53 to 43 computations (18.9% saved)

bsearch64.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
6.957507898832278e-33
4.1814019306738066e-24
40.0ms
-1.5349665955092422e-83
-2.1899348184467957e-85
Compiler

Compiled 30 to 21 computations (30% saved)

regimes22.0ms (0.1%)

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:

4.0ms
t
4.0ms
x
3.0ms
b
3.0ms
a
3.0ms
z
Results
ErrorSegmentsBranch
40.3b1x
40.3b1y
40.3b1z
40.3b1t
40.3b1a
40.3b1b
Compiler

Compiled 50 to 42 computations (16% saved)

simplify26.0ms (0.2%)

Algorithm
egg-herbie
Rules
10×+-commutative_binary64
10×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0157817
1182817
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 z 6329317655958683/4030567406735727282351225165683873035574701889313671280883489296162978382543372035785043761349923613698382530160958318167742519832631573007587730243400112738864034149162331269597866193210040596412843573823632724030670381872189039145190406026970187961498554846937088) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 z 50000000000000001506382995007027125144524326988734756441605398995163706668882311641055617813457288178412192150858639140898346706834318867234424975099778599931393322808721069001301985282811477801121079651347551891440706762014265599582147062320881986730721280) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (+.f64 (*.f64 y z) (*.f64 t a))))
(if (<=.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) -inf.0) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)))
(if (<=.f64 a -409999999999999996806840893872921044605483617004162003769000234606963783399923574798830843394086928384) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a -11499999999999999806460720578560) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 a -4604377046384425/1809251394333065553493296640760748560207343510400633813116524750123642650624) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a -369003657162721/181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153664) (+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))))))
(if (<=.f64 a -409999999999999996806840893872921044605483617004162003769000234606963783399923574798830843394086928384) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))
(if (<=.f64 a -6677891319259389/31828687130226345097944463881396533766429193651030253916189694521162207808802136034115584) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) x) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))
(if (<=.f64 x -262539384539072346627096982009262414985053857922598413248656390082285395200697403909894721955795115603656704) (+.f64 (*.f64 y z) x) (if (<=.f64 x -145554049197567579640491916337214161526044724559872000) (+.f64 (*.f64 a t) x) (if (<=.f64 x -8543284871849567/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (+.f64 (*.f64 y z) x) (if (<=.f64 x 648075821120359/6325070415853456823515479584966165845298645305129441198653167438357198111499854590373761990669910140474596183259900372230931523043306046152094168748148078435047419508642698792639590866940413010663742739952273283392562733857021646831815729864036236135650314266011211548510419206725953204130822734645187695728365866909171712) (+.f64 (*.f64 y z) (*.f64 t a)) (if (<=.f64 x 4556064307951683/4226356249085321970818718279332132852150778608288972177023685672213391220453798875795338047101257503157395159946057029431058780476021484298004311827703516615267093471992040673349852141411411528424193863265689507233184226342012493910707175190136291811916308647181903986688) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 x 635525574117879/91343852333181432387730302044767688728495783936) (+.f64 (*.f64 y z) (*.f64 t a)) (+.f64 (*.f64 y z) x)))))))
(if (<=.f64 y -8781800331411517/23384026197294446691258957323460528314494920687616) (+.f64 (*.f64 y z) x) (if (<=.f64 y -4216398437763585/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 y -4434278922116195/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (*.f64 z (*.f64 a b)) (if (<=.f64 y 8928768780877245/46020944252475287237870212884199033180620210660923048261998100776379565006208246561973370194536329221406749153247076699560650180816490655358168942243705375840708580716765564230733368217919000094579989235733761476822566574679670497657321756298451772713817730735254092349426494960250807374037851220383801379127296) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4443370669809309/2074757784440496479256203931845580575506223116121218449997828664845326405706454073199853524473551897144098943305650394591197575537705887653943437417056981843530590901700754761842688) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 y 36680892859019790348461840883730590145295080931454630056235371585188501208956928) (+.f64 (*.f64 a t) x) (+.f64 (*.f64 y z) x)))))))
(if (<=.f64 a -8607488827512735/7237005577332262213973186563042994240829374041602535252466099000494570602496) (+.f64 (*.f64 a t) x) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))
(if (<=.f64 y -28999999999999999308768775797293896919809843612314534704101064431127312815994377881686489297009080845328020365662920756428557067653373224123584573949819280006016049069686784) (*.f64 z y) (if (<=.f64 y -8717182067447359825633937585173393909256819729780978354180768310372520452983458015590175465568624429326547967541248) (+.f64 (*.f64 a t) x) (if (<=.f64 y -13156571901672518400734472008525829445297718689718236471875549635558570022716631987013849693965778944) (*.f64 z y) (if (<=.f64 y -4216398437763585/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 y -4434278922116195/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (*.f64 z (*.f64 a b)) (if (<=.f64 y 400535936695447793151495957279034722924107211121167481155685047447070484787013615616) (+.f64 (*.f64 a t) x) (if (<=.f64 y 8499999999999999501501293762542620003138195581135587013726376637429324041133547862496764819914038690761676630390228714069736063300089650298206340652677900494262105282707456) (*.f64 z y) (if (<=.f64 y 62000000000000001263626105828976841590723596931917110121346971794123819233503202243793091411464130859601325063080104936135926768944667979962014319219158003506998578040332652634240806107228663112673669106912818354324021797582966038891138316381589359034368) (+.f64 (*.f64 a t) x) (*.f64 z y)))))))))
(if (<=.f64 y -28999999999999999308768775797293896919809843612314534704101064431127312815994377881686489297009080845328020365662920756428557067653373224123584573949819280006016049069686784) (*.f64 z y) (if (<=.f64 y -8717182067447359825633937585173393909256819729780978354180768310372520452983458015590175465568624429326547967541248) (+.f64 (*.f64 a t) x) (if (<=.f64 y -13156571901672518400734472008525829445297718689718236471875549635558570022716631987013849693965778944) (*.f64 z y) (if (<=.f64 y 400535936695447793151495957279034722924107211121167481155685047447070484787013615616) (+.f64 (*.f64 a t) x) (if (<=.f64 y 8499999999999999501501293762542620003138195581135587013726376637429324041133547862496764819914038690761676630390228714069736063300089650298206340652677900494262105282707456) (*.f64 z y) (if (<=.f64 y 62000000000000001263626105828976841590723596931917110121346971794123819233503202243793091411464130859601325063080104936135926768944667979962014319219158003506998578040332652634240806107228663112673669106912818354324021797582966038891138316381589359034368) (+.f64 (*.f64 a t) x) (*.f64 z y)))))))
(if (<=.f64 x -11022881115902179416305829578388013056) x (if (<=.f64 x -3206218490269229/18446744073709551616) (*.f64 z y) (if (<=.f64 x -1049173999545407/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432) x (if (<=.f64 x -5944126864882821/199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571264) (*.f64 t a) (if (<=.f64 x 7453957678862587/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (*.f64 z y) (if (<=.f64 x 6214506597210533/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 t a) (if (<=.f64 x 5536350091460669/69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368) (*.f64 z y) (if (<=.f64 x 5482475297339595/822752278660603021077484591278675252491367932816789931674304512) (*.f64 t a) (if (<=.f64 x 567635993143588450714894648341672400781312) (*.f64 z y) x)))))))))
(if (<=.f64 x -1049173999545407/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432) x (if (<=.f64 x 635525574117879/91343852333181432387730302044767688728495783936) (*.f64 t a) x))
x
Outputs
(if (<=.f64 z 6329317655958683/4030567406735727282351225165683873035574701889313671280883489296162978382543372035785043761349923613698382530160958318167742519832631573007587730243400112738864034149162331269597866193210040596412843573823632724030670381872189039145190406026970187961498554846937088) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 z 50000000000000001506382995007027125144524326988734756441605398995163706668882311641055617813457288178412192150858639140898346706834318867234424975099778599931393322808721069001301985282811477801121079651347551891440706762014265599582147062320881986730721280) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (+.f64 (*.f64 y z) (*.f64 t a))))
(if (<=.f64 z 6329317655958683/4030567406735727282351225165683873035574701889313671280883489296162978382543372035785043761349923613698382530160958318167742519832631573007587730243400112738864034149162331269597866193210040596412843573823632724030670381872189039145190406026970187961498554846937088) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (if (<=.f64 z 50000000000000001506382995007027125144524326988734756441605398995163706668882311641055617813457288178412192150858639140898346706834318867234424975099778599931393322808721069001301985282811477801121079651347551891440706762014265599582147062320881986730721280) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 z y))) (*.f64 b (*.f64 z a))) (+.f64 (*.f64 a t) (*.f64 z y))))
(if (<=.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) -inf.0) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.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 z y))) (*.f64 b (*.f64 z a))) -inf.0) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 z y))) (*.f64 b (*.f64 z a))))
(if (<=.f64 a -409999999999999996806840893872921044605483617004162003769000234606963783399923574798830843394086928384) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a -11499999999999999806460720578560) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 a -4604377046384425/1809251394333065553493296640760748560207343510400633813116524750123642650624) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a -369003657162721/181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153664) (+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))))))))
(if (<=.f64 a -409999999999999996806840893872921044605483617004162003769000234606963783399923574798830843394086928384) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a -11499999999999999806460720578560) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 z y)) (if (<=.f64 a -4604377046384425/1809251394333065553493296640760748560207343510400633813116524750123642650624) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a -369003657162721/181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153664) (+.f64 (*.f64 a (+.f64 t (*.f64 z b))) (*.f64 z y)) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 z y)) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))))))))
(if (<=.f64 a -409999999999999996806840893872921044605483617004162003769000234606963783399923574798830843394086928384) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))
(if (<=.f64 a -409999999999999996806840893872921044605483617004162003769000234606963783399923574798830843394086928384) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (+.f64 x (*.f64 a t)) (*.f64 z y)) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b))))))
(if (<=.f64 a -6677891319259389/31828687130226345097944463881396533766429193651030253916189694521162207808802136034115584) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) x) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))
(if (<=.f64 a -6677891319259389/31828687130226345097944463881396533766429193651030253916189694521162207808802136034115584) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 x (*.f64 z y)) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b))))))
(if (<=.f64 x -262539384539072346627096982009262414985053857922598413248656390082285395200697403909894721955795115603656704) (+.f64 (*.f64 y z) x) (if (<=.f64 x -145554049197567579640491916337214161526044724559872000) (+.f64 (*.f64 a t) x) (if (<=.f64 x -8543284871849567/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (+.f64 (*.f64 y z) x) (if (<=.f64 x 648075821120359/6325070415853456823515479584966165845298645305129441198653167438357198111499854590373761990669910140474596183259900372230931523043306046152094168748148078435047419508642698792639590866940413010663742739952273283392562733857021646831815729864036236135650314266011211548510419206725953204130822734645187695728365866909171712) (+.f64 (*.f64 y z) (*.f64 t a)) (if (<=.f64 x 4556064307951683/4226356249085321970818718279332132852150778608288972177023685672213391220453798875795338047101257503157395159946057029431058780476021484298004311827703516615267093471992040673349852141411411528424193863265689507233184226342012493910707175190136291811916308647181903986688) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 x 635525574117879/91343852333181432387730302044767688728495783936) (+.f64 (*.f64 y z) (*.f64 t a)) (+.f64 (*.f64 y z) x)))))))
(if (<=.f64 x -262539384539072346627096982009262414985053857922598413248656390082285395200697403909894721955795115603656704) (+.f64 x (*.f64 z y)) (if (<=.f64 x -145554049197567579640491916337214161526044724559872000) (+.f64 x (*.f64 a t)) (if (<=.f64 x -8543284871849567/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (+.f64 x (*.f64 z y)) (if (<=.f64 x 648075821120359/6325070415853456823515479584966165845298645305129441198653167438357198111499854590373761990669910140474596183259900372230931523043306046152094168748148078435047419508642698792639590866940413010663742739952273283392562733857021646831815729864036236135650314266011211548510419206725953204130822734645187695728365866909171712) (+.f64 (*.f64 a t) (*.f64 z y)) (if (<=.f64 x 4556064307951683/4226356249085321970818718279332132852150778608288972177023685672213391220453798875795338047101257503157395159946057029431058780476021484298004311827703516615267093471992040673349852141411411528424193863265689507233184226342012493910707175190136291811916308647181903986688) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 x 635525574117879/91343852333181432387730302044767688728495783936) (+.f64 (*.f64 a t) (*.f64 z y)) (+.f64 x (*.f64 z y))))))))
(if (<=.f64 y -8781800331411517/23384026197294446691258957323460528314494920687616) (+.f64 (*.f64 y z) x) (if (<=.f64 y -4216398437763585/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 y -4434278922116195/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (*.f64 z (*.f64 a b)) (if (<=.f64 y 8928768780877245/46020944252475287237870212884199033180620210660923048261998100776379565006208246561973370194536329221406749153247076699560650180816490655358168942243705375840708580716765564230733368217919000094579989235733761476822566574679670497657321756298451772713817730735254092349426494960250807374037851220383801379127296) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4443370669809309/2074757784440496479256203931845580575506223116121218449997828664845326405706454073199853524473551897144098943305650394591197575537705887653943437417056981843530590901700754761842688) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 y 36680892859019790348461840883730590145295080931454630056235371585188501208956928) (+.f64 (*.f64 a t) x) (+.f64 (*.f64 y z) x)))))))
(if (<=.f64 y -8781800331411517/23384026197294446691258957323460528314494920687616) (+.f64 x (*.f64 z y)) (if (<=.f64 y -4216398437763585/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 x (*.f64 a t)) (if (<=.f64 y -4434278922116195/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (*.f64 z (*.f64 a b)) (if (<=.f64 y 8928768780877245/46020944252475287237870212884199033180620210660923048261998100776379565006208246561973370194536329221406749153247076699560650180816490655358168942243705375840708580716765564230733368217919000094579989235733761476822566574679670497657321756298451772713817730735254092349426494960250807374037851220383801379127296) (+.f64 x (*.f64 a t)) (if (<=.f64 y 4443370669809309/2074757784440496479256203931845580575506223116121218449997828664845326405706454073199853524473551897144098943305650394591197575537705887653943437417056981843530590901700754761842688) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 y 36680892859019790348461840883730590145295080931454630056235371585188501208956928) (+.f64 x (*.f64 a t)) (+.f64 x (*.f64 z y))))))))
(if (<=.f64 a -8607488827512735/7237005577332262213973186563042994240829374041602535252466099000494570602496) (+.f64 (*.f64 a t) x) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))
(if (<=.f64 a -8607488827512735/7237005577332262213973186563042994240829374041602535252466099000494570602496) (+.f64 x (*.f64 a t)) (if (<=.f64 a 1556221037480091/1766847064778384329583297500742918515827483896875618958121606201292619776) (+.f64 x (*.f64 z y)) (+.f64 x (*.f64 a t))))
(if (<=.f64 y -28999999999999999308768775797293896919809843612314534704101064431127312815994377881686489297009080845328020365662920756428557067653373224123584573949819280006016049069686784) (*.f64 z y) (if (<=.f64 y -8717182067447359825633937585173393909256819729780978354180768310372520452983458015590175465568624429326547967541248) (+.f64 (*.f64 a t) x) (if (<=.f64 y -13156571901672518400734472008525829445297718689718236471875549635558570022716631987013849693965778944) (*.f64 z y) (if (<=.f64 y -4216398437763585/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 y -4434278922116195/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (*.f64 z (*.f64 a b)) (if (<=.f64 y 400535936695447793151495957279034722924107211121167481155685047447070484787013615616) (+.f64 (*.f64 a t) x) (if (<=.f64 y 8499999999999999501501293762542620003138195581135587013726376637429324041133547862496764819914038690761676630390228714069736063300089650298206340652677900494262105282707456) (*.f64 z y) (if (<=.f64 y 62000000000000001263626105828976841590723596931917110121346971794123819233503202243793091411464130859601325063080104936135926768944667979962014319219158003506998578040332652634240806107228663112673669106912818354324021797582966038891138316381589359034368) (+.f64 (*.f64 a t) x) (*.f64 z y)))))))))
(if (<=.f64 y -28999999999999999308768775797293896919809843612314534704101064431127312815994377881686489297009080845328020365662920756428557067653373224123584573949819280006016049069686784) (*.f64 z y) (if (<=.f64 y -8717182067447359825633937585173393909256819729780978354180768310372520452983458015590175465568624429326547967541248) (+.f64 x (*.f64 a t)) (if (<=.f64 y -13156571901672518400734472008525829445297718689718236471875549635558570022716631987013849693965778944) (*.f64 z y) (if (<=.f64 y -4216398437763585/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 x (*.f64 a t)) (if (<=.f64 y -4434278922116195/449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472) (*.f64 z (*.f64 a b)) (if (<=.f64 y 400535936695447793151495957279034722924107211121167481155685047447070484787013615616) (+.f64 x (*.f64 a t)) (if (<=.f64 y 8499999999999999501501293762542620003138195581135587013726376637429324041133547862496764819914038690761676630390228714069736063300089650298206340652677900494262105282707456) (*.f64 z y) (if (<=.f64 y 62000000000000001263626105828976841590723596931917110121346971794123819233503202243793091411464130859601325063080104936135926768944667979962014319219158003506998578040332652634240806107228663112673669106912818354324021797582966038891138316381589359034368) (+.f64 x (*.f64 a t)) (*.f64 z y)))))))))
(if (<=.f64 y -28999999999999999308768775797293896919809843612314534704101064431127312815994377881686489297009080845328020365662920756428557067653373224123584573949819280006016049069686784) (*.f64 z y) (if (<=.f64 y -8717182067447359825633937585173393909256819729780978354180768310372520452983458015590175465568624429326547967541248) (+.f64 (*.f64 a t) x) (if (<=.f64 y -13156571901672518400734472008525829445297718689718236471875549635558570022716631987013849693965778944) (*.f64 z y) (if (<=.f64 y 400535936695447793151495957279034722924107211121167481155685047447070484787013615616) (+.f64 (*.f64 a t) x) (if (<=.f64 y 8499999999999999501501293762542620003138195581135587013726376637429324041133547862496764819914038690761676630390228714069736063300089650298206340652677900494262105282707456) (*.f64 z y) (if (<=.f64 y 62000000000000001263626105828976841590723596931917110121346971794123819233503202243793091411464130859601325063080104936135926768944667979962014319219158003506998578040332652634240806107228663112673669106912818354324021797582966038891138316381589359034368) (+.f64 (*.f64 a t) x) (*.f64 z y)))))))
(if (<=.f64 y -28999999999999999308768775797293896919809843612314534704101064431127312815994377881686489297009080845328020365662920756428557067653373224123584573949819280006016049069686784) (*.f64 z y) (if (<=.f64 y -8717182067447359825633937585173393909256819729780978354180768310372520452983458015590175465568624429326547967541248) (+.f64 x (*.f64 a t)) (if (<=.f64 y -13156571901672518400734472008525829445297718689718236471875549635558570022716631987013849693965778944) (*.f64 z y) (if (<=.f64 y 400535936695447793151495957279034722924107211121167481155685047447070484787013615616) (+.f64 x (*.f64 a t)) (if (<=.f64 y 8499999999999999501501293762542620003138195581135587013726376637429324041133547862496764819914038690761676630390228714069736063300089650298206340652677900494262105282707456) (*.f64 z y) (if (<=.f64 y 62000000000000001263626105828976841590723596931917110121346971794123819233503202243793091411464130859601325063080104936135926768944667979962014319219158003506998578040332652634240806107228663112673669106912818354324021797582966038891138316381589359034368) (+.f64 x (*.f64 a t)) (*.f64 z y)))))))
(if (<=.f64 x -11022881115902179416305829578388013056) x (if (<=.f64 x -3206218490269229/18446744073709551616) (*.f64 z y) (if (<=.f64 x -1049173999545407/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432) x (if (<=.f64 x -5944126864882821/199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571264) (*.f64 t a) (if (<=.f64 x 7453957678862587/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (*.f64 z y) (if (<=.f64 x 6214506597210533/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 t a) (if (<=.f64 x 5536350091460669/69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368) (*.f64 z y) (if (<=.f64 x 5482475297339595/822752278660603021077484591278675252491367932816789931674304512) (*.f64 t a) (if (<=.f64 x 567635993143588450714894648341672400781312) (*.f64 z y) x)))))))))
(if (<=.f64 x -11022881115902179416305829578388013056) x (if (<=.f64 x -3206218490269229/18446744073709551616) (*.f64 z y) (if (<=.f64 x -1049173999545407/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432) x (if (<=.f64 x -5944126864882821/199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571264) (*.f64 a t) (if (<=.f64 x 7453957678862587/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (*.f64 z y) (if (<=.f64 x 6214506597210533/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 a t) (if (<=.f64 x 5536350091460669/69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368) (*.f64 z y) (if (<=.f64 x 5482475297339595/822752278660603021077484591278675252491367932816789931674304512) (*.f64 a t) (if (<=.f64 x 567635993143588450714894648341672400781312) (*.f64 z y) x)))))))))
(if (<=.f64 x -1049173999545407/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432) x (if (<=.f64 x 635525574117879/91343852333181432387730302044767688728495783936) (*.f64 t a) x))
(if (<=.f64 x -1049173999545407/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432) x (if (<=.f64 x 635525574117879/91343852333181432387730302044767688728495783936) (*.f64 a t) x))
x
Compiler

Compiled 645 to 308 computations (52.2% saved)

soundness148.0ms (1%)

Algorithm
egg-herbie
Rules
529×fma-neg_binary64
495×fma-def_binary64
167×cancel-sign-sub-inv_binary64
95×distribute-rgt-in_binary64
93×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01422
12716
26915
314813
419113
520313
620613
01422
12716
26915
314813
419113
520313
620613
036899
192899
2178899
3368899
4795899
51353899
61855899
72246899
82353899
92357899
Stop Event
saturated
saturated
saturated
Compiler

Compiled 482 to 294 computations (39% saved)

end141.0ms (0.9%)

Compiler

Compiled 573 to 181 computations (68.4% saved)

Profiling

Loading profile data...