Details

Time bar (total: 18.1s)

analyze261.0ms (1.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
13%12.5%83.4%0.2%3.9%0%0%11
19.6%18.7%76.8%0.2%4.3%0%0%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample1.0s (5.7%)

Results
804.0ms8256×body256valid
197.0ms2133×body256infinite
Bogosity

preprocess3.0s (16.4%)

Algorithm
egglog
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
Call 2
Inputs
(+.f64 (*.f64 x y) (*.f64 z t))
(+.f64 (*.f64 y x) (*.f64 z t))
(+.f64 (*.f64 z y) (*.f64 x t))
(+.f64 (*.f64 t y) (*.f64 z x))
(+.f64 (*.f64 x z) (*.f64 y t))
(+.f64 (*.f64 x t) (*.f64 z y))
(+.f64 (*.f64 x y) (*.f64 t z))
Outputs
(+.f64 (*.f64 x y) (*.f64 z t))
(fma.f64 x y (*.f64 z t))
(+.f64 (*.f64 y x) (*.f64 z t))
(fma.f64 x y (*.f64 z t))
(+.f64 (*.f64 z y) (*.f64 x t))
(fma.f64 x t (*.f64 z y))
(+.f64 (*.f64 t y) (*.f64 z x))
(fma.f64 x z (*.f64 y t))
(+.f64 (*.f64 x z) (*.f64 y t))
(fma.f64 x z (*.f64 y t))
(+.f64 (*.f64 x t) (*.f64 z y))
(fma.f64 x t (*.f64 z y))
(+.f64 (*.f64 x y) (*.f64 t z))
(fma.f64 x y (*.f64 z t))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify1.5s (8.1%)

Algorithm
egglog
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z t))
Outputs
(+.f64 (*.f64 x y) (*.f64 z t))
(fma.f64 x y (*.f64 z t))

eval1.0ms (0%)

Compiler

Compiled 17 to 8 computations (52.9% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 21 to 13 computations (38.1% saved)

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 7 computations (66.7% saved)

series8.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

Compiled 1465 to 40 computations (97.3% saved)

rewrite1.5s (8%)

Algorithm
batch-egg-rewrite
Rules
46×egg-rr
Counts
1 → 46
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 (cbrt.f64 (*.f64 z t)) (-.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 (cbrt.f64 (*.f64 x y)) (-.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x y (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x y) (*.f64 (neg.f64 t) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x y (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x y (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z t (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t z (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y x (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (pow.f64 y 2)) x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 t) (*.f64 (cbrt.f64 (pow.f64 t 2)) z) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 z)) (cbrt.f64 (pow.f64 z 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) 1 (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z t) 1 (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (*.f64 x y)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x y (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (fma.f64 x y (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (*.f64 (fma.f64 (/.f64 z y) (/.f64 t x) 1) (*.f64 x y)) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 (neg.f64 t) z) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x y) 0) (*.f64 z t))))))

simplify2.6s (14.4%)

Algorithm
egglog
Counts
94 → 59
Calls
Call 1
Inputs
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t))))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 (cbrt.f64 (*.f64 z t)) (-.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 (cbrt.f64 (*.f64 x y)) (-.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(*.f64 1 (fma.f64 x y (*.f64 z t)))
(*.f64 (fma.f64 x y (*.f64 z t)) 1)
(-.f64 (*.f64 x y) (*.f64 (neg.f64 t) z))
(/.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 x y (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 t z (*.f64 x y))
(fma.f64 y x (*.f64 z t))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))
(fma.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (pow.f64 y 2)) x) (*.f64 z t))
(fma.f64 (*.f64 y (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (*.f64 z t))
(fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))
(fma.f64 (cbrt.f64 t) (*.f64 (cbrt.f64 (pow.f64 t 2)) z) (*.f64 x y))
(fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))
(fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))
(fma.f64 (*.f64 t (cbrt.f64 z)) (cbrt.f64 (pow.f64 z 2)) (*.f64 x y))
(fma.f64 1 (*.f64 z t) (*.f64 x y))
(fma.f64 1 (*.f64 x y) (*.f64 z t))
(fma.f64 (*.f64 x y) 1 (*.f64 z t))
(fma.f64 (*.f64 z t) 1 (*.f64 x y))
(fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))
(fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (*.f64 x y)) (*.f64 z t))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x y))
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3) 1/3)
(pow.f64 (fma.f64 x y (*.f64 z t)) 1)
(pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) 3)
(cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3))
(neg.f64 (neg.f64 (fma.f64 x y (*.f64 z t))))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (fma.f64 (/.f64 z y) (/.f64 t x) 1) (*.f64 x y)) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 (neg.f64 t) z) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(+.f64 (*.f64 x y) (*.f64 z t))
(+.f64 (*.f64 z t) (*.f64 x y))
(+.f64 (-.f64 (*.f64 x y) 0) (*.f64 z t))
Outputs
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 x y))
(*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)))
(fma.f64 z t (*.f64 x y))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t))))
(fma.f64 z t (*.f64 x y))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 (cbrt.f64 (*.f64 z t)) (-.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(fma.f64 z t (*.f64 x y))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 (cbrt.f64 (*.f64 x y)) (-.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(fma.f64 z t (*.f64 x y))
(*.f64 1 (fma.f64 x y (*.f64 z t)))
(fma.f64 z t (*.f64 x y))
(*.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 z t (*.f64 x y))
(-.f64 (*.f64 x y) (*.f64 (neg.f64 t) z))
(fma.f64 z t (*.f64 x y))
(/.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 z t (*.f64 x y))
(fma.f64 x y (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 t z (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 y x (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (pow.f64 y 2)) x) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (*.f64 y (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 t) (*.f64 (cbrt.f64 (pow.f64 t 2)) z) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 (*.f64 t (cbrt.f64 z)) (cbrt.f64 (pow.f64 z 2)) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 1 (*.f64 z t) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 1 (*.f64 x y) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (*.f64 x y) 1 (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (*.f64 z t) 1 (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (*.f64 x y)) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3) 1/3)
(fma.f64 z t (*.f64 x y))
(pow.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 z t (*.f64 x y))
(pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) 3)
(fma.f64 z t (*.f64 x y))
(cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3))
(fma.f64 z t (*.f64 x y))
(neg.f64 (neg.f64 (fma.f64 x y (*.f64 z t))))
(fma.f64 z t (*.f64 x y))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (fma.f64 (/.f64 z y) (/.f64 t x) 1) (*.f64 x y)) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (fma.f64 (/.f64 z y) (/.f64 t x) 1)) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 t (*.f64 z (fma.f64 (/.f64 x z) (/.f64 y t) 1))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 (neg.f64 t) z) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (neg.f64 (*.f64 z t)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 t) z) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (fma.f64 (*.f64 z t) (-.f64 (*.f64 z t) (*.f64 x y)) (pow.f64 (*.f64 x y) 2))) (fma.f64 z t (*.f64 x y)))
(+.f64 (*.f64 x y) (*.f64 z t))
(fma.f64 z t (*.f64 x y))
(+.f64 (*.f64 z t) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(+.f64 (-.f64 (*.f64 x y) 0) (*.f64 z t))
(fma.f64 z t (*.f64 x y))

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 6 computations (64.7% saved)

series8.0ms (0%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@0
(fma.f64 x y (*.f64 z t))
0.0ms
x
@-inf
(fma.f64 x y (*.f64 z t))
0.0ms
y
@-inf
(fma.f64 x y (*.f64 z t))
0.0ms
y
@inf
(fma.f64 x y (*.f64 z t))
0.0ms
x
@inf
(fma.f64 x y (*.f64 z t))
Compiler

Compiled 1465 to 40 computations (97.3% saved)

rewrite1.5s (8.2%)

Algorithm
batch-egg-rewrite
Rules
49×egg-rr
Counts
1 → 49
Calls
Call 1
Inputs
(fma.f64 x y (*.f64 z t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (*.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t)))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (pow.f64 (*.f64 x y) 2))) (*.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y)))) (+.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x y (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x y) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x y (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 x y (*.f64 z t))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x y (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y x (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 t) (*.f64 (cbrt.f64 (pow.f64 t 2)) z) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z t (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t z (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (cbrt.f64 z)) (cbrt.f64 (pow.f64 z 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) 1 (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z t) 1 (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x y (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (fma.f64 x y (*.f64 z t)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (fma.f64 x y (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (+.f64 1 (/.f64 (*.f64 z t) (*.f64 x y)))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 (neg.f64 z) t) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t)))) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x y) 0) (*.f64 z t))))))

simplify2.5s (14.1%)

Algorithm
egglog
Counts
97 → 69
Calls
Call 1
Inputs
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t))))
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t)))))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2))
(*.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) 2)))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (*.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t)))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (pow.f64 (*.f64 x y) 2))) (*.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y)))) (+.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))
(*.f64 1 (fma.f64 x y (*.f64 z t)))
(*.f64 (fma.f64 x y (*.f64 z t)) 1)
(-.f64 (*.f64 x y) (*.f64 (neg.f64 z) t))
(/.f64 (fma.f64 x y (*.f64 z t)) 1)
(/.f64 (neg.f64 (fma.f64 x y (*.f64 z t))) -1)
(fma.f64 x y (*.f64 z t))
(fma.f64 y x (*.f64 z t))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))
(fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))
(fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))
(fma.f64 (cbrt.f64 t) (*.f64 (cbrt.f64 (pow.f64 t 2)) z) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 t z (*.f64 x y))
(fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))
(fma.f64 (*.f64 t (cbrt.f64 z)) (cbrt.f64 (pow.f64 z 2)) (*.f64 x y))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x y))
(fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))
(fma.f64 1 (*.f64 x y) (*.f64 z t))
(fma.f64 1 (*.f64 z t) (*.f64 x y))
(fma.f64 (*.f64 x y) 1 (*.f64 z t))
(fma.f64 (*.f64 z t) 1 (*.f64 x y))
(fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))
(pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) 3)
(pow.f64 (fma.f64 x y (*.f64 z t)) 1)
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3) 1/3)
(cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3))
(neg.f64 (*.f64 (fma.f64 x y (*.f64 z t)) -1))
(neg.f64 (neg.f64 (fma.f64 x y (*.f64 z t))))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (+.f64 1 (/.f64 (*.f64 z t) (*.f64 x y)))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 (neg.f64 z) t) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t)))) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(+.f64 (*.f64 x y) (*.f64 z t))
(+.f64 (*.f64 z t) (*.f64 x y))
(+.f64 (-.f64 (*.f64 x y) 0) (*.f64 z t))
Outputs
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)))
(fma.f64 x y (*.f64 t z))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t))))
(fma.f64 x y (*.f64 t z))
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2))
(cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 t z))) (pow.f64 (*.f64 (fma.f64 x y (*.f64 t z)) (cbrt.f64 (fma.f64 x y (*.f64 t z)))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) 2)) (cbrt.f64 (fma.f64 x y (*.f64 z t)))))
(fma.f64 x y (*.f64 t z))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2))
(fma.f64 x y (*.f64 t z))
(*.f64 (*.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 2)) 2)))
(fma.f64 x y (*.f64 t z))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (*.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t)))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(fma.f64 x y (*.f64 t z))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (pow.f64 (*.f64 x y) 2))) (*.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y)))) (+.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))
(fma.f64 x y (*.f64 t z))
(*.f64 1 (fma.f64 x y (*.f64 z t)))
(fma.f64 x y (*.f64 t z))
(*.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 x y (*.f64 t z))
(-.f64 (*.f64 x y) (*.f64 (neg.f64 z) t))
(fma.f64 x y (*.f64 t z))
(/.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 x y (*.f64 t z))
(/.f64 (neg.f64 (fma.f64 x y (*.f64 z t))) -1)
(fma.f64 x y (*.f64 t z))
(fma.f64 x y (*.f64 z t))
(fma.f64 x y (*.f64 t z))
(fma.f64 y x (*.f64 z t))
(fma.f64 x y (*.f64 t z))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))
(fma.f64 (cbrt.f64 x) (*.f64 (pow.f64 (cbrt.f64 x) 2) y) (*.f64 t z))
(fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))
(fma.f64 (*.f64 x (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) (*.f64 t z))
(fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))
(fma.f64 (cbrt.f64 z) (*.f64 (pow.f64 (cbrt.f64 z) 2) t) (*.f64 x y))
(fma.f64 (cbrt.f64 t) (*.f64 (cbrt.f64 (pow.f64 t 2)) z) (*.f64 x y))
(fma.f64 (cbrt.f64 t) (*.f64 (pow.f64 (cbrt.f64 t) 2) z) (*.f64 x y))
(fma.f64 z t (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(fma.f64 t z (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))
(fma.f64 (*.f64 z (cbrt.f64 t)) (pow.f64 (cbrt.f64 t) 2) (*.f64 x y))
(fma.f64 (*.f64 t (cbrt.f64 z)) (cbrt.f64 (pow.f64 z 2)) (*.f64 x y))
(fma.f64 (*.f64 (cbrt.f64 z) t) (pow.f64 (cbrt.f64 z) 2) (*.f64 x y))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(fma.f64 1 (*.f64 x y) (*.f64 z t))
(fma.f64 x y (*.f64 t z))
(fma.f64 1 (*.f64 z t) (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(fma.f64 (*.f64 x y) 1 (*.f64 z t))
(fma.f64 x y (*.f64 t z))
(fma.f64 (*.f64 z t) 1 (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))
(fma.f64 x y (*.f64 t z))
(pow.f64 (cbrt.f64 (fma.f64 x y (*.f64 z t))) 3)
(fma.f64 x y (*.f64 t z))
(pow.f64 (fma.f64 x y (*.f64 z t)) 1)
(fma.f64 x y (*.f64 t z))
(pow.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3) 1/3)
(fma.f64 x y (*.f64 t z))
(cbrt.f64 (pow.f64 (fma.f64 x y (*.f64 z t)) 3))
(fma.f64 x y (*.f64 t z))
(neg.f64 (*.f64 (fma.f64 x y (*.f64 z t)) -1))
(fma.f64 x y (*.f64 t z))
(neg.f64 (neg.f64 (fma.f64 x y (*.f64 z t))))
(fma.f64 x y (*.f64 t z))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 t z) 3)) (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y))))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (+.f64 1 (/.f64 (*.f64 z t) (*.f64 x y)))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (fma.f64 (/.f64 z x) (/.f64 t y) 1) (*.f64 x y)) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 t z) 3)) (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y))))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 t z) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 t z) 3)) (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y))))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 t z) 0) (*.f64 (fma.f64 (/.f64 x z) (/.f64 y t) 1) (*.f64 t z)) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 t z)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 t z) 2)) (-.f64 (*.f64 x y) (*.f64 t z))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x y) 2)) (-.f64 (*.f64 z t) (*.f64 x y))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (*.f64 t z) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 t z) 2)) (-.f64 (*.f64 x y) (*.f64 t z))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (*.f64 (neg.f64 z) t) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (neg.f64 (*.f64 t z)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 t z) 3)) (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y))))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t)))) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 t z) 3)) (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y))))) (fma.f64 x y (*.f64 t z)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 (neg.f64 z) t) 3)) (-.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 x y) (*.f64 z t))))) (fma.f64 x y (*.f64 z t)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 t z) 3)) (-.f64 (pow.f64 (*.f64 t z) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 t z) (*.f64 x y))))) (fma.f64 x y (*.f64 t z)))
(+.f64 (*.f64 x y) (*.f64 z t))
(fma.f64 x y (*.f64 t z))
(+.f64 (*.f64 z t) (*.f64 x y))
(fma.f64 x y (*.f64 t z))
(+.f64 (-.f64 (*.f64 x y) 0) (*.f64 z t))
(fma.f64 x y (*.f64 t z))

eval30.0ms (0.2%)

Compiler

Compiled 2426 to 694 computations (71.4% saved)

prune14.0ms (0.1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1253128
Fresh000
Picked011
Done011
Total1255130
Error
0b
Counts
130 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(fma.f64 z t (*.f64 x y))
0.0b
(fma.f64 x y (*.f64 z t))
0.0b
(+.f64 (*.f64 x y) (*.f64 z t))
31.5b
(*.f64 z t)
29.6b
(*.f64 y x)
Compiler

Compiled 45 to 29 computations (35.6% saved)

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 6 computations (64.7% saved)

series7.0ms (0%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
z
@0
(fma.f64 z t (*.f64 x y))
0.0ms
t
@-inf
(fma.f64 z t (*.f64 x y))
0.0ms
z
@inf
(fma.f64 z t (*.f64 x y))
0.0ms
t
@inf
(fma.f64 z t (*.f64 x y))
0.0ms
z
@-inf
(fma.f64 z t (*.f64 x y))
Compiler

Compiled 1465 to 40 computations (97.3% saved)

rewrite1.5s (8.2%)

Algorithm
batch-egg-rewrite
Rules
49×egg-rr
Counts
1 → 49
Calls
Call 1
Inputs
(fma.f64 z t (*.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) (cbrt.f64 (fma.f64 z t (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) 2)) (cbrt.f64 (fma.f64 z t (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (pow.f64 (*.f64 x y) 2))) (*.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y)))) (+.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (*.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t)))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z t (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z t) (*.f64 (neg.f64 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 z t (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 z t (*.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z t (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t z (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (pow.f64 y 2)) x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x y (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y x (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (*.f64 x y)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z t) 1 (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) 1 (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z t (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (fma.f64 z t (*.f64 x y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (fma.f64 z t (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (+.f64 1 (/.f64 (*.f64 z t) (*.f64 x y)))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 (neg.f64 x) y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y)))) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 z t) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z t) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 z t) 0) (*.f64 x y))))))

simplify2.5s (13.9%)

Algorithm
egglog
Counts
97 → 69
Calls
Call 1
Inputs
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) (cbrt.f64 (fma.f64 z t (*.f64 x y))))
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) 2)) (cbrt.f64 (fma.f64 z t (*.f64 x y)))))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2))
(*.f64 (*.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) 2)))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (pow.f64 (*.f64 x y) 2))) (*.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y)))) (+.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (*.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t)))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(*.f64 1 (fma.f64 z t (*.f64 x y)))
(*.f64 (fma.f64 z t (*.f64 x y)) 1)
(-.f64 (*.f64 z t) (*.f64 (neg.f64 x) y))
(/.f64 (fma.f64 z t (*.f64 x y)) 1)
(/.f64 (neg.f64 (fma.f64 z t (*.f64 x y))) -1)
(fma.f64 z t (*.f64 x y))
(fma.f64 t z (*.f64 x y))
(fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))
(fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))
(fma.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (pow.f64 y 2)) x) (*.f64 z t))
(fma.f64 x y (*.f64 z t))
(fma.f64 y x (*.f64 z t))
(fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))
(fma.f64 (*.f64 y (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (*.f64 z t))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (*.f64 x y)) (*.f64 z t))
(fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))
(fma.f64 1 (*.f64 z t) (*.f64 x y))
(fma.f64 1 (*.f64 x y) (*.f64 z t))
(fma.f64 (*.f64 z t) 1 (*.f64 x y))
(fma.f64 (*.f64 x y) 1 (*.f64 z t))
(fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))
(pow.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) 3)
(pow.f64 (fma.f64 z t (*.f64 x y)) 1)
(pow.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 3) 1/3)
(cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 3))
(neg.f64 (*.f64 (fma.f64 z t (*.f64 x y)) -1))
(neg.f64 (neg.f64 (fma.f64 z t (*.f64 x y))))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (+.f64 1 (/.f64 (*.f64 z t) (*.f64 x y)))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 (neg.f64 x) y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y)))) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(+.f64 (*.f64 z t) (*.f64 x y))
(+.f64 (*.f64 x y) (*.f64 z t))
(+.f64 (-.f64 (*.f64 z t) 0) (*.f64 x y))
Outputs
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 t z)
(*.f64 z t)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(fma.f64 z t (*.f64 y x))
(*.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)))
(fma.f64 z t (*.f64 y x))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) (cbrt.f64 (fma.f64 z t (*.f64 x y))))
(fma.f64 z t (*.f64 y x))
(*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2))
(cbrt.f64 (*.f64 (cbrt.f64 (fma.f64 z t (*.f64 y x))) (pow.f64 (*.f64 (fma.f64 z t (*.f64 y x)) (cbrt.f64 (fma.f64 z t (*.f64 y x)))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) 2)) (cbrt.f64 (fma.f64 z t (*.f64 x y)))))
(fma.f64 z t (*.f64 y x))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2))
(fma.f64 z t (*.f64 y x))
(*.f64 (*.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y)))) 2)) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 2)) 2)))
(fma.f64 z t (*.f64 y x))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (pow.f64 (*.f64 x y) 2))) (*.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y)))) (+.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (*.f64 x y))))
(fma.f64 z t (*.f64 y x))
(*.f64 (-.f64 (+.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (*.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t)))) (+.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (*.f64 z t))))
(fma.f64 z t (*.f64 y x))
(*.f64 1 (fma.f64 z t (*.f64 x y)))
(fma.f64 z t (*.f64 y x))
(*.f64 (fma.f64 z t (*.f64 x y)) 1)
(fma.f64 z t (*.f64 y x))
(-.f64 (*.f64 z t) (*.f64 (neg.f64 x) y))
(fma.f64 z t (*.f64 y x))
(/.f64 (fma.f64 z t (*.f64 x y)) 1)
(fma.f64 z t (*.f64 y x))
(/.f64 (neg.f64 (fma.f64 z t (*.f64 x y))) -1)
(fma.f64 z t (*.f64 y x))
(fma.f64 z t (*.f64 x y))
(fma.f64 z t (*.f64 y x))
(fma.f64 t z (*.f64 x y))
(fma.f64 z t (*.f64 y x))
(fma.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 (pow.f64 z 2)) t) (*.f64 x y))
(fma.f64 (cbrt.f64 z) (*.f64 (pow.f64 (cbrt.f64 z) 2) t) (*.f64 y x))
(fma.f64 (*.f64 z (cbrt.f64 t)) (cbrt.f64 (pow.f64 t 2)) (*.f64 x y))
(fma.f64 (*.f64 z (cbrt.f64 t)) (pow.f64 (cbrt.f64 t) 2) (*.f64 y x))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) y) (*.f64 z t))
(fma.f64 (cbrt.f64 x) (*.f64 (pow.f64 (cbrt.f64 x) 2) y) (*.f64 z t))
(fma.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (pow.f64 y 2)) x) (*.f64 z t))
(fma.f64 (cbrt.f64 y) (*.f64 (pow.f64 (cbrt.f64 y) 2) x) (*.f64 z t))
(fma.f64 x y (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(fma.f64 y x (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(fma.f64 (*.f64 x (cbrt.f64 y)) (cbrt.f64 (pow.f64 y 2)) (*.f64 z t))
(fma.f64 (*.f64 x (cbrt.f64 y)) (pow.f64 (cbrt.f64 y) 2) (*.f64 z t))
(fma.f64 (*.f64 y (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (*.f64 z t))
(fma.f64 (*.f64 (cbrt.f64 x) y) (pow.f64 (cbrt.f64 x) 2) (*.f64 z t))
(fma.f64 (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (cbrt.f64 (*.f64 x y)) (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(fma.f64 (cbrt.f64 (*.f64 x y)) (cbrt.f64 (pow.f64 (*.f64 x y) 2)) (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(fma.f64 1 (*.f64 z t) (*.f64 x y))
(fma.f64 z t (*.f64 y x))
(fma.f64 1 (*.f64 x y) (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(fma.f64 (*.f64 z t) 1 (*.f64 x y))
(fma.f64 z t (*.f64 y x))
(fma.f64 (*.f64 x y) 1 (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x y))
(fma.f64 z t (*.f64 y x))
(pow.f64 (cbrt.f64 (fma.f64 z t (*.f64 x y))) 3)
(fma.f64 z t (*.f64 y x))
(pow.f64 (fma.f64 z t (*.f64 x y)) 1)
(fma.f64 z t (*.f64 y x))
(pow.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 3) 1/3)
(fma.f64 z t (*.f64 y x))
(cbrt.f64 (pow.f64 (fma.f64 z t (*.f64 x y)) 3))
(fma.f64 z t (*.f64 y x))
(neg.f64 (*.f64 (fma.f64 z t (*.f64 x y)) -1))
(fma.f64 z t (*.f64 y x))
(neg.f64 (neg.f64 (fma.f64 z t (*.f64 x y))))
(fma.f64 z t (*.f64 y x))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 y x) 3)) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t))))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (*.f64 z t) (+.f64 1 (/.f64 (*.f64 x y) (*.f64 z t)))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (*.f64 (fma.f64 (/.f64 x z) (/.f64 y t) 1) (*.f64 z t)) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 y x) 3)) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t))))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (*.f64 x y) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 y x) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 y x) 3)) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t))))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (*.f64 x y) 0) (*.f64 (*.f64 x y) (+.f64 1 (/.f64 (*.f64 z t) (*.f64 x y)))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 y x) 0) (*.f64 (fma.f64 (/.f64 z x) (/.f64 t y) 1) (*.f64 y x)) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 x y)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (*.f64 z t) (*.f64 y x)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 y x) 2)) (-.f64 (*.f64 z t) (*.f64 y x))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (-.f64 (*.f64 x y) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 z t) 2)) (-.f64 (*.f64 x y) (*.f64 z t))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (*.f64 y x) (*.f64 z t)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 y x) 2)) (-.f64 (*.f64 z t) (*.f64 y x))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (*.f64 (neg.f64 x) y) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (neg.f64 (*.f64 y x)) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 y x) 3)) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t))))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y)))) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 y x) 3)) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t))))) (fma.f64 z t (*.f64 y x)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (-.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 (neg.f64 x) y) 3)) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (*.f64 x y) (-.f64 (*.f64 z t) (*.f64 x y))))) (fma.f64 z t (*.f64 x y)))
(if (!=.f64 (*.f64 z t) 0) (/.f64 (+.f64 (pow.f64 (*.f64 z t) 3) (pow.f64 (*.f64 y x) 3)) (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 (*.f64 z t) (-.f64 (*.f64 y x) (*.f64 z t))))) (fma.f64 z t (*.f64 y x)))
(+.f64 (*.f64 z t) (*.f64 x y))
(fma.f64 z t (*.f64 y x))
(+.f64 (*.f64 x y) (*.f64 z t))
(fma.f64 z t (*.f64 y x))
(+.f64 (-.f64 (*.f64 z t) 0) (*.f64 x y))
(fma.f64 z t (*.f64 y x))

eval17.0ms (0.1%)

Compiler

Compiled 1323 to 395 computations (70.1% saved)

prune13.0ms (0.1%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New69069
Fresh000
Picked011
Done044
Total69574
Error
0b
Counts
74 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(fma.f64 z t (*.f64 x y))
0.0b
(fma.f64 x y (*.f64 z t))
0.0b
(+.f64 (*.f64 x y) (*.f64 z t))
31.5b
(*.f64 z t)
29.6b
(*.f64 y x)
Compiler

Compiled 45 to 29 computations (35.6% saved)

regimes34.0ms (0.2%)

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

7 calls:

8.0ms
(*.f64 z t)
4.0ms
(+.f64 (*.f64 x y) (*.f64 z t))
4.0ms
x
4.0ms
t
4.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1(+.f64 (*.f64 x y) (*.f64 z t))
0.0b1(*.f64 x y)
0.0b1(*.f64 z t)
Compiler

Compiled 74 to 43 computations (41.9% saved)

regimes25.0ms (0.1%)

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

7 calls:

4.0ms
(*.f64 x y)
3.0ms
(+.f64 (*.f64 x y) (*.f64 z t))
3.0ms
x
3.0ms
y
3.0ms
z
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1(+.f64 (*.f64 x y) (*.f64 z t))
0.0b1(*.f64 x y)
0.0b1(*.f64 z t)
Compiler

Compiled 62 to 41 computations (33.9% saved)

regimes66.0ms (0.4%)

Accuracy

Total -45.4b remaining (-311.4%)

Threshold costs -45.4b (-311.4%)

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

5 calls:

18.0ms
t
16.0ms
z
13.0ms
y
10.0ms
x
8.0ms
(*.f64 z t)
Results
ErrorSegmentsBranch
19.1b3x
15.5b5y
20.0b5z
17.7b7t
14.6b3(*.f64 z t)
Compiler

Compiled 37 to 27 computations (27% saved)

bsearch23.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
55764.27221687947
1.6358035181650333e+29
6.0ms
-2.2570648575045626e-78
-1.1595140802178848e-78
Results
20.0ms240×body256valid
Compiler

Compiled 228 to 178 computations (21.9% saved)

simplify1.0ms (0%)

Stop Event
done
Compiler

Compiled 53 to 30 computations (43.4% saved)

soundness0.0ms (0%)

end22.0ms (0.1%)

Compiler

Compiled 41 to 15 computations (63.4% saved)

Profiling

Loading profile data...