Average Error: 19.0 → 8.8
Time: 19.2s
Precision: 64
\[\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
\[\begin{array}{l} \mathbf{if}\;a \le -1.5470563667015197 \cdot 10^{+72}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \left(4.0 \cdot a\right) \cdot \frac{t}{c}\right)\\ \mathbf{elif}\;a \le -1.7576912804984347 \cdot 10^{-185}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{z}{\sqrt[3]{x}}} \cdot \frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}, 9.0, \frac{\frac{b}{c}}{z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \mathbf{elif}\;a \le 2.1986561765626434 \cdot 10^{-240}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c}{\frac{x}{z}}}, 9.0, \frac{b}{c \cdot z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \mathbf{elif}\;a \le 3.1796022958011577 \cdot 10^{+31}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{z}{\sqrt[3]{x}}} \cdot \frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}, 9.0, \frac{\frac{b}{c}}{z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \mathbf{elif}\;a \le 3.719977460054025 \cdot 10^{+243}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \left(4.0 \cdot a\right) \cdot \frac{t}{c}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, b \cdot \frac{1}{c \cdot z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \end{array}\]
\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}
\begin{array}{l}
\mathbf{if}\;a \le -1.5470563667015197 \cdot 10^{+72}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \left(4.0 \cdot a\right) \cdot \frac{t}{c}\right)\\

\mathbf{elif}\;a \le -1.7576912804984347 \cdot 10^{-185}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{z}{\sqrt[3]{x}}} \cdot \frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}, 9.0, \frac{\frac{b}{c}}{z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\

\mathbf{elif}\;a \le 2.1986561765626434 \cdot 10^{-240}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c}{\frac{x}{z}}}, 9.0, \frac{b}{c \cdot z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\

\mathbf{elif}\;a \le 3.1796022958011577 \cdot 10^{+31}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{z}{\sqrt[3]{x}}} \cdot \frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}, 9.0, \frac{\frac{b}{c}}{z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\

\mathbf{elif}\;a \le 3.719977460054025 \cdot 10^{+243}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \left(4.0 \cdot a\right) \cdot \frac{t}{c}\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, b \cdot \frac{1}{c \cdot z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r13545497 = x;
        double r13545498 = 9.0;
        double r13545499 = r13545497 * r13545498;
        double r13545500 = y;
        double r13545501 = r13545499 * r13545500;
        double r13545502 = z;
        double r13545503 = 4.0;
        double r13545504 = r13545502 * r13545503;
        double r13545505 = t;
        double r13545506 = r13545504 * r13545505;
        double r13545507 = a;
        double r13545508 = r13545506 * r13545507;
        double r13545509 = r13545501 - r13545508;
        double r13545510 = b;
        double r13545511 = r13545509 + r13545510;
        double r13545512 = c;
        double r13545513 = r13545502 * r13545512;
        double r13545514 = r13545511 / r13545513;
        return r13545514;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r13545515 = a;
        double r13545516 = -1.5470563667015197e+72;
        bool r13545517 = r13545515 <= r13545516;
        double r13545518 = y;
        double r13545519 = c;
        double r13545520 = z;
        double r13545521 = r13545519 * r13545520;
        double r13545522 = x;
        double r13545523 = r13545521 / r13545522;
        double r13545524 = r13545518 / r13545523;
        double r13545525 = 9.0;
        double r13545526 = b;
        double r13545527 = r13545526 / r13545521;
        double r13545528 = 4.0;
        double r13545529 = r13545528 * r13545515;
        double r13545530 = t;
        double r13545531 = r13545530 / r13545519;
        double r13545532 = r13545529 * r13545531;
        double r13545533 = r13545527 - r13545532;
        double r13545534 = fma(r13545524, r13545525, r13545533);
        double r13545535 = -1.7576912804984347e-185;
        bool r13545536 = r13545515 <= r13545535;
        double r13545537 = cbrt(r13545522);
        double r13545538 = r13545520 / r13545537;
        double r13545539 = r13545518 / r13545538;
        double r13545540 = 1.0;
        double r13545541 = r13545537 * r13545537;
        double r13545542 = r13545519 / r13545541;
        double r13545543 = r13545540 / r13545542;
        double r13545544 = r13545539 * r13545543;
        double r13545545 = r13545526 / r13545519;
        double r13545546 = r13545545 / r13545520;
        double r13545547 = r13545530 * r13545529;
        double r13545548 = r13545547 / r13545519;
        double r13545549 = r13545546 - r13545548;
        double r13545550 = fma(r13545544, r13545525, r13545549);
        double r13545551 = 2.1986561765626434e-240;
        bool r13545552 = r13545515 <= r13545551;
        double r13545553 = r13545522 / r13545520;
        double r13545554 = r13545519 / r13545553;
        double r13545555 = r13545518 / r13545554;
        double r13545556 = r13545527 - r13545548;
        double r13545557 = fma(r13545555, r13545525, r13545556);
        double r13545558 = 3.1796022958011577e+31;
        bool r13545559 = r13545515 <= r13545558;
        double r13545560 = 3.719977460054025e+243;
        bool r13545561 = r13545515 <= r13545560;
        double r13545562 = r13545540 / r13545521;
        double r13545563 = r13545526 * r13545562;
        double r13545564 = r13545563 - r13545548;
        double r13545565 = fma(r13545524, r13545525, r13545564);
        double r13545566 = r13545561 ? r13545534 : r13545565;
        double r13545567 = r13545559 ? r13545550 : r13545566;
        double r13545568 = r13545552 ? r13545557 : r13545567;
        double r13545569 = r13545536 ? r13545550 : r13545568;
        double r13545570 = r13545517 ? r13545534 : r13545569;
        return r13545570;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Target

Original19.0
Target13.6
Herbie8.8
\[\begin{array}{l} \mathbf{if}\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt -1.100156740804105 \cdot 10^{-171}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(z \cdot 4.0\right) \cdot \left(t \cdot a\right)\right) + b}{z \cdot c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt -0.0:\\ \;\;\;\;\frac{\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z}}{c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt 1.1708877911747488 \cdot 10^{-53}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(z \cdot 4.0\right) \cdot \left(t \cdot a\right)\right) + b}{z \cdot c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt 2.876823679546137 \cdot 10^{+130}:\\ \;\;\;\;\left(\left(9.0 \cdot \frac{y}{c}\right) \cdot \frac{x}{z} + \frac{b}{c \cdot z}\right) - 4.0 \cdot \frac{a \cdot t}{c}\\ \mathbf{elif}\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c} \lt 1.3838515042456319 \cdot 10^{+158}:\\ \;\;\;\;\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(z \cdot 4.0\right) \cdot \left(t \cdot a\right)\right) + b}{z \cdot c}\\ \mathbf{else}:\\ \;\;\;\;\left(9.0 \cdot \left(\frac{y}{c \cdot z} \cdot x\right) + \frac{b}{c \cdot z}\right) - 4.0 \cdot \frac{a \cdot t}{c}\\ \end{array}\]

Derivation

  1. Split input into 4 regimes
  2. if a < -1.5470563667015197e+72 or 3.1796022958011577e+31 < a < 3.719977460054025e+243

    1. Initial program 22.6

      \[\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
    2. Simplified22.6

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x \cdot 9.0, y, b - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right)}{c \cdot z}}\]
    3. Taylor expanded around 0 15.0

      \[\leadsto \color{blue}{\left(9.0 \cdot \frac{x \cdot y}{z \cdot c} + \frac{b}{z \cdot c}\right) - 4.0 \cdot \frac{a \cdot t}{c}}\]
    4. Simplified15.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y \cdot x}{c \cdot z}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)}\]
    5. Using strategy rm
    6. Applied associate-/l*14.1

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{\frac{c \cdot z}{x}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    7. Using strategy rm
    8. Applied *-un-lft-identity14.1

      \[\leadsto \mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{\color{blue}{1 \cdot c}}\right)\]
    9. Applied times-frac7.8

      \[\leadsto \mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \color{blue}{\frac{a \cdot 4.0}{1} \cdot \frac{t}{c}}\right)\]
    10. Simplified7.8

      \[\leadsto \mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \color{blue}{\left(a \cdot 4.0\right)} \cdot \frac{t}{c}\right)\]

    if -1.5470563667015197e+72 < a < -1.7576912804984347e-185 or 2.1986561765626434e-240 < a < 3.1796022958011577e+31

    1. Initial program 16.6

      \[\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
    2. Simplified16.6

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x \cdot 9.0, y, b - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right)}{c \cdot z}}\]
    3. Taylor expanded around 0 8.3

      \[\leadsto \color{blue}{\left(9.0 \cdot \frac{x \cdot y}{z \cdot c} + \frac{b}{z \cdot c}\right) - 4.0 \cdot \frac{a \cdot t}{c}}\]
    4. Simplified8.3

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y \cdot x}{c \cdot z}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)}\]
    5. Using strategy rm
    6. Applied associate-/l*7.8

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{\frac{c \cdot z}{x}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    7. Using strategy rm
    8. Applied add-cube-cbrt8.0

      \[\leadsto \mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    9. Applied times-frac7.9

      \[\leadsto \mathsf{fma}\left(\frac{y}{\color{blue}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{z}{\sqrt[3]{x}}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    10. Applied *-un-lft-identity7.9

      \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{1 \cdot y}}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{z}{\sqrt[3]{x}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    11. Applied times-frac8.4

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}} \cdot \frac{y}{\frac{z}{\sqrt[3]{x}}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    12. Using strategy rm
    13. Applied associate-/r*8.7

      \[\leadsto \mathsf{fma}\left(\frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}} \cdot \frac{y}{\frac{z}{\sqrt[3]{x}}}, 9.0, \color{blue}{\frac{\frac{b}{c}}{z}} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]

    if -1.7576912804984347e-185 < a < 2.1986561765626434e-240

    1. Initial program 17.1

      \[\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
    2. Simplified17.1

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x \cdot 9.0, y, b - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right)}{c \cdot z}}\]
    3. Taylor expanded around 0 8.9

      \[\leadsto \color{blue}{\left(9.0 \cdot \frac{x \cdot y}{z \cdot c} + \frac{b}{z \cdot c}\right) - 4.0 \cdot \frac{a \cdot t}{c}}\]
    4. Simplified8.9

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y \cdot x}{c \cdot z}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)}\]
    5. Using strategy rm
    6. Applied associate-/l*8.7

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{\frac{c \cdot z}{x}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    7. Using strategy rm
    8. Applied associate-/l*9.6

      \[\leadsto \mathsf{fma}\left(\frac{y}{\color{blue}{\frac{c}{\frac{x}{z}}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]

    if 3.719977460054025e+243 < a

    1. Initial program 27.8

      \[\frac{\left(\left(x \cdot 9.0\right) \cdot y - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\]
    2. Simplified27.8

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x \cdot 9.0, y, b - \left(\left(z \cdot 4.0\right) \cdot t\right) \cdot a\right)}{c \cdot z}}\]
    3. Taylor expanded around 0 17.7

      \[\leadsto \color{blue}{\left(9.0 \cdot \frac{x \cdot y}{z \cdot c} + \frac{b}{z \cdot c}\right) - 4.0 \cdot \frac{a \cdot t}{c}}\]
    4. Simplified18.2

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y \cdot x}{c \cdot z}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)}\]
    5. Using strategy rm
    6. Applied associate-/l*16.4

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{\frac{c \cdot z}{x}}}, 9.0, \frac{b}{c \cdot z} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
    7. Using strategy rm
    8. Applied div-inv16.4

      \[\leadsto \mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \color{blue}{b \cdot \frac{1}{c \cdot z}} - \frac{\left(a \cdot 4.0\right) \cdot t}{c}\right)\]
  3. Recombined 4 regimes into one program.
  4. Final simplification8.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -1.5470563667015197 \cdot 10^{+72}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \left(4.0 \cdot a\right) \cdot \frac{t}{c}\right)\\ \mathbf{elif}\;a \le -1.7576912804984347 \cdot 10^{-185}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{z}{\sqrt[3]{x}}} \cdot \frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}, 9.0, \frac{\frac{b}{c}}{z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \mathbf{elif}\;a \le 2.1986561765626434 \cdot 10^{-240}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c}{\frac{x}{z}}}, 9.0, \frac{b}{c \cdot z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \mathbf{elif}\;a \le 3.1796022958011577 \cdot 10^{+31}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{z}{\sqrt[3]{x}}} \cdot \frac{1}{\frac{c}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}, 9.0, \frac{\frac{b}{c}}{z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \mathbf{elif}\;a \le 3.719977460054025 \cdot 10^{+243}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, \frac{b}{c \cdot z} - \left(4.0 \cdot a\right) \cdot \frac{t}{c}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{\frac{c \cdot z}{x}}, 9.0, b \cdot \frac{1}{c \cdot z} - \frac{t \cdot \left(4.0 \cdot a\right)}{c}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019156 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, J"

  :herbie-target
  (if (< (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) -1.100156740804105e-171) (/ (+ (- (* (* x 9.0) y) (* (* z 4.0) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) -0.0) (/ (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) z) c) (if (< (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) 1.1708877911747488e-53) (/ (+ (- (* (* x 9.0) y) (* (* z 4.0) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) 2.876823679546137e+130) (- (+ (* (* 9.0 (/ y c)) (/ x z)) (/ b (* c z))) (* 4.0 (/ (* a t) c))) (if (< (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)) 1.3838515042456319e+158) (/ (+ (- (* (* x 9.0) y) (* (* z 4.0) (* t a))) b) (* z c)) (- (+ (* 9.0 (* (/ y (* c z)) x)) (/ b (* c z))) (* 4.0 (/ (* a t) c))))))))

  (/ (+ (- (* (* x 9.0) y) (* (* (* z 4.0) t) a)) b) (* z c)))