Details

Time bar (total: 22.5s)

analyze755.0ms (3.4%)

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

Compiled 22 to 14 computations (36.4% saved)

sample2.0s (8.7%)

Results
1.3s8256×body256valid
591.0ms3786×body256invalid

preprocess88.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
086352
1257254
2793236
31763236
41917236
51939236
61939208
72483208
82483208
066
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
3
4
5
Outputs
0
1
2
3
4
5
Call 2
Inputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
Outputs
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y z x))
(fma.f64 z (fma.f64 a b y) (fma.f64 t a x))
(+.f64 (+.f64 (+.f64 y (*.f64 x z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(+.f64 (+.f64 y (*.f64 x z)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 z b))))
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 x z y)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 x z y))
(+.f64 (fma.f64 t a y) (*.f64 z (fma.f64 a b x)))
(fma.f64 x z (fma.f64 a (fma.f64 z b t) y))
(+.f64 (+.f64 (+.f64 z (*.f64 y x)) (*.f64 t a)) (*.f64 (*.f64 a x) b))
(+.f64 (+.f64 z (*.f64 x y)) (+.f64 (*.f64 t a) (*.f64 a (*.f64 x b))))
(fma.f64 a (*.f64 x b) (fma.f64 t a (fma.f64 x y z)))
(fma.f64 a (+.f64 t (*.f64 x b)) (fma.f64 x y z))
(fma.f64 x y (fma.f64 a (fma.f64 x b t) z))
(+.f64 (+.f64 (+.f64 t (*.f64 y z)) (*.f64 x a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 t (+.f64 (*.f64 y z) (*.f64 x a))))
(+.f64 (fma.f64 y z t) (*.f64 a (fma.f64 z b x)))
(fma.f64 a (fma.f64 z b x) (fma.f64 y z t))
(fma.f64 x a (fma.f64 z (fma.f64 a b y) t))
(+.f64 (+.f64 (+.f64 a (*.f64 y z)) (*.f64 t x)) (*.f64 (*.f64 x z) b))
(+.f64 (+.f64 (*.f64 y z) a) (+.f64 (*.f64 x t) (*.f64 x (*.f64 z b))))
(fma.f64 x (*.f64 z b) (fma.f64 x t (fma.f64 y z a)))
(fma.f64 x (+.f64 t (*.f64 z b)) (fma.f64 y z a))
(fma.f64 x (fma.f64 z b t) (fma.f64 y z a))
(+.f64 (+.f64 (+.f64 b (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) x))
(+.f64 (+.f64 b (+.f64 (*.f64 y z) (*.f64 t a))) (*.f64 x (*.f64 z a)))
(fma.f64 x (*.f64 z a) (fma.f64 t a (fma.f64 y z b)))
(fma.f64 a (+.f64 t (*.f64 x z)) (fma.f64 y z b))
(fma.f64 y z (fma.f64 a (fma.f64 x z t) b))
(+.f64 (+.f64 (+.f64 x (*.f64 z y)) (*.f64 t a)) (*.f64 (*.f64 a y) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 b (*.f64 y a))))
(fma.f64 a (*.f64 y b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 a (+.f64 t (*.f64 y b)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 a (fma.f64 y b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 t z)) (*.f64 y a)) (*.f64 (*.f64 a z) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a))))
(fma.f64 z (*.f64 a b) (fma.f64 z t (fma.f64 y a x)))
(fma.f64 z (+.f64 t (*.f64 a b)) (fma.f64 y a x))
(fma.f64 y a (fma.f64 z (fma.f64 a b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 a z)) (*.f64 t y)) (*.f64 (*.f64 y z) b))
(+.f64 (+.f64 x (+.f64 (*.f64 z a) (*.f64 y t))) (*.f64 y (*.f64 z b)))
(fma.f64 y (*.f64 z b) (fma.f64 y t (fma.f64 z a x)))
(fma.f64 y (+.f64 t (*.f64 z b)) (fma.f64 z a x))
(fma.f64 y t (fma.f64 z (fma.f64 y b a) x))
(+.f64 (+.f64 (+.f64 x (*.f64 b z)) (*.f64 t a)) (*.f64 (*.f64 a z) y))
(+.f64 (+.f64 x (*.f64 z b)) (+.f64 (*.f64 t a) (*.f64 y (*.f64 z a))))
(+.f64 (fma.f64 z b x) (*.f64 a (fma.f64 y z t)))
(fma.f64 a (fma.f64 y z t) (fma.f64 z b x))
(fma.f64 t a (fma.f64 z (fma.f64 y a b) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y t)) (*.f64 z a)) (*.f64 (*.f64 a t) b))
(+.f64 (+.f64 x (*.f64 y t)) (+.f64 (*.f64 z a) (*.f64 (*.f64 t a) b)))
(fma.f64 a (*.f64 t b) (fma.f64 y t (fma.f64 z a x)))
(fma.f64 a (+.f64 z (*.f64 t b)) (fma.f64 y t x))
(fma.f64 z a (fma.f64 t (fma.f64 a b y) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y a)) (*.f64 t z)) (*.f64 (*.f64 z a) b))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 z t) (*.f64 y a))))
(fma.f64 z (*.f64 a b) (fma.f64 z t (fma.f64 y a x)))
(fma.f64 z (+.f64 t (*.f64 a b)) (fma.f64 y a x))
(fma.f64 y a (fma.f64 z (fma.f64 a b t) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y b)) (*.f64 t a)) (*.f64 (*.f64 a b) z))
(+.f64 (*.f64 a (*.f64 z b)) (+.f64 x (+.f64 (*.f64 y b) (*.f64 t a))))
(fma.f64 z (*.f64 a b) (fma.f64 t a (fma.f64 y b x)))
(fma.f64 a (+.f64 t (*.f64 z b)) (fma.f64 y b x))
(fma.f64 a (fma.f64 z b t) (fma.f64 y b x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 a t)) (*.f64 (*.f64 t z) b))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t a) (*.f64 t (*.f64 z b))))
(fma.f64 t (*.f64 z b) (fma.f64 t a (fma.f64 y z x)))
(fma.f64 t (+.f64 a (*.f64 z b)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 t (fma.f64 z b a) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 b a)) (*.f64 (*.f64 a z) t))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 a b) (*.f64 t (*.f64 z a))))
(fma.f64 t (*.f64 z a) (fma.f64 a b (fma.f64 y z x)))
(fma.f64 a (+.f64 b (*.f64 z t)) (fma.f64 y z x))
(fma.f64 y z (fma.f64 a (fma.f64 z t b) x))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t b)) (*.f64 (*.f64 b z) a))
(+.f64 (+.f64 x (*.f64 y z)) (+.f64 (*.f64 t b) (*.f64 a (*.f64 z b))))
(fma.f64 z (*.f64 a b) (fma.f64 t b (fma.f64 y z x)))
(fma.f64 b (+.f64 t (*.f64 z a)) (fma.f64 y z x))
(fma.f64 z (fma.f64 a b y) (fma.f64 t b x))
Compiler

Compiled 27 to 19 computations (29.6% saved)

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

Compiled 37 to 22 computations (40.5% saved)

localize34.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 55 to 13 computations (76.4% saved)

series51.0ms (0.2%)

Counts
4 → 204
Calls

51 calls:

TimeVariablePointExpression
7.0ms
b
@0
(*.f64 (*.f64 a z) b)
4.0ms
x
@0
(+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a))
3.0ms
a
@inf
(+.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)

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

simplify306.0ms (1.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0561812
11901693
23971693
37971693
420111693
533631693
638511693
741541693
841801693
941801693
1043161693
1143161693
Stop Event
saturated
Counts
374 → 206
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 (*.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 (*.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 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 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.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)))
(fma.f64 a (fma.f64 b z t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (+.f64 (*.f64 b z) t) a x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b)))))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 y z (fma.f64 a (*.f64 b z) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z 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 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a (+.f64 (*.f64 b z) t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (+.f64 (*.f64 b z) t))
(*.f64 a (fma.f64 b z t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))) x))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z 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))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(*.f64 a (*.f64 b z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x)))
(fma.f64 y z (fma.f64 (+.f64 (*.f64 b z) t) a x))
(fma.f64 a t (fma.f64 z (fma.f64 a b y) x))
(fma.f64 a (fma.f64 b z t) (fma.f64 z y x))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 z y (*.f64 a t))
(fma.f64 a t (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(+.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))
(+.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))
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))
(+.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))
(+.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))
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))
(+.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))
(+.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))
(+.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(+.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(+.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(+.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(*.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))
(+.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))
(+.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))
(*.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%)

Local error

Found 1 expressions with local error:

NewErrorProgram
1.9b
(fma.f64 a (fma.f64 z b t) x)
Compiler

Compiled 33 to 9 computations (72.7% saved)

series9.0ms (0%)

Counts
1 → 60
Calls

15 calls:

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

rewrite58.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
769×pow1_binary64
700×add-log-exp_binary64
700×log1p-expm1-u_binary64
700×expm1-log1p-u_binary64
682×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
089
11579
218639
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(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)) (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)) 2) (cbrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)) (sqrt.f64 (fma.f64 a (fma.f64 z b t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.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)))))))

simplify19.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
022582
151486
275486
381486
Stop Event
saturated
Counts
81 → 39
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)
Outputs
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (+.f64 t (*.f64 b z)) 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 z a) b x)
(fma.f64 b (*.f64 z a) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) 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 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (+.f64 t (*.f64 b z)) a x)
(fma.f64 (fma.f64 b z t) a x)

eval50.0ms (0.2%)

Compiler

Compiled 4581 to 1062 computations (76.8% saved)

prune84.0ms (0.4%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New23015245
Fresh000
Picked101
Done011
Total23116247
Error
0.0b
Counts
247 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
39.1b
(*.f64 z (+.f64 (*.f64 a b) y))
1.9b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
33.5b
(*.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)))))
26.3b
(+.f64 (*.f64 a t) x)
49.5b
(*.f64 a t)
39.2b
x
39.0b
(fma.f64 y z (*.f64 b (*.f64 z a)))
10.7b
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
26.3b
(fma.f64 a t x)
47.1b
(*.f64 z y)
41.5b
(*.f64 (+.f64 t (*.f64 b z)) a)
17.6b
(fma.f64 a (fma.f64 b z t) x)
17.6b
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
23.9b
(+.f64 (*.f64 y z) x)
15.9b
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
25.9b
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 448 to 289 computations (35.5% saved)

localize11.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 31 to 10 computations (67.7% saved)

series2.0ms (0%)

Counts
1 → 9
Calls

9 calls:

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

rewrite62.0ms (0.3%)

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 a t) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (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 (+.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x (-.f64 x (*.f64 a t))))))))) (#(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 (+.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x (-.f64 x (*.f64 a t)))) (+.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)) (+.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x (-.f64 x (*.f64 a t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 a (*.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x x)) (-.f64 (*.f64 a t) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a t) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 a t) 2) (*.f64 x (-.f64 x (*.f64 a t))))))))) (#(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) 3) 1/3)))) (#(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 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 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 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 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 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.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)) 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 (*.f64 a t)) (sqrt.f64 (*.f64 a t)) x)))))

simplify15.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 a t)
(*.f64 a t)
x
(*.f64 a t)
(*.f64 a t)
(*.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

localize9.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% 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
0.0ms
y
@0
(+.f64 (*.f64 y z) x)
0.0ms
y
@inf
(+.f64 (*.f64 y z) x)
0.0ms
y
@-inf
(+.f64 (*.f64 y z) x)
0.0ms
x
@0
(+.f64 (*.f64 y z) x)
0.0ms
x
@-inf
(+.f64 (*.f64 y z) x)

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

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

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 40 to 11 computations (72.5% saved)

series15.0ms (0.1%)

Counts
3 → 108
Calls

36 calls:

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

rewrite106.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
658×log-prod_binary64
652×fma-def_binary64
336×pow2_binary64
330×fma-neg_binary64
232×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify115.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
029813
184813
2189813
3380813
4861813
51372813
61598813
71801813
81874813
91884813
Stop Event
saturated
Counts
291 → 203
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
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t))))
(+.f64 x (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t)))))
(+.f64 x (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t)))))
(+.f64 x (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t)))))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a t) 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 t) (*.f64 a (*.f64 b z)))
(+.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))
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))
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))
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)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b 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)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b 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)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) 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)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b 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)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b 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)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
x
x
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t))))
(*.f64 a (fma.f64 z b t))
(*.f64 a (fma.f64 b z t))
(+.f64 x (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t)))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 x (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t)))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 x (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 (*.f64 b z)) (*.f64 -1 t)))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z 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)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.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 (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
x
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
x
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 a (fma.f64 z b t) x)
(fma.f64 a (fma.f64 b z t) x)

localize11.0ms (0%)

Compiler

Compiled 13 to 7 computations (46.2% saved)

eval204.0ms (0.9%)

Compiler

Compiled 4236 to 1159 computations (72.6% saved)

prune173.0ms (0.8%)

Pruning

17 alts after pruning (14 fresh and 3 done)

PrunedKeptTotal
New2698277
Fresh4610
Picked011
Done325
Total27617293
Error
0.0b
Counts
293 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
39.1b
(*.f64 z (+.f64 (*.f64 a b) y))
34.0b
(+.f64 (*.f64 y z) (*.f64 a t))
26.3b
(+.f64 (*.f64 a t) x)
41.5b
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
17.9b
(+.f64 (*.f64 a t) (+.f64 (+.f64 0 (*.f64 b (*.f64 a z))) x))
37.6b
(+.f64 (*.f64 a t) (*.f64 (-.f64 (pow.f64 (*.f64 b (*.f64 a z)) 2) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 b (*.f64 a z)) x))))
23.9b
(+.f64 (*.f64 y z) x)
49.5b
(*.f64 a t)
39.0b
(fma.f64 y z (*.f64 b (*.f64 z a)))
17.6b
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
26.3b
(fma.f64 a t x)
47.1b
(*.f64 z y)
41.5b
(*.f64 (+.f64 t (*.f64 b z)) a)
15.9b
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
39.2b
x
42.1b
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (+.f64 x (*.f64 a t)))
17.6b
(fma.f64 a (+.f64 t (*.f64 z b)) x)
Compiler

Compiled 445 to 296 computations (33.5% saved)

localize125.0ms (0.6%)

Local error

Found 3 expressions with local error:

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

Compiled 40 to 11 computations (72.5% saved)

series14.0ms (0.1%)

Counts
2 → 87
Calls

27 calls:

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

rewrite105.0ms (0.5%)

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

Useful iterations: 1 (0.0ms)

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

simplify76.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
028654
176654
2154654
3344654
4768654
51276654
61652654
71859654
81932654
91942654
Stop Event
saturated
Counts
252 → 185
Calls
Call 1
Inputs
(*.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)
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 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 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 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
x
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
Outputs
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
x
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(fma.f64 z y x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 z (fma.f64 a b y) x)

localize5.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series8.0ms (0%)

Counts
2 → 71
Calls

21 calls:

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

rewrite181.0ms (0.8%)

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

simplify31.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

localize11.0ms (0%)

Local error

Found 3 expressions with local error:

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

Compiled 35 to 10 computations (71.4% saved)

series15.0ms (0.1%)

Counts
3 → 122
Calls

36 calls:

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

rewrite85.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
594×log-prod_binary64
574×fma-def_binary64
483×pow-prod-down_binary64
313×pow2_binary64
271×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify30.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
028850
166850
286850
392850
Stop Event
saturated
Counts
313 → 218
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)))
x
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
x
x
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))
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)
x
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.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 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 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 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 b z) a x)
(fma.f64 b (*.f64 z a) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.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 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 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)
x
x
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)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 y z (*.f64 b (*.f64 z a)))
9.4b
(*.f64 b (*.f64 z a))
Compiler

Compiled 26 to 9 computations (65.4% saved)

series10.0ms (0%)

Counts
2 → 84
Calls

21 calls:

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

rewrite70.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
789×pow1_binary64
720×add-log-exp_binary64
720×log1p-expm1-u_binary64
720×expm1-log1p-u_binary64
702×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify77.0ms (0.3%)

Algorithm
egg-herbie
Rules
181×fma-neg_binary64
175×fma-def_binary64
80×associate-*l*_binary64
78×cancel-sign-sub-inv_binary64
59×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021615
153615
2120615
3287615
4638615
5931615
61145615
71200615
Stop Event
saturated
Counts
118 → 44
Calls
Call 1
Inputs
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
Outputs
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 b (*.f64 a z))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))

eval264.0ms (1.2%)

Compiler

Compiled 7601 to 2076 computations (72.7% saved)

prune294.0ms (1.3%)

Pruning

22 alts after pruning (15 fresh and 7 done)

PrunedKeptTotal
New52111532
Fresh549
Picked011
Done167
Total52722549
Error
0.0b
Counts
549 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
39.1b
(*.f64 z (+.f64 (*.f64 a b) y))
54.4b
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))
34.0b
(+.f64 (*.f64 y z) (*.f64 a t))
17.9b
(+.f64 (+.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) x)
39.0b
(+.f64 (*.f64 z y) (*.f64 b (*.f64 z a)))
54.6b
(*.f64 z (*.f64 a b))
31.1b
(+.f64 (*.f64 a (*.f64 z b)) x)
41.5b
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a))
39.2b
x
47.1b
(*.f64 z y)
30.9b
(+.f64 (*.f64 b (*.f64 z a)) x)
23.9b
(+.f64 (*.f64 y z) x)
49.5b
(*.f64 a t)
54.9b
(*.f64 (*.f64 z b) a)
39.0b
(fma.f64 y z (*.f64 b (*.f64 z a)))
26.3b
(+.f64 (*.f64 t a) x)
15.9b
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
26.3b
(fma.f64 a t x)
41.5b
(*.f64 (+.f64 t (*.f64 b z)) a)
15.6b
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
42.1b
(fma.f64 (*.f64 (*.f64 a z) (sqrt.f64 b)) (sqrt.f64 b) (+.f64 x (*.f64 a t)))
17.6b
(fma.f64 a (+.f64 t (*.f64 z b)) x)
Compiler

Compiled 498 to 336 computations (32.5% saved)

localize10.0ms (0%)

Local error

Found 3 expressions with local error:

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

Compiled 35 to 10 computations (71.4% saved)

series14.0ms (0.1%)

Counts
3 → 87
Calls

36 calls:

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

rewrite222.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
594×log-prod_binary64
574×fma-def_binary64
483×pow-prod-down_binary64
313×pow2_binary64
271×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify25.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
021669
151615
272615
381615
Stop Event
saturated
Counts
278 → 208
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
x
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 z (+.f64 (*.f64 a b) y))
x
x
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 z (fma.f64 a b y))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
x
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) x)
(fma.f64 y z x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 z b) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 z (fma.f64 a b y)) x)
(fma.f64 z (fma.f64 a b y) x)
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
x
x
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

rewrite56.0ms (0.2%)

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

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

localize16.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

localize144.0ms (0.6%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 9 computations (60.9% saved)

series7.0ms (0%)

Counts
1 → 12
Calls

12 calls:

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

rewrite63.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

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

simplify24.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 42 to 11 computations (73.8% saved)

series8.0ms (0%)

Counts
2 → 108
Calls

27 calls:

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

rewrite244.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
773×fma-def_binary64
659×log-prod_binary64
352×fma-neg_binary64
336×pow2_binary64
232×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify192.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
035849
1100849
2202849
3393849
4874849
51386849
61617849
71820849
81893849
91903849
Stop Event
saturated
Counts
305 → 219
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 (*.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 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 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 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 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))
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 (*.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 z) b)
(*.f64 b (*.f64 a z))
(+.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 z) b)
(*.f64 b (*.f64 a z))
(+.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 (*.f64 a z) b)
(*.f64 b (*.f64 a 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 (*.f64 a z) b)
(*.f64 b (*.f64 a 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 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 z b) x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 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 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 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 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 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 z) b)
(*.f64 b (*.f64 a z))
(+.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 z) b)
(*.f64 b (*.f64 a z))
(+.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 (*.f64 a z) b)
(*.f64 b (*.f64 a 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 (*.f64 a z) b)
(*.f64 b (*.f64 a 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 (*.f64 a z) b)
(*.f64 b (*.f64 a 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))

eval276.0ms (1.2%)

Compiler

Compiled 8743 to 2381 computations (72.8% saved)

prune312.0ms (1.4%)

Pruning

24 alts after pruning (12 fresh and 12 done)

PrunedKeptTotal
New6167623
Fresh5510
Picked011
Done01111
Total62124645
Error
0b
Counts
645 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
39.1b
(*.f64 z (+.f64 (*.f64 a b) y))
54.4b
(/.f64 (*.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 b z) 2)) a) (-.f64 t (*.f64 b z)))
34.0b
(+.f64 (*.f64 y z) (*.f64 a t))
17.9b
(+.f64 (+.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) x)
39.2b
(*.f64 z (fma.f64 (*.f64 a (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) y))
54.6b
(*.f64 z (*.f64 a b))
26.3b
(fma.f64 a t x)
31.3b
(+.f64 (*.f64 z (*.f64 a b)) x)
41.5b
(+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a))
54.5b
(*.f64 b (*.f64 a z))
30.9b
(+.f64 (*.f64 b (*.f64 z a)) x)
23.9b
(+.f64 (*.f64 y z) x)
49.5b
(*.f64 a t)
54.9b
(*.f64 (*.f64 z b) a)
39.0b
(fma.f64 y z (*.f64 b (*.f64 z a)))
26.3b
(+.f64 (*.f64 t a) x)
15.9b
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
39.0b
(+.f64 (*.f64 (*.f64 z a) b) (*.f64 z y))
31.1b
(fma.f64 a (*.f64 z b) x)
47.1b
(*.f64 z y)
41.5b
(*.f64 (+.f64 t (*.f64 b z)) a)
52.4b
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y y)) z) (fma.f64 a b (neg.f64 y)))
15.6b
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)
39.2b
x
Compiler

Compiled 324 to 222 computations (31.5% saved)

regimes548.0ms (2.4%)

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

7 calls:

215.0ms
x
148.0ms
a
45.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
42.0ms
y
32.0ms
z
Results
ErrorSegmentsBranch
0.9b2x
1.9b1y
1.9b1z
1.9b1t
1.9b1a
1.9b1b
1.9b1(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 449 to 160 computations (64.4% saved)

bsearch50.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
49.0ms
-3.2418180652736406e-269
-2.652333994259129e-270
Compiler

Compiled 30 to 21 computations (30% saved)

regimes372.0ms (1.7%)

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

7 calls:

169.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
41.0ms
b
32.0ms
a
22.0ms
y
21.0ms
t
Results
ErrorSegmentsBranch
1.9b1x
1.9b1y
1.9b1z
1.9b1t
1.9b1a
1.9b1b
1.9b1(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 380 to 136 computations (64.2% saved)

regimes385.0ms (1.7%)

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

6 calls:

110.0ms
b
70.0ms
a
57.0ms
t
48.0ms
x
46.0ms
z
Results
ErrorSegmentsBranch
6.3b3x
5.7b3y
5.6b3z
4.8b3t
5.1b4a
4.5b7b
Compiler

Compiled 252 to 89 computations (64.7% saved)

bsearch717.0ms (3.2%)

Algorithm
binary-search
Steps
TimeLeftRight
256.0ms
5.159815624484656e+203
1.3307879174971269e+213
365.0ms
4.26404588552433e+161
8.440567809782076e+175
30.0ms
2.279681060672732e+74
5.243524446357296e+74
27.0ms
-1.2593631239613118e+47
-3.950487130581789e+42
23.0ms
-2.625536526701105e+140
-3.815619037801932e+135
16.0ms
-6.989114942646226e+188
-3.781703570142871e+186
Compiler

Compiled 714 to 489 computations (31.5% saved)

regimes568.0ms (2.5%)

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

6 calls:

241.0ms
b
104.0ms
a
65.0ms
z
62.0ms
t
47.0ms
y
Results
ErrorSegmentsBranch
9.2b3x
5.7b3y
5.6b3z
4.8b3t
5.1b4a
6.0b4b
Compiler

Compiled 239 to 88 computations (63.2% saved)

bsearch54.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
7.998822610300401e-35
3.97301982731068e-17
28.0ms
-2.1057920084126973
-0.33092895466172256
Compiler

Compiled 30 to 21 computations (30% saved)

regimes503.0ms (2.2%)

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

6 calls:

188.0ms
z
80.0ms
t
67.0ms
x
63.0ms
a
54.0ms
b
Results
ErrorSegmentsBranch
9.2b3x
5.7b3y
5.6b3z
5.5b3t
5.1b4a
6.0b4b
Compiler

Compiled 215 to 82 computations (61.9% saved)

bsearch279.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
42.0ms
3.1912440597283463e-23
0.23240506136489986
25.0ms
-3.984672225014302e-211
-6.920548277870255e-214
212.0ms
-1.0244800200461934e+32
-1.1516762880072119e+29
Compiler

Compiled 286 to 197 computations (31.1% saved)

regimes468.0ms (2.1%)

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

6 calls:

229.0ms
a
52.0ms
t
49.0ms
b
48.0ms
z
44.0ms
x
Results
ErrorSegmentsBranch
9.2b3x
5.7b3y
5.6b3z
5.5b3t
5.1b4a
6.0b4b
Compiler

Compiled 204 to 81 computations (60.3% saved)

bsearch295.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
3.1912440597283463e-23
0.23240506136489986
63.0ms
-3.984672225014302e-211
-6.920548277870255e-214
208.0ms
-1.0244800200461934e+32
-1.1516762880072119e+29
Compiler

Compiled 286 to 197 computations (31.1% saved)

regimes755.0ms (3.4%)

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

6 calls:

234.0ms
x
187.0ms
b
132.0ms
y
108.0ms
t
47.0ms
z
Results
ErrorSegmentsBranch
10.0b8x
10.0b4y
7.6b3z
9.1b5t
6.8b3a
11.3b5b
Compiler

Compiled 184 to 77 computations (58.2% saved)

bsearch73.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
3.1912440597283463e-23
0.23240506136489986
35.0ms
-2.7841185835257418e-39
-5.6499180441146464e-40
Compiler

Compiled 30 to 21 computations (30% saved)

regimes437.0ms (1.9%)

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

6 calls:

105.0ms
y
76.0ms
a
69.0ms
t
66.0ms
b
63.0ms
x
Results
ErrorSegmentsBranch
12.5b4x
13.2b4y
9.1b5z
9.2b6t
9.5b5a
14.2b3b
Compiler

Compiled 175 to 74 computations (57.7% saved)

bsearch131.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
48.0ms
5.219731398305925e-137
1.0169490166596519e-135
32.0ms
1.3172362385422615e-155
9.007565466510149e-155
25.0ms
9.337696312910456e-208
4.28928682748619e-205
25.0ms
-8.74080563531487e-127
-1.308835276113686e-128
Compiler

Compiled 30 to 21 computations (30% saved)

regimes597.0ms (2.7%)

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

6 calls:

171.0ms
b
136.0ms
t
102.0ms
y
63.0ms
a
63.0ms
x
Results
ErrorSegmentsBranch
16.1b5x
14.2b8y
15.8b5z
13.7b10t
13.5b5a
14.8b9b
Compiler

Compiled 157 to 72 computations (54.1% saved)

bsearch147.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
47.0ms
6.29699825893274e+138
7.5476537798474785e+146
26.0ms
3.55390623804812e-38
1.7583180249150993e-36
28.0ms
-2.7841185835257418e-39
-5.6499180441146464e-40
45.0ms
-9.507708203213025e+142
-3.3202845900117588e+140
Compiler

Compiled 490 to 353 computations (28% saved)

regimes431.0ms (1.9%)

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

6 calls:

93.0ms
y
89.0ms
t
80.0ms
b
66.0ms
x
53.0ms
a
Results
ErrorSegmentsBranch
16.1b5x
14.2b8y
15.8b5z
13.7b10t
13.5b5a
14.8b9b
Compiler

Compiled 148 to 70 computations (52.7% saved)

bsearch211.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
69.0ms
6.29699825893274e+138
7.5476537798474785e+146
54.0ms
3.55390623804812e-38
1.7583180249150993e-36
27.0ms
-2.7841185835257418e-39
-5.6499180441146464e-40
61.0ms
-9.507708203213025e+142
-3.3202845900117588e+140
Compiler

Compiled 472 to 344 computations (27.1% saved)

regimes755.0ms (3.4%)

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

6 calls:

199.0ms
y
173.0ms
b
141.0ms
x
125.0ms
t
67.0ms
a
Results
ErrorSegmentsBranch
16.1b5x
14.2b8y
15.8b5z
13.7b10t
16.0b4a
14.8b9b
Compiler

Compiled 123 to 64 computations (48% saved)

bsearch657.0ms (2.9%)

Algorithm
binary-search
Steps
TimeLeftRight
81.0ms
1.1148369494546033e+118
1.7774151554745037e+118
26.0ms
1.0804551231645549e-246
3.2422523989051475e-245
30.0ms
5.583682376370084e-281
3.99849112512106e-280
26.0ms
-5.993505413801874e-275
-2.5242412586717523e-285
27.0ms
-6.512013589828241e-259
-7.059385001194866e-262
51.0ms
-9.856302556660085e-64
-2.44561138268753e-64
82.0ms
-2.9904520797851714e-8
-2.3748075135526543e-17
176.0ms
-1.8293286501265004e+89
-7.260215648276754e+88
158.0ms
-2.0859494173219973e+159
-3.627310778517061e+157
Compiler

Compiled 414 to 309 computations (25.4% saved)

regimes466.0ms (2.1%)

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

6 calls:

137.0ms
y
96.0ms
t
91.0ms
b
49.0ms
a
42.0ms
z
Results
ErrorSegmentsBranch
17.4b3x
14.4b8y
16.0b5z
14.0b10t
17.0b3a
15.7b9b
Compiler

Compiled 116 to 62 computations (46.6% saved)

bsearch612.0ms (2.7%)

Algorithm
binary-search
Steps
TimeLeftRight
132.0ms
1.1148369494546033e+118
1.7774151554745037e+118
25.0ms
8.007903106620106e-164
4.132934702792809e-161
49.0ms
2.0317719983647055e-277
2.3372257609633104e-276
25.0ms
-4.1000398598651075e-302
-3.717093256118276e-304
26.0ms
-6.512013589828241e-259
-7.059385001194866e-262
25.0ms
-9.856302556660085e-64
-2.44561138268753e-64
26.0ms
-2.9904520797851714e-8
-2.3748075135526543e-17
157.0ms
-1.8293286501265004e+89
-7.260215648276754e+88
145.0ms
-2.0859494173219973e+159
-3.627310778517061e+157
Compiler

Compiled 414 to 309 computations (25.4% saved)

regimes272.0ms (1.2%)

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

6 calls:

75.0ms
t
61.0ms
b
51.0ms
y
36.0ms
z
28.0ms
a
Results
ErrorSegmentsBranch
22.4b2x
16.0b7y
16.0b5z
14.0b10t
17.0b3a
17.0b8b
Compiler

Compiled 102 to 58 computations (43.1% saved)

bsearch536.0ms (2.4%)

Algorithm
binary-search
Steps
TimeLeftRight
114.0ms
1.1148369494546033e+118
1.7774151554745037e+118
27.0ms
1.0804551231645549e-246
3.2422523989051475e-245
65.0ms
5.583682376370084e-281
3.99849112512106e-280
25.0ms
-4.1000398598651075e-302
-3.717093256118276e-304
28.0ms
-6.512013589828241e-259
-7.059385001194866e-262
26.0ms
-9.856302556660085e-64
-2.44561138268753e-64
25.0ms
-2.9904520797851714e-8
-2.3748075135526543e-17
113.0ms
-1.8293286501265004e+89
-7.260215648276754e+88
112.0ms
-2.0859494173219973e+159
-3.627310778517061e+157
Compiler

Compiled 414 to 309 computations (25.4% saved)

regimes325.0ms (1.4%)

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

6 calls:

83.0ms
y
76.0ms
z
74.0ms
b
49.0ms
t
24.0ms
a
Results
ErrorSegmentsBranch
22.4b2x
17.5b5y
15.5b6z
15.6b7t
17.0b3a
17.3b8b
Compiler

Compiled 95 to 56 computations (41.1% saved)

bsearch248.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
89.0ms
8.96493525025134e+103
4.697122322478472e+107
25.0ms
6.529864259470139e-33
1.0847464529648743e-32
59.0ms
4.9324539507552834e-45
2.9976884631943712e-40
25.0ms
2.6947945449177502e-95
4.419806902480659e-95
49.0ms
-2.287843689408706e-18
-1.8847921352555316e-20
Compiler

Compiled 238 to 173 computations (27.3% saved)

regimes217.0ms (1%)

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

6 calls:

77.0ms
b
49.0ms
t
27.0ms
z
21.0ms
y
21.0ms
a
Results
ErrorSegmentsBranch
22.4b2x
19.4b3y
17.6b3z
15.7b7t
17.0b3a
19.0b7b
Compiler

Compiled 88 to 55 computations (37.5% saved)

bsearch480.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
144.0ms
1.1148369494546033e+118
1.7774151554745037e+118
26.0ms
1.7284660865808273e-289
5.583682376370084e-281
24.0ms
-4.1000398598651075e-302
-3.717093256118276e-304
24.0ms
-2.9904520797851714e-8
-2.3748075135526543e-17
107.0ms
-1.8293286501265004e+89
-7.260215648276754e+88
154.0ms
-2.0859494173219973e+159
-3.627310778517061e+157
Compiler

Compiled 414 to 309 computations (25.4% saved)

regimes194.0ms (0.9%)

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

6 calls:

56.0ms
b
34.0ms
y
32.0ms
x
25.0ms
z
23.0ms
a
Results
ErrorSegmentsBranch
23.6b5x
23.9b4y
22.7b3z
24.7b3t
25.1b3a
21.3b8b
Compiler

Compiled 83 to 53 computations (36.1% saved)

bsearch1.2s (5.2%)

Algorithm
binary-search
Steps
TimeLeftRight
6.0ms
3.13728441447115e+302
2.1400244539485951e+304
190.0ms
1.7308838293851705e+220
3.554418192622581e+233
465.0ms
7.915031540865248e+182
2.9613142858390715e+201
223.0ms
4.26404588552433e+161
8.440567809782076e+175
27.0ms
1.2212674070732743e+115
3.5719906433757066e+123
158.0ms
-1.0291917352116903e+147
-2.834005316251759e+146
95.0ms
-9.512164006837954e+210
-2.560792518173027e+209
Compiler

Compiled 1022 to 775 computations (24.2% saved)

regimes478.0ms (2.1%)

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

6 calls:

146.0ms
z
103.0ms
b
78.0ms
a
64.0ms
t
63.0ms
y
Results
ErrorSegmentsBranch
30.7b3x
30.6b9y
30.3b9z
32.1b9t
31.1b10a
31.1b11b
Compiler

Compiled 73 to 50 computations (31.5% saved)

bsearch456.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
174.0ms
9.450919035773233e+28
5.126544716868549e+33
25.0ms
5.219731398305925e-137
1.0169490166596519e-135
28.0ms
1.3172362385422615e-155
9.007565466510149e-155
27.0ms
8.01427576143493e-204
2.3365092168185812e-203
40.0ms
3.3626057716688744e-301
5.333828755429134e-291
28.0ms
-3.0190857245075347e-243
-1.0048216514539251e-251
27.0ms
-1.92596764284121e-172
-1.2679522133573736e-172
106.0ms
-1.4006199026035513e+108
-2.297233816992645e+93
Compiler

Compiled 354 to 291 computations (17.8% saved)

regimes261.0ms (1.2%)

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

6 calls:

90.0ms
z
54.0ms
x
43.0ms
y
39.0ms
t
20.0ms
a
Results
ErrorSegmentsBranch
33.4b3x
36.6b4y
34.7b7z
35.0b5t
33.5b5a
38.1b3b
Compiler

Compiled 55 to 43 computations (21.8% saved)

bsearch231.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
81.0ms
3.40499954080646e-87
5.753448188943922e-65
150.0ms
-2.930975654195354e-74
-8.211177397443933e-81
Compiler

Compiled 30 to 21 computations (30% saved)

regimes56.0ms (0.2%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

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

6 calls:

9.0ms
a
9.0ms
y
9.0ms
b
9.0ms
t
8.0ms
x
Results
ErrorSegmentsBranch
39.2b1x
39.2b1y
39.2b1z
39.2b1t
39.2b1a
39.2b1b
Compiler

Compiled 52 to 42 computations (19.2% saved)

simplify96.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02361402
12761402
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -4820638277270637/148701690847778306279806249814990056013126020165939445905577185931594065716040437354516831449615635058979872379019297305045458524554490570779083058110239462578297084044745987394268640983429773687023919578235143720606774870687788008815709894034865808301204510545414391282376534881468416) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
(if (<=.f64 b -100000000000000002309309130269787154892983822485169927543056457815484218967945768886576179686795076111078238543825857419659919011313587350687602971665369018571203143144663564875896666980352) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 b -100000000000000005928380124081487003706362488767045328864850074482999577828473980652023296508018124569151792237293382948229697163514582401024) (+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) (if (<=.f64 b -125936312396131183900456563770908758187679154176) (+.f64 (+.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) x) (if (<=.f64 b 227968106067273192790336339139371352594742320904423624529219231418064830464) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 b 430000000000000001246341055221341303752836997505526333219001244124896431017463309315258643519638472479949674686302573183417789498184060357591947752324703446892544) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 b 1299999999999999994598754200661058408846973325317852782205590096189150717277628233367530351920773295153717440436358183102764648718613688228594586661485373738040505873701341032980397249796517423134654286529334083584) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)))))))
(if (<=.f64 t -1185455513050899/562949953421312) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 t 7481787098671029/93536104789177786765035829293842113257979682750464) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))))
(if (<=.f64 a -100000000000000005366162204393472) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 a -4719753815630207/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 a 10859240820667464/340282366920938463463374607431768211456) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))))
(if (<=.f64 a -100000000000000005366162204393472) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 a -4719753815630207/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 a 10859240820667464/340282366920938463463374607431768211456) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))))
(if (<=.f64 a -17476195592171741184/6277101735386680763835789423207666416102355444464034512896) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 a 10859240820667464/340282366920938463463374607431768211456) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)))
(if (<=.f64 z -2728659732063804928/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (if (<=.f64 z 675066489083837/722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137472) (+.f64 (*.f64 t a) x) (if (<=.f64 z 3257925677135796224/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (if (<=.f64 z 699851560343765376/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)))))
(if (<=.f64 a -95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 a -17476195592171741184/6277101735386680763835789423207666416102355444464034512896) (+.f64 (*.f64 t a) x) (if (<=.f64 a 6807931828080263/191561942608236107294793378393788647952342390272950272) (+.f64 (*.f64 y z) x) (if (<=.f64 a 6500000000000000543998140574956318989373235697722995935032378752822465187166519608238904169735901095040277000955738255056821201634053849088) (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) (+.f64 (*.f64 t a) x)))))
(if (<=.f64 a -95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 a -17476195592171741184/6277101735386680763835789423207666416102355444464034512896) (+.f64 (*.f64 t a) x) (if (<=.f64 a 6807931828080263/191561942608236107294793378393788647952342390272950272) (+.f64 (*.f64 y z) x) (if (<=.f64 a 6500000000000000543998140574956318989373235697722995935032378752822465187166519608238904169735901095040277000955738255056821201634053849088) (*.f64 (+.f64 t (*.f64 b z)) a) (+.f64 (*.f64 t a) x)))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 (*.f64 y z) x) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t -1168171845730503/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (+.f64 (*.f64 y z) x) (if (<=.f64 t 2337095205497974784/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 t 2126390236263521/1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 (*.f64 y z) x) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t -31656543971499932/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (+.f64 (*.f64 y z) x) (if (<=.f64 t 2027546227060095/9979201547673599058281863565184192830337256302177287707512736212186059459344820328924789827463178505446712234220962476219862189941967968303695858991424157101600028364755428382587688607221814935913266783722719619966654052275604351944444276342240220787535604534378780208211792476151720049639424) (+.f64 (*.f64 z (*.f64 a b)) x) (if (<=.f64 t 2596009266797703/32418090381882757488378186435087196492284736189394038281216072888208225089163344893747711319899248392876545989150787415487462117776654494592866209641515341305165482839074293153792) (+.f64 (*.f64 b (*.f64 z a)) x) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 (*.f64 y z) x) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t -31656543971499932/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (+.f64 (*.f64 y z) x) (if (<=.f64 t 2337095205497974784/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (*.f64 z (*.f64 a b)) (if (<=.f64 t 2126390236263521/1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x))))))))))
(if (<=.f64 z -5939581800667777/2596148429267413814265248164610048) (+.f64 (*.f64 y z) x) (if (<=.f64 z 8100914867924441/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (+.f64 (*.f64 t a) x) (if (<=.f64 z 7926147905024225/1606938044258990275541962092341162602522202993782792835301376) (+.f64 (*.f64 y z) x) (if (<=.f64 z 9543407306764152/1461501637330902918203684832716283019655932542976) (*.f64 a t) (if (<=.f64 z 460000000000000005209911989148730551979786446411916917364659953255829021735633282620228888746853449464807424) (+.f64 (*.f64 z (*.f64 a b)) x) (+.f64 (*.f64 y z) x))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -31656543971499932/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (+.f64 (*.f64 y z) x) (if (<=.f64 t 3793031759873885/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (*.f64 b (*.f64 a z)) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 b -260000000000000004409279391255236968838452341042161078552650559159297451928410084209913951569635290474657782664332904834215356622671528521939566853056001747105703274630036317900879442149574272566645085416980480) (+.f64 (*.f64 t a) x) (if (<=.f64 b -999999999999999977996382405657660174364823889467801080772253244969263939229107492426926049423260513969768268415537077468838432306731146395363835904) (*.f64 z (*.f64 a b)) (if (<=.f64 b 12212674070732743231002759183000235211937273066842401900211943292473929592825845304226700656310883333493175091200000) (+.f64 (*.f64 t a) x) (if (<=.f64 b 430000000000000001246341055221341303752836997505526333219001244124896431017463309315258643519638472479949674686302573183417789498184060357591947752324703446892544) (*.f64 (*.f64 z b) a) (if (<=.f64 b 800000000000000051624958981790716477233686019282313358158687662661886474600162292450172079946996125613163062311161473441537558360738312405085639162582330632989263609742110566423461888) (+.f64 (*.f64 t a) x) (if (<=.f64 b 349999999999999979777914949692886579410939729819945412986377766587345238883449246448784982730746298110133845179025464938857614978426924936365590664987838605819365997211188859547295016044352505219550235648846676150729599735987777306624) (*.f64 z y) (if (<=.f64 b 9999999999999999392535525055364621860040287220117324953190771571323204563013233902843309257440507748436856118056162172578717193742636030530235798840866882774987301441682011041067710253162440905843719802548551599076639682550821832659549112269607949805346034918662572406407604380845959862074904348138143744) (*.f64 b (*.f64 a z)) (*.f64 z (*.f64 a b)))))))))
(if (<=.f64 z -1399999999999999891154225415715423007504935737757814498046030367229121331556894656193354441108767789404913664) (*.f64 z y) (if (<=.f64 z -3352017594118047/17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304) x (if (<=.f64 z -371357071513097792/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) (*.f64 a t) (if (<=.f64 z 259627908771495136/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) x (if (<=.f64 z 2896950607261334016/361473786714651839609485931802192366508973300717001923159475447150424810286233407987951861887389439612274926783780351561999781998832434041296198795326329101623141899709787663433296905279066051548640942013290819886814068736) (*.f64 a t) (if (<=.f64 z 3257925677135796224/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) x (if (<=.f64 z 699851560343765376/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 a t) (if (<=.f64 z 4999999999999999727876154935214080) x (*.f64 z y)))))))))
(if (<=.f64 x -7463128566695553/254629497041810760783555711051172270131433549208242031329517556169297662470417088272924672) x (if (<=.f64 x 3813164909319553/1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557888) (*.f64 a t) x))
x
Outputs
(if (<=.f64 x -4820638277270637/148701690847778306279806249814990056013126020165939445905577185931594065716040437354516831449615635058979872379019297305045458524554490570779083058110239462578297084044745987394268640983429773687023919578235143720606774870687788008815709894034865808301204510545414391282376534881468416) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)))
(if (<=.f64 x -4820638277270637/148701690847778306279806249814990056013126020165939445905577185931594065716040437354516831449615635058979872379019297305045458524554490570779083058110239462578297084044745987394268640983429773687023919578235143720606774870687788008815709894034865808301204510545414391282376534881468416) (+.f64 (+.f64 (*.f64 t a) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 z a) b)) (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 (*.f64 t a) (+.f64 x (*.f64 y z))) (*.f64 (*.f64 z a) b))
(if (<=.f64 b -100000000000000002309309130269787154892983822485169927543056457815484218967945768886576179686795076111078238543825857419659919011313587350687602971665369018571203143144663564875896666980352) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 b -100000000000000005928380124081487003706362488767045328864850074482999577828473980652023296508018124569151792237293382948229697163514582401024) (+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b)) (if (<=.f64 b -125936312396131183900456563770908758187679154176) (+.f64 (+.f64 (*.f64 (*.f64 a z) b) (*.f64 a t)) x) (if (<=.f64 b 227968106067273192790336339139371352594742320904423624529219231418064830464) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 b 430000000000000001246341055221341303752836997505526333219001244124896431017463309315258643519638472479949674686302573183417789498184060357591947752324703446892544) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 b 1299999999999999994598754200661058408846973325317852782205590096189150717277628233367530351920773295153717440436358183102764648718613688228594586661485373738040505873701341032980397249796517423134654286529334083584) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)))))))
(if (<=.f64 b -100000000000000002309309130269787154892983822485169927543056457815484218967945768886576179686795076111078238543825857419659919011313587350687602971665369018571203143144663564875896666980352) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 b -100000000000000005928380124081487003706362488767045328864850074482999577828473980652023296508018124569151792237293382948229697163514582401024) (+.f64 (*.f64 (*.f64 z a) b) (+.f64 (*.f64 y z) (*.f64 t a))) (if (<=.f64 b -125936312396131183900456563770908758187679154176) (+.f64 x (+.f64 (*.f64 (*.f64 z a) b) (*.f64 t a))) (if (<=.f64 b 227968106067273192790336339139371352594742320904423624529219231418064830464) (+.f64 (*.f64 y z) (+.f64 x (*.f64 t a))) (if (<=.f64 b 430000000000000001246341055221341303752836997505526333219001244124896431017463309315258643519638472479949674686302573183417789498184060357591947752324703446892544) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 b 1299999999999999994598754200661058408846973325317852782205590096189150717277628233367530351920773295153717440436358183102764648718613688228594586661485373738040505873701341032980397249796517423134654286529334083584) (+.f64 (*.f64 y z) (+.f64 x (*.f64 t a))) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b))))))))))
(if (<=.f64 t -1185455513050899/562949953421312) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 t 7481787098671029/93536104789177786765035829293842113257979682750464) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))))
(if (<=.f64 t -1185455513050899/562949953421312) (+.f64 (*.f64 y z) (+.f64 x (*.f64 t a))) (if (<=.f64 t 7481787098671029/93536104789177786765035829293842113257979682750464) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (+.f64 (*.f64 y z) (+.f64 x (*.f64 t a)))))
(if (<=.f64 a -100000000000000005366162204393472) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 a -4719753815630207/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 a 10859240820667464/340282366920938463463374607431768211456) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x)))))
(if (<=.f64 a -100000000000000005366162204393472) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a -4719753815630207/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (+.f64 (*.f64 y z) (+.f64 x (*.f64 t a))) (if (<=.f64 a 1357405102583433/42535295865117307932921825928971026432) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b)))) (+.f64 (*.f64 t a) (+.f64 x (*.f64 a (*.f64 z b)))))))
(if (<=.f64 a -100000000000000005366162204393472) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 a -4719753815630207/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 a 10859240820667464/340282366920938463463374607431768211456) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x))))
(if (<=.f64 a -100000000000000005366162204393472) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a -4719753815630207/11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248) (+.f64 (*.f64 y z) (+.f64 x (*.f64 t a))) (if (<=.f64 a 1357405102583433/42535295865117307932921825928971026432) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b)))) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))))))
(if (<=.f64 a -17476195592171741184/6277101735386680763835789423207666416102355444464034512896) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x) (if (<=.f64 a 10859240820667464/340282366920938463463374607431768211456) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)))
(if (<=.f64 a -2133324657247527/766247770432944429179173513575154591809369561091801088) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a 1357405102583433/42535295865117307932921825928971026432) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b)))) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b))))))
(if (<=.f64 z -2728659732063804928/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (if (<=.f64 z 675066489083837/722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137472) (+.f64 (*.f64 t a) x) (if (<=.f64 z 3257925677135796224/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x) (if (<=.f64 z 699851560343765376/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (+.f64 (*.f64 y z) (*.f64 a t)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) x)))))
(if (<=.f64 z -5329413539187119/6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238848) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b)))) (if (<=.f64 z 675066489083837/722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137472) (+.f64 x (*.f64 t a)) (if (<=.f64 z 1590784022038963/120766797594289323271729746591624604509341479053326093708038601607859973196548763266756055205685080561326988000984443036792658708157593364241965896045846273396780650463232) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b)))) (if (<=.f64 z 5467590315185667/104748499452676539840422070298483172870932545473378073263465323779076281484949585756264642954428933028828373892081922272294952209468332577706512882860032) (+.f64 (*.f64 y z) (*.f64 t a)) (+.f64 x (*.f64 z (+.f64 y (*.f64 a b))))))))
(if (<=.f64 a -95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 a -17476195592171741184/6277101735386680763835789423207666416102355444464034512896) (+.f64 (*.f64 t a) x) (if (<=.f64 a 6807931828080263/191561942608236107294793378393788647952342390272950272) (+.f64 (*.f64 y z) x) (if (<=.f64 a 6500000000000000543998140574956318989373235697722995935032378752822465187166519608238904169735901095040277000955738255056821201634053849088) (+.f64 (*.f64 (*.f64 b z) a) (*.f64 t a)) (+.f64 (*.f64 t a) x)))))
(if (<=.f64 a -95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 a -2133324657247527/766247770432944429179173513575154591809369561091801088) (+.f64 x (*.f64 t a)) (if (<=.f64 a 6807931828080263/191561942608236107294793378393788647952342390272950272) (+.f64 x (*.f64 y z)) (if (<=.f64 a 6500000000000000543998140574956318989373235697722995935032378752822465187166519608238904169735901095040277000955738255056821201634053849088) (+.f64 (*.f64 a (*.f64 z b)) (*.f64 t a)) (+.f64 x (*.f64 t a))))))
(if (<=.f64 a -95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 (+.f64 t (*.f64 b z)) a) (if (<=.f64 a -17476195592171741184/6277101735386680763835789423207666416102355444464034512896) (+.f64 (*.f64 t a) x) (if (<=.f64 a 6807931828080263/191561942608236107294793378393788647952342390272950272) (+.f64 (*.f64 y z) x) (if (<=.f64 a 6500000000000000543998140574956318989373235697722995935032378752822465187166519608238904169735901095040277000955738255056821201634053849088) (*.f64 (+.f64 t (*.f64 b z)) a) (+.f64 (*.f64 t a) x)))))
(if (<=.f64 a -95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 a (+.f64 t (*.f64 z b))) (if (<=.f64 a -2133324657247527/766247770432944429179173513575154591809369561091801088) (+.f64 x (*.f64 t a)) (if (<=.f64 a 6807931828080263/191561942608236107294793378393788647952342390272950272) (+.f64 x (*.f64 y z)) (if (<=.f64 a 6500000000000000543998140574956318989373235697722995935032378752822465187166519608238904169735901095040277000955738255056821201634053849088) (*.f64 a (+.f64 t (*.f64 z b))) (+.f64 x (*.f64 t a))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 (*.f64 y z) x) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t -1168171845730503/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (+.f64 (*.f64 y z) x) (if (<=.f64 t 2337095205497974784/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 t 2126390236263521/1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 x (*.f64 t a)) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 x (*.f64 y z)) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 x (*.f64 t a)) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 x (*.f64 y z)) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 t -1168171845730503/19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952) (+.f64 x (*.f64 y z)) (if (<=.f64 t 570579884154779/10218702384817765435680628290748613458265350453429542612493041881278524886369096016818984783322294789577433327842265575649138882500575199542984559607218336872038429045509558663769793133795138494375185186532064890845853749530218856391110938974453986086436459043203870933208875495579361330830770176) (*.f64 z (+.f64 y (*.f64 a b))) (if (<=.f64 t 2126390236263521/1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 t a)))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 (*.f64 y z) x) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t -31656543971499932/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (+.f64 (*.f64 y z) x) (if (<=.f64 t 2027546227060095/9979201547673599058281863565184192830337256302177287707512736212186059459344820328924789827463178505446712234220962476219862189941967968303695858991424157101600028364755428382587688607221814935913266783722719619966654052275604351944444276342240220787535604534378780208211792476151720049639424) (+.f64 (*.f64 z (*.f64 a b)) x) (if (<=.f64 t 2596009266797703/32418090381882757488378186435087196492284736189394038281216072888208225089163344893747711319899248392876545989150787415487462117776654494592866209641515341305165482839074293153792) (+.f64 (*.f64 b (*.f64 z a)) x) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 x (*.f64 t a)) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 x (*.f64 y z)) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 x (*.f64 t a)) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 x (*.f64 y z)) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 t -7914135992874983/193025830561934107162947985381047541665608072055952185017491682078771915023799273387871154500424503798663213600460826789274033295999330021731389427128542432710187362934652673115221889249890533772697227171395058697282798274445240687006095271729621464100656563293799180557568945517759802372156455525060659659679134121984) (+.f64 x (*.f64 y z)) (if (<=.f64 t 2027546227060095/9979201547673599058281863565184192830337256302177287707512736212186059459344820328924789827463178505446712234220962476219862189941967968303695858991424157101600028364755428382587688607221814935913266783722719619966654052275604351944444276342240220787535604534378780208211792476151720049639424) (+.f64 x (*.f64 z (*.f64 a b))) (if (<=.f64 t 2596009266797703/32418090381882757488378186435087196492284736189394038281216072888208225089163344893747711319899248392876545989150787415487462117776654494592866209641515341305165482839074293153792) (+.f64 x (*.f64 (*.f64 z a) b)) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 t a)))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 (*.f64 y z) x) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t -31656543971499932/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (+.f64 (*.f64 y z) x) (if (<=.f64 t 2337095205497974784/41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896) (*.f64 z (*.f64 a b)) (if (<=.f64 t 2126390236263521/1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x))))))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 x (*.f64 t a)) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 x (*.f64 y z)) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 x (*.f64 t a)) (if (<=.f64 t -7304203937220943/7410693711188236507108543040556026102609279018600996098525285376506440296955904) (+.f64 x (*.f64 y z)) (if (<=.f64 t -5636523894681421/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 t -7914135992874983/193025830561934107162947985381047541665608072055952185017491682078771915023799273387871154500424503798663213600460826789274033295999330021731389427128542432710187362934652673115221889249890533772697227171395058697282798274445240687006095271729621464100656563293799180557568945517759802372156455525060659659679134121984) (+.f64 x (*.f64 y z)) (if (<=.f64 t 570579884154779/10218702384817765435680628290748613458265350453429542612493041881278524886369096016818984783322294789577433327842265575649138882500575199542984559607218336872038429045509558663769793133795138494375185186532064890845853749530218856391110938974453986086436459043203870933208875495579361330830770176) (*.f64 z (*.f64 a b)) (if (<=.f64 t 2126390236263521/1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 t a)))))))))))
(if (<=.f64 z -5939581800667777/2596148429267413814265248164610048) (+.f64 (*.f64 y z) x) (if (<=.f64 z 8100914867924441/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (+.f64 (*.f64 t a) x) (if (<=.f64 z 7926147905024225/1606938044258990275541962092341162602522202993782792835301376) (+.f64 (*.f64 y z) x) (if (<=.f64 z 9543407306764152/1461501637330902918203684832716283019655932542976) (*.f64 a t) (if (<=.f64 z 460000000000000005209911989148730551979786446411916917364659953255829021735633282620228888746853449464807424) (+.f64 (*.f64 z (*.f64 a b)) x) (+.f64 (*.f64 y z) x))))))
(if (<=.f64 z -5939581800667777/2596148429267413814265248164610048) (+.f64 x (*.f64 y z)) (if (<=.f64 z 8100914867924441/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (+.f64 x (*.f64 t a)) (if (<=.f64 z 7926147905024225/1606938044258990275541962092341162602522202993782792835301376) (+.f64 x (*.f64 y z)) (if (<=.f64 z 1192925913345519/182687704666362864775460604089535377456991567872) (*.f64 t a) (if (<=.f64 z 460000000000000005209911989148730551979786446411916917364659953255829021735633282620228888746853449464807424) (+.f64 x (*.f64 z (*.f64 a b))) (+.f64 x (*.f64 y z)))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 (*.f64 t a) x) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 (*.f64 y z) x) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 (*.f64 t a) x) (if (<=.f64 t -31656543971499932/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (+.f64 (*.f64 y z) x) (if (<=.f64 t 3793031759873885/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (*.f64 b (*.f64 a z)) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 t a) x)))))))
(if (<=.f64 t -2050000000000000068013835507919728490711563161902095109882480628468700054492073927658624618893616094447707009999480531261690068742567324393357406860884840546304) (+.f64 x (*.f64 t a)) (if (<=.f64 t -75000000000000003140219060950622358403440959323848663371424064800169147646943286437871616) (+.f64 x (*.f64 y z)) (if (<=.f64 t -4519043414465701/151115727451828646838272) (+.f64 x (*.f64 t a)) (if (<=.f64 t -7914135992874983/193025830561934107162947985381047541665608072055952185017491682078771915023799273387871154500424503798663213600460826789274033295999330021731389427128542432710187362934652673115221889249890533772697227171395058697282798274445240687006095271729621464100656563293799180557568945517759802372156455525060659659679134121984) (+.f64 x (*.f64 y z)) (if (<=.f64 t 3793031759873885/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (*.f64 (*.f64 z a) b) (if (<=.f64 t 17500000000000000814727962011856710169074076771288673691557004019056275403974335196805588124958559293764877816904548352) (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 t a))))))))
(if (<=.f64 b -260000000000000004409279391255236968838452341042161078552650559159297451928410084209913951569635290474657782664332904834215356622671528521939566853056001747105703274630036317900879442149574272566645085416980480) (+.f64 (*.f64 t a) x) (if (<=.f64 b -999999999999999977996382405657660174364823889467801080772253244969263939229107492426926049423260513969768268415537077468838432306731146395363835904) (*.f64 z (*.f64 a b)) (if (<=.f64 b 12212674070732743231002759183000235211937273066842401900211943292473929592825845304226700656310883333493175091200000) (+.f64 (*.f64 t a) x) (if (<=.f64 b 430000000000000001246341055221341303752836997505526333219001244124896431017463309315258643519638472479949674686302573183417789498184060357591947752324703446892544) (*.f64 (*.f64 z b) a) (if (<=.f64 b 800000000000000051624958981790716477233686019282313358158687662661886474600162292450172079946996125613163062311161473441537558360738312405085639162582330632989263609742110566423461888) (+.f64 (*.f64 t a) x) (if (<=.f64 b 349999999999999979777914949692886579410939729819945412986377766587345238883449246448784982730746298110133845179025464938857614978426924936365590664987838605819365997211188859547295016044352505219550235648846676150729599735987777306624) (*.f64 z y) (if (<=.f64 b 9999999999999999392535525055364621860040287220117324953190771571323204563013233902843309257440507748436856118056162172578717193742636030530235798840866882774987301441682011041067710253162440905843719802548551599076639682550821832659549112269607949805346034918662572406407604380845959862074904348138143744) (*.f64 b (*.f64 a z)) (*.f64 z (*.f64 a b)))))))))
(if (<=.f64 b -260000000000000004409279391255236968838452341042161078552650559159297451928410084209913951569635290474657782664332904834215356622671528521939566853056001747105703274630036317900879442149574272566645085416980480) (+.f64 x (*.f64 t a)) (if (<=.f64 b -999999999999999977996382405657660174364823889467801080772253244969263939229107492426926049423260513969768268415537077468838432306731146395363835904) (*.f64 z (*.f64 a b)) (if (<=.f64 b 12212674070732743231002759183000235211937273066842401900211943292473929592825845304226700656310883333493175091200000) (+.f64 x (*.f64 t a)) (if (<=.f64 b 430000000000000001246341055221341303752836997505526333219001244124896431017463309315258643519638472479949674686302573183417789498184060357591947752324703446892544) (*.f64 a (*.f64 z b)) (if (<=.f64 b 800000000000000051624958981790716477233686019282313358158687662661886474600162292450172079946996125613163062311161473441537558360738312405085639162582330632989263609742110566423461888) (+.f64 x (*.f64 t a)) (if (<=.f64 b 349999999999999979777914949692886579410939729819945412986377766587345238883449246448784982730746298110133845179025464938857614978426924936365590664987838605819365997211188859547295016044352505219550235648846676150729599735987777306624) (*.f64 y z) (if (<=.f64 b 9999999999999999392535525055364621860040287220117324953190771571323204563013233902843309257440507748436856118056162172578717193742636030530235798840866882774987301441682011041067710253162440905843719802548551599076639682550821832659549112269607949805346034918662572406407604380845959862074904348138143744) (*.f64 (*.f64 z a) b) (*.f64 z (*.f64 a b)))))))))
(if (<=.f64 z -1399999999999999891154225415715423007504935737757814498046030367229121331556894656193354441108767789404913664) (*.f64 z y) (if (<=.f64 z -3352017594118047/17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304) x (if (<=.f64 z -371357071513097792/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) (*.f64 a t) (if (<=.f64 z 259627908771495136/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) x (if (<=.f64 z 2896950607261334016/361473786714651839609485931802192366508973300717001923159475447150424810286233407987951861887389439612274926783780351561999781998832434041296198795326329101623141899709787663433296905279066051548640942013290819886814068736) (*.f64 a t) (if (<=.f64 z 3257925677135796224/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) x (if (<=.f64 z 699851560343765376/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 a t) (if (<=.f64 z 4999999999999999727876154935214080) x (*.f64 z y)))))))))
(if (<=.f64 z -1399999999999999891154225415715423007504935737757814498046030367229121331556894656193354441108767789404913664) (*.f64 y z) (if (<=.f64 z -3352017594118047/17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304) x (if (<=.f64 z -5802454242392153/1921924308174003258872616370050369756495810455948672905389542244035233680030523317234537010836564833497229828911284598430510768810573374275010933992099815720970170092183271059798176857571621225553914820586983072295508566795439261982531741155133337002515103744) (*.f64 t a) (if (<=.f64 z 8113372149109223/24128228820241763395368498172630942708201009006994023127186460259846489377974909173483894312553062974832901700057603348659254161999916252716423678391067804088773420366831584139402736156236316721587153396424382337160349784305655085875761908966202683012582070411724897569696118189719975296519556940632582457459891765248) x (if (<=.f64 z 5658106654807293/706003489677054374237277210551156965837838477962894381170850482715673457590299624976468480248807499242724466374570999144530824216469597736906638272121736526607699022870679030143158018123175881930939339869708632591433728) (*.f64 t a) (if (<=.f64 z 1590784022038963/120766797594289323271729746591624604509341479053326093708038601607859973196548763266756055205685080561326988000984443036792658708157593364241965896045846273396780650463232) x (if (<=.f64 z 5467590315185667/104748499452676539840422070298483172870932545473378073263465323779076281484949585756264642954428933028828373892081922272294952209468332577706512882860032) (*.f64 t a) (if (<=.f64 z 4999999999999999727876154935214080) x (*.f64 y z)))))))))
(if (<=.f64 x -7463128566695553/254629497041810760783555711051172270131433549208242031329517556169297662470417088272924672) x (if (<=.f64 x 3813164909319553/1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557888) (*.f64 a t) x))
(if (<=.f64 x -7463128566695553/254629497041810760783555711051172270131433549208242031329517556169297662470417088272924672) x (if (<=.f64 x 3813164909319553/1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557888) (*.f64 t a) x))
x
Compiler

Compiled 1084 to 528 computations (51.3% saved)

soundness16.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
Compiler

Compiled 232 to 140 computations (39.7% saved)

end449.0ms (2%)

Compiler

Compiled 976 to 290 computations (70.3% saved)

Profiling

Loading profile data...