Linear.Quaternion:$ccosh from linear-1.19.1.3

Percentage Accurate: 89.5% → 99.8%
Time: 4.1s
Alternatives: 15
Speedup: 1.4×

Specification

?
\[\begin{array}{l} \\ \frac{\sin x \cdot \sinh y}{x} \end{array} \]
(FPCore (x y) :precision binary64 (/ (* (sin x) (sinh y)) x))
double code(double x, double y) {
	return (sin(x) * sinh(y)) / x;
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = (sin(x) * sinh(y)) / x
end function
public static double code(double x, double y) {
	return (Math.sin(x) * Math.sinh(y)) / x;
}
def code(x, y):
	return (math.sin(x) * math.sinh(y)) / x
function code(x, y)
	return Float64(Float64(sin(x) * sinh(y)) / x)
end
function tmp = code(x, y)
	tmp = (sin(x) * sinh(y)) / x;
end
code[x_, y_] := N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}

\\
\frac{\sin x \cdot \sinh y}{x}
\end{array}

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 15 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 89.5% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{\sin x \cdot \sinh y}{x} \end{array} \]
(FPCore (x y) :precision binary64 (/ (* (sin x) (sinh y)) x))
double code(double x, double y) {
	return (sin(x) * sinh(y)) / x;
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = (sin(x) * sinh(y)) / x
end function
public static double code(double x, double y) {
	return (Math.sin(x) * Math.sinh(y)) / x;
}
def code(x, y):
	return (math.sin(x) * math.sinh(y)) / x
function code(x, y)
	return Float64(Float64(sin(x) * sinh(y)) / x)
end
function tmp = code(x, y)
	tmp = (sin(x) * sinh(y)) / x;
end
code[x_, y_] := N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}

\\
\frac{\sin x \cdot \sinh y}{x}
\end{array}

Alternative 1: 99.8% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{\sinh y}{x} \cdot \sin x \end{array} \]
(FPCore (x y) :precision binary64 (* (/ (sinh y) x) (sin x)))
double code(double x, double y) {
	return (sinh(y) / x) * sin(x);
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = (sinh(y) / x) * sin(x)
end function
public static double code(double x, double y) {
	return (Math.sinh(y) / x) * Math.sin(x);
}
def code(x, y):
	return (math.sinh(y) / x) * math.sin(x)
function code(x, y)
	return Float64(Float64(sinh(y) / x) * sin(x))
end
function tmp = code(x, y)
	tmp = (sinh(y) / x) * sin(x);
end
code[x_, y_] := N[(N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{\sinh y}{x} \cdot \sin x
\end{array}
Derivation
  1. Initial program 89.5%

    \[\frac{\sin x \cdot \sinh y}{x} \]
  2. Step-by-step derivation
    1. lift-/.f64N/A

      \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
    2. lift-*.f64N/A

      \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
    3. lift-sin.f64N/A

      \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
    4. lift-sinh.f64N/A

      \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
    5. associate-/l*N/A

      \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
    6. *-commutativeN/A

      \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
    7. lower-*.f64N/A

      \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
    8. lower-/.f64N/A

      \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
    9. lift-sinh.f64N/A

      \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
    10. lift-sin.f6499.8

      \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
  3. Applied rewrites99.8%

    \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
  4. Add Preprocessing

Alternative 2: 65.9% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{\sin x \cdot \sinh y}{x}\\ t_1 := \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\ \mathbf{if}\;t\_0 \leq -2 \cdot 10^{-74}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_0 \leq 0:\\ \;\;\;\;\frac{y}{x} \cdot x\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (x y)
 :precision binary64
 (let* ((t_0 (/ (* (sin x) (sinh y)) x))
        (t_1
         (*
          (fma
           (fma (* y y) 0.008333333333333333 0.16666666666666666)
           (* y y)
           1.0)
          y)))
   (if (<= t_0 -2e-74) t_1 (if (<= t_0 0.0) (* (/ y x) x) t_1))))
double code(double x, double y) {
	double t_0 = (sin(x) * sinh(y)) / x;
	double t_1 = fma(fma((y * y), 0.008333333333333333, 0.16666666666666666), (y * y), 1.0) * y;
	double tmp;
	if (t_0 <= -2e-74) {
		tmp = t_1;
	} else if (t_0 <= 0.0) {
		tmp = (y / x) * x;
	} else {
		tmp = t_1;
	}
	return tmp;
}
function code(x, y)
	t_0 = Float64(Float64(sin(x) * sinh(y)) / x)
	t_1 = Float64(fma(fma(Float64(y * y), 0.008333333333333333, 0.16666666666666666), Float64(y * y), 1.0) * y)
	tmp = 0.0
	if (t_0 <= -2e-74)
		tmp = t_1;
	elseif (t_0 <= 0.0)
		tmp = Float64(Float64(y / x) * x);
	else
		tmp = t_1;
	end
	return tmp
end
code[x_, y_] := Block[{t$95$0 = N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(N[(y * y), $MachinePrecision] * 0.008333333333333333 + 0.16666666666666666), $MachinePrecision] * N[(y * y), $MachinePrecision] + 1.0), $MachinePrecision] * y), $MachinePrecision]}, If[LessEqual[t$95$0, -2e-74], t$95$1, If[LessEqual[t$95$0, 0.0], N[(N[(y / x), $MachinePrecision] * x), $MachinePrecision], t$95$1]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{\sin x \cdot \sinh y}{x}\\
t_1 := \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\
\mathbf{if}\;t\_0 \leq -2 \cdot 10^{-74}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_0 \leq 0:\\
\;\;\;\;\frac{y}{x} \cdot x\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 (sin.f64 x) (sinh.f64 y)) x) < -1.99999999999999992e-74 or -0.0 < (/.f64 (*.f64 (sin.f64 x) (sinh.f64 y)) x)

    1. Initial program 99.4%

      \[\frac{\sin x \cdot \sinh y}{x} \]
    2. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
    3. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
      2. lower-*.f64N/A

        \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
      3. rec-expN/A

        \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
      4. sinh-undefN/A

        \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
      5. lower-*.f64N/A

        \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
      6. lift-sinh.f6470.4

        \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
    4. Applied rewrites70.4%

      \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
    5. Taylor expanded in y around 0

      \[\leadsto y \cdot \color{blue}{\left(1 + {y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right)\right)} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right)\right) \cdot y \]
      2. lower-*.f64N/A

        \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right)\right) \cdot y \]
      3. +-commutativeN/A

        \[\leadsto \left({y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right) + 1\right) \cdot y \]
      4. *-commutativeN/A

        \[\leadsto \left(\left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right) \cdot {y}^{2} + 1\right) \cdot y \]
      5. lower-fma.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}, {y}^{2}, 1\right) \cdot y \]
      6. +-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\frac{1}{120} \cdot {y}^{2} + \frac{1}{6}, {y}^{2}, 1\right) \cdot y \]
      7. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left({y}^{2} \cdot \frac{1}{120} + \frac{1}{6}, {y}^{2}, 1\right) \cdot y \]
      8. lower-fma.f64N/A

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left({y}^{2}, \frac{1}{120}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y \]
      9. unpow2N/A

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, \frac{1}{120}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y \]
      10. lower-*.f64N/A

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, \frac{1}{120}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y \]
      11. unpow2N/A

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, \frac{1}{120}, \frac{1}{6}\right), y \cdot y, 1\right) \cdot y \]
      12. lower-*.f6459.4

        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y \]
    7. Applied rewrites59.4%

      \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot \color{blue}{y} \]

    if -1.99999999999999992e-74 < (/.f64 (*.f64 (sin.f64 x) (sinh.f64 y)) x) < -0.0

    1. Initial program 69.5%

      \[\frac{\sin x \cdot \sinh y}{x} \]
    2. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
      3. lift-sin.f64N/A

        \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
      4. lift-sinh.f64N/A

        \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
      5. associate-/l*N/A

        \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
      6. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
      7. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
      8. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
      9. lift-sinh.f64N/A

        \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
      10. lift-sin.f6499.8

        \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
    3. Applied rewrites99.8%

      \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
    4. Taylor expanded in y around 0

      \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
      2. lower-*.f64N/A

        \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
      3. associate-*r/N/A

        \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
      4. div-add-revN/A

        \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
      5. +-commutativeN/A

        \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
      6. lower-/.f64N/A

        \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
      7. +-commutativeN/A

        \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
      8. *-commutativeN/A

        \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
      9. lower-fma.f64N/A

        \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
      10. unpow2N/A

        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
      11. lower-*.f6499.4

        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
    6. Applied rewrites99.4%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
    7. Taylor expanded in x around 0

      \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
    8. Step-by-step derivation
      1. Applied rewrites79.1%

        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
      2. Taylor expanded in y around 0

        \[\leadsto \color{blue}{\frac{y}{x}} \cdot x \]
      3. Step-by-step derivation
        1. lower-/.f6479.2

          \[\leadsto \frac{y}{\color{blue}{x}} \cdot x \]
      4. Applied rewrites79.2%

        \[\leadsto \color{blue}{\frac{y}{x}} \cdot x \]
    9. Recombined 2 regimes into one program.
    10. Add Preprocessing

    Alternative 3: 92.8% accurate, 1.4× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := 2 \cdot \sinh y\\ t_1 := \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x\\ \mathbf{if}\;y \leq -1.46 \cdot 10^{+135}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y \leq -1.9 \cdot 10^{-5}:\\ \;\;\;\;t\_0 \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq 0.000235:\\ \;\;\;\;\frac{\sin x}{x} \cdot y\\ \mathbf{elif}\;y \leq 1.65 \cdot 10^{+124}:\\ \;\;\;\;t\_0 \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
    (FPCore (x y)
     :precision binary64
     (let* ((t_0 (* 2.0 (sinh y)))
            (t_1 (* (* (/ (fma (* y y) 0.16666666666666666 1.0) x) y) (sin x))))
       (if (<= y -1.46e+135)
         t_1
         (if (<= y -1.9e-5)
           (* t_0 (fma (* x x) -0.08333333333333333 0.5))
           (if (<= y 0.000235)
             (* (/ (sin x) x) y)
             (if (<= y 1.65e+124) (* t_0 0.5) t_1))))))
    double code(double x, double y) {
    	double t_0 = 2.0 * sinh(y);
    	double t_1 = ((fma((y * y), 0.16666666666666666, 1.0) / x) * y) * sin(x);
    	double tmp;
    	if (y <= -1.46e+135) {
    		tmp = t_1;
    	} else if (y <= -1.9e-5) {
    		tmp = t_0 * fma((x * x), -0.08333333333333333, 0.5);
    	} else if (y <= 0.000235) {
    		tmp = (sin(x) / x) * y;
    	} else if (y <= 1.65e+124) {
    		tmp = t_0 * 0.5;
    	} else {
    		tmp = t_1;
    	}
    	return tmp;
    }
    
    function code(x, y)
    	t_0 = Float64(2.0 * sinh(y))
    	t_1 = Float64(Float64(Float64(fma(Float64(y * y), 0.16666666666666666, 1.0) / x) * y) * sin(x))
    	tmp = 0.0
    	if (y <= -1.46e+135)
    		tmp = t_1;
    	elseif (y <= -1.9e-5)
    		tmp = Float64(t_0 * fma(Float64(x * x), -0.08333333333333333, 0.5));
    	elseif (y <= 0.000235)
    		tmp = Float64(Float64(sin(x) / x) * y);
    	elseif (y <= 1.65e+124)
    		tmp = Float64(t_0 * 0.5);
    	else
    		tmp = t_1;
    	end
    	return tmp
    end
    
    code[x_, y_] := Block[{t$95$0 = N[(2.0 * N[Sinh[y], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(N[(N[(y * y), $MachinePrecision] * 0.16666666666666666 + 1.0), $MachinePrecision] / x), $MachinePrecision] * y), $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.46e+135], t$95$1, If[LessEqual[y, -1.9e-5], N[(t$95$0 * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 0.000235], N[(N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision] * y), $MachinePrecision], If[LessEqual[y, 1.65e+124], N[(t$95$0 * 0.5), $MachinePrecision], t$95$1]]]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := 2 \cdot \sinh y\\
    t_1 := \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x\\
    \mathbf{if}\;y \leq -1.46 \cdot 10^{+135}:\\
    \;\;\;\;t\_1\\
    
    \mathbf{elif}\;y \leq -1.9 \cdot 10^{-5}:\\
    \;\;\;\;t\_0 \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
    
    \mathbf{elif}\;y \leq 0.000235:\\
    \;\;\;\;\frac{\sin x}{x} \cdot y\\
    
    \mathbf{elif}\;y \leq 1.65 \cdot 10^{+124}:\\
    \;\;\;\;t\_0 \cdot 0.5\\
    
    \mathbf{else}:\\
    \;\;\;\;t\_1\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 4 regimes
    2. if y < -1.4600000000000001e135 or 1.65000000000000007e124 < y

      1. Initial program 100.0%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Step-by-step derivation
        1. lift-/.f64N/A

          \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
        2. lift-*.f64N/A

          \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
        3. lift-sin.f64N/A

          \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
        4. lift-sinh.f64N/A

          \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
        5. associate-/l*N/A

          \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
        6. *-commutativeN/A

          \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
        7. lower-*.f64N/A

          \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
        8. lower-/.f64N/A

          \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
        9. lift-sinh.f64N/A

          \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
        10. lift-sin.f64100.0

          \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
      3. Applied rewrites100.0%

        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
      4. Taylor expanded in y around 0

        \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
      5. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
        2. lower-*.f64N/A

          \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
        3. associate-*r/N/A

          \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
        4. div-add-revN/A

          \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
        5. +-commutativeN/A

          \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
        6. lower-/.f64N/A

          \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
        7. +-commutativeN/A

          \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
        8. *-commutativeN/A

          \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
        9. lower-fma.f64N/A

          \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
        10. unpow2N/A

          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
        11. lower-*.f6496.3

          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
      6. Applied rewrites96.3%

        \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]

      if -1.4600000000000001e135 < y < -1.9000000000000001e-5

      1. Initial program 99.8%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
      3. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
        2. distribute-rgt-outN/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
        3. lower-*.f64N/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
        4. rec-expN/A

          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
        5. sinh-undefN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
        6. lower-*.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
        7. lift-sinh.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
        8. *-commutativeN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
        9. lower-fma.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
        10. unpow2N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        11. lower-*.f6474.7

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
      4. Applied rewrites74.7%

        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]

      if -1.9000000000000001e-5 < y < 2.34999999999999993e-4

      1. Initial program 78.7%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in y around 0

        \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
      3. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \frac{\sin x \cdot y}{x} \]
        2. associate-*l/N/A

          \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
        3. lower-*.f64N/A

          \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
        4. lower-/.f64N/A

          \[\leadsto \frac{\sin x}{x} \cdot y \]
        5. lift-sin.f6499.6

          \[\leadsto \frac{\sin x}{x} \cdot y \]
      4. Applied rewrites99.6%

        \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]

      if 2.34999999999999993e-4 < y < 1.65000000000000007e124

      1. Initial program 100.0%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
      3. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
        2. lower-*.f64N/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
        3. rec-expN/A

          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
        4. sinh-undefN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
        5. lower-*.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
        6. lift-sinh.f6471.6

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
      4. Applied rewrites71.6%

        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
    3. Recombined 4 regimes into one program.
    4. Add Preprocessing

    Alternative 4: 86.9% accurate, 1.6× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(2 \cdot \sinh y\right) \cdot 0.5\\ \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq -1.9 \cdot 10^{-5}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y \leq 0.000235:\\ \;\;\;\;\frac{\sin x}{x} \cdot y\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
    (FPCore (x y)
     :precision binary64
     (let* ((t_0 (* (* 2.0 (sinh y)) 0.5)))
       (if (<= y -2e+153)
         (*
          (* (fma 0.3333333333333333 (* y y) 2.0) y)
          (fma (* x x) -0.08333333333333333 0.5))
         (if (<= y -1.9e-5) t_0 (if (<= y 0.000235) (* (/ (sin x) x) y) t_0)))))
    double code(double x, double y) {
    	double t_0 = (2.0 * sinh(y)) * 0.5;
    	double tmp;
    	if (y <= -2e+153) {
    		tmp = (fma(0.3333333333333333, (y * y), 2.0) * y) * fma((x * x), -0.08333333333333333, 0.5);
    	} else if (y <= -1.9e-5) {
    		tmp = t_0;
    	} else if (y <= 0.000235) {
    		tmp = (sin(x) / x) * y;
    	} else {
    		tmp = t_0;
    	}
    	return tmp;
    }
    
    function code(x, y)
    	t_0 = Float64(Float64(2.0 * sinh(y)) * 0.5)
    	tmp = 0.0
    	if (y <= -2e+153)
    		tmp = Float64(Float64(fma(0.3333333333333333, Float64(y * y), 2.0) * y) * fma(Float64(x * x), -0.08333333333333333, 0.5));
    	elseif (y <= -1.9e-5)
    		tmp = t_0;
    	elseif (y <= 0.000235)
    		tmp = Float64(Float64(sin(x) / x) * y);
    	else
    		tmp = t_0;
    	end
    	return tmp
    end
    
    code[x_, y_] := Block[{t$95$0 = N[(N[(2.0 * N[Sinh[y], $MachinePrecision]), $MachinePrecision] * 0.5), $MachinePrecision]}, If[LessEqual[y, -2e+153], N[(N[(N[(0.3333333333333333 * N[(y * y), $MachinePrecision] + 2.0), $MachinePrecision] * y), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -1.9e-5], t$95$0, If[LessEqual[y, 0.000235], N[(N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision] * y), $MachinePrecision], t$95$0]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := \left(2 \cdot \sinh y\right) \cdot 0.5\\
    \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\
    \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
    
    \mathbf{elif}\;y \leq -1.9 \cdot 10^{-5}:\\
    \;\;\;\;t\_0\\
    
    \mathbf{elif}\;y \leq 0.000235:\\
    \;\;\;\;\frac{\sin x}{x} \cdot y\\
    
    \mathbf{else}:\\
    \;\;\;\;t\_0\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if y < -2e153

      1. Initial program 100.0%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
      3. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
        2. distribute-rgt-outN/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
        3. lower-*.f64N/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
        4. rec-expN/A

          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
        5. sinh-undefN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
        6. lower-*.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
        7. lift-sinh.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
        8. *-commutativeN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
        9. lower-fma.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
        10. unpow2N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        11. lower-*.f6476.2

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
      4. Applied rewrites76.2%

        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]
      5. Taylor expanded in y around 0

        \[\leadsto \left(y \cdot \left(2 + \frac{1}{3} \cdot {y}^{2}\right)\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{12}, \frac{1}{2}\right) \]
      6. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
        2. lower-*.f64N/A

          \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
        3. +-commutativeN/A

          \[\leadsto \left(\left(\frac{1}{3} \cdot {y}^{2} + 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        4. lower-fma.f64N/A

          \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, {y}^{2}, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        5. unpow2N/A

          \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        6. lower-*.f6476.2

          \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
      7. Applied rewrites76.2%

        \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.08333333333333333, 0.5\right) \]

      if -2e153 < y < -1.9000000000000001e-5 or 2.34999999999999993e-4 < y

      1. Initial program 99.9%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
      3. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
        2. lower-*.f64N/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
        3. rec-expN/A

          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
        4. sinh-undefN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
        5. lower-*.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
        6. lift-sinh.f6474.0

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
      4. Applied rewrites74.0%

        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]

      if -1.9000000000000001e-5 < y < 2.34999999999999993e-4

      1. Initial program 78.7%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in y around 0

        \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
      3. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \frac{\sin x \cdot y}{x} \]
        2. associate-*l/N/A

          \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
        3. lower-*.f64N/A

          \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
        4. lower-/.f64N/A

          \[\leadsto \frac{\sin x}{x} \cdot y \]
        5. lift-sin.f6499.6

          \[\leadsto \frac{\sin x}{x} \cdot y \]
      4. Applied rewrites99.6%

        \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]
    3. Recombined 3 regimes into one program.
    4. Add Preprocessing

    Alternative 5: 73.2% accurate, 1.7× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(2 \cdot \sinh y\right) \cdot 0.5\\ \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq -2 \cdot 10^{-74}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y \leq 2 \cdot 10^{-35}:\\ \;\;\;\;\frac{y}{x} \cdot x\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
    (FPCore (x y)
     :precision binary64
     (let* ((t_0 (* (* 2.0 (sinh y)) 0.5)))
       (if (<= y -2e+153)
         (*
          (* (fma 0.3333333333333333 (* y y) 2.0) y)
          (fma (* x x) -0.08333333333333333 0.5))
         (if (<= y -2e-74) t_0 (if (<= y 2e-35) (* (/ y x) x) t_0)))))
    double code(double x, double y) {
    	double t_0 = (2.0 * sinh(y)) * 0.5;
    	double tmp;
    	if (y <= -2e+153) {
    		tmp = (fma(0.3333333333333333, (y * y), 2.0) * y) * fma((x * x), -0.08333333333333333, 0.5);
    	} else if (y <= -2e-74) {
    		tmp = t_0;
    	} else if (y <= 2e-35) {
    		tmp = (y / x) * x;
    	} else {
    		tmp = t_0;
    	}
    	return tmp;
    }
    
    function code(x, y)
    	t_0 = Float64(Float64(2.0 * sinh(y)) * 0.5)
    	tmp = 0.0
    	if (y <= -2e+153)
    		tmp = Float64(Float64(fma(0.3333333333333333, Float64(y * y), 2.0) * y) * fma(Float64(x * x), -0.08333333333333333, 0.5));
    	elseif (y <= -2e-74)
    		tmp = t_0;
    	elseif (y <= 2e-35)
    		tmp = Float64(Float64(y / x) * x);
    	else
    		tmp = t_0;
    	end
    	return tmp
    end
    
    code[x_, y_] := Block[{t$95$0 = N[(N[(2.0 * N[Sinh[y], $MachinePrecision]), $MachinePrecision] * 0.5), $MachinePrecision]}, If[LessEqual[y, -2e+153], N[(N[(N[(0.3333333333333333 * N[(y * y), $MachinePrecision] + 2.0), $MachinePrecision] * y), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -2e-74], t$95$0, If[LessEqual[y, 2e-35], N[(N[(y / x), $MachinePrecision] * x), $MachinePrecision], t$95$0]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := \left(2 \cdot \sinh y\right) \cdot 0.5\\
    \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\
    \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
    
    \mathbf{elif}\;y \leq -2 \cdot 10^{-74}:\\
    \;\;\;\;t\_0\\
    
    \mathbf{elif}\;y \leq 2 \cdot 10^{-35}:\\
    \;\;\;\;\frac{y}{x} \cdot x\\
    
    \mathbf{else}:\\
    \;\;\;\;t\_0\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if y < -2e153

      1. Initial program 100.0%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
      3. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
        2. distribute-rgt-outN/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
        3. lower-*.f64N/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
        4. rec-expN/A

          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
        5. sinh-undefN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
        6. lower-*.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
        7. lift-sinh.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
        8. *-commutativeN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
        9. lower-fma.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
        10. unpow2N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        11. lower-*.f6476.2

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
      4. Applied rewrites76.2%

        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]
      5. Taylor expanded in y around 0

        \[\leadsto \left(y \cdot \left(2 + \frac{1}{3} \cdot {y}^{2}\right)\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{12}, \frac{1}{2}\right) \]
      6. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
        2. lower-*.f64N/A

          \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
        3. +-commutativeN/A

          \[\leadsto \left(\left(\frac{1}{3} \cdot {y}^{2} + 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        4. lower-fma.f64N/A

          \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, {y}^{2}, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        5. unpow2N/A

          \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
        6. lower-*.f6476.2

          \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
      7. Applied rewrites76.2%

        \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.08333333333333333, 0.5\right) \]

      if -2e153 < y < -1.99999999999999992e-74 or 2.00000000000000002e-35 < y

      1. Initial program 99.1%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
      3. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
        2. lower-*.f64N/A

          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
        3. rec-expN/A

          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
        4. sinh-undefN/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
        5. lower-*.f64N/A

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
        6. lift-sinh.f6469.9

          \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
      4. Applied rewrites69.9%

        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]

      if -1.99999999999999992e-74 < y < 2.00000000000000002e-35

      1. Initial program 75.4%

        \[\frac{\sin x \cdot \sinh y}{x} \]
      2. Step-by-step derivation
        1. lift-/.f64N/A

          \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
        2. lift-*.f64N/A

          \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
        3. lift-sin.f64N/A

          \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
        4. lift-sinh.f64N/A

          \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
        5. associate-/l*N/A

          \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
        6. *-commutativeN/A

          \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
        7. lower-*.f64N/A

          \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
        8. lower-/.f64N/A

          \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
        9. lift-sinh.f64N/A

          \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
        10. lift-sin.f6499.8

          \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
      3. Applied rewrites99.8%

        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
      4. Taylor expanded in y around 0

        \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
      5. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
        2. lower-*.f64N/A

          \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
        3. associate-*r/N/A

          \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
        4. div-add-revN/A

          \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
        5. +-commutativeN/A

          \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
        6. lower-/.f64N/A

          \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
        7. +-commutativeN/A

          \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
        8. *-commutativeN/A

          \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
        9. lower-fma.f64N/A

          \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
        10. unpow2N/A

          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
        11. lower-*.f6499.6

          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
      6. Applied rewrites99.6%

        \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
      7. Taylor expanded in x around 0

        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
      8. Step-by-step derivation
        1. Applied rewrites75.9%

          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
        2. Taylor expanded in y around 0

          \[\leadsto \color{blue}{\frac{y}{x}} \cdot x \]
        3. Step-by-step derivation
          1. lower-/.f6476.1

            \[\leadsto \frac{y}{\color{blue}{x}} \cdot x \]
        4. Applied rewrites76.1%

          \[\leadsto \color{blue}{\frac{y}{x}} \cdot x \]
      9. Recombined 3 regimes into one program.
      10. Add Preprocessing

      Alternative 6: 86.9% accurate, 1.7× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := 2 \cdot \sinh y\\ \mathbf{if}\;y \leq -1.9 \cdot 10^{-5}:\\ \;\;\;\;t\_0 \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq 0.000235:\\ \;\;\;\;\frac{\sin x}{x} \cdot y\\ \mathbf{else}:\\ \;\;\;\;t\_0 \cdot 0.5\\ \end{array} \end{array} \]
      (FPCore (x y)
       :precision binary64
       (let* ((t_0 (* 2.0 (sinh y))))
         (if (<= y -1.9e-5)
           (* t_0 (fma (* x x) -0.08333333333333333 0.5))
           (if (<= y 0.000235) (* (/ (sin x) x) y) (* t_0 0.5)))))
      double code(double x, double y) {
      	double t_0 = 2.0 * sinh(y);
      	double tmp;
      	if (y <= -1.9e-5) {
      		tmp = t_0 * fma((x * x), -0.08333333333333333, 0.5);
      	} else if (y <= 0.000235) {
      		tmp = (sin(x) / x) * y;
      	} else {
      		tmp = t_0 * 0.5;
      	}
      	return tmp;
      }
      
      function code(x, y)
      	t_0 = Float64(2.0 * sinh(y))
      	tmp = 0.0
      	if (y <= -1.9e-5)
      		tmp = Float64(t_0 * fma(Float64(x * x), -0.08333333333333333, 0.5));
      	elseif (y <= 0.000235)
      		tmp = Float64(Float64(sin(x) / x) * y);
      	else
      		tmp = Float64(t_0 * 0.5);
      	end
      	return tmp
      end
      
      code[x_, y_] := Block[{t$95$0 = N[(2.0 * N[Sinh[y], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -1.9e-5], N[(t$95$0 * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 0.000235], N[(N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision] * y), $MachinePrecision], N[(t$95$0 * 0.5), $MachinePrecision]]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := 2 \cdot \sinh y\\
      \mathbf{if}\;y \leq -1.9 \cdot 10^{-5}:\\
      \;\;\;\;t\_0 \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
      
      \mathbf{elif}\;y \leq 0.000235:\\
      \;\;\;\;\frac{\sin x}{x} \cdot y\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_0 \cdot 0.5\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if y < -1.9000000000000001e-5

        1. Initial program 99.9%

          \[\frac{\sin x \cdot \sinh y}{x} \]
        2. Taylor expanded in x around 0

          \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
        3. Step-by-step derivation
          1. associate-*r*N/A

            \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
          2. distribute-rgt-outN/A

            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
          3. lower-*.f64N/A

            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
          4. rec-expN/A

            \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
          5. sinh-undefN/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
          6. lower-*.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
          7. lift-sinh.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
          8. *-commutativeN/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
          9. lower-fma.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
          10. unpow2N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
          11. lower-*.f6475.5

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
        4. Applied rewrites75.5%

          \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]

        if -1.9000000000000001e-5 < y < 2.34999999999999993e-4

        1. Initial program 78.7%

          \[\frac{\sin x \cdot \sinh y}{x} \]
        2. Taylor expanded in y around 0

          \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
        3. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \frac{\sin x \cdot y}{x} \]
          2. associate-*l/N/A

            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
          3. lower-*.f64N/A

            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
          4. lower-/.f64N/A

            \[\leadsto \frac{\sin x}{x} \cdot y \]
          5. lift-sin.f6499.6

            \[\leadsto \frac{\sin x}{x} \cdot y \]
        4. Applied rewrites99.6%

          \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]

        if 2.34999999999999993e-4 < y

        1. Initial program 100.0%

          \[\frac{\sin x \cdot \sinh y}{x} \]
        2. Taylor expanded in x around 0

          \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
        3. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
          2. lower-*.f64N/A

            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
          3. rec-expN/A

            \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
          4. sinh-undefN/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
          5. lower-*.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
          6. lift-sinh.f6473.9

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
        4. Applied rewrites73.9%

          \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
      3. Recombined 3 regimes into one program.
      4. Add Preprocessing

      Alternative 7: 68.8% accurate, 3.0× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\right)}{x}\\ \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq -2.06 \cdot 10^{+33}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y \leq 3 \cdot 10^{-25}:\\ \;\;\;\;\left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\right) \cdot x\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
      (FPCore (x y)
       :precision binary64
       (let* ((t_0
               (/
                (*
                 x
                 (*
                  (fma
                   (fma
                    (fma 0.0001984126984126984 (* y y) 0.008333333333333333)
                    (* y y)
                    0.16666666666666666)
                   (* y y)
                   1.0)
                  y))
                x)))
         (if (<= y -2e+153)
           (*
            (* (fma 0.3333333333333333 (* y y) 2.0) y)
            (fma (* x x) -0.08333333333333333 0.5))
           (if (<= y -2.06e+33)
             t_0
             (if (<= y 3e-25)
               (* (+ (/ (* y 1.0) x) (/ (* y (* (* y y) 0.16666666666666666)) x)) x)
               t_0)))))
      double code(double x, double y) {
      	double t_0 = (x * (fma(fma(fma(0.0001984126984126984, (y * y), 0.008333333333333333), (y * y), 0.16666666666666666), (y * y), 1.0) * y)) / x;
      	double tmp;
      	if (y <= -2e+153) {
      		tmp = (fma(0.3333333333333333, (y * y), 2.0) * y) * fma((x * x), -0.08333333333333333, 0.5);
      	} else if (y <= -2.06e+33) {
      		tmp = t_0;
      	} else if (y <= 3e-25) {
      		tmp = (((y * 1.0) / x) + ((y * ((y * y) * 0.16666666666666666)) / x)) * x;
      	} else {
      		tmp = t_0;
      	}
      	return tmp;
      }
      
      function code(x, y)
      	t_0 = Float64(Float64(x * Float64(fma(fma(fma(0.0001984126984126984, Float64(y * y), 0.008333333333333333), Float64(y * y), 0.16666666666666666), Float64(y * y), 1.0) * y)) / x)
      	tmp = 0.0
      	if (y <= -2e+153)
      		tmp = Float64(Float64(fma(0.3333333333333333, Float64(y * y), 2.0) * y) * fma(Float64(x * x), -0.08333333333333333, 0.5));
      	elseif (y <= -2.06e+33)
      		tmp = t_0;
      	elseif (y <= 3e-25)
      		tmp = Float64(Float64(Float64(Float64(y * 1.0) / x) + Float64(Float64(y * Float64(Float64(y * y) * 0.16666666666666666)) / x)) * x);
      	else
      		tmp = t_0;
      	end
      	return tmp
      end
      
      code[x_, y_] := Block[{t$95$0 = N[(N[(x * N[(N[(N[(N[(0.0001984126984126984 * N[(y * y), $MachinePrecision] + 0.008333333333333333), $MachinePrecision] * N[(y * y), $MachinePrecision] + 0.16666666666666666), $MachinePrecision] * N[(y * y), $MachinePrecision] + 1.0), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]}, If[LessEqual[y, -2e+153], N[(N[(N[(0.3333333333333333 * N[(y * y), $MachinePrecision] + 2.0), $MachinePrecision] * y), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -2.06e+33], t$95$0, If[LessEqual[y, 3e-25], N[(N[(N[(N[(y * 1.0), $MachinePrecision] / x), $MachinePrecision] + N[(N[(y * N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], t$95$0]]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\right)}{x}\\
      \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\
      \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
      
      \mathbf{elif}\;y \leq -2.06 \cdot 10^{+33}:\\
      \;\;\;\;t\_0\\
      
      \mathbf{elif}\;y \leq 3 \cdot 10^{-25}:\\
      \;\;\;\;\left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\right) \cdot x\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_0\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if y < -2e153

        1. Initial program 100.0%

          \[\frac{\sin x \cdot \sinh y}{x} \]
        2. Taylor expanded in x around 0

          \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
        3. Step-by-step derivation
          1. associate-*r*N/A

            \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
          2. distribute-rgt-outN/A

            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
          3. lower-*.f64N/A

            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
          4. rec-expN/A

            \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
          5. sinh-undefN/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
          6. lower-*.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
          7. lift-sinh.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
          8. *-commutativeN/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
          9. lower-fma.f64N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
          10. unpow2N/A

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
          11. lower-*.f6476.2

            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
        4. Applied rewrites76.2%

          \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]
        5. Taylor expanded in y around 0

          \[\leadsto \left(y \cdot \left(2 + \frac{1}{3} \cdot {y}^{2}\right)\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{12}, \frac{1}{2}\right) \]
        6. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
          2. lower-*.f64N/A

            \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
          3. +-commutativeN/A

            \[\leadsto \left(\left(\frac{1}{3} \cdot {y}^{2} + 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
          4. lower-fma.f64N/A

            \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, {y}^{2}, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
          5. unpow2N/A

            \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
          6. lower-*.f6476.2

            \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
        7. Applied rewrites76.2%

          \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.08333333333333333, 0.5\right) \]

        if -2e153 < y < -2.05999999999999993e33 or 2.9999999999999998e-25 < y

        1. Initial program 99.9%

          \[\frac{\sin x \cdot \sinh y}{x} \]
        2. Taylor expanded in y around 0

          \[\leadsto \frac{\sin x \cdot \color{blue}{y}}{x} \]
        3. Step-by-step derivation
          1. Applied rewrites8.4%

            \[\leadsto \frac{\sin x \cdot \color{blue}{y}}{x} \]
          2. Taylor expanded in x around 0

            \[\leadsto \frac{\color{blue}{x} \cdot y}{x} \]
          3. Step-by-step derivation
            1. Applied rewrites15.4%

              \[\leadsto \frac{\color{blue}{x} \cdot y}{x} \]
            2. Taylor expanded in y around 0

              \[\leadsto \frac{x \cdot \color{blue}{\left(y \cdot \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right)\right)}}{x} \]
            3. Step-by-step derivation
              1. *-commutativeN/A

                \[\leadsto \frac{x \cdot \left(\left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right) \cdot \color{blue}{y}\right)}{x} \]
              2. lower-*.f64N/A

                \[\leadsto \frac{x \cdot \left(\left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right) \cdot \color{blue}{y}\right)}{x} \]
              3. +-commutativeN/A

                \[\leadsto \frac{x \cdot \left(\left({y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right) + 1\right) \cdot y\right)}{x} \]
              4. *-commutativeN/A

                \[\leadsto \frac{x \cdot \left(\left(\left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right) \cdot {y}^{2} + 1\right) \cdot y\right)}{x} \]
              5. lower-fma.f64N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              6. +-commutativeN/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left({y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right) + \frac{1}{6}, {y}^{2}, 1\right) \cdot y\right)}{x} \]
              7. *-commutativeN/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right) \cdot {y}^{2} + \frac{1}{6}, {y}^{2}, 1\right) \cdot y\right)}{x} \]
              8. lower-fma.f64N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}, {y}^{2}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              9. +-commutativeN/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040} \cdot {y}^{2} + \frac{1}{120}, {y}^{2}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              10. lower-fma.f64N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040}, {y}^{2}, \frac{1}{120}\right), {y}^{2}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              11. pow2N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040}, y \cdot y, \frac{1}{120}\right), {y}^{2}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              12. lift-*.f64N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040}, y \cdot y, \frac{1}{120}\right), {y}^{2}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              13. pow2N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040}, y \cdot y, \frac{1}{120}\right), y \cdot y, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              14. lift-*.f64N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040}, y \cdot y, \frac{1}{120}\right), y \cdot y, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y\right)}{x} \]
              15. pow2N/A

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{5040}, y \cdot y, \frac{1}{120}\right), y \cdot y, \frac{1}{6}\right), y \cdot y, 1\right) \cdot y\right)}{x} \]
              16. lift-*.f6466.0

                \[\leadsto \frac{x \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\right)}{x} \]
            4. Applied rewrites66.0%

              \[\leadsto \frac{x \cdot \color{blue}{\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\right)}}{x} \]

            if -2.05999999999999993e33 < y < 2.9999999999999998e-25

            1. Initial program 79.6%

              \[\frac{\sin x \cdot \sinh y}{x} \]
            2. Step-by-step derivation
              1. lift-/.f64N/A

                \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
              2. lift-*.f64N/A

                \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
              3. lift-sin.f64N/A

                \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
              4. lift-sinh.f64N/A

                \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
              5. associate-/l*N/A

                \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
              6. *-commutativeN/A

                \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
              7. lower-*.f64N/A

                \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
              8. lower-/.f64N/A

                \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
              9. lift-sinh.f64N/A

                \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
              10. lift-sin.f6499.7

                \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
            3. Applied rewrites99.7%

              \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
            4. Taylor expanded in y around 0

              \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
            5. Step-by-step derivation
              1. *-commutativeN/A

                \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
              2. lower-*.f64N/A

                \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
              3. associate-*r/N/A

                \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
              4. div-add-revN/A

                \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
              5. +-commutativeN/A

                \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
              6. lower-/.f64N/A

                \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
              7. +-commutativeN/A

                \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
              8. *-commutativeN/A

                \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
              9. lower-fma.f64N/A

                \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
              10. unpow2N/A

                \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
              11. lower-*.f6494.0

                \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
            6. Applied rewrites94.0%

              \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
            7. Taylor expanded in x around 0

              \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
            8. Step-by-step derivation
              1. Applied rewrites69.0%

                \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
              2. Step-by-step derivation
                1. lift-*.f64N/A

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot \color{blue}{y}\right) \cdot x \]
                2. lift-/.f64N/A

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot x \]
                3. lift-*.f64N/A

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot x \]
                4. lift-fma.f64N/A

                  \[\leadsto \left(\frac{\left(y \cdot y\right) \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot x \]
                5. associate-*l/N/A

                  \[\leadsto \frac{\left(\left(y \cdot y\right) \cdot \frac{1}{6} + 1\right) \cdot y}{\color{blue}{x}} \cdot x \]
                6. +-commutativeN/A

                  \[\leadsto \frac{\left(1 + \left(y \cdot y\right) \cdot \frac{1}{6}\right) \cdot y}{x} \cdot x \]
                7. pow2N/A

                  \[\leadsto \frac{\left(1 + {y}^{2} \cdot \frac{1}{6}\right) \cdot y}{x} \cdot x \]
                8. *-commutativeN/A

                  \[\leadsto \frac{\left(1 + \frac{1}{6} \cdot {y}^{2}\right) \cdot y}{x} \cdot x \]
                9. *-commutativeN/A

                  \[\leadsto \frac{y \cdot \left(1 + \frac{1}{6} \cdot {y}^{2}\right)}{x} \cdot x \]
                10. distribute-lft-inN/A

                  \[\leadsto \frac{y \cdot 1 + y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x} \cdot x \]
                11. div-addN/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \color{blue}{\frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}}\right) \cdot x \]
                12. lower-+.f64N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \color{blue}{\frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}}\right) \cdot x \]
                13. lower-/.f64N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{\color{blue}{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}}{x}\right) \cdot x \]
                14. lower-*.f64N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{\color{blue}{y} \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}\right) \cdot x \]
                15. lower-/.f64N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{\color{blue}{x}}\right) \cdot x \]
                16. lower-*.f64N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}\right) \cdot x \]
                17. *-commutativeN/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left({y}^{2} \cdot \frac{1}{6}\right)}{x}\right) \cdot x \]
                18. lower-*.f64N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left({y}^{2} \cdot \frac{1}{6}\right)}{x}\right) \cdot x \]
                19. pow2N/A

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot \frac{1}{6}\right)}{x}\right) \cdot x \]
                20. lift-*.f6469.1

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\right) \cdot x \]
              3. Applied rewrites69.1%

                \[\leadsto \left(\frac{y \cdot 1}{x} + \color{blue}{\frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}}\right) \cdot x \]
            9. Recombined 3 regimes into one program.
            10. Add Preprocessing

            Alternative 8: 66.8% accurate, 3.4× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq -3.35 \cdot 10^{+34}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\right) \cdot x\\ \end{array} \end{array} \]
            (FPCore (x y)
             :precision binary64
             (if (<= y -2e+153)
               (*
                (* (fma 0.3333333333333333 (* y y) 2.0) y)
                (fma (* x x) -0.08333333333333333 0.5))
               (if (<= y -3.35e+34)
                 (*
                  (fma
                   (fma
                    (fma 0.0001984126984126984 (* y y) 0.008333333333333333)
                    (* y y)
                    0.16666666666666666)
                   (* y y)
                   1.0)
                  y)
                 (* (+ (/ (* y 1.0) x) (/ (* y (* (* y y) 0.16666666666666666)) x)) x))))
            double code(double x, double y) {
            	double tmp;
            	if (y <= -2e+153) {
            		tmp = (fma(0.3333333333333333, (y * y), 2.0) * y) * fma((x * x), -0.08333333333333333, 0.5);
            	} else if (y <= -3.35e+34) {
            		tmp = fma(fma(fma(0.0001984126984126984, (y * y), 0.008333333333333333), (y * y), 0.16666666666666666), (y * y), 1.0) * y;
            	} else {
            		tmp = (((y * 1.0) / x) + ((y * ((y * y) * 0.16666666666666666)) / x)) * x;
            	}
            	return tmp;
            }
            
            function code(x, y)
            	tmp = 0.0
            	if (y <= -2e+153)
            		tmp = Float64(Float64(fma(0.3333333333333333, Float64(y * y), 2.0) * y) * fma(Float64(x * x), -0.08333333333333333, 0.5));
            	elseif (y <= -3.35e+34)
            		tmp = Float64(fma(fma(fma(0.0001984126984126984, Float64(y * y), 0.008333333333333333), Float64(y * y), 0.16666666666666666), Float64(y * y), 1.0) * y);
            	else
            		tmp = Float64(Float64(Float64(Float64(y * 1.0) / x) + Float64(Float64(y * Float64(Float64(y * y) * 0.16666666666666666)) / x)) * x);
            	end
            	return tmp
            end
            
            code[x_, y_] := If[LessEqual[y, -2e+153], N[(N[(N[(0.3333333333333333 * N[(y * y), $MachinePrecision] + 2.0), $MachinePrecision] * y), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -3.35e+34], N[(N[(N[(N[(0.0001984126984126984 * N[(y * y), $MachinePrecision] + 0.008333333333333333), $MachinePrecision] * N[(y * y), $MachinePrecision] + 0.16666666666666666), $MachinePrecision] * N[(y * y), $MachinePrecision] + 1.0), $MachinePrecision] * y), $MachinePrecision], N[(N[(N[(N[(y * 1.0), $MachinePrecision] / x), $MachinePrecision] + N[(N[(y * N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\
            \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
            
            \mathbf{elif}\;y \leq -3.35 \cdot 10^{+34}:\\
            \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\
            
            \mathbf{else}:\\
            \;\;\;\;\left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\right) \cdot x\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 3 regimes
            2. if y < -2e153

              1. Initial program 100.0%

                \[\frac{\sin x \cdot \sinh y}{x} \]
              2. Taylor expanded in x around 0

                \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
              3. Step-by-step derivation
                1. associate-*r*N/A

                  \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
                2. distribute-rgt-outN/A

                  \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
                3. lower-*.f64N/A

                  \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
                4. rec-expN/A

                  \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
                5. sinh-undefN/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
                6. lower-*.f64N/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
                7. lift-sinh.f64N/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
                8. *-commutativeN/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
                9. lower-fma.f64N/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
                10. unpow2N/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                11. lower-*.f6476.2

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
              4. Applied rewrites76.2%

                \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]
              5. Taylor expanded in y around 0

                \[\leadsto \left(y \cdot \left(2 + \frac{1}{3} \cdot {y}^{2}\right)\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{12}, \frac{1}{2}\right) \]
              6. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                2. lower-*.f64N/A

                  \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                3. +-commutativeN/A

                  \[\leadsto \left(\left(\frac{1}{3} \cdot {y}^{2} + 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                4. lower-fma.f64N/A

                  \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, {y}^{2}, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                5. unpow2N/A

                  \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                6. lower-*.f6476.2

                  \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
              7. Applied rewrites76.2%

                \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.08333333333333333, 0.5\right) \]

              if -2e153 < y < -3.3500000000000001e34

              1. Initial program 100.0%

                \[\frac{\sin x \cdot \sinh y}{x} \]
              2. Taylor expanded in x around 0

                \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
              3. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                2. lower-*.f64N/A

                  \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                3. rec-expN/A

                  \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
                4. sinh-undefN/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                5. lower-*.f64N/A

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                6. lift-sinh.f6475.4

                  \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
              4. Applied rewrites75.4%

                \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
              5. Taylor expanded in y around 0

                \[\leadsto y \cdot \color{blue}{\left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right)} \]
              6. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right) \cdot y \]
                2. lower-*.f64N/A

                  \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right) \cdot y \]
              7. Applied rewrites69.6%

                \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot \color{blue}{y} \]

              if -3.3500000000000001e34 < y

              1. Initial program 86.6%

                \[\frac{\sin x \cdot \sinh y}{x} \]
              2. Step-by-step derivation
                1. lift-/.f64N/A

                  \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
                2. lift-*.f64N/A

                  \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
                3. lift-sin.f64N/A

                  \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
                4. lift-sinh.f64N/A

                  \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
                5. associate-/l*N/A

                  \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
                6. *-commutativeN/A

                  \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                7. lower-*.f64N/A

                  \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                8. lower-/.f64N/A

                  \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
                9. lift-sinh.f64N/A

                  \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
                10. lift-sin.f6499.8

                  \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
              3. Applied rewrites99.8%

                \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
              4. Taylor expanded in y around 0

                \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
              5. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                2. lower-*.f64N/A

                  \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                3. associate-*r/N/A

                  \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
                4. div-add-revN/A

                  \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                5. +-commutativeN/A

                  \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                6. lower-/.f64N/A

                  \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                7. +-commutativeN/A

                  \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                8. *-commutativeN/A

                  \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
                9. lower-fma.f64N/A

                  \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                10. unpow2N/A

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                11. lower-*.f6486.1

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
              6. Applied rewrites86.1%

                \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
              7. Taylor expanded in x around 0

                \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
              8. Step-by-step derivation
                1. Applied rewrites64.9%

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                2. Step-by-step derivation
                  1. lift-*.f64N/A

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot \color{blue}{y}\right) \cdot x \]
                  2. lift-/.f64N/A

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot x \]
                  3. lift-*.f64N/A

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot x \]
                  4. lift-fma.f64N/A

                    \[\leadsto \left(\frac{\left(y \cdot y\right) \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot x \]
                  5. associate-*l/N/A

                    \[\leadsto \frac{\left(\left(y \cdot y\right) \cdot \frac{1}{6} + 1\right) \cdot y}{\color{blue}{x}} \cdot x \]
                  6. +-commutativeN/A

                    \[\leadsto \frac{\left(1 + \left(y \cdot y\right) \cdot \frac{1}{6}\right) \cdot y}{x} \cdot x \]
                  7. pow2N/A

                    \[\leadsto \frac{\left(1 + {y}^{2} \cdot \frac{1}{6}\right) \cdot y}{x} \cdot x \]
                  8. *-commutativeN/A

                    \[\leadsto \frac{\left(1 + \frac{1}{6} \cdot {y}^{2}\right) \cdot y}{x} \cdot x \]
                  9. *-commutativeN/A

                    \[\leadsto \frac{y \cdot \left(1 + \frac{1}{6} \cdot {y}^{2}\right)}{x} \cdot x \]
                  10. distribute-lft-inN/A

                    \[\leadsto \frac{y \cdot 1 + y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x} \cdot x \]
                  11. div-addN/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \color{blue}{\frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}}\right) \cdot x \]
                  12. lower-+.f64N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \color{blue}{\frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}}\right) \cdot x \]
                  13. lower-/.f64N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{\color{blue}{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}}{x}\right) \cdot x \]
                  14. lower-*.f64N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{\color{blue}{y} \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}\right) \cdot x \]
                  15. lower-/.f64N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{\color{blue}{x}}\right) \cdot x \]
                  16. lower-*.f64N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\frac{1}{6} \cdot {y}^{2}\right)}{x}\right) \cdot x \]
                  17. *-commutativeN/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left({y}^{2} \cdot \frac{1}{6}\right)}{x}\right) \cdot x \]
                  18. lower-*.f64N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left({y}^{2} \cdot \frac{1}{6}\right)}{x}\right) \cdot x \]
                  19. pow2N/A

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot \frac{1}{6}\right)}{x}\right) \cdot x \]
                  20. lift-*.f6465.0

                    \[\leadsto \left(\frac{y \cdot 1}{x} + \frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\right) \cdot x \]
                3. Applied rewrites65.0%

                  \[\leadsto \left(\frac{y \cdot 1}{x} + \color{blue}{\frac{y \cdot \left(\left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}}\right) \cdot x \]
              9. Recombined 3 regimes into one program.
              10. Add Preprocessing

              Alternative 9: 66.7% accurate, 4.3× speedup?

              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{elif}\;y \leq -3.35 \cdot 10^{+34}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot x\\ \end{array} \end{array} \]
              (FPCore (x y)
               :precision binary64
               (if (<= y -2e+153)
                 (*
                  (* (fma 0.3333333333333333 (* y y) 2.0) y)
                  (fma (* x x) -0.08333333333333333 0.5))
                 (if (<= y -3.35e+34)
                   (*
                    (fma
                     (fma
                      (fma 0.0001984126984126984 (* y y) 0.008333333333333333)
                      (* y y)
                      0.16666666666666666)
                     (* y y)
                     1.0)
                    y)
                   (* (* (/ (fma (* y y) 0.16666666666666666 1.0) x) y) x))))
              double code(double x, double y) {
              	double tmp;
              	if (y <= -2e+153) {
              		tmp = (fma(0.3333333333333333, (y * y), 2.0) * y) * fma((x * x), -0.08333333333333333, 0.5);
              	} else if (y <= -3.35e+34) {
              		tmp = fma(fma(fma(0.0001984126984126984, (y * y), 0.008333333333333333), (y * y), 0.16666666666666666), (y * y), 1.0) * y;
              	} else {
              		tmp = ((fma((y * y), 0.16666666666666666, 1.0) / x) * y) * x;
              	}
              	return tmp;
              }
              
              function code(x, y)
              	tmp = 0.0
              	if (y <= -2e+153)
              		tmp = Float64(Float64(fma(0.3333333333333333, Float64(y * y), 2.0) * y) * fma(Float64(x * x), -0.08333333333333333, 0.5));
              	elseif (y <= -3.35e+34)
              		tmp = Float64(fma(fma(fma(0.0001984126984126984, Float64(y * y), 0.008333333333333333), Float64(y * y), 0.16666666666666666), Float64(y * y), 1.0) * y);
              	else
              		tmp = Float64(Float64(Float64(fma(Float64(y * y), 0.16666666666666666, 1.0) / x) * y) * x);
              	end
              	return tmp
              end
              
              code[x_, y_] := If[LessEqual[y, -2e+153], N[(N[(N[(0.3333333333333333 * N[(y * y), $MachinePrecision] + 2.0), $MachinePrecision] * y), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, -3.35e+34], N[(N[(N[(N[(0.0001984126984126984 * N[(y * y), $MachinePrecision] + 0.008333333333333333), $MachinePrecision] * N[(y * y), $MachinePrecision] + 0.16666666666666666), $MachinePrecision] * N[(y * y), $MachinePrecision] + 1.0), $MachinePrecision] * y), $MachinePrecision], N[(N[(N[(N[(N[(y * y), $MachinePrecision] * 0.16666666666666666 + 1.0), $MachinePrecision] / x), $MachinePrecision] * y), $MachinePrecision] * x), $MachinePrecision]]]
              
              \begin{array}{l}
              
              \\
              \begin{array}{l}
              \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\
              \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
              
              \mathbf{elif}\;y \leq -3.35 \cdot 10^{+34}:\\
              \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\
              
              \mathbf{else}:\\
              \;\;\;\;\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot x\\
              
              
              \end{array}
              \end{array}
              
              Derivation
              1. Split input into 3 regimes
              2. if y < -2e153

                1. Initial program 100.0%

                  \[\frac{\sin x \cdot \sinh y}{x} \]
                2. Taylor expanded in x around 0

                  \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
                3. Step-by-step derivation
                  1. associate-*r*N/A

                    \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
                  2. distribute-rgt-outN/A

                    \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
                  3. lower-*.f64N/A

                    \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
                  4. rec-expN/A

                    \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
                  5. sinh-undefN/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
                  6. lower-*.f64N/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
                  7. lift-sinh.f64N/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
                  8. *-commutativeN/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
                  9. lower-fma.f64N/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
                  10. unpow2N/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                  11. lower-*.f6476.2

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
                4. Applied rewrites76.2%

                  \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]
                5. Taylor expanded in y around 0

                  \[\leadsto \left(y \cdot \left(2 + \frac{1}{3} \cdot {y}^{2}\right)\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                6. Step-by-step derivation
                  1. *-commutativeN/A

                    \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                  2. lower-*.f64N/A

                    \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                  3. +-commutativeN/A

                    \[\leadsto \left(\left(\frac{1}{3} \cdot {y}^{2} + 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                  4. lower-fma.f64N/A

                    \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, {y}^{2}, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                  5. unpow2N/A

                    \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                  6. lower-*.f6476.2

                    \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
                7. Applied rewrites76.2%

                  \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.08333333333333333, 0.5\right) \]

                if -2e153 < y < -3.3500000000000001e34

                1. Initial program 100.0%

                  \[\frac{\sin x \cdot \sinh y}{x} \]
                2. Taylor expanded in x around 0

                  \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
                3. Step-by-step derivation
                  1. *-commutativeN/A

                    \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                  2. lower-*.f64N/A

                    \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                  3. rec-expN/A

                    \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
                  4. sinh-undefN/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                  5. lower-*.f64N/A

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                  6. lift-sinh.f6475.4

                    \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
                4. Applied rewrites75.4%

                  \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
                5. Taylor expanded in y around 0

                  \[\leadsto y \cdot \color{blue}{\left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right)} \]
                6. Step-by-step derivation
                  1. *-commutativeN/A

                    \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right) \cdot y \]
                  2. lower-*.f64N/A

                    \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + {y}^{2} \cdot \left(\frac{1}{120} + \frac{1}{5040} \cdot {y}^{2}\right)\right)\right) \cdot y \]
                7. Applied rewrites69.6%

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.0001984126984126984, y \cdot y, 0.008333333333333333\right), y \cdot y, 0.16666666666666666\right), y \cdot y, 1\right) \cdot \color{blue}{y} \]

                if -3.3500000000000001e34 < y

                1. Initial program 86.6%

                  \[\frac{\sin x \cdot \sinh y}{x} \]
                2. Step-by-step derivation
                  1. lift-/.f64N/A

                    \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
                  2. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
                  3. lift-sin.f64N/A

                    \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
                  4. lift-sinh.f64N/A

                    \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
                  5. associate-/l*N/A

                    \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
                  6. *-commutativeN/A

                    \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                  7. lower-*.f64N/A

                    \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                  8. lower-/.f64N/A

                    \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
                  9. lift-sinh.f64N/A

                    \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
                  10. lift-sin.f6499.8

                    \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
                3. Applied rewrites99.8%

                  \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                4. Taylor expanded in y around 0

                  \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
                5. Step-by-step derivation
                  1. *-commutativeN/A

                    \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                  2. lower-*.f64N/A

                    \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                  3. associate-*r/N/A

                    \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
                  4. div-add-revN/A

                    \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                  5. +-commutativeN/A

                    \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                  6. lower-/.f64N/A

                    \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                  7. +-commutativeN/A

                    \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                  8. *-commutativeN/A

                    \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
                  9. lower-fma.f64N/A

                    \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                  10. unpow2N/A

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                  11. lower-*.f6486.1

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                6. Applied rewrites86.1%

                  \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
                7. Taylor expanded in x around 0

                  \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                8. Step-by-step derivation
                  1. Applied rewrites64.9%

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                9. Recombined 3 regimes into one program.
                10. Add Preprocessing

                Alternative 10: 65.1% accurate, 5.6× speedup?

                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot x\\ \end{array} \end{array} \]
                (FPCore (x y)
                 :precision binary64
                 (if (<= y -2e+153)
                   (*
                    (* (fma 0.3333333333333333 (* y y) 2.0) y)
                    (fma (* x x) -0.08333333333333333 0.5))
                   (* (* (/ (fma (* y y) 0.16666666666666666 1.0) x) y) x)))
                double code(double x, double y) {
                	double tmp;
                	if (y <= -2e+153) {
                		tmp = (fma(0.3333333333333333, (y * y), 2.0) * y) * fma((x * x), -0.08333333333333333, 0.5);
                	} else {
                		tmp = ((fma((y * y), 0.16666666666666666, 1.0) / x) * y) * x;
                	}
                	return tmp;
                }
                
                function code(x, y)
                	tmp = 0.0
                	if (y <= -2e+153)
                		tmp = Float64(Float64(fma(0.3333333333333333, Float64(y * y), 2.0) * y) * fma(Float64(x * x), -0.08333333333333333, 0.5));
                	else
                		tmp = Float64(Float64(Float64(fma(Float64(y * y), 0.16666666666666666, 1.0) / x) * y) * x);
                	end
                	return tmp
                end
                
                code[x_, y_] := If[LessEqual[y, -2e+153], N[(N[(N[(0.3333333333333333 * N[(y * y), $MachinePrecision] + 2.0), $MachinePrecision] * y), $MachinePrecision] * N[(N[(x * x), $MachinePrecision] * -0.08333333333333333 + 0.5), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(N[(y * y), $MachinePrecision] * 0.16666666666666666 + 1.0), $MachinePrecision] / x), $MachinePrecision] * y), $MachinePrecision] * x), $MachinePrecision]]
                
                \begin{array}{l}
                
                \\
                \begin{array}{l}
                \mathbf{if}\;y \leq -2 \cdot 10^{+153}:\\
                \;\;\;\;\left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)\\
                
                \mathbf{else}:\\
                \;\;\;\;\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot x\\
                
                
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 2 regimes
                2. if y < -2e153

                  1. Initial program 100.0%

                    \[\frac{\sin x \cdot \sinh y}{x} \]
                  2. Taylor expanded in x around 0

                    \[\leadsto \color{blue}{\frac{-1}{12} \cdot \left({x}^{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)\right) + \frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
                  3. Step-by-step derivation
                    1. associate-*r*N/A

                      \[\leadsto \left(\frac{-1}{12} \cdot {x}^{2}\right) \cdot \left(e^{y} - \frac{1}{e^{y}}\right) + \color{blue}{\frac{1}{2}} \cdot \left(e^{y} - \frac{1}{e^{y}}\right) \]
                    2. distribute-rgt-outN/A

                      \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
                    3. lower-*.f64N/A

                      \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\left(\frac{-1}{12} \cdot {x}^{2} + \frac{1}{2}\right)} \]
                    4. rec-expN/A

                      \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
                    5. sinh-undefN/A

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
                    6. lower-*.f64N/A

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\color{blue}{\frac{-1}{12} \cdot {x}^{2}} + \frac{1}{2}\right) \]
                    7. lift-sinh.f64N/A

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left(\frac{-1}{12} \cdot \color{blue}{{x}^{2}} + \frac{1}{2}\right) \]
                    8. *-commutativeN/A

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \left({x}^{2} \cdot \frac{-1}{12} + \frac{1}{2}\right) \]
                    9. lower-fma.f64N/A

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left({x}^{2}, \color{blue}{\frac{-1}{12}}, \frac{1}{2}\right) \]
                    10. unpow2N/A

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                    11. lower-*.f6476.2

                      \[\leadsto \left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
                  4. Applied rewrites76.2%

                    \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right)} \]
                  5. Taylor expanded in y around 0

                    \[\leadsto \left(y \cdot \left(2 + \frac{1}{3} \cdot {y}^{2}\right)\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                  6. Step-by-step derivation
                    1. *-commutativeN/A

                      \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                    2. lower-*.f64N/A

                      \[\leadsto \left(\left(2 + \frac{1}{3} \cdot {y}^{2}\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot \color{blue}{x}, \frac{-1}{12}, \frac{1}{2}\right) \]
                    3. +-commutativeN/A

                      \[\leadsto \left(\left(\frac{1}{3} \cdot {y}^{2} + 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                    4. lower-fma.f64N/A

                      \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, {y}^{2}, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                    5. unpow2N/A

                      \[\leadsto \left(\mathsf{fma}\left(\frac{1}{3}, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, \frac{-1}{12}, \frac{1}{2}\right) \]
                    6. lower-*.f6476.2

                      \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(x \cdot x, -0.08333333333333333, 0.5\right) \]
                  7. Applied rewrites76.2%

                    \[\leadsto \left(\mathsf{fma}\left(0.3333333333333333, y \cdot y, 2\right) \cdot y\right) \cdot \mathsf{fma}\left(\color{blue}{x \cdot x}, -0.08333333333333333, 0.5\right) \]

                  if -2e153 < y

                  1. Initial program 88.1%

                    \[\frac{\sin x \cdot \sinh y}{x} \]
                  2. Step-by-step derivation
                    1. lift-/.f64N/A

                      \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
                    2. lift-*.f64N/A

                      \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
                    3. lift-sin.f64N/A

                      \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
                    4. lift-sinh.f64N/A

                      \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
                    5. associate-/l*N/A

                      \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
                    6. *-commutativeN/A

                      \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                    7. lower-*.f64N/A

                      \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                    8. lower-/.f64N/A

                      \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
                    9. lift-sinh.f64N/A

                      \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
                    10. lift-sin.f6499.8

                      \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
                  3. Applied rewrites99.8%

                    \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                  4. Taylor expanded in y around 0

                    \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
                  5. Step-by-step derivation
                    1. *-commutativeN/A

                      \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                    2. lower-*.f64N/A

                      \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                    3. associate-*r/N/A

                      \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
                    4. div-add-revN/A

                      \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                    5. +-commutativeN/A

                      \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                    6. lower-/.f64N/A

                      \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                    7. +-commutativeN/A

                      \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                    8. *-commutativeN/A

                      \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
                    9. lower-fma.f64N/A

                      \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                    10. unpow2N/A

                      \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                    11. lower-*.f6482.1

                      \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                  6. Applied rewrites82.1%

                    \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
                  7. Taylor expanded in x around 0

                    \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                  8. Step-by-step derivation
                    1. Applied rewrites63.6%

                      \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                  9. Recombined 2 regimes into one program.
                  10. Add Preprocessing

                  Alternative 11: 60.3% accurate, 5.7× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 1.45 \cdot 10^{+35}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\frac{y \cdot y}{x} \cdot 0.16666666666666666\right) \cdot y\right) \cdot x\\ \end{array} \end{array} \]
                  (FPCore (x y)
                   :precision binary64
                   (if (<= x 1.45e+35)
                     (*
                      (fma (fma (* y y) 0.008333333333333333 0.16666666666666666) (* y y) 1.0)
                      y)
                     (* (* (* (/ (* y y) x) 0.16666666666666666) y) x)))
                  double code(double x, double y) {
                  	double tmp;
                  	if (x <= 1.45e+35) {
                  		tmp = fma(fma((y * y), 0.008333333333333333, 0.16666666666666666), (y * y), 1.0) * y;
                  	} else {
                  		tmp = ((((y * y) / x) * 0.16666666666666666) * y) * x;
                  	}
                  	return tmp;
                  }
                  
                  function code(x, y)
                  	tmp = 0.0
                  	if (x <= 1.45e+35)
                  		tmp = Float64(fma(fma(Float64(y * y), 0.008333333333333333, 0.16666666666666666), Float64(y * y), 1.0) * y);
                  	else
                  		tmp = Float64(Float64(Float64(Float64(Float64(y * y) / x) * 0.16666666666666666) * y) * x);
                  	end
                  	return tmp
                  end
                  
                  code[x_, y_] := If[LessEqual[x, 1.45e+35], N[(N[(N[(N[(y * y), $MachinePrecision] * 0.008333333333333333 + 0.16666666666666666), $MachinePrecision] * N[(y * y), $MachinePrecision] + 1.0), $MachinePrecision] * y), $MachinePrecision], N[(N[(N[(N[(N[(y * y), $MachinePrecision] / x), $MachinePrecision] * 0.16666666666666666), $MachinePrecision] * y), $MachinePrecision] * x), $MachinePrecision]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  \mathbf{if}\;x \leq 1.45 \cdot 10^{+35}:\\
                  \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;\left(\left(\frac{y \cdot y}{x} \cdot 0.16666666666666666\right) \cdot y\right) \cdot x\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if x < 1.44999999999999997e35

                    1. Initial program 86.6%

                      \[\frac{\sin x \cdot \sinh y}{x} \]
                    2. Taylor expanded in x around 0

                      \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
                    3. Step-by-step derivation
                      1. *-commutativeN/A

                        \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                      2. lower-*.f64N/A

                        \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                      3. rec-expN/A

                        \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
                      4. sinh-undefN/A

                        \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                      5. lower-*.f64N/A

                        \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                      6. lift-sinh.f6472.8

                        \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
                    4. Applied rewrites72.8%

                      \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
                    5. Taylor expanded in y around 0

                      \[\leadsto y \cdot \color{blue}{\left(1 + {y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right)\right)} \]
                    6. Step-by-step derivation
                      1. *-commutativeN/A

                        \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right)\right) \cdot y \]
                      2. lower-*.f64N/A

                        \[\leadsto \left(1 + {y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right)\right) \cdot y \]
                      3. +-commutativeN/A

                        \[\leadsto \left({y}^{2} \cdot \left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right) + 1\right) \cdot y \]
                      4. *-commutativeN/A

                        \[\leadsto \left(\left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}\right) \cdot {y}^{2} + 1\right) \cdot y \]
                      5. lower-fma.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{1}{6} + \frac{1}{120} \cdot {y}^{2}, {y}^{2}, 1\right) \cdot y \]
                      6. +-commutativeN/A

                        \[\leadsto \mathsf{fma}\left(\frac{1}{120} \cdot {y}^{2} + \frac{1}{6}, {y}^{2}, 1\right) \cdot y \]
                      7. *-commutativeN/A

                        \[\leadsto \mathsf{fma}\left({y}^{2} \cdot \frac{1}{120} + \frac{1}{6}, {y}^{2}, 1\right) \cdot y \]
                      8. lower-fma.f64N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left({y}^{2}, \frac{1}{120}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y \]
                      9. unpow2N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, \frac{1}{120}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y \]
                      10. lower-*.f64N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, \frac{1}{120}, \frac{1}{6}\right), {y}^{2}, 1\right) \cdot y \]
                      11. unpow2N/A

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, \frac{1}{120}, \frac{1}{6}\right), y \cdot y, 1\right) \cdot y \]
                      12. lower-*.f6464.6

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot y \]
                    7. Applied rewrites64.6%

                      \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, 0.008333333333333333, 0.16666666666666666\right), y \cdot y, 1\right) \cdot \color{blue}{y} \]

                    if 1.44999999999999997e35 < x

                    1. Initial program 99.8%

                      \[\frac{\sin x \cdot \sinh y}{x} \]
                    2. Step-by-step derivation
                      1. lift-/.f64N/A

                        \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
                      2. lift-*.f64N/A

                        \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
                      3. lift-sin.f64N/A

                        \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
                      4. lift-sinh.f64N/A

                        \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
                      5. associate-/l*N/A

                        \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
                      6. *-commutativeN/A

                        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                      7. lower-*.f64N/A

                        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                      8. lower-/.f64N/A

                        \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
                      9. lift-sinh.f64N/A

                        \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
                      10. lift-sin.f6499.8

                        \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
                    3. Applied rewrites99.8%

                      \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                    4. Taylor expanded in y around 0

                      \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
                    5. Step-by-step derivation
                      1. *-commutativeN/A

                        \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                      2. lower-*.f64N/A

                        \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                      3. associate-*r/N/A

                        \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
                      4. div-add-revN/A

                        \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                      5. +-commutativeN/A

                        \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                      6. lower-/.f64N/A

                        \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                      7. +-commutativeN/A

                        \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                      8. *-commutativeN/A

                        \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
                      9. lower-fma.f64N/A

                        \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                      10. unpow2N/A

                        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                      11. lower-*.f6477.6

                        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                    6. Applied rewrites77.6%

                      \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
                    7. Taylor expanded in x around 0

                      \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                    8. Step-by-step derivation
                      1. Applied rewrites42.9%

                        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                      2. Taylor expanded in y around inf

                        \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x}\right) \cdot y\right) \cdot x \]
                      3. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \left(\left(\frac{{y}^{2}}{x} \cdot \frac{1}{6}\right) \cdot y\right) \cdot x \]
                        2. lower-*.f64N/A

                          \[\leadsto \left(\left(\frac{{y}^{2}}{x} \cdot \frac{1}{6}\right) \cdot y\right) \cdot x \]
                        3. lower-/.f64N/A

                          \[\leadsto \left(\left(\frac{{y}^{2}}{x} \cdot \frac{1}{6}\right) \cdot y\right) \cdot x \]
                        4. pow2N/A

                          \[\leadsto \left(\left(\frac{y \cdot y}{x} \cdot \frac{1}{6}\right) \cdot y\right) \cdot x \]
                        5. lift-*.f6444.9

                          \[\leadsto \left(\left(\frac{y \cdot y}{x} \cdot 0.16666666666666666\right) \cdot y\right) \cdot x \]
                      4. Applied rewrites44.9%

                        \[\leadsto \left(\left(\frac{y \cdot y}{x} \cdot 0.16666666666666666\right) \cdot y\right) \cdot x \]
                    9. Recombined 2 regimes into one program.
                    10. Add Preprocessing

                    Alternative 12: 62.0% accurate, 7.5× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot y\\ \mathbf{if}\;y \leq -2.05 \cdot 10^{+82}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y \leq 9 \cdot 10^{+99}:\\ \;\;\;\;\frac{y}{x} \cdot x\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                    (FPCore (x y)
                     :precision binary64
                     (let* ((t_0 (* (fma (* y y) 0.16666666666666666 1.0) y)))
                       (if (<= y -2.05e+82) t_0 (if (<= y 9e+99) (* (/ y x) x) t_0))))
                    double code(double x, double y) {
                    	double t_0 = fma((y * y), 0.16666666666666666, 1.0) * y;
                    	double tmp;
                    	if (y <= -2.05e+82) {
                    		tmp = t_0;
                    	} else if (y <= 9e+99) {
                    		tmp = (y / x) * x;
                    	} else {
                    		tmp = t_0;
                    	}
                    	return tmp;
                    }
                    
                    function code(x, y)
                    	t_0 = Float64(fma(Float64(y * y), 0.16666666666666666, 1.0) * y)
                    	tmp = 0.0
                    	if (y <= -2.05e+82)
                    		tmp = t_0;
                    	elseif (y <= 9e+99)
                    		tmp = Float64(Float64(y / x) * x);
                    	else
                    		tmp = t_0;
                    	end
                    	return tmp
                    end
                    
                    code[x_, y_] := Block[{t$95$0 = N[(N[(N[(y * y), $MachinePrecision] * 0.16666666666666666 + 1.0), $MachinePrecision] * y), $MachinePrecision]}, If[LessEqual[y, -2.05e+82], t$95$0, If[LessEqual[y, 9e+99], N[(N[(y / x), $MachinePrecision] * x), $MachinePrecision], t$95$0]]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    t_0 := \mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot y\\
                    \mathbf{if}\;y \leq -2.05 \cdot 10^{+82}:\\
                    \;\;\;\;t\_0\\
                    
                    \mathbf{elif}\;y \leq 9 \cdot 10^{+99}:\\
                    \;\;\;\;\frac{y}{x} \cdot x\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;t\_0\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if y < -2.04999999999999998e82 or 8.9999999999999999e99 < y

                      1. Initial program 100.0%

                        \[\frac{\sin x \cdot \sinh y}{x} \]
                      2. Taylor expanded in x around 0

                        \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
                      3. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                        2. lower-*.f64N/A

                          \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                        3. rec-expN/A

                          \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
                        4. sinh-undefN/A

                          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                        5. lower-*.f64N/A

                          \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                        6. lift-sinh.f6475.1

                          \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
                      4. Applied rewrites75.1%

                        \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
                      5. Taylor expanded in y around 0

                        \[\leadsto y \cdot \color{blue}{\left(1 + \frac{1}{6} \cdot {y}^{2}\right)} \]
                      6. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \left(1 + \frac{1}{6} \cdot {y}^{2}\right) \cdot y \]
                        2. lower-*.f64N/A

                          \[\leadsto \left(1 + \frac{1}{6} \cdot {y}^{2}\right) \cdot y \]
                        3. +-commutativeN/A

                          \[\leadsto \left(\frac{1}{6} \cdot {y}^{2} + 1\right) \cdot y \]
                        4. *-commutativeN/A

                          \[\leadsto \left({y}^{2} \cdot \frac{1}{6} + 1\right) \cdot y \]
                        5. lower-fma.f64N/A

                          \[\leadsto \mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right) \cdot y \]
                        6. unpow2N/A

                          \[\leadsto \mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right) \cdot y \]
                        7. lower-*.f6472.2

                          \[\leadsto \mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot y \]
                      7. Applied rewrites72.2%

                        \[\leadsto \mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot \color{blue}{y} \]

                      if -2.04999999999999998e82 < y < 8.9999999999999999e99

                      1. Initial program 84.0%

                        \[\frac{\sin x \cdot \sinh y}{x} \]
                      2. Step-by-step derivation
                        1. lift-/.f64N/A

                          \[\leadsto \color{blue}{\frac{\sin x \cdot \sinh y}{x}} \]
                        2. lift-*.f64N/A

                          \[\leadsto \frac{\color{blue}{\sin x \cdot \sinh y}}{x} \]
                        3. lift-sin.f64N/A

                          \[\leadsto \frac{\color{blue}{\sin x} \cdot \sinh y}{x} \]
                        4. lift-sinh.f64N/A

                          \[\leadsto \frac{\sin x \cdot \color{blue}{\sinh y}}{x} \]
                        5. associate-/l*N/A

                          \[\leadsto \color{blue}{\sin x \cdot \frac{\sinh y}{x}} \]
                        6. *-commutativeN/A

                          \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                        7. lower-*.f64N/A

                          \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                        8. lower-/.f64N/A

                          \[\leadsto \color{blue}{\frac{\sinh y}{x}} \cdot \sin x \]
                        9. lift-sinh.f64N/A

                          \[\leadsto \frac{\color{blue}{\sinh y}}{x} \cdot \sin x \]
                        10. lift-sin.f6499.7

                          \[\leadsto \frac{\sinh y}{x} \cdot \color{blue}{\sin x} \]
                      3. Applied rewrites99.7%

                        \[\leadsto \color{blue}{\frac{\sinh y}{x} \cdot \sin x} \]
                      4. Taylor expanded in y around 0

                        \[\leadsto \color{blue}{\left(y \cdot \left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right)\right)} \cdot \sin x \]
                      5. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                        2. lower-*.f64N/A

                          \[\leadsto \left(\left(\frac{1}{6} \cdot \frac{{y}^{2}}{x} + \frac{1}{x}\right) \cdot \color{blue}{y}\right) \cdot \sin x \]
                        3. associate-*r/N/A

                          \[\leadsto \left(\left(\frac{\frac{1}{6} \cdot {y}^{2}}{x} + \frac{1}{x}\right) \cdot y\right) \cdot \sin x \]
                        4. div-add-revN/A

                          \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                        5. +-commutativeN/A

                          \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                        6. lower-/.f64N/A

                          \[\leadsto \left(\frac{1 + \frac{1}{6} \cdot {y}^{2}}{x} \cdot y\right) \cdot \sin x \]
                        7. +-commutativeN/A

                          \[\leadsto \left(\frac{\frac{1}{6} \cdot {y}^{2} + 1}{x} \cdot y\right) \cdot \sin x \]
                        8. *-commutativeN/A

                          \[\leadsto \left(\frac{{y}^{2} \cdot \frac{1}{6} + 1}{x} \cdot y\right) \cdot \sin x \]
                        9. lower-fma.f64N/A

                          \[\leadsto \left(\frac{\mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                        10. unpow2N/A

                          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                        11. lower-*.f6481.4

                          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \sin x \]
                      6. Applied rewrites81.4%

                        \[\leadsto \color{blue}{\left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right)} \cdot \sin x \]
                      7. Taylor expanded in x around 0

                        \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                      8. Step-by-step derivation
                        1. Applied rewrites60.3%

                          \[\leadsto \left(\frac{\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right)}{x} \cdot y\right) \cdot \color{blue}{x} \]
                        2. Taylor expanded in y around 0

                          \[\leadsto \color{blue}{\frac{y}{x}} \cdot x \]
                        3. Step-by-step derivation
                          1. lower-/.f6456.6

                            \[\leadsto \frac{y}{\color{blue}{x}} \cdot x \]
                        4. Applied rewrites56.6%

                          \[\leadsto \color{blue}{\frac{y}{x}} \cdot x \]
                      9. Recombined 2 regimes into one program.
                      10. Add Preprocessing

                      Alternative 13: 51.3% accurate, 9.4× speedup?

                      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 1.35 \cdot 10^{+135}:\\ \;\;\;\;\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot y\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y\\ \end{array} \end{array} \]
                      (FPCore (x y)
                       :precision binary64
                       (if (<= x 1.35e+135)
                         (* (fma (* y y) 0.16666666666666666 1.0) y)
                         (* (* (* -0.16666666666666666 x) x) y)))
                      double code(double x, double y) {
                      	double tmp;
                      	if (x <= 1.35e+135) {
                      		tmp = fma((y * y), 0.16666666666666666, 1.0) * y;
                      	} else {
                      		tmp = ((-0.16666666666666666 * x) * x) * y;
                      	}
                      	return tmp;
                      }
                      
                      function code(x, y)
                      	tmp = 0.0
                      	if (x <= 1.35e+135)
                      		tmp = Float64(fma(Float64(y * y), 0.16666666666666666, 1.0) * y);
                      	else
                      		tmp = Float64(Float64(Float64(-0.16666666666666666 * x) * x) * y);
                      	end
                      	return tmp
                      end
                      
                      code[x_, y_] := If[LessEqual[x, 1.35e+135], N[(N[(N[(y * y), $MachinePrecision] * 0.16666666666666666 + 1.0), $MachinePrecision] * y), $MachinePrecision], N[(N[(N[(-0.16666666666666666 * x), $MachinePrecision] * x), $MachinePrecision] * y), $MachinePrecision]]
                      
                      \begin{array}{l}
                      
                      \\
                      \begin{array}{l}
                      \mathbf{if}\;x \leq 1.35 \cdot 10^{+135}:\\
                      \;\;\;\;\mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot y\\
                      
                      \mathbf{else}:\\
                      \;\;\;\;\left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y\\
                      
                      
                      \end{array}
                      \end{array}
                      
                      Derivation
                      1. Split input into 2 regimes
                      2. if x < 1.34999999999999992e135

                        1. Initial program 87.9%

                          \[\frac{\sin x \cdot \sinh y}{x} \]
                        2. Taylor expanded in x around 0

                          \[\leadsto \color{blue}{\frac{1}{2} \cdot \left(e^{y} - \frac{1}{e^{y}}\right)} \]
                        3. Step-by-step derivation
                          1. *-commutativeN/A

                            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                          2. lower-*.f64N/A

                            \[\leadsto \left(e^{y} - \frac{1}{e^{y}}\right) \cdot \color{blue}{\frac{1}{2}} \]
                          3. rec-expN/A

                            \[\leadsto \left(e^{y} - e^{\mathsf{neg}\left(y\right)}\right) \cdot \frac{1}{2} \]
                          4. sinh-undefN/A

                            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                          5. lower-*.f64N/A

                            \[\leadsto \left(2 \cdot \sinh y\right) \cdot \frac{1}{2} \]
                          6. lift-sinh.f6468.2

                            \[\leadsto \left(2 \cdot \sinh y\right) \cdot 0.5 \]
                        4. Applied rewrites68.2%

                          \[\leadsto \color{blue}{\left(2 \cdot \sinh y\right) \cdot 0.5} \]
                        5. Taylor expanded in y around 0

                          \[\leadsto y \cdot \color{blue}{\left(1 + \frac{1}{6} \cdot {y}^{2}\right)} \]
                        6. Step-by-step derivation
                          1. *-commutativeN/A

                            \[\leadsto \left(1 + \frac{1}{6} \cdot {y}^{2}\right) \cdot y \]
                          2. lower-*.f64N/A

                            \[\leadsto \left(1 + \frac{1}{6} \cdot {y}^{2}\right) \cdot y \]
                          3. +-commutativeN/A

                            \[\leadsto \left(\frac{1}{6} \cdot {y}^{2} + 1\right) \cdot y \]
                          4. *-commutativeN/A

                            \[\leadsto \left({y}^{2} \cdot \frac{1}{6} + 1\right) \cdot y \]
                          5. lower-fma.f64N/A

                            \[\leadsto \mathsf{fma}\left({y}^{2}, \frac{1}{6}, 1\right) \cdot y \]
                          6. unpow2N/A

                            \[\leadsto \mathsf{fma}\left(y \cdot y, \frac{1}{6}, 1\right) \cdot y \]
                          7. lower-*.f6455.4

                            \[\leadsto \mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot y \]
                        7. Applied rewrites55.4%

                          \[\leadsto \mathsf{fma}\left(y \cdot y, 0.16666666666666666, 1\right) \cdot \color{blue}{y} \]

                        if 1.34999999999999992e135 < x

                        1. Initial program 99.9%

                          \[\frac{\sin x \cdot \sinh y}{x} \]
                        2. Taylor expanded in y around 0

                          \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
                        3. Step-by-step derivation
                          1. *-commutativeN/A

                            \[\leadsto \frac{\sin x \cdot y}{x} \]
                          2. associate-*l/N/A

                            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                          3. lower-*.f64N/A

                            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                          4. lower-/.f64N/A

                            \[\leadsto \frac{\sin x}{x} \cdot y \]
                          5. lift-sin.f6452.0

                            \[\leadsto \frac{\sin x}{x} \cdot y \]
                        4. Applied rewrites52.0%

                          \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]
                        5. Taylor expanded in x around 0

                          \[\leadsto \left(1 + \frac{-1}{6} \cdot {x}^{2}\right) \cdot y \]
                        6. Step-by-step derivation
                          1. +-commutativeN/A

                            \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2} + 1\right) \cdot y \]
                          2. lower-fma.f64N/A

                            \[\leadsto \mathsf{fma}\left(\frac{-1}{6}, {x}^{2}, 1\right) \cdot y \]
                          3. pow2N/A

                            \[\leadsto \mathsf{fma}\left(\frac{-1}{6}, x \cdot x, 1\right) \cdot y \]
                          4. lift-*.f6425.7

                            \[\leadsto \mathsf{fma}\left(-0.16666666666666666, x \cdot x, 1\right) \cdot y \]
                        7. Applied rewrites25.7%

                          \[\leadsto \mathsf{fma}\left(-0.16666666666666666, x \cdot x, 1\right) \cdot y \]
                        8. Taylor expanded in x around inf

                          \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2}\right) \cdot y \]
                        9. Step-by-step derivation
                          1. *-commutativeN/A

                            \[\leadsto \left({x}^{2} \cdot \frac{-1}{6}\right) \cdot y \]
                          2. lower-*.f64N/A

                            \[\leadsto \left({x}^{2} \cdot \frac{-1}{6}\right) \cdot y \]
                          3. pow2N/A

                            \[\leadsto \left(\left(x \cdot x\right) \cdot \frac{-1}{6}\right) \cdot y \]
                          4. lift-*.f6425.7

                            \[\leadsto \left(\left(x \cdot x\right) \cdot -0.16666666666666666\right) \cdot y \]
                        10. Applied rewrites25.7%

                          \[\leadsto \left(\left(x \cdot x\right) \cdot -0.16666666666666666\right) \cdot y \]
                        11. Step-by-step derivation
                          1. lift-*.f64N/A

                            \[\leadsto \left(\left(x \cdot x\right) \cdot \frac{-1}{6}\right) \cdot y \]
                          2. lift-*.f64N/A

                            \[\leadsto \left(\left(x \cdot x\right) \cdot \frac{-1}{6}\right) \cdot y \]
                          3. pow2N/A

                            \[\leadsto \left({x}^{2} \cdot \frac{-1}{6}\right) \cdot y \]
                          4. *-commutativeN/A

                            \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2}\right) \cdot y \]
                          5. pow2N/A

                            \[\leadsto \left(\frac{-1}{6} \cdot \left(x \cdot x\right)\right) \cdot y \]
                          6. associate-*r*N/A

                            \[\leadsto \left(\left(\frac{-1}{6} \cdot x\right) \cdot x\right) \cdot y \]
                          7. lower-*.f64N/A

                            \[\leadsto \left(\left(\frac{-1}{6} \cdot x\right) \cdot x\right) \cdot y \]
                          8. lower-*.f6425.7

                            \[\leadsto \left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y \]
                        12. Applied rewrites25.7%

                          \[\leadsto \left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y \]
                      3. Recombined 2 regimes into one program.
                      4. Add Preprocessing

                      Alternative 14: 31.0% accurate, 9.9× speedup?

                      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 2.4 \cdot 10^{+20}:\\ \;\;\;\;y\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y\\ \end{array} \end{array} \]
                      (FPCore (x y)
                       :precision binary64
                       (if (<= x 2.4e+20) y (* (* (* -0.16666666666666666 x) x) y)))
                      double code(double x, double y) {
                      	double tmp;
                      	if (x <= 2.4e+20) {
                      		tmp = y;
                      	} else {
                      		tmp = ((-0.16666666666666666 * x) * x) * y;
                      	}
                      	return tmp;
                      }
                      
                      module fmin_fmax_functions
                          implicit none
                          private
                          public fmax
                          public fmin
                      
                          interface fmax
                              module procedure fmax88
                              module procedure fmax44
                              module procedure fmax84
                              module procedure fmax48
                          end interface
                          interface fmin
                              module procedure fmin88
                              module procedure fmin44
                              module procedure fmin84
                              module procedure fmin48
                          end interface
                      contains
                          real(8) function fmax88(x, y) result (res)
                              real(8), intent (in) :: x
                              real(8), intent (in) :: y
                              res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                          end function
                          real(4) function fmax44(x, y) result (res)
                              real(4), intent (in) :: x
                              real(4), intent (in) :: y
                              res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                          end function
                          real(8) function fmax84(x, y) result(res)
                              real(8), intent (in) :: x
                              real(4), intent (in) :: y
                              res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
                          end function
                          real(8) function fmax48(x, y) result(res)
                              real(4), intent (in) :: x
                              real(8), intent (in) :: y
                              res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
                          end function
                          real(8) function fmin88(x, y) result (res)
                              real(8), intent (in) :: x
                              real(8), intent (in) :: y
                              res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                          end function
                          real(4) function fmin44(x, y) result (res)
                              real(4), intent (in) :: x
                              real(4), intent (in) :: y
                              res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                          end function
                          real(8) function fmin84(x, y) result(res)
                              real(8), intent (in) :: x
                              real(4), intent (in) :: y
                              res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
                          end function
                          real(8) function fmin48(x, y) result(res)
                              real(4), intent (in) :: x
                              real(8), intent (in) :: y
                              res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
                          end function
                      end module
                      
                      real(8) function code(x, y)
                      use fmin_fmax_functions
                          real(8), intent (in) :: x
                          real(8), intent (in) :: y
                          real(8) :: tmp
                          if (x <= 2.4d+20) then
                              tmp = y
                          else
                              tmp = (((-0.16666666666666666d0) * x) * x) * y
                          end if
                          code = tmp
                      end function
                      
                      public static double code(double x, double y) {
                      	double tmp;
                      	if (x <= 2.4e+20) {
                      		tmp = y;
                      	} else {
                      		tmp = ((-0.16666666666666666 * x) * x) * y;
                      	}
                      	return tmp;
                      }
                      
                      def code(x, y):
                      	tmp = 0
                      	if x <= 2.4e+20:
                      		tmp = y
                      	else:
                      		tmp = ((-0.16666666666666666 * x) * x) * y
                      	return tmp
                      
                      function code(x, y)
                      	tmp = 0.0
                      	if (x <= 2.4e+20)
                      		tmp = y;
                      	else
                      		tmp = Float64(Float64(Float64(-0.16666666666666666 * x) * x) * y);
                      	end
                      	return tmp
                      end
                      
                      function tmp_2 = code(x, y)
                      	tmp = 0.0;
                      	if (x <= 2.4e+20)
                      		tmp = y;
                      	else
                      		tmp = ((-0.16666666666666666 * x) * x) * y;
                      	end
                      	tmp_2 = tmp;
                      end
                      
                      code[x_, y_] := If[LessEqual[x, 2.4e+20], y, N[(N[(N[(-0.16666666666666666 * x), $MachinePrecision] * x), $MachinePrecision] * y), $MachinePrecision]]
                      
                      \begin{array}{l}
                      
                      \\
                      \begin{array}{l}
                      \mathbf{if}\;x \leq 2.4 \cdot 10^{+20}:\\
                      \;\;\;\;y\\
                      
                      \mathbf{else}:\\
                      \;\;\;\;\left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y\\
                      
                      
                      \end{array}
                      \end{array}
                      
                      Derivation
                      1. Split input into 2 regimes
                      2. if x < 2.4e20

                        1. Initial program 86.4%

                          \[\frac{\sin x \cdot \sinh y}{x} \]
                        2. Taylor expanded in y around 0

                          \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
                        3. Step-by-step derivation
                          1. *-commutativeN/A

                            \[\leadsto \frac{\sin x \cdot y}{x} \]
                          2. associate-*l/N/A

                            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                          3. lower-*.f64N/A

                            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                          4. lower-/.f64N/A

                            \[\leadsto \frac{\sin x}{x} \cdot y \]
                          5. lift-sin.f6451.5

                            \[\leadsto \frac{\sin x}{x} \cdot y \]
                        4. Applied rewrites51.5%

                          \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]
                        5. Taylor expanded in x around 0

                          \[\leadsto y \]
                        6. Step-by-step derivation
                          1. Applied rewrites33.9%

                            \[\leadsto y \]

                          if 2.4e20 < x

                          1. Initial program 99.8%

                            \[\frac{\sin x \cdot \sinh y}{x} \]
                          2. Taylor expanded in y around 0

                            \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
                          3. Step-by-step derivation
                            1. *-commutativeN/A

                              \[\leadsto \frac{\sin x \cdot y}{x} \]
                            2. associate-*l/N/A

                              \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                            3. lower-*.f64N/A

                              \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                            4. lower-/.f64N/A

                              \[\leadsto \frac{\sin x}{x} \cdot y \]
                            5. lift-sin.f6451.5

                              \[\leadsto \frac{\sin x}{x} \cdot y \]
                          4. Applied rewrites51.5%

                            \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]
                          5. Taylor expanded in x around 0

                            \[\leadsto \left(1 + \frac{-1}{6} \cdot {x}^{2}\right) \cdot y \]
                          6. Step-by-step derivation
                            1. +-commutativeN/A

                              \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2} + 1\right) \cdot y \]
                            2. lower-fma.f64N/A

                              \[\leadsto \mathsf{fma}\left(\frac{-1}{6}, {x}^{2}, 1\right) \cdot y \]
                            3. pow2N/A

                              \[\leadsto \mathsf{fma}\left(\frac{-1}{6}, x \cdot x, 1\right) \cdot y \]
                            4. lift-*.f6421.4

                              \[\leadsto \mathsf{fma}\left(-0.16666666666666666, x \cdot x, 1\right) \cdot y \]
                          7. Applied rewrites21.4%

                            \[\leadsto \mathsf{fma}\left(-0.16666666666666666, x \cdot x, 1\right) \cdot y \]
                          8. Taylor expanded in x around inf

                            \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2}\right) \cdot y \]
                          9. Step-by-step derivation
                            1. *-commutativeN/A

                              \[\leadsto \left({x}^{2} \cdot \frac{-1}{6}\right) \cdot y \]
                            2. lower-*.f64N/A

                              \[\leadsto \left({x}^{2} \cdot \frac{-1}{6}\right) \cdot y \]
                            3. pow2N/A

                              \[\leadsto \left(\left(x \cdot x\right) \cdot \frac{-1}{6}\right) \cdot y \]
                            4. lift-*.f6421.4

                              \[\leadsto \left(\left(x \cdot x\right) \cdot -0.16666666666666666\right) \cdot y \]
                          10. Applied rewrites21.4%

                            \[\leadsto \left(\left(x \cdot x\right) \cdot -0.16666666666666666\right) \cdot y \]
                          11. Step-by-step derivation
                            1. lift-*.f64N/A

                              \[\leadsto \left(\left(x \cdot x\right) \cdot \frac{-1}{6}\right) \cdot y \]
                            2. lift-*.f64N/A

                              \[\leadsto \left(\left(x \cdot x\right) \cdot \frac{-1}{6}\right) \cdot y \]
                            3. pow2N/A

                              \[\leadsto \left({x}^{2} \cdot \frac{-1}{6}\right) \cdot y \]
                            4. *-commutativeN/A

                              \[\leadsto \left(\frac{-1}{6} \cdot {x}^{2}\right) \cdot y \]
                            5. pow2N/A

                              \[\leadsto \left(\frac{-1}{6} \cdot \left(x \cdot x\right)\right) \cdot y \]
                            6. associate-*r*N/A

                              \[\leadsto \left(\left(\frac{-1}{6} \cdot x\right) \cdot x\right) \cdot y \]
                            7. lower-*.f64N/A

                              \[\leadsto \left(\left(\frac{-1}{6} \cdot x\right) \cdot x\right) \cdot y \]
                            8. lower-*.f6421.4

                              \[\leadsto \left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y \]
                          12. Applied rewrites21.4%

                            \[\leadsto \left(\left(-0.16666666666666666 \cdot x\right) \cdot x\right) \cdot y \]
                        7. Recombined 2 regimes into one program.
                        8. Add Preprocessing

                        Alternative 15: 26.9% accurate, 217.0× speedup?

                        \[\begin{array}{l} \\ y \end{array} \]
                        (FPCore (x y) :precision binary64 y)
                        double code(double x, double y) {
                        	return y;
                        }
                        
                        module fmin_fmax_functions
                            implicit none
                            private
                            public fmax
                            public fmin
                        
                            interface fmax
                                module procedure fmax88
                                module procedure fmax44
                                module procedure fmax84
                                module procedure fmax48
                            end interface
                            interface fmin
                                module procedure fmin88
                                module procedure fmin44
                                module procedure fmin84
                                module procedure fmin48
                            end interface
                        contains
                            real(8) function fmax88(x, y) result (res)
                                real(8), intent (in) :: x
                                real(8), intent (in) :: y
                                res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                            end function
                            real(4) function fmax44(x, y) result (res)
                                real(4), intent (in) :: x
                                real(4), intent (in) :: y
                                res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                            end function
                            real(8) function fmax84(x, y) result(res)
                                real(8), intent (in) :: x
                                real(4), intent (in) :: y
                                res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
                            end function
                            real(8) function fmax48(x, y) result(res)
                                real(4), intent (in) :: x
                                real(8), intent (in) :: y
                                res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
                            end function
                            real(8) function fmin88(x, y) result (res)
                                real(8), intent (in) :: x
                                real(8), intent (in) :: y
                                res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                            end function
                            real(4) function fmin44(x, y) result (res)
                                real(4), intent (in) :: x
                                real(4), intent (in) :: y
                                res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                            end function
                            real(8) function fmin84(x, y) result(res)
                                real(8), intent (in) :: x
                                real(4), intent (in) :: y
                                res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
                            end function
                            real(8) function fmin48(x, y) result(res)
                                real(4), intent (in) :: x
                                real(8), intent (in) :: y
                                res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
                            end function
                        end module
                        
                        real(8) function code(x, y)
                        use fmin_fmax_functions
                            real(8), intent (in) :: x
                            real(8), intent (in) :: y
                            code = y
                        end function
                        
                        public static double code(double x, double y) {
                        	return y;
                        }
                        
                        def code(x, y):
                        	return y
                        
                        function code(x, y)
                        	return y
                        end
                        
                        function tmp = code(x, y)
                        	tmp = y;
                        end
                        
                        code[x_, y_] := y
                        
                        \begin{array}{l}
                        
                        \\
                        y
                        \end{array}
                        
                        Derivation
                        1. Initial program 89.5%

                          \[\frac{\sin x \cdot \sinh y}{x} \]
                        2. Taylor expanded in y around 0

                          \[\leadsto \color{blue}{\frac{y \cdot \sin x}{x}} \]
                        3. Step-by-step derivation
                          1. *-commutativeN/A

                            \[\leadsto \frac{\sin x \cdot y}{x} \]
                          2. associate-*l/N/A

                            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                          3. lower-*.f64N/A

                            \[\leadsto \frac{\sin x}{x} \cdot \color{blue}{y} \]
                          4. lower-/.f64N/A

                            \[\leadsto \frac{\sin x}{x} \cdot y \]
                          5. lift-sin.f6451.5

                            \[\leadsto \frac{\sin x}{x} \cdot y \]
                        4. Applied rewrites51.5%

                          \[\leadsto \color{blue}{\frac{\sin x}{x} \cdot y} \]
                        5. Taylor expanded in x around 0

                          \[\leadsto y \]
                        6. Step-by-step derivation
                          1. Applied rewrites26.9%

                            \[\leadsto y \]
                          2. Add Preprocessing

                          Developer Target 1: 99.8% accurate, 1.0× speedup?

                          \[\begin{array}{l} \\ \sin x \cdot \frac{\sinh y}{x} \end{array} \]
                          (FPCore (x y) :precision binary64 (* (sin x) (/ (sinh y) x)))
                          double code(double x, double y) {
                          	return sin(x) * (sinh(y) / x);
                          }
                          
                          module fmin_fmax_functions
                              implicit none
                              private
                              public fmax
                              public fmin
                          
                              interface fmax
                                  module procedure fmax88
                                  module procedure fmax44
                                  module procedure fmax84
                                  module procedure fmax48
                              end interface
                              interface fmin
                                  module procedure fmin88
                                  module procedure fmin44
                                  module procedure fmin84
                                  module procedure fmin48
                              end interface
                          contains
                              real(8) function fmax88(x, y) result (res)
                                  real(8), intent (in) :: x
                                  real(8), intent (in) :: y
                                  res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                              end function
                              real(4) function fmax44(x, y) result (res)
                                  real(4), intent (in) :: x
                                  real(4), intent (in) :: y
                                  res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                              end function
                              real(8) function fmax84(x, y) result(res)
                                  real(8), intent (in) :: x
                                  real(4), intent (in) :: y
                                  res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
                              end function
                              real(8) function fmax48(x, y) result(res)
                                  real(4), intent (in) :: x
                                  real(8), intent (in) :: y
                                  res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
                              end function
                              real(8) function fmin88(x, y) result (res)
                                  real(8), intent (in) :: x
                                  real(8), intent (in) :: y
                                  res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                              end function
                              real(4) function fmin44(x, y) result (res)
                                  real(4), intent (in) :: x
                                  real(4), intent (in) :: y
                                  res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                              end function
                              real(8) function fmin84(x, y) result(res)
                                  real(8), intent (in) :: x
                                  real(4), intent (in) :: y
                                  res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
                              end function
                              real(8) function fmin48(x, y) result(res)
                                  real(4), intent (in) :: x
                                  real(8), intent (in) :: y
                                  res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
                              end function
                          end module
                          
                          real(8) function code(x, y)
                          use fmin_fmax_functions
                              real(8), intent (in) :: x
                              real(8), intent (in) :: y
                              code = sin(x) * (sinh(y) / x)
                          end function
                          
                          public static double code(double x, double y) {
                          	return Math.sin(x) * (Math.sinh(y) / x);
                          }
                          
                          def code(x, y):
                          	return math.sin(x) * (math.sinh(y) / x)
                          
                          function code(x, y)
                          	return Float64(sin(x) * Float64(sinh(y) / x))
                          end
                          
                          function tmp = code(x, y)
                          	tmp = sin(x) * (sinh(y) / x);
                          end
                          
                          code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]
                          
                          \begin{array}{l}
                          
                          \\
                          \sin x \cdot \frac{\sinh y}{x}
                          \end{array}
                          

                          Reproduce

                          ?
                          herbie shell --seed 2025093 
                          (FPCore (x y)
                            :name "Linear.Quaternion:$ccosh from linear-1.19.1.3"
                            :precision binary64
                          
                            :alt
                            (! :herbie-platform default (* (sin x) (/ (sinh y) x)))
                          
                            (/ (* (sin x) (sinh y)) x))