Details

Time bar (total: 24.0s)

analyze435.0ms (1.8%)

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.2s (9.3%)

Results
1.5s8256×body256valid
706.0ms3886×body256invalid

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

simplify9.0ms (0%)

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)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 37 to 22 computations (40.5% saved)

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
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))
7.4b
(*.f64 (*.f64 a z) b)
Compiler

Compiled 55 to 13 computations (76.4% saved)

series23.0ms (0.1%)

Counts
3 → 168
Calls

42 calls:

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

rewrite90.0ms (0.4%)

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
01442
131132
2468632
Stop Event
node limit
Counts
3 → 127
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))
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)))))))

simplify184.0ms (0.8%)

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
0561653
11901534
23971534
37971534
420111534
533631534
638511534
741541534
841801534
941801534
1043161534
1143161534
Stop Event
saturated
Counts
295 → 164
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))
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))

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 9 computations (72.7% saved)

series16.0ms (0.1%)

Counts
2 → 132
Calls

33 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(fma.f64 y z (fma.f64 a (fma.f64 z b t) x))
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)

rewrite70.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

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

simplify138.0ms (0.6%)

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

Useful iterations: 1 (0.0ms)

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

eval50.0ms (0.2%)

Compiler

Compiled 4276 to 914 computations (78.6% saved)

prune64.0ms (0.3%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New23514249
Fresh000
Picked101
Done101
Total23714251
Error
0.0b
Counts
251 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
30.0b
(+.f64 (*.f64 a t) x)
36.1b
(*.f64 z (+.f64 (*.f64 a b) y))
37.6b
(*.f64 (+.f64 t (*.f64 b z)) a)
47.1b
(*.f64 z y)
48.7b
(*.f64 a t)
43.8b
x
18.1b
(+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))
36.1b
(*.f64 z (fma.f64 b a y))
3.2b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3))
14.4b
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
17.9b
(+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b))))
23.4b
(+.f64 (fma.f64 a t (*.f64 z y)) (*.f64 (*.f64 a z) b))
23.4b
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (*.f64 (*.f64 a z) b))
28.4b
(+.f64 (*.f64 y z) x)
Compiler

Compiled 379 to 258 computations (31.9% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3))
0.6b
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)
5.9b
(*.f64 a (*.f64 z b))
13.3b
(cbrt.f64 (*.f64 a (*.f64 z b)))
Compiler

Compiled 73 to 19 computations (74% saved)

series34.0ms (0.1%)

Counts
4 → 63
Calls

45 calls:

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

rewrite189.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
933×log-prod_binary64
483×fma-neg_binary64
325×expm1-udef_binary64
325×log1p-udef_binary64
272×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify7.1s (29.7%)

Algorithm
egg-herbie
Rules
1890×sqr-pow_binary64
1890×pow-base-1_binary64
242×fma-def_binary64
23×+-commutative_binary64
23×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
032770
199680
2180679
3311590
4383590
5443590
6463590
7471590
8475590
9479590
10483590
11487590
12491590
13495590
14499590
15503590
16507590
17511590
18515590
19519590
20523590
21527590
22531590
23535590
24539590
25543590
26547590
27551590
28555590
29559590
30563590
31567590
32571590
33575590
34579590
35583590
36587590
37591590
38595590
39599590
40603590
41607590
42611590
43615590
44619590
45623590
46627590
47631590
48635590
49639590
50643590
51647590
52651590
53655590
54659590
55663590
56667590
57671590
58675590
59679590
60683590
61687590
62691590
63695590
64699590
65703590
66707590
67711590
68715590
69719590
70723590
71727590
72731590
73735590
74739590
75743590
76747590
77751590
78755590
79759590
80763590
81767590
82771590
83775590
84779590
85783590
86787590
87791590
88795590
89799590
90803590
91807590
92811590
93815590
94819590
95823590
96827590
97831590
98835590
99839590
100843590
101847590
102851590
103855590
104859590
105863590
106867590
107871590
108875590
109879590
110883590
111887590
112891590
113895590
114899590
115903590
116907590
117911590
118915590
119919590
120923590
121927590
122931590
123935590
124939590
125943590
126947590
127951590
128955590
129959590
130963590
131967590
132971590
133975590
134979590
135983590
136987590
137991590
138995590
139999590
1401003590
1411007590
1421011590
1431015590
1441019590
1451023590
1461027590
1471031590
1481035590
1491039590
1501043590
1511047590
1521051590
1531055590
1541059590
1551063590
1561067590
1571071590
1581075590
1591079590
1601083590
1611087590
1621091590
1631095590
1641099590
1651103590
1661107590
1671111590
1681115590
1691119590
1701123590
1711127590
1721131590
1731135590
1741139590
1751143590
1761147590
1771151590
1781155590
1791159590
1801163590
1811167590
1821171590
1831175590
1841179590
1851183590
1861187590
1871191590
1881195590
1891199590
1901203590
1911207590
1921211590
1931215590
1941219590
1951223590
1961227590
1971231590
1981235590
1991239590
2001243590
2011247590
2021251590
2031255590
2041259590
2051263590
2061267590
2071271590
2081275590
2091279590
2101283590
2111287590
2121291590
2131295590
2141299590
2151303590
2161307590
2171311590
2181315590
2191319590
2201323590
2211327590
2221331590
2231335590
2241339590
2251343590
2261347590
2271351590
2281355590
2291359590
2301363590
2311367590
2321371590
2331375590
2341379590
2351383590
2361387590
2371391590
2381395590
2391399590
2401403590
2411407590
2421411590
2431415590
2441419590
2451423590
2461427590
2471431590
2481435590
2491439590
2501443590
2511447590
2521451590
2531455590
2541459590
2551463590
2561467590
2571471590
2581475590
2591479590
2601483590
2611487590
2621491590
2631495590
2641499590
2651503590
2661507590
2671511590
2681515590
2691519590
2701523590
2711527590
2721531590
2731535590
2741539590
2751543590
2761547590
2771551590
2781555590
2791559590
2801563590
2811567590
2821571590
2831575590
2841579590
2851583590
2861587590
2871591590
2881595590
2891599590
2901603590
2911607590
2921611590
2931615590
2941619590
2951623590
2961627590
2971631590
2981635590
2991639590
3001643590
3011647590
3021651590
3031655590
3041659590
3051663590
3061667590
3071671590
3081675590
3091679590
3101683590
3111687590
3121691590
3131695590
3141699590
3151703590
3161707590
3171711590
3181715590
3191719590
3201723590
3211727590
3221731590
3231735590
3241739590
3251743590
3261747590
3271751590
3281755590
3291759590
3301763590
3311767590
3321771590
3331775590
3341779590
3351783590
3361787590
3371791590
3381795590
3391799590
3401803590
3411807590
3421811590
3431815590
3441819590
3451823590
3461827590
3471831590
3481835590
3491839590
3501843590
3511847590
3521851590
3531855590
3541859590
3551863590
3561867590
3571871590
3581875590
3591879590
3601883590
3611887590
3621891590
3631895590
3641899590
3651903590
3661907590
3671911590
3681915590
3691919590
3701923590
3711927590
3721931590
3731935590
3741939590
3751943590
3761947590
3771951590
3781955590
3791959590
3801963590
3811967590
3821971590
3831975590
3841979590
3851983590
3861987590
3871991590
3881995590
3891999590
3902003590
3912007590
3922011590
3932015590
3942019590
3952023590
3962027590
3972031590
3982035590
3992039590
4002043590
4012047590
4022051590
4032055590
4042059590
4052063590
4062067590
4072071590
4082075590
4092079590
4102083590
4112087590
4122091590
4132095590
4142099590
4152103590
4162107590
4172111590
4182115590
4192119590
4202123590
4212127590
4222131590
4232135590
4242139590
4252143590
4262147590
4272151590
4282155590
4292159590
4302163590
4312167590
4322171590
4332175590
4342179590
4352183590
4362187590
4372191590
4382195590
4392199590
4402203590
4412207590
4422211590
4432215590
4442219590
4452223590
4462227590
4472231590
4482235590
4492239590
4502243590
4512247590
4522251590
4532255590
4542259590
4552263590
4562267590
4572271590
4582275590
4592279590
4602283590
4612287590
4622291590
4632295590
4642299590
4652303590
4662307590
4672311590
4682315590
4692319590
4702323590
4712327590
4722331590
4732335590
4742339590
4752343590
4762347590
4772351590
4782355590
4792359590
4802363590
4812367590
4822371590
4832375590
4842379590
4852383590
4862387590
4872391590
4882395590
4892399590
4902403590
4912407590
4922411590
4932415590
4942419590
4952423590
4962427590
4972431590
4982435590
4992439590
5002443590
5012447590
5022451590
5032455590
5042459590
5052463590
5062467590
5072471590
5082475590
5092479590
5102483590
5112487590
5122491590
5132495590
5142499590
5152503590
5162507590
5172511590
5182515590
5192519590
5202523590
5212527590
5222531590
5232535590
5242539590
5252543590
5262547590
5272551590
5282555590
5292559590
5302563590
5312567590
5322571590
5332575590
5342579590
5352583590
5362587590
5372591590
5382595590
5392599590
5402603590
5412607590
5422611590
5432615590
5442619590
5452623590
5462627590
5472631590
5482635590
5492639590
5502643590
5512647590
5522651590
5532655590
5542659590
5552663590
5562667590
5572671590
5582675590
5592679590
5602683590
5612687590
5622691590
5632695590
5642699590
5652703590
5662707590
5672711590
5682715590
5692719590
5702723590
5712727590
5722731590
5732735590
5742739590
5752743590
5762747590
5772751590
5782755590
5792759590
5802763590
5812767590
5822771590
5832775590
5842779590
5852783590
5862787590
5872791590
5882795590
5892799590
5902803590
5912807590
5922811590
5932815590
5942819590
5952823590
5962827590
5972831590
5982835590
5992839590
6002843590
6012847590
6022851590
6032855590
6042859590
6052863590
6062867590
6072871590
6082875590
6092879590
6102883590
6112887590
6122891590
6132895590
6142899590
6152903590
6162907590
6172911590
6182915590
6192919590
6202923590
6212927590
6222931590
6232935590
6242939590
6252943590
6262947590
6272951590
6282955590
6292959590
6302963590
6312967590
6322971590
6332975590
6342979590
6352983590
6362987590
6372991590
6382995590
6392999590
6403003590
6413007590
6423011590
6433015590
6443019590
6453023590
6463027590
6473031590
6483035590
6493039590
6503043590
6513047590
6523051590
6533055590
6543059590
6553063590
6563067590
6573071590
6583075590
6593079590
6603083590
6613087590
6623091590
6633095590
6643099590
6653103590
6663107590
6673111590
6683115590
6693119590
6703123590
6713127590
6723131590
6733135590
6743139590
6753143590
6763147590
6773151590
6783155590
6793159590
6803163590
6813167590
6823171590
6833175590
6843179590
6853183590
6863187590
6873191590
6883195590
6893199590
6903203590
6913207590
6923211590
6933215590
6943219590
6953223590
6963227590
6973231590
6983235590
6993239590
7003243590
7013247590
7023251590
7033255590
7043259590
7053263590
7063267590
7073271590
7083275590
7093279590
7103283590
7113287590
7123291590
7133295590
7143299590
7153303590
7163307590
7173311590
7183315590
7193319590
7203323590
7213327590
7223331590
7233335590
7243339590
7253343590
7263347590
7273351590
7283355590
7293359590
7303363590
7313367590
7323371590
7333375590
7343379590
7353383590
7363387590
7373391590
7383395590
7393399590
7403403590
7413407590
7423411590
7433415590
7443419590
7453423590
7463427590
7473431590
7483435590
7493439590
7503443590
7513447590
7523451590
7533455590
7543459590
7553463590
7563467590
7573471590
7583475590
7593479590
7603483590
7613487590
7623491590
7633495590
7643499590
7653503590
7663507590
7673511590
7683515590
7693519590
7703523590
7713527590
7723531590
7733535590
7743539590
7753543590
7763547590
7773551590
7783555590
7793559590
7803563590
7813567590
7823571590
7833575590
7843579590
7853583590
7863587590
7873591590
7883595590
7893599590
7903603590
7913607590
7923611590
7933615590
7943619590
7953623590
7963627590
7973631590
7983635590
7993639590
8003643590
8013647590
8023651590
8033655590
8043659590
8053663590
8063667590
8073671590
8083675590
8093679590
8103683590
8113687590
8123691590
8133695590
8143699590
8153703590
8163707590
8173711590
8183715590
8193719590
8203723590
8213727590
8223731590
8233735590
8243739590
8253743590
8263747590
8273751590
8283755590
8293759590
8303763590
8313767590
8323771590
8333775590
8343779590
8353783590
8363787590
8373791590
8383795590
8393799590
8403803590
8413807590
8423811590
8433815590
8443819590
8453823590
8463827590
8473831590
8483835590
8493839590
8503843590
8513847590
8523851590
8533855590
8543859590
8553863590
8563867590
8573871590
8583875590
8593879590
8603883590
8613887590
8623891590
8633895590
8643899590
8653903590
8663907590
8673911590
8683915590
8693919590
8703923590
8713927590
8723931590
8733935590
8743939590
8753943590
8763947590
8773951590
8783955590
8793959590
8803963590
8813967590
8823971590
8833975590
8843979590
8853983590
8863987590
8873991590
8883995590
8893999590
8904003590
8914007590
8924011590
8934015590
8944019590
8954023590
8964027590
8974031590
8984035590
8994039590
9004043590
9014047590
9024051590
9034055590
9044059590
9054063590
9064067590
9074071590
9084075590
9094079590
9104083590
9114087590
9124091590
9134095590
9144099590
9154103590
9164107590
9174111590
9184115590
9194119590
9204123590
9214127590
9224131590
9234135590
9244139590
9254143590
9264147590
9274151590
9284155590
9294159590
9304163590
9314167590
9324171590
9334175590
9344179590
9354183590
9364187590
9374191590
9384195590
9394199590
9404203590
9414207590
9424211590
9434215590
9444219590
9454223590
9464227590
9474231590
9484235590
9494239590
9504243590
9514247590
9524251590
9534255590
9544259590
9554263590
9564267590
9574271590
9584275590
9594279590
9604283590
9614287590
9624291590
9634295590
9644299590
9654303590
9664307590
9674311590
9684315590
9694319590
9704323590
9714327590
9724331590
9734335590
9744339590
9754343590
9764347590
9774351590
9784355590
9794359590
9804363590
9814367590
9824371590
9834375590
9844379590
9854383590
9864387590
9874391590
9884395590
9894399590
9904403590
9914407590
9924411590
9934415590
9944419590
9954423590
9964427590
9974431590
9984435590
9994439590
10004443590
10014447590
10024451590
10034455590
10044459590
10054463590
10064467590
10074471590
10084475590
10094479590
10104483590
10114487590
10124491590
10134495590
10144499590
10154503590
10164507590
10174511590
10184515590
10194519590
10204523590
10214527590
10224531590
10234535590
10244539590
10254543590
10264547590
10274551590
10284555590
10294559590
10304563590
10314567590
10324571590
10334575590
10344579590
10354583590
10364587590
10374591590
10384595590
10394599590
10404603590
10414607590
10424611590
10434615590
10444619590
10454623590
10464627590
10474631590
10484635590
10494639590
10504643590
10514647590
10524651590
10534655590
10544659590
10554663590
10564667590
10574671590
10584675590
10594679590
10604683590
10614687590
10624691590
10634695590
10644699590
10654703590
10664707590
10674711590
10684715590
10694719590
10704723590
10714727590
10724731590
10734735590
10744739590
10754743590
10764747590
10774751590
10784755590
10794759590
10804763590
10814767590
10824771590
10834775590
10844779590
10854783590
10864787590
10874791590
10884795590
10894799590
10904803590
10914807590
10924811590
10934815590
10944819590
10954823590
10964827590
10974831590
10984835590
10994839590
11004843590
11014847590
11024851590
11034855590
11044859590
11054863590
11064867590
11074871590
11084875590
11094879590
11104883590
11114887590
11124891590
11134895590
11144899590
11154903590
11164907590
11174911590
11184915590
11194919590
11204923590
11214927590
11224931590
11234935590
11244939590
11254943590
11264947590
11274951590
11284955590
11294959590
11304963590
11314967590
11324971590
11334975590
11344979590
11354983590
11364987590
11374991590
11384995590
11394999590
11405003590
11415007590
11425011590
11435015590
11445019590
11455023590
11465027590
11475031590
11485035590
11495039590
11505043590
11515047590
11525051590
11535055590
11545059590
11555063590
11565067590
11575071590
11585075590
11595079590
11605083590
11615087590
11625091590
11635095590
11645099590
11655103590
11665107590
11675111590
11685115590
11695119590
11705123590
11715127590
11725131590
11735135590
11745139590
11755143590
11765147590
11775151590
11785155590
11795159590
11805163590
11815167590
11825171590
11835175590
11845179590
11855183590
11865187590
11875191590
11885195590
11895199590
11905203590
11915207590
11925211590
11935215590
11945219590
11955223590
11965227590
11975231590
11985235590
11995239590
12005243590
12015247590
12025251590
12035255590
12045259590
12055263590
12065267590
12075271590
12085275590
12095279590
12105283590
12115287590
12125291590
12135295590
12145299590
12155303590
12165307590
12175311590
12185315590
12195319590
12205323590
12215327590
12225331590
12235335590
12245339590
12255343590
12265347590
12275351590
12285355590
12295359590
12305363590
12315367590
12325371590
12335375590
12345379590
12355383590
12365387590
12375391590
12385395590
12395399590
12405403590
12415407590
12425411590
12435415590
12445419590
12455423590
12465427590
12475431590
12485435590
12495439590
12505443590
12515447590
12525451590
12535455590
12545459590
12555463590
12565467590
12575471590
12585475590
12595479590
12605483590
12615487590
12625491590
12635495590
12645499590
12655503590
12665507590
12675511590
12685515590
12695519590
12705523590
12715527590
12725531590
12735535590
12745539590
12755543590
12765547590
12775551590
12785555590
12795559590
12805563590
12815567590
12825571590
12835575590
12845579590
12855583590
12865587590
12875591590
12885595590
12895599590
12905603590
12915607590
12925611590
12935615590
12945619590
12955623590
12965627590
12975631590
12985635590
12995639590
13005643590
13015647590
13025651590
13035655590
13045659590
13055663590
13065667590
13075671590
13085675590
13095679590
13105683590
13115687590
13125691590
13135695590
13145699590
13155703590
13165707590
13175711590
13185715590
13195719590
13205723590
13215727590
13225731590
13235735590
13245739590
13255743590
13265747590
13275751590
13285755590
13295759590
13305763590
13315767590
13325771590
13335775590
13345779590
13355783590
13365787590
13375791590
13385795590
13395799590
13405803590
13415807590
13425811590
13435815590
13445819590
13455823590
13465827590
13475831590
13485835590
13495839590
13505843590
13515847590
13525851590
13535855590
13545859590
13555863590
13565867590
13575871590
13585875590
13595879590
13605883590
13615887590
13625891590
13635895590
13645899590
13655903590
13665907590
13675911590
13685915590
13695919590
13705923590
13715927590
13725931590
13735935590
13745939590
13755943590
13765947590
13775951590
13785955590
13795959590
13805963590
13815967590
13825971590
13835975590
13845979590
13855983590
13865987590
13875991590
13885995590
13895999590
13906003590
13916007590
13926011590
13936015590
13946019590
13956023590
13966027590
13976031590
13986035590
13996039590
14006043590
14016047590
14026051590
14036055590
14046059590
14056063590
14066067590
14076071590
14086075590
14096079590
14106083590
14116087590
14126091590
14136095590
14146099590
14156103590
14166107590
14176111590
14186115590
14196119590
14206123590
14216127590
14226131590
14236135590
14246139590
14256143590
14266147590
14276151590
14286155590
14296159590
14306163590
14316167590
14326171590
14336175590
14346179590
14356183590
14366187590
14376191590
14386195590
14396199590
14406203590
14416207590
14426211590
14436215590
14446219590
14456223590
14466227590
14476231590
14486235590
14496239590
14506243590
14516247590
14526251590
14536255590
14546259590
14556263590
14566267590
14576271590
14586275590
14596279590
14606283590
14616287590
14626291590
14636295590
14646299590
14656303590
14666307590
14676311590
14686315590
14696319590
14706323590
14716327590
14726331590
14736335590
14746339590
14756343590
14766347590
14776351590
14786355590
14796359590
14806363590
14816367590
14826371590
14836375590
14846379590
14856383590
14866387590
14876391590
14886395590
14896399590
14906403590
14916407590
14926411590
14936415590
14946419590
14956423590
14966427590
14976431590
14986435590
14996439590
15006443590
15016447590
15026451590
15036455590
15046459590
15056463590
15066467590
15076471590
15086475590
15096479590
15106483590
15116487590
15126491590
15136495590
15146499590
15156503590
15166507590
15176511590
15186515590
15196519590
15206523590
15216527590
15226531590
15236535590
15246539590
15256543590
15266547590
15276551590
15286555590
15296559590
15306563590
15316567590
15326571590
15336575590
15346579590
15356583590
15366587590
15376591590
15386595590
15396599590
15406603590
15416607590
15426611590
15436615590
15446619590
15456623590
15466627590
15476631590
15486635590
15496639590
15506643590
15516647590
15526651590
15536655590
15546659590
15556663590
15566667590
15576671590
15586675590
15596679590
15606683590
15616687590
15626691590
15636695590
15646699590
15656703590
15666707590
15676711590
15686715590
15696719590
15706723590
15716727590
15726731590
15736735590
15746739590
15756743590
15766747590
15776751590
15786755590
15796759590
15806763590
15816767590
15826771590
15836775590
15846779590
15856783590
15866787590
15876791590
15886795590
15896799590
15906803590
15916807590
15926811590
15936815590
15946819590
15956823590
15966827590
15976831590
15986835590
15996839590
16006843590
16016847590
16026851590
16036855590
16046859590
16056863590
16066867590
16076871590
16086875590
16096879590
16106883590
16116887590
16126891590
16136895590
16146899590
16156903590
16166907590
16176911590
16186915590
16196919590
16206923590
16216927590
16226931590
16236935590
16246939590
16256943590
16266947590
16276951590
16286955590
16296959590
16306963590
16316967590
16326971590
16336975590
16346979590
16356983590
16366987590
16376991590
16386995590
16396999590
16407003590
16417007590
16427011590
16437015590
16447019590
16457023590
16467027590
16477031590
16487035590
16497039590
16507043590
16517047590
16527051590
16537055590
16547059590
16557063590
16567067590
16577071590
16587075590
16597079590
16607083590
16617087590
16627091590
16637095590
16647099590
16657103590
16667107590
16677111590
16687115590
16697119590
16707123590
16717127590
16727131590
16737135590
16747139590
16757143590
16767147590
16777151590
16787155590
16797159590
16807163590
16817167590
16827171590
16837175590
16847179590
16857183590
16867187590
16877191590
16887195590
16897199590
16907203590
16917207590
16927211590
16937215590
16947219590
16957223590
16967227590
16977231590
16987235590
16997239590
17007243590
17017247590
17027251590
17037255590
17047259590
17057263590
17067267590
17077271590
17087275590
17097279590
17107283590
17117287590
17127291590
17137295590
17147299590
17157303590
17167307590
17177311590
17187315590
17197319590
17207323590
17217327590
17227331590
17237335590
17247339590
17257343590
17267347590
17277351590
17287355590
17297359590
17307363590
17317367590
17327371590
17337375590
17347379590
17357383590
17367387590
17377391590
17387395590
17397399590
17407403590
17417407590
17427411590
17437415590
17447419590
17457423590
17467427590
17477431590
17487435590
17497439590
17507443590
17517447590
17527451590
17537455590
17547459590
17557463590
17567467590
17577471590
17587475590
17597479590
17607483590
17617487590
17627491590
17637495590
17647499590
17657503590
17667507590
17677511590
17687515590
17697519590
17707523590
17717527590
17727531590
17737535590
17747539590
17757543590
17767547590
17777551590
17787555590
17797559590
17807563590
17817567590
17827571590
17837575590
17847579590
17857583590
17867587590
17877591590
17887595590
17897599590
17907603590
17917607590
17927611590
17937615590
17947619590
17957623590
17967627590
17977631590
17987635590
17997639590
18007643590
18017647590
18027651590
18037655590
18047659590
18057663590
18067667590
18077671590
18087675590
18097679590
18107683590
18117687590
18127691590
18137695590
18147699590
18157703590
18167707590
18177711590
18187715590
18197719590
18207723590
18217727590
18227731590
18237735590
18247739590
18257743590
18267747590
18277751590
18287755590
18297759590
18307763590
18317767590
18327771590
18337775590
18347779590
18357783590
18367787590
18377791590
18387795590
18397799590
18407803590
18417807590
18427811590
18437815590
18447819590
18457823590
18467827590
18477831590
18487835590
18497839590
18507843590
18517847590
18527851590
18537855590
18547859590
18557863590
18567867590
18577871590
18587875590
18597879590
18607883590
18617887590
18627891590
18637895590
18647899590
18657903590
18667907590
18677911590
18687915590
18697919590
18707923590
18717927590
18727931590
18737935590
18747939590
18757943590
18767947590
18777951590
18787955590
18797959590
18807963590
18817967590
18827971590
18837975590
18847979590
18857983590
18867987590
18877991590
18887995590
18897999590
Stop Event
node limit
Counts
209 → 155
Calls
Call 1
Inputs
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
x
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) x)))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(+.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 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
Outputs
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (*.f64 a t)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (*.f64 a t)))
(fma.f64 z y (*.f64 a (+.f64 t (*.f64 b z))))
(fma.f64 a (fma.f64 b z t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x))
(fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x))
(fma.f64 a (*.f64 b z) (fma.f64 a t x))
(fma.f64 a (fma.f64 b z t) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) x))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) x))
(fma.f64 z y (fma.f64 a (*.f64 b z) x))
(fma.f64 a (*.f64 b z) (fma.f64 z y x))
(fma.f64 z (fma.f64 a b y) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 b z))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 (pow.f64 1 1/3) (*.f64 a (*.f64 z b))) (+.f64 (*.f64 a t) x)))
(fma.f64 y z (fma.f64 1 (*.f64 a (*.f64 b z)) (fma.f64 a t x)))
(fma.f64 z y (fma.f64 a (*.f64 b z) (fma.f64 a t x)))
(fma.f64 a (*.f64 b z) (fma.f64 a t (fma.f64 z y 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 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))
(fma.f64 y z (fma.f64 a t x))
(fma.f64 z y (fma.f64 a t x))
(fma.f64 a t (fma.f64 z y x))

localize8.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize7.0ms (0%)

Compiler

Compiled 17 to 8 computations (52.9% saved)

localize12.0ms (0%)

Local error

Found 3 expressions with local error:

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

Compiled 35 to 10 computations (71.4% saved)

series15.0ms (0.1%)

Counts
3 → 125
Calls

36 calls:

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

rewrite88.0ms (0.4%)

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

Useful iterations: 1 (0.0ms)

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

simplify175.0ms (0.7%)

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
028877
168877
287877
393877
Stop Event
saturated
Counts
316 → 217
Calls
Call 1
Inputs
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a t)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
t
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(*.f64 b z)
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(*.f64 b z)
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
t
(*.f64 z b)
(*.f64 z b)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
t
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
t
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(+.f64 t (*.f64 b z))
(*.f64 a (+.f64 (*.f64 z b) t))
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (+.f64 t (*.f64 b z)) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 a t) x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(*.f64 a t)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
Outputs
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
t
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
t
(*.f64 z b)
(*.f64 b z)
(*.f64 z b)
(*.f64 b z)
(*.f64 b z)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
t
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(+.f64 t (*.f64 b z))
(fma.f64 z b t)
(fma.f64 b z t)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
x
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (+.f64 (*.f64 z b) t)) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(*.f64 (+.f64 t (*.f64 b z)) a)
(*.f64 (fma.f64 z b t) a)
(*.f64 (fma.f64 b z t) a)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 (+.f64 t (*.f64 b z)) a) x)
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 z b)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 x (*.f64 a (*.f64 z b))))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) x)
(fma.f64 a t x)
(fma.f64 t a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 b z) a)
(*.f64 b (*.f64 z a))
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 b z) a x)
(fma.f64 b (*.f64 z a) x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a t) (+.f64 (*.f64 a (*.f64 b z)) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(*.f64 a t)
(*.f64 t a)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)
(+.f64 (*.f64 a (*.f64 b z)) (+.f64 (*.f64 a t) x))
(fma.f64 (fma.f64 z b t) a x)
(fma.f64 (fma.f64 b z t) a x)

localize19.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 45 to 12 computations (73.3% saved)

series11.0ms (0%)

Counts
2 → 72
Calls

27 calls:

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

rewrite90.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
794×fma-def_binary64
727×log-prod_binary64
353×fma-neg_binary64
250×pow1/3_binary64
246×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify75.0ms (0.3%)

Algorithm
egg-herbie
Rules
644×fma-def_binary64
552×fma-neg_binary64
95×cancel-sign-sub-inv_binary64
83×unsub-neg_binary64
74×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044682
1128682
2289682
3601682
41540682
52172682
62376682
72414682
Stop Event
saturated
Counts
262 → 215
Calls
Call 1
Inputs
(+.f64 (*.f64 a t) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(*.f64 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 (*.f64 a t) (*.f64 a (*.f64 z b)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a t)
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.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 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 a t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 a b))) z)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a t)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.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 (*.f64 b z)) (*.f64 a t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 a t (*.f64 z (fma.f64 a b y)))
(fma.f64 a (fma.f64 z b t) (*.f64 z y))
(*.f64 a t)
(*.f64 y z)
(*.f64 z y)
(*.f64 y z)
(*.f64 z y)
(*.f64 a t)
(*.f64 y z)
(*.f64 z y)
(*.f64 y z)
(*.f64 z y)
(*.f64 y z)
(*.f64 z y)
(*.f64 a t)
(*.f64 a t)
(*.f64 y z)
(*.f64 z y)
(*.f64 a t)
(*.f64 a t)

eval304.0ms (1.3%)

Compiler

Compiled 10452 to 2503 computations (76.1% saved)

prune289.0ms (1.2%)

Pruning

18 alts after pruning (16 fresh and 2 done)

PrunedKeptTotal
New59511606
Fresh459
Picked101
Done224
Total60218620
Error
0b
Counts
620 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
30.0b
(+.f64 (*.f64 a t) x)
36.1b
(*.f64 z (+.f64 (*.f64 a b) y))
33.3b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a)))
32.7b
(+.f64 (*.f64 a (*.f64 b z)) x)
37.6b
(*.f64 (+.f64 t (*.f64 b z)) a)
47.1b
(*.f64 z y)
22.8b
(+.f64 (+.f64 (*.f64 y z) (*.f64 a t)) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3))
51.8b
(*.f64 z (*.f64 a b))
48.7b
(*.f64 a t)
43.8b
x
52.0b
(*.f64 a (*.f64 b z))
22.0b
(+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))
33.0b
(+.f64 x (*.f64 b (*.f64 z a)))
33.2b
(+.f64 (*.f64 y z) (*.f64 a t))
28.4b
(+.f64 (*.f64 y z) x)
37.3b
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
36.1b
(*.f64 z (fma.f64 b a y))
33.2b
(fma.f64 a t (*.f64 z y))
Compiler

Compiled 447 to 307 computations (31.3% saved)

localize40.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 40 to 11 computations (72.5% saved)

series14.0ms (0.1%)

Counts
3 → 96
Calls

36 calls:

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

rewrite255.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify81.0ms (0.3%)

Algorithm
egg-herbie
Rules
607×fma-def_binary64
573×fma-neg_binary64
129×cancel-sign-sub-inv_binary64
90×associate-*l*_binary64
88×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038817
1108817
2219817
3411817
4912817
51509817
61999817
72499817
82525817
Stop Event
saturated
Counts
303 → 232
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 a (*.f64 z b))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 b z)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y
(*.f64 a t)
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(*.f64 a (+.f64 (*.f64 z b) t))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(*.f64 z (+.f64 (*.f64 a b) y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(*.f64 a t)
(*.f64 a t)
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))
y
(*.f64 a b)
(*.f64 a b)
y
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
y
y
(*.f64 a t)
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 t (*.f64 b z)) a))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 a (+.f64 (*.f64 z b) t))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a (+.f64 (*.f64 z b) t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b)))))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 t) (*.f64 -1 (*.f64 z b))))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 a (*.f64 b z))
(*.f64 a (*.f64 z b))
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 b z))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 a (*.f64 b z)))
(*.f64 a (fma.f64 z b t))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a t) (*.f64 a (*.f64 z b))))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 a (*.f64 b z)) (*.f64 a t)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 z (+.f64 (*.f64 a b) y))
(*.f64 z (fma.f64 a b y))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(+.f64 (*.f64 a t) (*.f64 z (+.f64 (*.f64 a b) y)))
(fma.f64 y z (*.f64 a (fma.f64 z b t)))
(fma.f64 z (fma.f64 a b y) (*.f64 a t))
(fma.f64 a (fma.f64 z b t) (*.f64 y z))
(*.f64 a t)
(*.f64 a t)

localize5.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize7.0ms (0%)

Compiler

Compiled 17 to 8 computations (52.9% saved)

localize10.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series6.0ms (0%)

Counts
2 → 84
Calls

21 calls:

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

rewrite95.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
934×pow1_binary64
863×add-log-exp_binary64
863×log1p-expm1-u_binary64
863×expm1-log1p-u_binary64
843×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify21.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
012594
121594
230594
332594
Stop Event
saturated
Counts
131 → 55
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 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
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)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 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)))
Outputs
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 b z))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 z b)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(*.f64 a (*.f64 z b))
(*.f64 (*.f64 a b) z)
(*.f64 z (*.f64 a b))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a b) z x)
(fma.f64 z (*.f64 a b) x)

localize11.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 30 to 10 computations (66.7% saved)

series4.0ms (0%)

Counts
1 → 33
Calls

12 calls:

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

rewrite71.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
530×log-prod_binary64
401×pow-prod-down_binary64
386×exp-prod_binary64
366×fma-def_binary64
260×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify56.0ms (0.2%)

Algorithm
egg-herbie
Rules
181×fma-neg_binary64
174×fma-def_binary64
78×cancel-sign-sub-inv_binary64
72×associate-*l*_binary64
59×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020243
150243
2117243
3282243
4624243
5912243
61126243
71181243
Stop Event
saturated
Counts
115 → 90
Calls
Call 1
Inputs
(*.f64 a (*.f64 z b))
(*.f64 y z)
(*.f64 y z)
(*.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 z b))
(*.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 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)))
Outputs
(*.f64 a (*.f64 z b))
(*.f64 y z)
(*.f64 z y)
(*.f64 y z)
(*.f64 z 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 z b))
(*.f64 a (*.f64 z b))
(*.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 a (*.f64 z 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 (*.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))

eval126.0ms (0.5%)

Compiler

Compiled 6036 to 1567 computations (74% saved)

prune100.0ms (0.4%)

Pruning

18 alts after pruning (12 fresh and 6 done)

PrunedKeptTotal
New3896395
Fresh5611
Picked011
Done156
Total39518413
Error
0b
Counts
413 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
37.6b
(*.f64 (+.f64 t (*.f64 b z)) a)
47.1b
(*.f64 z y)
48.7b
(*.f64 a t)
43.8b
x
33.2b
(+.f64 (*.f64 z y) (*.f64 a t))
33.2b
(fma.f64 a t (*.f64 z y))
36.1b
(*.f64 z (+.f64 (*.f64 a b) y))
33.1b
(+.f64 x (pow.f64 (cbrt.f64 (*.f64 b (*.f64 z a))) 3))
28.4b
(+.f64 (*.f64 y z) x)
37.3b
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
52.0b
(*.f64 a (*.f64 z b))
32.7b
(+.f64 (*.f64 a (*.f64 z b)) x)
36.1b
(*.f64 z (fma.f64 b a y))
30.0b
(+.f64 (*.f64 a t) x)
33.3b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a)))
51.8b
(*.f64 z (*.f64 a b))
37.8b
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t))
33.0b
(+.f64 x (*.f64 b (*.f64 z a)))
Compiler

Compiled 383 to 265 computations (30.8% saved)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

series4.0ms (0%)

Counts
1 → 39
Calls

12 calls:

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

rewrite70.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

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

simplify16.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
011270
119270
228270
330270
Stop Event
saturated
Counts
75 → 42
Calls
Call 1
Inputs
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(*.f64 a (*.f64 z b))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
(+.f64 x (*.f64 a (*.f64 z b)))
x
x
Outputs
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 b z))
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 (*.f64 a (*.f64 b z)) x)
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(*.f64 a (*.f64 z b))
(*.f64 a (*.f64 b z))
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
(+.f64 x (*.f64 a (*.f64 z b)))
(fma.f64 a (*.f64 b z) x)
(fma.f64 (*.f64 a z) b x)
(fma.f64 b (*.f64 a z) x)
x
x

localize9.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 8 computations (52.9% saved)

localize10.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 9 computations (64% saved)

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 9 computations (60.9% saved)

series4.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

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

simplify15.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
08336
112336
215336
Stop Event
saturated
Counts
85 → 41
Calls
Call 1
Inputs
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
(+.f64 (*.f64 y z) (*.f64 a t))
Outputs
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(*.f64 a t)
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 a t))
(fma.f64 y z (*.f64 a t))
(fma.f64 a t (*.f64 y z))

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 8 computations (60% saved)

series6.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite59.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
665×pow1_binary64
606×add-log-exp_binary64
606×log1p-expm1-u_binary64
606×expm1-log1p-u_binary64
591×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify17.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
015363
133363
245363
346363
Stop Event
saturated
Counts
61 → 22
Calls
Call 1
Inputs
(*.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 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 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 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 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 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)))
Outputs
(*.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 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 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 z) b)
(*.f64 b (*.f64 z a))
(+.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 z) b)
(*.f64 b (*.f64 z a))
(+.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 z b))
(*.f64 (*.f64 a z) b)
(*.f64 b (*.f64 z a))
(+.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 (*.f64 a z) b)
(*.f64 b (*.f64 z a))
(+.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 z) b)
(*.f64 b (*.f64 z a))
(+.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 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))

eval55.0ms (0.2%)

Compiler

Compiled 3261 to 961 computations (70.5% saved)

prune65.0ms (0.3%)

Pruning

18 alts after pruning (8 fresh and 10 done)

PrunedKeptTotal
New2664270
Fresh347
Picked011
Done1910
Total27018288
Error
0b
Counts
288 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
37.6b
(*.f64 (+.f64 t (*.f64 b z)) a)
47.1b
(*.f64 z y)
48.7b
(*.f64 a t)
43.8b
x
33.2b
(fma.f64 t a (*.f64 z y))
37.8b
(+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t))
33.2b
(+.f64 (*.f64 z y) (*.f64 a t))
52.2b
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)
52.1b
(*.f64 b (*.f64 z a))
36.1b
(*.f64 z (+.f64 (*.f64 a b) y))
51.8b
(*.f64 z (*.f64 a b))
28.4b
(+.f64 (*.f64 y z) x)
37.3b
(+.f64 (*.f64 y z) (*.f64 a (*.f64 z b)))
52.0b
(*.f64 a (*.f64 z b))
32.7b
(+.f64 (*.f64 a (*.f64 z b)) x)
36.1b
(*.f64 z (fma.f64 b a y))
30.0b
(+.f64 (*.f64 a t) x)
33.3b
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 (*.f64 z b) (sqrt.f64 a)) (sqrt.f64 a)))
Compiler

Compiled 225 to 158 computations (29.8% saved)

regimes293.0ms (1.2%)

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

7 calls:

61.0ms
a
61.0ms
z
58.0ms
b
37.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
24.0ms
t
Results
ErrorSegmentsBranch
3.1b1x
3.1b1y
0.3b3z
3.1b1t
0.6b3a
0.5b3b
1.3b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 367 to 118 computations (67.8% saved)

bsearch20.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
1.9948735185141847e+113
3.46098373247088e+131
10.0ms
-7.726524281053955e+91
-1.2609770614799984e+76
Compiler

Compiled 100 to 65 computations (35% saved)

regimes485.0ms (2%)

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

7 calls:

106.0ms
z
97.0ms
a
96.0ms
t
60.0ms
b
39.0ms
x
Results
ErrorSegmentsBranch
3.2b1x
3.2b1y
0.5b3z
2.2b3t
0.6b3a
0.6b3b
1.3b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 357 to 115 computations (67.8% saved)

bsearch39.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
8.276316587076288e+144
8.276517703767521e+145
24.0ms
-7.726524281053955e+91
-1.2609770614799984e+76
Compiler

Compiled 116 to 79 computations (31.9% saved)

regimes537.0ms (2.2%)

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

7 calls:

177.0ms
t
93.0ms
b
79.0ms
(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
71.0ms
z
47.0ms
a
Results
ErrorSegmentsBranch
4.0b1x
4.0b1y
2.3b2z
4.0b1t
4.0b1a
2.5b3b
1.5b2(+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b))
Compiler

Compiled 320 to 108 computations (66.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.3266703242123617e+299
9.528101668902598e+304
Compiler

Compiled 30 to 21 computations (30% saved)

regimes693.0ms (2.9%)

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

6 calls:

219.0ms
z
186.0ms
b
95.0ms
x
86.0ms
t
50.0ms
a
Results
ErrorSegmentsBranch
6.6b6x
6.1b4y
6.0b7z
7.8b3t
8.3b3a
9.9b3b
Compiler

Compiled 220 to 76 computations (65.5% saved)

bsearch344.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
111.0ms
1.9948735185141847e+113
3.46098373247088e+131
28.0ms
-1.086719773253951e-221
-8.327546996744316e-229
27.0ms
-6.140804861137739e-120
-1.0654729540344008e-125
24.0ms
-4.0070343115970703e-44
-5.225815161412689e-45
143.0ms
-3.9814268757356604e+33
-1.5897176772784338e+23
10.0ms
-7.726524281053955e+91
-1.2609770614799984e+76
Compiler

Compiled 442 to 299 computations (32.4% saved)

regimes702.0ms (2.9%)

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

6 calls:

211.0ms
t
196.0ms
b
89.0ms
a
73.0ms
x
67.0ms
y
Results
ErrorSegmentsBranch
7.0b6x
6.1b4y
8.3b3z
9.5b5t
8.3b3a
10.1b3b
Compiler

Compiled 196 to 71 computations (63.8% saved)

bsearch240.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
177.0ms
4.3274016345599345e+32
1.2903140873805494e+43
39.0ms
1.0923380564449224e-92
4.5691132557436755e-92
24.0ms
-9.972720490666391e-27
-3.5231194774735736e-33
Compiler

Compiled 30 to 21 computations (30% saved)

regimes391.0ms (1.6%)

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

6 calls:

93.0ms
x
75.0ms
z
73.0ms
b
54.0ms
a
53.0ms
y
Results
ErrorSegmentsBranch
11.5b5x
7.5b3y
8.6b4z
11.0b3t
8.3b3a
10.1b3b
Compiler

Compiled 185 to 70 computations (62.2% saved)

bsearch91.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
51.0ms
1.0786907733935507e-121
4.154393101219006e-118
40.0ms
-9.972720490666391e-27
-3.5231194774735736e-33
Compiler

Compiled 30 to 21 computations (30% saved)

regimes841.0ms (3.5%)

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

6 calls:

304.0ms
b
210.0ms
a
113.0ms
t
103.0ms
x
68.0ms
y
Results
ErrorSegmentsBranch
11.8b6x
12.8b3y
10.8b3z
15.7b5t
9.0b5a
14.1b7b
Compiler

Compiled 176 to 69 computations (60.8% saved)

bsearch130.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
6.0133044565942e-96
2.0859696034684988e-94
26.0ms
-1.20138130214596e-160
-4.0449962357684495e-161
50.0ms
-5.742088291867694e-129
-1.2108928529006798e-142
28.0ms
-1.5732055219154956e-99
-2.1643196566709991e-100
Compiler

Compiled 30 to 21 computations (30% saved)

regimes717.0ms (3%)

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

6 calls:

166.0ms
y
142.0ms
x
126.0ms
t
108.0ms
a
88.0ms
b
Results
ErrorSegmentsBranch
15.6b10x
14.4b12y
15.5b7z
18.0b8t
16.5b6a
19.6b6b
Compiler

Compiled 167 to 66 computations (60.5% saved)

bsearch335.0ms (1.4%)

Algorithm
11×binary-search
Steps
TimeLeftRight
24.0ms
1674777.0762494076
117729316890.87486
26.0ms
1.775720172145785e-98
1.5278791591427126e-96
23.0ms
7.147612572080673e-158
1.9960995383222187e-156
24.0ms
2.075472262371271e-242
4.458038467367056e-237
24.0ms
5.265832359491829e-257
6.513041142032038e-251
24.0ms
6.954768904072692e-291
2.823955603486188e-289
28.0ms
-1.407977877139837e-237
-9.588989602970626e-247
59.0ms
-2.8754858218743364e-163
-3.5180717748555575e-164
24.0ms
-1.0198870307169397e-87
-5.487811948638994e-88
51.0ms
-2.3727205572456318e-63
-9.225965393815811e-77
26.0ms
-9.972720490666391e-27
-3.5231194774735736e-33
Compiler

Compiled 30 to 21 computations (30% saved)

regimes688.0ms (2.9%)

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

6 calls:

166.0ms
z
160.0ms
t
136.0ms
y
90.0ms
x
70.0ms
a
Results
ErrorSegmentsBranch
15.6b10x
15.8b10y
15.5b7z
18.1b8t
16.5b6a
19.6b6b
Compiler

Compiled 149 to 64 computations (57% saved)

bsearch208.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
67.0ms
3.46098373247088e+131
9.203409755750633e+132
25.0ms
3.2188903928033468e-43
2.611469116147669e-34
28.0ms
1.6013461852148546e-106
1.574907890301947e-104
29.0ms
-5.873640217538765e-220
-1.086719773253951e-221
28.0ms
-6.140804861137739e-120
-1.0654729540344008e-125
30.0ms
-4.0070343115970703e-44
-5.225815161412689e-45
Compiler

Compiled 212 to 154 computations (27.4% saved)

regimes458.0ms (1.9%)

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

6 calls:

114.0ms
t
106.0ms
z
84.0ms
y
53.0ms
b
52.0ms
x
Results
ErrorSegmentsBranch
17.2b7x
16.1b10y
15.5b7z
18.2b8t
19.4b5a
21.2b6b
Compiler

Compiled 121 to 60 computations (50.4% saved)

bsearch184.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
56.0ms
3.46098373247088e+131
9.203409755750633e+132
25.0ms
3.2188903928033468e-43
2.611469116147669e-34
26.0ms
1.6013461852148546e-106
1.574907890301947e-104
25.0ms
-5.873640217538765e-220
-1.086719773253951e-221
26.0ms
-6.140804861137739e-120
-1.0654729540344008e-125
25.0ms
-4.0070343115970703e-44
-5.225815161412689e-45
Compiler

Compiled 212 to 154 computations (27.4% saved)

regimes242.0ms (1%)

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

6 calls:

54.0ms
t
41.0ms
y
41.0ms
x
35.0ms
b
34.0ms
a
Results
ErrorSegmentsBranch
18.1b6x
19.4b6y
16.6b5z
20.8b7t
19.4b5a
23.1b5b
Compiler

Compiled 107 to 58 computations (45.8% saved)

bsearch220.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
110.0ms
3.46098373247088e+131
9.203409755750633e+132
52.0ms
3.2188903928033468e-43
2.611469116147669e-34
32.0ms
1.6013461852148546e-106
1.574907890301947e-104
25.0ms
-4.0070343115970703e-44
-5.225815161412689e-45
Compiler

Compiled 212 to 154 computations (27.4% saved)

regimes624.0ms (2.6%)

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

6 calls:

173.0ms
y
153.0ms
b
109.0ms
x
83.0ms
z
72.0ms
a
Results
ErrorSegmentsBranch
19.3b5x
20.1b6y
21.6b5z
23.6b3t
19.4b5a
22.2b9b
Compiler

Compiled 100 to 56 computations (44% saved)

bsearch135.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
6.246414470334537e+108
1.177200434871392e+114
60.0ms
6.420016351924042e+52
1.9148413710705058e+58
24.0ms
8.513886927479715e-15
4.37843999177526e-12
24.0ms
-5.517385594477523e-28
-2.0174680848277056e-37
Compiler

Compiled 30 to 21 computations (30% saved)

regimes458.0ms (1.9%)

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

6 calls:

79.0ms
t
76.0ms
x
73.0ms
b
71.0ms
y
62.0ms
a
Results
ErrorSegmentsBranch
24.6b5x
21.3b5y
23.3b3z
24.6b3t
20.6b3a
24.6b5b
Compiler

Compiled 93 to 55 computations (40.9% saved)

bsearch54.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
6.0133044565942e-96
2.0859696034684988e-94
28.0ms
-2.1643196566709991e-100
-2.421544501803622e-106
Compiler

Compiled 30 to 21 computations (30% saved)

regimes458.0ms (1.9%)

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

6 calls:

167.0ms
y
101.0ms
b
83.0ms
t
50.0ms
a
29.0ms
z
Results
ErrorSegmentsBranch
26.7b3x
24.5b7y
23.7b4z
28.8b3t
27.0b5a
27.6b4b
Compiler

Compiled 88 to 53 computations (39.8% saved)

bsearch211.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
74.0ms
6.9692981319305275e+143
8.276316587076288e+144
59.0ms
-4.0070343115970703e-44
-5.225815161412689e-45
78.0ms
-8.571989050899803e+179
-3.356513974661768e+173
Compiler

Compiled 372 to 282 computations (24.2% saved)

regimes363.0ms (1.5%)

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

6 calls:

85.0ms
t
79.0ms
a
72.0ms
y
45.0ms
z
44.0ms
b
Results
ErrorSegmentsBranch
31.6b6x
31.7b13y
33.4b8z
36.5b7t
35.1b7a
36.5b7b
Compiler

Compiled 83 to 52 computations (37.3% saved)

bsearch135.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
5.345440940774519e+88
9.485578558547841e+100
25.0ms
1.9148413710705058e+58
8.80032816522634e+67
26.0ms
4.4618572961338177e-48
1.0581224963548494e-45
28.0ms
4.663487533500591e-284
7.730745191981341e-284
26.0ms
-2.0174680848277056e-37
-2.0774896456332353e-40
Compiler

Compiled 30 to 21 computations (30% saved)

regimes103.0ms (0.4%)

Accuracy

Total -28.2b remaining (-82.6%)

Threshold costs -28.2b (-82.6%)

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

6 calls:

22.0ms
b
22.0ms
a
16.0ms
y
16.0ms
z
13.0ms
t
Results
ErrorSegmentsBranch
34.2b3x
36.9b5y
36.3b5z
40.8b4t
38.6b7a
38.7b7b
Compiler

Compiled 55 to 43 computations (21.8% saved)

bsearch51.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
4.519304637112596e+83
5.345440940774519e+88
27.0ms
-2.0174680848277056e-37
-2.0774896456332353e-40
Compiler

Compiled 30 to 21 computations (30% saved)

simplify30.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01901189
12221189
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z 999999999999999980003468347394201181668805192897008518188648311830772414627428725464789434929992439754776075181077037056) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))
(if (<=.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) 400000000000000021001904102081768099481787432443263661966341646204720983195563278314548550032179145617481777533153551270777009294144172230257916873914682793139354880370630321495132093517915236023747581293988319978032447615587056352029861097112056997831703515528022737135246267788878554746183760216064) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)))
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z -1000000000000000019884624838656) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 z -8845536050480063/813966605576154086191388158047028539690522256142078632860871314912602201882035164980643579207953404631705311351737456109117285358168867807661542486856790777111225290468019355281137486073219485440547487321275219968468108891293513341206528) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 z 339999999999999985849491181812379852215315780953833004652264361285682444540781723119552501536205162729670214712005814700640579878912) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 y 1603376525215817/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 y 432740163455993447773691870969856) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 y 78403422564281/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))))
(if (<=.f64 a -61987453722716368/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a -17925355800924406/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 a -1901683966605065/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 a 3615360404350757/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (*.f64 y z) x) (if (<=.f64 y -4395876327996813/1852673427797059126777135760139006525652319754650249024631321344126610074238976) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 y -9356437973662099456/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (+.f64 (*.f64 y z) x) (if (<=.f64 y -4660887963267233/16209045190941378744189093217543598246142368094697019140608036444104112544581672446873855659949624196438272994575393707743731058888327247296433104820757670652582741419537146576896) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 y -5161336722271505/3665779701564795034165604343510379326812382614037843523768505561895816192685171732396196386025552432054958017180031964169522798176905392217656963333320266191425647911421339149090150561469309283359365121053663391676919110861662410702765924749628709797888) (+.f64 (*.f64 a t) x) (if (<=.f64 y 1250254031340539136/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 y 7121690719735679/135243399970730303066198984938628251268824915465247109664757941510828519054521564025450817507240240101036645118273824941793880975232687497536137978486512531688546991103745301547195268525165168909574203624502064231461895242944399805142629606084361337981321876709820927574016) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 y 2552896378875032576/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) (+.f64 (*.f64 y z) x) (if (<=.f64 y 17678218870269222/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 y 699669372259508864/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 y 7193112770581704/4294967296) (+.f64 (*.f64 z y) (*.f64 a t)) (+.f64 (*.f64 y z) x))))))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 z -466889354516173/794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 z -466889354516173/794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))
(if (<=.f64 x -1538022628806083/2787593149816327892691964784081045188247552) (+.f64 (*.f64 a t) x) (if (<=.f64 x 1349079234236867/158456325028528675187087900672) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 x 64200163519240422149692512465220147444599566005960704) (+.f64 (*.f64 y z) x) (if (<=.f64 x 6246414470334536698526628338785797940528659018043656186376770956290814056786530761529846928604910167514939392) (+.f64 (*.f64 z y) (*.f64 a t)) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 a -8527853652312908/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (+.f64 (*.f64 a t) x) (if (<=.f64 a 3615360404350757/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))
(if (<=.f64 z -340000000000000021248837711285363090016932617733782784165666866357005418012122669613129693182497860365824909184336478426567310880888734234660181624406978895214653957998641152) (*.f64 z y) (if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (*.f64 a b)) (if (<=.f64 z 8000000000000000189963458869208842859269263422629457499787719909361899436336164580545421025728666353034767753070720928606347305359120652587499520) (+.f64 (*.f64 a t) x) (*.f64 z (*.f64 a b)))))
(if (<=.f64 x -1207719079624103/5986310706507378352962293074805895248510699696029696) x (if (<=.f64 x 7807760986955843/167423219872854268898191413915625282900219501828989626163085998182867351738271269139562246689952477832436667643367679191435491450889424069312259024604665231311477621481628609147204290704099549091843034096141351171618467832303105743111961624157454108040174944963852221369694216119572256044331338563584) (*.f64 z y) (if (<=.f64 x 7342006514905071/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 a t) (if (<=.f64 x 19148413710705057817649188023257618258087849323565512916992) (*.f64 z y) (if (<=.f64 x 53454409407745189382330851559398984379238693386519543662837912303505041381284771312697344) (*.f64 a t) x)))))
(if (<=.f64 x -1207719079624103/5986310706507378352962293074805895248510699696029696) x (if (<=.f64 x 451930463711259600489236822081737784928997190906752491419669790150855527973378850816) (*.f64 z y) x))
x
Outputs
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z 999999999999999980003468347394201181668805192897008518188648311830772414627428725464789434929992439754776075181077037056) (fma.f64 y z (fma.f64 a (fma.f64 z b t) x)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 z y))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 z b))) 3)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))
(if (<=.f64 (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) 400000000000000021001904102081768099481787432443263661966341646204720983195563278314548550032179145617481777533153551270777009294144172230257916873914682793139354880370630321495132093517915236023747581293988319978032447615587056352029861097112056997831703515528022737135246267788878554746183760216064) (+.f64 (+.f64 (+.f64 x (*.f64 y z)) (*.f64 t a)) (*.f64 (*.f64 a z) b)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)))
(if (<=.f64 (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 z y))) (*.f64 b (*.f64 z a))) 400000000000000021001904102081768099481787432443263661966341646204720983195563278314548550032179145617481777533153551270777009294144172230257916873914682793139354880370630321495132093517915236023747581293988319978032447615587056352029861097112056997831703515528022737135246267788878554746183760216064) (+.f64 (+.f64 (*.f64 a t) (+.f64 x (*.f64 z y))) (*.f64 b (*.f64 z a))) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)))
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z -1000000000000000019884624838656) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 z -8845536050480063/813966605576154086191388158047028539690522256142078632860871314912602201882035164980643579207953404631705311351737456109117285358168867807661542486856790777111225290468019355281137486073219485440547487321275219968468108891293513341206528) (+.f64 (*.f64 y z) (+.f64 x (*.f64 a (*.f64 z b)))) (if (<=.f64 z 339999999999999985849491181812379852215315780953833004652264361285682444540781723119552501536205162729670214712005814700640579878912) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))))))
(if (<=.f64 z -100000000000000000026609864708367276537402401181200809098131977453489758916313088) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z -1000000000000000019884624838656) (+.f64 (+.f64 x (*.f64 a (*.f64 z b))) (*.f64 z y)) (if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (+.f64 (*.f64 a t) x) (*.f64 z y)) (if (<=.f64 z -8845536050480063/813966605576154086191388158047028539690522256142078632860871314912602201882035164980643579207953404631705311351737456109117285358168867807661542486856790777111225290468019355281137486073219485440547487321275219968468108891293513341206528) (+.f64 (+.f64 x (*.f64 a (*.f64 z b))) (*.f64 z y)) (if (<=.f64 z 339999999999999985849491181812379852215315780953833004652264361285682444540781723119552501536205162729670214712005814700640579878912) (+.f64 (+.f64 (*.f64 a t) x) (*.f64 z y)) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t))))))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 y 1603376525215817/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 y 432740163455993447773691870969856) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (+.f64 (*.f64 a t) x) (*.f64 z y)) (if (<=.f64 y 1603376525215817/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 y 432740163455993447773691870969856) (+.f64 (*.f64 z (+.f64 (*.f64 a b) y)) (*.f64 a t)) (+.f64 (+.f64 (*.f64 a t) x) (*.f64 z y)))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x)) (if (<=.f64 y 78403422564281/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (+.f64 (*.f64 y z) (+.f64 (*.f64 a t) x))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (+.f64 (*.f64 a t) x) (*.f64 z y)) (if (<=.f64 y 78403422564281/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (+.f64 (+.f64 (*.f64 a t) x) (*.f64 z y))))
(if (<=.f64 a -61987453722716368/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t))) (if (<=.f64 a -17925355800924406/3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 a -1901683966605065/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 a 3615360404350757/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (+.f64 x (*.f64 a (+.f64 (*.f64 z b) t)))))))
(if (<=.f64 a -3874215857669773/2462625387274654950767440006258975862817483704404090416746768337765357610718575663213391640930307227550414249394176) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b)))) (if (<=.f64 a -8962677900462203/1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145088) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 a -1901683966605065/15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704) (+.f64 (*.f64 a t) (*.f64 z (*.f64 a b))) (if (<=.f64 a 3615360404350757/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 x (*.f64 z y)) (+.f64 x (*.f64 a (+.f64 t (*.f64 z b))))))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 (*.f64 y z) x) (if (<=.f64 y -4395876327996813/1852673427797059126777135760139006525652319754650249024631321344126610074238976) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 y -9356437973662099456/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (+.f64 (*.f64 y z) x) (if (<=.f64 y -4660887963267233/16209045190941378744189093217543598246142368094697019140608036444104112544581672446873855659949624196438272994575393707743731058888327247296433104820757670652582741419537146576896) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 y -5161336722271505/3665779701564795034165604343510379326812382614037843523768505561895816192685171732396196386025552432054958017180031964169522798176905392217656963333320266191425647911421339149090150561469309283359365121053663391676919110861662410702765924749628709797888) (+.f64 (*.f64 a t) x) (if (<=.f64 y 1250254031340539136/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 y 7121690719735679/135243399970730303066198984938628251268824915465247109664757941510828519054521564025450817507240240101036645118273824941793880975232687497536137978486512531688546991103745301547195268525165168909574203624502064231461895242944399805142629606084361337981321876709820927574016) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 y 2552896378875032576/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) (+.f64 (*.f64 y z) x) (if (<=.f64 y 17678218870269222/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (+.f64 (*.f64 z (*.f64 a b)) (*.f64 a t)) (if (<=.f64 y 699669372259508864/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 y 7193112770581704/4294967296) (+.f64 (*.f64 z y) (*.f64 a t)) (+.f64 (*.f64 y z) x))))))))))))
(if (<=.f64 y -868746478900455/87112285931760246646623899502532662132736) (+.f64 x (*.f64 z y)) (if (<=.f64 y -4395876327996813/1852673427797059126777135760139006525652319754650249024631321344126610074238976) (+.f64 (*.f64 a t) (*.f64 z (*.f64 a b))) (if (<=.f64 y -4568573229327197/4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552) (+.f64 x (*.f64 z y)) (if (<=.f64 y -4660887963267233/16209045190941378744189093217543598246142368094697019140608036444104112544581672446873855659949624196438272994575393707743731058888327247296433104820757670652582741419537146576896) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 y -5161336722271505/3665779701564795034165604343510379326812382614037843523768505561895816192685171732396196386025552432054958017180031964169522798176905392217656963333320266191425647911421339149090150561469309283359365121053663391676919110861662410702765924749628709797888) (+.f64 (*.f64 a t) x) (if (<=.f64 y 4883804809923981/702223880805592151456759840151962786569522257399338504974336254522393264865238137237142489540654437582500444843247630303354647534431314931612685275935445798350655833690880801860555545317367555154113605281582053784524026102900245630757473088050106395169337932361665227499793929447186391815763110662594625536) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 y 7121690719735679/135243399970730303066198984938628251268824915465247109664757941510828519054521564025450817507240240101036645118273824941793880975232687497536137978486512531688546991103745301547195268525165168909574203624502064231461895242944399805142629606084361337981321876709820927574016) (+.f64 (*.f64 a t) (*.f64 z (*.f64 a b))) (if (<=.f64 y 2493062869995149/120120269260875203679538523128148109780988153496792056586846390252202105001907707327158563177285302093576864306955287401906923050660835892188183374506238482560635630761454441237386053598226326597119676286686442018469285424714953873908233822195833562657193984) (+.f64 x (*.f64 z y)) (if (<=.f64 y 8839109435134611/123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349568) (+.f64 (*.f64 a t) (*.f64 z (*.f64 a b))) (if (<=.f64 y 5466166970777413/307828173409331868845930000782371982852185463050511302093346042220669701339821957901673955116288403443801781174272) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 y 899139096322713/536870912) (+.f64 (*.f64 a t) (*.f64 z y)) (+.f64 x (*.f64 z y)))))))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 z -466889354516173/794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 z -466889354516173/794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272) (+.f64 x (*.f64 b (*.f64 z a))) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 a t) (*.f64 z y)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 z -466889354516173/794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272) (+.f64 (*.f64 a (*.f64 z b)) x) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z -8926749542835231/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (+.f64 (*.f64 a t) x) (if (<=.f64 z -466889354516173/794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272) (+.f64 x (*.f64 a (*.f64 z b))) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 a t) (*.f64 z y)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))
(if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (+.f64 (*.f64 a b) y)) (if (<=.f64 z 6616121586473591/41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016) (+.f64 (*.f64 a t) x) (if (<=.f64 z 8082120988274161/25108406941546723055343157692830665664409421777856138051584) (+.f64 (*.f64 a t) (*.f64 z y)) (if (<=.f64 z 8999999999999999444642032264517738525830998448118998546899958793073662349610875874860725147912346796355225219963482154845369276563456) (+.f64 (*.f64 a t) x) (*.f64 z (+.f64 (*.f64 a b) y))))))
(if (<=.f64 x -1538022628806083/2787593149816327892691964784081045188247552) (+.f64 (*.f64 a t) x) (if (<=.f64 x 1349079234236867/158456325028528675187087900672) (+.f64 (*.f64 z y) (*.f64 a t)) (if (<=.f64 x 64200163519240422149692512465220147444599566005960704) (+.f64 (*.f64 y z) x) (if (<=.f64 x 6246414470334536698526628338785797940528659018043656186376770956290814056786530761529846928604910167514939392) (+.f64 (*.f64 z y) (*.f64 a t)) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 x -1538022628806083/2787593149816327892691964784081045188247552) (+.f64 (*.f64 a t) x) (if (<=.f64 x 1349079234236867/158456325028528675187087900672) (+.f64 (*.f64 a t) (*.f64 z y)) (if (<=.f64 x 64200163519240422149692512465220147444599566005960704) (+.f64 x (*.f64 z y)) (if (<=.f64 x 6246414470334536698526628338785797940528659018043656186376770956290814056786530761529846928604910167514939392) (+.f64 (*.f64 a t) (*.f64 z y)) (+.f64 (*.f64 a t) x)))))
(if (<=.f64 a -8527853652312908/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816) (+.f64 (*.f64 a t) x) (if (<=.f64 a 3615360404350757/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 (*.f64 y z) x) (+.f64 (*.f64 a t) x)))
(if (<=.f64 a -2131963413078227/9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576704) (+.f64 (*.f64 a t) x) (if (<=.f64 a 3615360404350757/601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856) (+.f64 x (*.f64 z y)) (+.f64 (*.f64 a t) x)))
(if (<=.f64 z -340000000000000021248837711285363090016932617733782784165666866357005418012122669613129693182497860365824909184336478426567310880888734234660181624406978895214653957998641152) (*.f64 z y) (if (<=.f64 z -4024409924972791/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (*.f64 a b)) (if (<=.f64 z 8000000000000000189963458869208842859269263422629457499787719909361899436336164580545421025728666353034767753070720928606347305359120652587499520) (+.f64 (*.f64 a t) x) (*.f64 z (*.f64 a b)))))
(if (<=.f64 x -1207719079624103/5986310706507378352962293074805895248510699696029696) x (if (<=.f64 x 7807760986955843/167423219872854268898191413915625282900219501828989626163085998182867351738271269139562246689952477832436667643367679191435491450889424069312259024604665231311477621481628609147204290704099549091843034096141351171618467832303105743111961624157454108040174944963852221369694216119572256044331338563584) (*.f64 z y) (if (<=.f64 x 7342006514905071/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 a t) (if (<=.f64 x 19148413710705057817649188023257618258087849323565512916992) (*.f64 z y) (if (<=.f64 x 53454409407745189382330851559398984379238693386519543662837912303505041381284771312697344) (*.f64 a t) x)))))
(if (<=.f64 x -1207719079624103/5986310706507378352962293074805895248510699696029696) x (if (<=.f64 x 451930463711259600489236822081737784928997190906752491419669790150855527973378850816) (*.f64 z y) x))
x
Compiler

Compiled 922 to 426 computations (53.8% saved)

soundness53.0ms (0.2%)

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)

end219.0ms (0.9%)

Compiler

Compiled 826 to 226 computations (72.6% saved)

Profiling

Loading profile data...