Trigonometry B

Percentage Accurate: 99.5% → 99.5%
Time: 3.7s
Alternatives: 10
Speedup: 0.9×

Specification

?
\[\begin{array}{l} t_0 := \tan x \cdot \tan x\\ \frac{1 - t\_0}{1 + t\_0} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (* (tan x) (tan x)))) (/ (- 1.0 t_0) (+ 1.0 t_0))))
double code(double x) {
	double t_0 = tan(x) * tan(x);
	return (1.0 - t_0) / (1.0 + t_0);
}
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)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8) :: t_0
    t_0 = tan(x) * tan(x)
    code = (1.0d0 - t_0) / (1.0d0 + t_0)
end function
public static double code(double x) {
	double t_0 = Math.tan(x) * Math.tan(x);
	return (1.0 - t_0) / (1.0 + t_0);
}
def code(x):
	t_0 = math.tan(x) * math.tan(x)
	return (1.0 - t_0) / (1.0 + t_0)
function code(x)
	t_0 = Float64(tan(x) * tan(x))
	return Float64(Float64(1.0 - t_0) / Float64(1.0 + t_0))
end
function tmp = code(x)
	t_0 = tan(x) * tan(x);
	tmp = (1.0 - t_0) / (1.0 + t_0);
end
code[x_] := Block[{t$95$0 = N[(N[Tan[x], $MachinePrecision] * N[Tan[x], $MachinePrecision]), $MachinePrecision]}, N[(N[(1.0 - t$95$0), $MachinePrecision] / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
t_0 := \tan x \cdot \tan x\\
\frac{1 - t\_0}{1 + t\_0}
\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 10 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: 99.5% accurate, 1.0× speedup?

\[\begin{array}{l} t_0 := \tan x \cdot \tan x\\ \frac{1 - t\_0}{1 + t\_0} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (* (tan x) (tan x)))) (/ (- 1.0 t_0) (+ 1.0 t_0))))
double code(double x) {
	double t_0 = tan(x) * tan(x);
	return (1.0 - t_0) / (1.0 + t_0);
}
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)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8) :: t_0
    t_0 = tan(x) * tan(x)
    code = (1.0d0 - t_0) / (1.0d0 + t_0)
end function
public static double code(double x) {
	double t_0 = Math.tan(x) * Math.tan(x);
	return (1.0 - t_0) / (1.0 + t_0);
}
def code(x):
	t_0 = math.tan(x) * math.tan(x)
	return (1.0 - t_0) / (1.0 + t_0)
function code(x)
	t_0 = Float64(tan(x) * tan(x))
	return Float64(Float64(1.0 - t_0) / Float64(1.0 + t_0))
end
function tmp = code(x)
	t_0 = tan(x) * tan(x);
	tmp = (1.0 - t_0) / (1.0 + t_0);
end
code[x_] := Block[{t$95$0 = N[(N[Tan[x], $MachinePrecision] * N[Tan[x], $MachinePrecision]), $MachinePrecision]}, N[(N[(1.0 - t$95$0), $MachinePrecision] / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
t_0 := \tan x \cdot \tan x\\
\frac{1 - t\_0}{1 + t\_0}
\end{array}

Alternative 1: 99.5% accurate, 0.9× speedup?

\[\begin{array}{l} t_0 := 0.5 \cdot \cos \left(x + x\right)\\ t_1 := \frac{0.5 - t\_0}{0.5 + t\_0}\\ \frac{1 - t\_1}{1 + t\_1} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (* 0.5 (cos (+ x x)))) (t_1 (/ (- 0.5 t_0) (+ 0.5 t_0))))
   (/ (- 1.0 t_1) (+ 1.0 t_1))))
double code(double x) {
	double t_0 = 0.5 * cos((x + x));
	double t_1 = (0.5 - t_0) / (0.5 + t_0);
	return (1.0 - t_1) / (1.0 + t_1);
}
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)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8) :: t_0
    real(8) :: t_1
    t_0 = 0.5d0 * cos((x + x))
    t_1 = (0.5d0 - t_0) / (0.5d0 + t_0)
    code = (1.0d0 - t_1) / (1.0d0 + t_1)
end function
public static double code(double x) {
	double t_0 = 0.5 * Math.cos((x + x));
	double t_1 = (0.5 - t_0) / (0.5 + t_0);
	return (1.0 - t_1) / (1.0 + t_1);
}
def code(x):
	t_0 = 0.5 * math.cos((x + x))
	t_1 = (0.5 - t_0) / (0.5 + t_0)
	return (1.0 - t_1) / (1.0 + t_1)
function code(x)
	t_0 = Float64(0.5 * cos(Float64(x + x)))
	t_1 = Float64(Float64(0.5 - t_0) / Float64(0.5 + t_0))
	return Float64(Float64(1.0 - t_1) / Float64(1.0 + t_1))
end
function tmp = code(x)
	t_0 = 0.5 * cos((x + x));
	t_1 = (0.5 - t_0) / (0.5 + t_0);
	tmp = (1.0 - t_1) / (1.0 + t_1);
end
code[x_] := Block[{t$95$0 = N[(0.5 * N[Cos[N[(x + x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(0.5 - t$95$0), $MachinePrecision] / N[(0.5 + t$95$0), $MachinePrecision]), $MachinePrecision]}, N[(N[(1.0 - t$95$1), $MachinePrecision] / N[(1.0 + t$95$1), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := 0.5 \cdot \cos \left(x + x\right)\\
t_1 := \frac{0.5 - t\_0}{0.5 + t\_0}\\
\frac{1 - t\_1}{1 + t\_1}
\end{array}
Derivation
  1. Initial program 99.5%

    \[\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x} \]
  2. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\tan x \cdot \tan x}}{1 + \tan x \cdot \tan x} \]
    2. lift-tan.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\tan x} \cdot \tan x}{1 + \tan x \cdot \tan x} \]
    3. tan-quotN/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x}{\cos x}} \cdot \tan x}{1 + \tan x \cdot \tan x} \]
    4. lift-tan.f64N/A

      \[\leadsto \frac{1 - \frac{\sin x}{\cos x} \cdot \color{blue}{\tan x}}{1 + \tan x \cdot \tan x} \]
    5. tan-quotN/A

      \[\leadsto \frac{1 - \frac{\sin x}{\cos x} \cdot \color{blue}{\frac{\sin x}{\cos x}}}{1 + \tan x \cdot \tan x} \]
    6. frac-timesN/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}}}{1 + \tan x \cdot \tan x} \]
    7. lower-/.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}}}{1 + \tan x \cdot \tan x} \]
  3. Applied rewrites98.9%

    \[\leadsto \frac{1 - \color{blue}{\frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}}}{1 + \tan x \cdot \tan x} \]
  4. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\tan x \cdot \tan x}} \]
    2. lift-tan.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\tan x} \cdot \tan x} \]
    3. tan-quotN/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\frac{\sin x}{\cos x}} \cdot \tan x} \]
    4. lift-tan.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\sin x}{\cos x} \cdot \color{blue}{\tan x}} \]
    5. tan-quotN/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\sin x}{\cos x} \cdot \color{blue}{\frac{\sin x}{\cos x}}} \]
    6. frac-timesN/A

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

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}}} \]
  5. Applied rewrites99.5%

    \[\leadsto \frac{1 - \frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}}} \]
  6. Add Preprocessing

Alternative 2: 99.5% accurate, 1.3× speedup?

\[\begin{array}{l} t_0 := \sqrt{{\tan x}^{4}}\\ \frac{1 - t\_0}{1 + t\_0} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (sqrt (pow (tan x) 4.0)))) (/ (- 1.0 t_0) (+ 1.0 t_0))))
double code(double x) {
	double t_0 = sqrt(pow(tan(x), 4.0));
	return (1.0 - t_0) / (1.0 + t_0);
}
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)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8) :: t_0
    t_0 = sqrt((tan(x) ** 4.0d0))
    code = (1.0d0 - t_0) / (1.0d0 + t_0)
end function
public static double code(double x) {
	double t_0 = Math.sqrt(Math.pow(Math.tan(x), 4.0));
	return (1.0 - t_0) / (1.0 + t_0);
}
def code(x):
	t_0 = math.sqrt(math.pow(math.tan(x), 4.0))
	return (1.0 - t_0) / (1.0 + t_0)
function code(x)
	t_0 = sqrt((tan(x) ^ 4.0))
	return Float64(Float64(1.0 - t_0) / Float64(1.0 + t_0))
end
function tmp = code(x)
	t_0 = sqrt((tan(x) ^ 4.0));
	tmp = (1.0 - t_0) / (1.0 + t_0);
end
code[x_] := Block[{t$95$0 = N[Sqrt[N[Power[N[Tan[x], $MachinePrecision], 4.0], $MachinePrecision]], $MachinePrecision]}, N[(N[(1.0 - t$95$0), $MachinePrecision] / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
t_0 := \sqrt{{\tan x}^{4}}\\
\frac{1 - t\_0}{1 + t\_0}
\end{array}
Derivation
  1. Initial program 99.5%

    \[\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x} \]
  2. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\tan x \cdot \tan x}}{1 + \tan x \cdot \tan x} \]
    2. lift-tan.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\tan x} \cdot \tan x}{1 + \tan x \cdot \tan x} \]
    3. tan-quotN/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x}{\cos x}} \cdot \tan x}{1 + \tan x \cdot \tan x} \]
    4. lift-tan.f64N/A

      \[\leadsto \frac{1 - \frac{\sin x}{\cos x} \cdot \color{blue}{\tan x}}{1 + \tan x \cdot \tan x} \]
    5. tan-quotN/A

      \[\leadsto \frac{1 - \frac{\sin x}{\cos x} \cdot \color{blue}{\frac{\sin x}{\cos x}}}{1 + \tan x \cdot \tan x} \]
    6. frac-timesN/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}}}{1 + \tan x \cdot \tan x} \]
    7. lower-/.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}}}{1 + \tan x \cdot \tan x} \]
  3. Applied rewrites98.9%

    \[\leadsto \frac{1 - \color{blue}{\frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}}}{1 + \tan x \cdot \tan x} \]
  4. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\tan x \cdot \tan x}} \]
    2. lift-tan.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\tan x} \cdot \tan x} \]
    3. tan-quotN/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\frac{\sin x}{\cos x}} \cdot \tan x} \]
    4. lift-tan.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\sin x}{\cos x} \cdot \color{blue}{\tan x}} \]
    5. tan-quotN/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\sin x}{\cos x} \cdot \color{blue}{\frac{\sin x}{\cos x}}} \]
    6. frac-timesN/A

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

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}}} \]
  5. Applied rewrites99.5%

    \[\leadsto \frac{1 - \frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}}{1 + \color{blue}{\frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}}} \]
  6. Step-by-step derivation
    1. lift-/.f64N/A

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

      \[\leadsto \frac{1 - \frac{\color{blue}{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    3. lift-*.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \color{blue}{\frac{1}{2} \cdot \cos \left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    4. lift-cos.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \color{blue}{\cos \left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    5. lift-+.f64N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \color{blue}{\left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    6. count-2N/A

      \[\leadsto \frac{1 - \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \color{blue}{\left(2 \cdot x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    7. sqr-sin-a-revN/A

      \[\leadsto \frac{1 - \frac{\color{blue}{\sin x \cdot \sin x}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    8. lift-+.f64N/A

      \[\leadsto \frac{1 - \frac{\sin x \cdot \sin x}{\color{blue}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    9. lift-*.f64N/A

      \[\leadsto \frac{1 - \frac{\sin x \cdot \sin x}{\frac{1}{2} + \color{blue}{\frac{1}{2} \cdot \cos \left(x + x\right)}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    10. lift-cos.f64N/A

      \[\leadsto \frac{1 - \frac{\sin x \cdot \sin x}{\frac{1}{2} + \frac{1}{2} \cdot \color{blue}{\cos \left(x + x\right)}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    11. lift-+.f64N/A

      \[\leadsto \frac{1 - \frac{\sin x \cdot \sin x}{\frac{1}{2} + \frac{1}{2} \cdot \cos \color{blue}{\left(x + x\right)}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    12. count-2N/A

      \[\leadsto \frac{1 - \frac{\sin x \cdot \sin x}{\frac{1}{2} + \frac{1}{2} \cdot \cos \color{blue}{\left(2 \cdot x\right)}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    13. sqr-cos-a-revN/A

      \[\leadsto \frac{1 - \frac{\sin x \cdot \sin x}{\color{blue}{\cos x \cdot \cos x}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    14. frac-timesN/A

      \[\leadsto \frac{1 - \color{blue}{\frac{\sin x}{\cos x} \cdot \frac{\sin x}{\cos x}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    15. tan-quotN/A

      \[\leadsto \frac{1 - \color{blue}{\tan x} \cdot \frac{\sin x}{\cos x}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    16. lift-tan.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\tan x} \cdot \frac{\sin x}{\cos x}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    17. tan-quotN/A

      \[\leadsto \frac{1 - \tan x \cdot \color{blue}{\tan x}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    18. lift-tan.f64N/A

      \[\leadsto \frac{1 - \tan x \cdot \color{blue}{\tan x}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    19. fabs-sqrN/A

      \[\leadsto \frac{1 - \color{blue}{\left|\tan x \cdot \tan x\right|}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    20. lift-*.f64N/A

      \[\leadsto \frac{1 - \left|\color{blue}{\tan x \cdot \tan x}\right|}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    21. rem-sqrt-square-revN/A

      \[\leadsto \frac{1 - \color{blue}{\sqrt{\left(\tan x \cdot \tan x\right) \cdot \left(\tan x \cdot \tan x\right)}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
  7. Applied rewrites98.9%

    \[\leadsto \frac{1 - \color{blue}{\sqrt{{\tan x}^{4}}}}{1 + \frac{0.5 - 0.5 \cdot \cos \left(x + x\right)}{0.5 + 0.5 \cdot \cos \left(x + x\right)}} \]
  8. Step-by-step derivation
    1. lift-/.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}} \]
    2. lift--.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\color{blue}{\frac{1}{2} - \frac{1}{2} \cdot \cos \left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    3. lift-*.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\frac{1}{2} - \color{blue}{\frac{1}{2} \cdot \cos \left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    4. lift-cos.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \color{blue}{\cos \left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    5. lift-+.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \color{blue}{\left(x + x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    6. count-2N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\frac{1}{2} - \frac{1}{2} \cdot \cos \color{blue}{\left(2 \cdot x\right)}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    7. sqr-sin-a-revN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\color{blue}{\sin x \cdot \sin x}}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}} \]
    8. lift-+.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\sin x \cdot \sin x}{\color{blue}{\frac{1}{2} + \frac{1}{2} \cdot \cos \left(x + x\right)}}} \]
    9. lift-*.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\sin x \cdot \sin x}{\frac{1}{2} + \color{blue}{\frac{1}{2} \cdot \cos \left(x + x\right)}}} \]
    10. lift-cos.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\sin x \cdot \sin x}{\frac{1}{2} + \frac{1}{2} \cdot \color{blue}{\cos \left(x + x\right)}}} \]
    11. lift-+.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\sin x \cdot \sin x}{\frac{1}{2} + \frac{1}{2} \cdot \cos \color{blue}{\left(x + x\right)}}} \]
    12. count-2N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\sin x \cdot \sin x}{\frac{1}{2} + \frac{1}{2} \cdot \cos \color{blue}{\left(2 \cdot x\right)}}} \]
    13. sqr-cos-a-revN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \frac{\sin x \cdot \sin x}{\color{blue}{\cos x \cdot \cos x}}} \]
    14. frac-timesN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\frac{\sin x}{\cos x} \cdot \frac{\sin x}{\cos x}}} \]
    15. tan-quotN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\tan x} \cdot \frac{\sin x}{\cos x}} \]
    16. lift-tan.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\tan x} \cdot \frac{\sin x}{\cos x}} \]
    17. tan-quotN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \tan x \cdot \color{blue}{\tan x}} \]
    18. lift-tan.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \tan x \cdot \color{blue}{\tan x}} \]
    19. fabs-sqrN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\left|\tan x \cdot \tan x\right|}} \]
    20. lift-*.f64N/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \left|\color{blue}{\tan x \cdot \tan x}\right|} \]
    21. rem-sqrt-square-revN/A

      \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\sqrt{\left(\tan x \cdot \tan x\right) \cdot \left(\tan x \cdot \tan x\right)}}} \]
  9. Applied rewrites99.5%

    \[\leadsto \frac{1 - \sqrt{{\tan x}^{4}}}{1 + \color{blue}{\sqrt{{\tan x}^{4}}}} \]
  10. Add Preprocessing

Alternative 3: 99.5% accurate, 1.4× speedup?

\[\begin{array}{l} t_0 := {\tan x}^{2}\\ \frac{1 - t\_0}{1 + t\_0} \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (pow (tan x) 2.0))) (/ (- 1.0 t_0) (+ 1.0 t_0))))
double code(double x) {
	double t_0 = pow(tan(x), 2.0);
	return (1.0 - t_0) / (1.0 + t_0);
}
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)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8) :: t_0
    t_0 = tan(x) ** 2.0d0
    code = (1.0d0 - t_0) / (1.0d0 + t_0)
end function
public static double code(double x) {
	double t_0 = Math.pow(Math.tan(x), 2.0);
	return (1.0 - t_0) / (1.0 + t_0);
}
def code(x):
	t_0 = math.pow(math.tan(x), 2.0)
	return (1.0 - t_0) / (1.0 + t_0)
function code(x)
	t_0 = tan(x) ^ 2.0
	return Float64(Float64(1.0 - t_0) / Float64(1.0 + t_0))
end
function tmp = code(x)
	t_0 = tan(x) ^ 2.0;
	tmp = (1.0 - t_0) / (1.0 + t_0);
end
code[x_] := Block[{t$95$0 = N[Power[N[Tan[x], $MachinePrecision], 2.0], $MachinePrecision]}, N[(N[(1.0 - t$95$0), $MachinePrecision] / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
t_0 := {\tan x}^{2}\\
\frac{1 - t\_0}{1 + t\_0}
\end{array}
Derivation
  1. Initial program 99.5%

    \[\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x} \]
  2. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \frac{1 - \color{blue}{\tan x \cdot \tan x}}{1 + \tan x \cdot \tan x} \]
    2. pow2N/A

      \[\leadsto \frac{1 - \color{blue}{{\tan x}^{2}}}{1 + \tan x \cdot \tan x} \]
    3. lower-pow.f6499.5%

      \[\leadsto \frac{1 - \color{blue}{{\tan x}^{2}}}{1 + \tan x \cdot \tan x} \]
  3. Applied rewrites99.5%

    \[\leadsto \frac{1 - \color{blue}{{\tan x}^{2}}}{1 + \tan x \cdot \tan x} \]
  4. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto \frac{1 - {\tan x}^{2}}{1 + \color{blue}{\tan x \cdot \tan x}} \]
    2. pow2N/A

      \[\leadsto \frac{1 - {\tan x}^{2}}{1 + \color{blue}{{\tan x}^{2}}} \]
    3. lower-pow.f6499.5%

      \[\leadsto \frac{1 - {\tan x}^{2}}{1 + \color{blue}{{\tan x}^{2}}} \]
  5. Applied rewrites99.5%

    \[\leadsto \frac{1 - {\tan x}^{2}}{1 + \color{blue}{{\tan x}^{2}}} \]
  6. Add Preprocessing

Alternative 4: 99.2% accurate, 1.0× speedup?

\[\begin{array}{l} t_0 := \tan \left(\left|x\right|\right)\\ t_1 := -1 - {t\_0}^{2}\\ \mathbf{if}\;t\_0 \leq -0.01:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\log \left(-t\_0\right) \cdot 2\right)}{t\_1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\log t\_0 \cdot 2\right)}{t\_1}\\ \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (tan (fabs x))) (t_1 (- -1.0 (pow t_0 2.0))))
   (if (<= t_0 -0.01)
     (/ (expm1 (* (log (- t_0)) 2.0)) t_1)
     (/ (expm1 (* (log t_0) 2.0)) t_1))))
double code(double x) {
	double t_0 = tan(fabs(x));
	double t_1 = -1.0 - pow(t_0, 2.0);
	double tmp;
	if (t_0 <= -0.01) {
		tmp = expm1((log(-t_0) * 2.0)) / t_1;
	} else {
		tmp = expm1((log(t_0) * 2.0)) / t_1;
	}
	return tmp;
}
public static double code(double x) {
	double t_0 = Math.tan(Math.abs(x));
	double t_1 = -1.0 - Math.pow(t_0, 2.0);
	double tmp;
	if (t_0 <= -0.01) {
		tmp = Math.expm1((Math.log(-t_0) * 2.0)) / t_1;
	} else {
		tmp = Math.expm1((Math.log(t_0) * 2.0)) / t_1;
	}
	return tmp;
}
def code(x):
	t_0 = math.tan(math.fabs(x))
	t_1 = -1.0 - math.pow(t_0, 2.0)
	tmp = 0
	if t_0 <= -0.01:
		tmp = math.expm1((math.log(-t_0) * 2.0)) / t_1
	else:
		tmp = math.expm1((math.log(t_0) * 2.0)) / t_1
	return tmp
function code(x)
	t_0 = tan(abs(x))
	t_1 = Float64(-1.0 - (t_0 ^ 2.0))
	tmp = 0.0
	if (t_0 <= -0.01)
		tmp = Float64(expm1(Float64(log(Float64(-t_0)) * 2.0)) / t_1);
	else
		tmp = Float64(expm1(Float64(log(t_0) * 2.0)) / t_1);
	end
	return tmp
end
code[x_] := Block[{t$95$0 = N[Tan[N[Abs[x], $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(-1.0 - N[Power[t$95$0, 2.0], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -0.01], N[(N[(Exp[N[(N[Log[(-t$95$0)], $MachinePrecision] * 2.0), $MachinePrecision]] - 1), $MachinePrecision] / t$95$1), $MachinePrecision], N[(N[(Exp[N[(N[Log[t$95$0], $MachinePrecision] * 2.0), $MachinePrecision]] - 1), $MachinePrecision] / t$95$1), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \tan \left(\left|x\right|\right)\\
t_1 := -1 - {t\_0}^{2}\\
\mathbf{if}\;t\_0 \leq -0.01:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\log \left(-t\_0\right) \cdot 2\right)}{t\_1}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\log t\_0 \cdot 2\right)}{t\_1}\\


\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (tan.f64 x) < -0.01

    1. Initial program 99.5%

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

        \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
      2. frac-2negN/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      4. lift--.f64N/A

        \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      5. sub-negate-revN/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      6. lower--.f32N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      7. lower-unsound--.f32N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      8. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      9. pow2N/A

        \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      10. pow-to-expN/A

        \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      11. lower-unsound-expm1.f64N/A

        \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      12. lower-unsound-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      13. lower-unsound-log.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      14. lift-+.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
      15. distribute-neg-inN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
      16. metadata-evalN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
      17. sub-flip-reverseN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      18. lower--.f6449.5%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      19. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
      20. pow2N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
      21. lower-pow.f6449.5%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
    3. Applied rewrites49.5%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
    4. Step-by-step derivation
      1. lower-unsound-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{-1 - {\tan x}^{2}} \]
      2. lower-unsound-log.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{-1 - {\tan x}^{2}} \]
      3. lower-unsound-expm1.f64N/A

        \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2} - 1}}{-1 - {\tan x}^{2}} \]
      4. pow-to-expN/A

        \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
      5. pow2N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
      6. sqr-neg-revN/A

        \[\leadsto \frac{\color{blue}{\left(\mathsf{neg}\left(\tan x\right)\right) \cdot \left(\mathsf{neg}\left(\tan x\right)\right)} - 1}{-1 - {\tan x}^{2}} \]
      7. pow2N/A

        \[\leadsto \frac{\color{blue}{{\left(\mathsf{neg}\left(\tan x\right)\right)}^{2}} - 1}{-1 - {\tan x}^{2}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{\color{blue}{e^{\log \left(\mathsf{neg}\left(\tan x\right)\right) \cdot 2}} - 1}{-1 - {\tan x}^{2}} \]
      9. lower-unsound-expm1.f64N/A

        \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \left(\mathsf{neg}\left(\tan x\right)\right) \cdot 2\right)}}{-1 - {\tan x}^{2}} \]
      10. lower-unsound-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \left(\mathsf{neg}\left(\tan x\right)\right) \cdot 2}\right)}{-1 - {\tan x}^{2}} \]
      11. lower-unsound-log.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \left(\mathsf{neg}\left(\tan x\right)\right)} \cdot 2\right)}{-1 - {\tan x}^{2}} \]
      12. lower-neg.f6449.8%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \color{blue}{\left(-\tan x\right)} \cdot 2\right)}{-1 - {\tan x}^{2}} \]
    5. Applied rewrites49.8%

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \left(-\tan x\right) \cdot 2\right)}}{-1 - {\tan x}^{2}} \]

    if -0.01 < (tan.f64 x)

    1. Initial program 99.5%

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

        \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
      2. frac-2negN/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      4. lift--.f64N/A

        \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      5. sub-negate-revN/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      6. lower--.f32N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      7. lower-unsound--.f32N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      8. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      9. pow2N/A

        \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      10. pow-to-expN/A

        \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      11. lower-unsound-expm1.f64N/A

        \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      12. lower-unsound-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      13. lower-unsound-log.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      14. lift-+.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
      15. distribute-neg-inN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
      16. metadata-evalN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
      17. sub-flip-reverseN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      18. lower--.f6449.5%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      19. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
      20. pow2N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
      21. lower-pow.f6449.5%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
    3. Applied rewrites49.5%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 5: 79.8% accurate, 0.9× speedup?

\[\begin{array}{l} t_0 := \tan \left(\left|x\right|\right)\\ \mathbf{if}\;t\_0 \leq -1:\\ \;\;\;\;-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, \left|x\right| \cdot \left|x\right|, 1\right) \cdot \left|x\right|\right)\\ \mathbf{elif}\;t\_0 \leq -0.01:\\ \;\;\;\;\frac{-1}{-1 - {t\_0}^{2}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{expm1}\left(\log t\_0 \cdot 2\right) \cdot \mathsf{fma}\left(\cos \left(\left|x\right| + \left|x\right|\right), -0.5, -0.5\right)\\ \end{array} \]
(FPCore (x)
 :precision binary64
 (let* ((t_0 (tan (fabs x))))
   (if (<= t_0 -1.0)
     (-
      (tanh
       (log (* (fma 0.3333333333333333 (* (fabs x) (fabs x)) 1.0) (fabs x)))))
     (if (<= t_0 -0.01)
       (/ -1.0 (- -1.0 (pow t_0 2.0)))
       (*
        (expm1 (* (log t_0) 2.0))
        (fma (cos (+ (fabs x) (fabs x))) -0.5 -0.5))))))
double code(double x) {
	double t_0 = tan(fabs(x));
	double tmp;
	if (t_0 <= -1.0) {
		tmp = -tanh(log((fma(0.3333333333333333, (fabs(x) * fabs(x)), 1.0) * fabs(x))));
	} else if (t_0 <= -0.01) {
		tmp = -1.0 / (-1.0 - pow(t_0, 2.0));
	} else {
		tmp = expm1((log(t_0) * 2.0)) * fma(cos((fabs(x) + fabs(x))), -0.5, -0.5);
	}
	return tmp;
}
function code(x)
	t_0 = tan(abs(x))
	tmp = 0.0
	if (t_0 <= -1.0)
		tmp = Float64(-tanh(log(Float64(fma(0.3333333333333333, Float64(abs(x) * abs(x)), 1.0) * abs(x)))));
	elseif (t_0 <= -0.01)
		tmp = Float64(-1.0 / Float64(-1.0 - (t_0 ^ 2.0)));
	else
		tmp = Float64(expm1(Float64(log(t_0) * 2.0)) * fma(cos(Float64(abs(x) + abs(x))), -0.5, -0.5));
	end
	return tmp
end
code[x_] := Block[{t$95$0 = N[Tan[N[Abs[x], $MachinePrecision]], $MachinePrecision]}, If[LessEqual[t$95$0, -1.0], (-N[Tanh[N[Log[N[(N[(0.3333333333333333 * N[(N[Abs[x], $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), If[LessEqual[t$95$0, -0.01], N[(-1.0 / N[(-1.0 - N[Power[t$95$0, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(Exp[N[(N[Log[t$95$0], $MachinePrecision] * 2.0), $MachinePrecision]] - 1), $MachinePrecision] * N[(N[Cos[N[(N[Abs[x], $MachinePrecision] + N[Abs[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * -0.5 + -0.5), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \tan \left(\left|x\right|\right)\\
\mathbf{if}\;t\_0 \leq -1:\\
\;\;\;\;-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, \left|x\right| \cdot \left|x\right|, 1\right) \cdot \left|x\right|\right)\\

\mathbf{elif}\;t\_0 \leq -0.01:\\
\;\;\;\;\frac{-1}{-1 - {t\_0}^{2}}\\

\mathbf{else}:\\
\;\;\;\;\mathsf{expm1}\left(\log t\_0 \cdot 2\right) \cdot \mathsf{fma}\left(\cos \left(\left|x\right| + \left|x\right|\right), -0.5, -0.5\right)\\


\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (tan.f64 x) < -1

    1. Initial program 99.5%

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

        \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
      2. frac-2negN/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      3. lift--.f64N/A

        \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      4. sub-negate-revN/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      5. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      6. difference-of-sqr-1N/A

        \[\leadsto \frac{\color{blue}{\left(\tan x + 1\right) \cdot \left(\tan x - 1\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      7. associate-/l*N/A

        \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      8. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      9. add-flipN/A

        \[\leadsto \color{blue}{\left(\tan x - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      10. metadata-evalN/A

        \[\leadsto \left(\tan x - \color{blue}{-1}\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      11. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\tan x - -1\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      12. lower-/.f64N/A

        \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      13. lower--.f64N/A

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\color{blue}{\tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      14. lift-+.f64N/A

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
      15. distribute-neg-inN/A

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
      16. metadata-evalN/A

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
      17. sub-flip-reverseN/A

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      18. lower--.f6499.4%

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
    3. Applied rewrites99.4%

      \[\leadsto \color{blue}{\left(\tan x - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}}} \]
    4. Taylor expanded in x around 0

      \[\leadsto \left(\color{blue}{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)} - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
    5. Step-by-step derivation
      1. lower-*.f64N/A

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

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

        \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right) - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
      4. lower-pow.f6450.8%

        \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right) - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
    6. Applied rewrites50.8%

      \[\leadsto \left(\color{blue}{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)} - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
    7. Taylor expanded in x around 0

      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{\color{blue}{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)} - 1}{-1 - {\tan x}^{2}} \]
    8. Step-by-step derivation
      1. lower-*.f64N/A

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

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

        \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right) - 1}{-1 - {\tan x}^{2}} \]
      4. lower-pow.f6450.7%

        \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right) - 1}{-1 - {\tan x}^{2}} \]
    9. Applied rewrites50.7%

      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{\color{blue}{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)} - 1}{-1 - {\tan x}^{2}} \]
    10. Taylor expanded in x around 0

      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\color{blue}{\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}}^{2}} \]
    11. Step-by-step derivation
      1. lower-*.f64N/A

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

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

        \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right)\right)}^{2}} \]
      4. lower-pow.f6450.8%

        \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right)\right)}^{2}} \]
    12. Applied rewrites50.8%

      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\color{blue}{\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}}^{2}} \]
    13. Step-by-step derivation
      1. lift-*.f64N/A

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

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

        \[\leadsto \left(\left(x \cdot 1 + \color{blue}{x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right)}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      4. *-rgt-identityN/A

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

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

        \[\leadsto \left(\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      7. lift-pow.f64N/A

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

        \[\leadsto \left(\left(x \cdot \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) + x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      9. lift-*.f64N/A

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

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

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

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

        \[\leadsto \left(\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \frac{1}{3}, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      14. cube-unmultN/A

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      17. lower-*.f6450.8%

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}^{2}} \]
    14. Applied rewrites50.8%

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

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

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

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

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      7. lift-pow.f64N/A

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

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      11. associate-*r*N/A

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      14. cube-unmultN/A

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
      17. lower-*.f6450.8%

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}^{2}} \]
    16. Applied rewrites50.8%

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

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

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

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

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right)}^{2}} \]
      7. lift-pow.f64N/A

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

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + x\right)}^{2}} \]
      11. associate-*r*N/A

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

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

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

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

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

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right)\right)}^{2}} \]
      17. lower-*.f6450.8%

        \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right)\right)}^{2}} \]
    18. Applied rewrites50.8%

      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \color{blue}{0.3333333333333333}, x\right)\right)}^{2}} \]
    19. Applied rewrites27.5%

      \[\leadsto \color{blue}{-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, x \cdot x, 1\right) \cdot x\right)} \]

    if -1 < (tan.f64 x) < -0.01

    1. Initial program 99.5%

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

        \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
      2. frac-2negN/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
      4. lift--.f64N/A

        \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      5. sub-negate-revN/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      6. lower--.f32N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      7. lower-unsound--.f32N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      8. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      9. pow2N/A

        \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      10. pow-to-expN/A

        \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      11. lower-unsound-expm1.f64N/A

        \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      12. lower-unsound-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      13. lower-unsound-log.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
      14. lift-+.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
      15. distribute-neg-inN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
      16. metadata-evalN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
      17. sub-flip-reverseN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      18. lower--.f6449.5%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      19. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
      20. pow2N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
      21. lower-pow.f6449.5%

        \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
    3. Applied rewrites49.5%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
    4. Taylor expanded in x around 0

      \[\leadsto \frac{\color{blue}{-1}}{-1 - {\tan x}^{2}} \]
    5. Step-by-step derivation
      1. Applied rewrites55.5%

        \[\leadsto \frac{\color{blue}{-1}}{-1 - {\tan x}^{2}} \]

      if -0.01 < (tan.f64 x)

      1. Initial program 99.5%

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

          \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
        2. frac-2negN/A

          \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
        3. lift--.f64N/A

          \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        4. sub-negate-revN/A

          \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        5. lift-*.f64N/A

          \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        6. difference-of-sqr-1N/A

          \[\leadsto \frac{\color{blue}{\left(\tan x + 1\right) \cdot \left(\tan x - 1\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        7. associate-/l*N/A

          \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
        8. lower-*.f64N/A

          \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
        9. add-flipN/A

          \[\leadsto \color{blue}{\left(\tan x - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        10. metadata-evalN/A

          \[\leadsto \left(\tan x - \color{blue}{-1}\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        11. lower--.f64N/A

          \[\leadsto \color{blue}{\left(\tan x - -1\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        12. lower-/.f64N/A

          \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
        13. lower--.f64N/A

          \[\leadsto \left(\tan x - -1\right) \cdot \frac{\color{blue}{\tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
        14. lift-+.f64N/A

          \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
        15. distribute-neg-inN/A

          \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
        16. metadata-evalN/A

          \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
        17. sub-flip-reverseN/A

          \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
        18. lower--.f6499.4%

          \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
      3. Applied rewrites99.4%

        \[\leadsto \color{blue}{\left(\tan x - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}}} \]
      4. Applied rewrites98.8%

        \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\frac{1}{\mathsf{fma}\left(-0.5, \cos \left(x + x\right), -0.5\right)}}} \]
      5. Step-by-step derivation
        1. lift-*.f64N/A

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

          \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\frac{1}{\mathsf{fma}\left(\frac{-1}{2}, \cos \left(x + x\right), \frac{-1}{2}\right)}}} \]
        3. associate-*r/N/A

          \[\leadsto \color{blue}{\frac{\left(\tan x - -1\right) \cdot \left(\tan x - 1\right)}{\frac{1}{\mathsf{fma}\left(\frac{-1}{2}, \cos \left(x + x\right), \frac{-1}{2}\right)}}} \]
        4. mult-flipN/A

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

          \[\leadsto \color{blue}{\left(\left(\tan x - -1\right) \cdot \left(\tan x - 1\right)\right) \cdot \frac{1}{\frac{1}{\mathsf{fma}\left(\frac{-1}{2}, \cos \left(x + x\right), \frac{-1}{2}\right)}}} \]
      6. Applied rewrites49.3%

        \[\leadsto \color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right) \cdot \mathsf{fma}\left(\cos \left(x + x\right), -0.5, -0.5\right)} \]
    6. Recombined 3 regimes into one program.
    7. Add Preprocessing

    Alternative 6: 79.5% accurate, 1.0× speedup?

    \[\begin{array}{l} t_0 := \tan \left(\left|x\right|\right)\\ \mathbf{if}\;t\_0 \leq -0.01:\\ \;\;\;\;\frac{1 - t\_0 \cdot t\_0}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + 0.5}, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\log t\_0 \cdot 2\right)}{-1 - {t\_0}^{2}}\\ \end{array} \]
    (FPCore (x)
     :precision binary64
     (let* ((t_0 (tan (fabs x))))
       (if (<= t_0 -0.01)
         (/ (- 1.0 (* t_0 t_0)) (fma (- 0.5 0.5) (/ 1.0 (+ 0.5 0.5)) 1.0))
         (/ (expm1 (* (log t_0) 2.0)) (- -1.0 (pow t_0 2.0))))))
    double code(double x) {
    	double t_0 = tan(fabs(x));
    	double tmp;
    	if (t_0 <= -0.01) {
    		tmp = (1.0 - (t_0 * t_0)) / fma((0.5 - 0.5), (1.0 / (0.5 + 0.5)), 1.0);
    	} else {
    		tmp = expm1((log(t_0) * 2.0)) / (-1.0 - pow(t_0, 2.0));
    	}
    	return tmp;
    }
    
    function code(x)
    	t_0 = tan(abs(x))
    	tmp = 0.0
    	if (t_0 <= -0.01)
    		tmp = Float64(Float64(1.0 - Float64(t_0 * t_0)) / fma(Float64(0.5 - 0.5), Float64(1.0 / Float64(0.5 + 0.5)), 1.0));
    	else
    		tmp = Float64(expm1(Float64(log(t_0) * 2.0)) / Float64(-1.0 - (t_0 ^ 2.0)));
    	end
    	return tmp
    end
    
    code[x_] := Block[{t$95$0 = N[Tan[N[Abs[x], $MachinePrecision]], $MachinePrecision]}, If[LessEqual[t$95$0, -0.01], N[(N[(1.0 - N[(t$95$0 * t$95$0), $MachinePrecision]), $MachinePrecision] / N[(N[(0.5 - 0.5), $MachinePrecision] * N[(1.0 / N[(0.5 + 0.5), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(Exp[N[(N[Log[t$95$0], $MachinePrecision] * 2.0), $MachinePrecision]] - 1), $MachinePrecision] / N[(-1.0 - N[Power[t$95$0, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
    
    \begin{array}{l}
    t_0 := \tan \left(\left|x\right|\right)\\
    \mathbf{if}\;t\_0 \leq -0.01:\\
    \;\;\;\;\frac{1 - t\_0 \cdot t\_0}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + 0.5}, 1\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\frac{\mathsf{expm1}\left(\log t\_0 \cdot 2\right)}{-1 - {t\_0}^{2}}\\
    
    
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if (tan.f64 x) < -0.01

      1. Initial program 99.5%

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

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{1 + \tan x \cdot \tan x}} \]
        2. +-commutativeN/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\tan x \cdot \tan x + 1}} \]
        3. lift-*.f64N/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\tan x \cdot \tan x} + 1} \]
        4. lift-tan.f64N/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\tan x} \cdot \tan x + 1} \]
        5. tan-quotN/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\frac{\sin x}{\cos x}} \cdot \tan x + 1} \]
        6. lift-tan.f64N/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\frac{\sin x}{\cos x} \cdot \color{blue}{\tan x} + 1} \]
        7. tan-quotN/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\frac{\sin x}{\cos x} \cdot \color{blue}{\frac{\sin x}{\cos x}} + 1} \]
        8. frac-timesN/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}} + 1} \]
        9. mult-flipN/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\left(\sin x \cdot \sin x\right) \cdot \frac{1}{\cos x \cdot \cos x}} + 1} \]
        10. lower-fma.f64N/A

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\mathsf{fma}\left(\sin x \cdot \sin x, \frac{1}{\cos x \cdot \cos x}, 1\right)}} \]
      3. Applied rewrites98.9%

        \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\mathsf{fma}\left(0.5 - 0.5 \cdot \cos \left(x + x\right), \frac{1}{0.5 + 0.5 \cdot \cos \left(x + x\right)}, 1\right)}} \]
      4. Taylor expanded in x around 0

        \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - \color{blue}{\frac{1}{2}}, \frac{1}{0.5 + 0.5 \cdot \cos \left(x + x\right)}, 1\right)} \]
      5. Step-by-step derivation
        1. Applied rewrites59.3%

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - \color{blue}{0.5}, \frac{1}{0.5 + 0.5 \cdot \cos \left(x + x\right)}, 1\right)} \]
        2. Taylor expanded in x around 0

          \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + \color{blue}{\frac{1}{2}}}, 1\right)} \]
        3. Step-by-step derivation
          1. Applied rewrites59.3%

            \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + \color{blue}{0.5}}, 1\right)} \]

          if -0.01 < (tan.f64 x)

          1. Initial program 99.5%

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

              \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
            2. frac-2negN/A

              \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
            3. lower-/.f64N/A

              \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
            4. lift--.f64N/A

              \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            5. sub-negate-revN/A

              \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            6. lower--.f32N/A

              \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            7. lower-unsound--.f32N/A

              \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            8. lift-*.f64N/A

              \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            9. pow2N/A

              \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            10. pow-to-expN/A

              \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            11. lower-unsound-expm1.f64N/A

              \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            12. lower-unsound-*.f64N/A

              \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            13. lower-unsound-log.f64N/A

              \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
            14. lift-+.f64N/A

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
            15. distribute-neg-inN/A

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
            16. metadata-evalN/A

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
            17. sub-flip-reverseN/A

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
            18. lower--.f6449.5%

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
            19. lift-*.f64N/A

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
            20. pow2N/A

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
            21. lower-pow.f6449.5%

              \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
          3. Applied rewrites49.5%

            \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
        4. Recombined 2 regimes into one program.
        5. Add Preprocessing

        Alternative 7: 79.3% accurate, 1.1× speedup?

        \[\begin{array}{l} t_0 := \tan \left(\left|x\right|\right)\\ \mathbf{if}\;t\_0 \leq -0.01:\\ \;\;\;\;\frac{1 - t\_0 \cdot t\_0}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + 0.5}, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{expm1}\left(\log t\_0 \cdot 2\right) \cdot \mathsf{fma}\left(\cos \left(\left|x\right| + \left|x\right|\right), -0.5, -0.5\right)\\ \end{array} \]
        (FPCore (x)
         :precision binary64
         (let* ((t_0 (tan (fabs x))))
           (if (<= t_0 -0.01)
             (/ (- 1.0 (* t_0 t_0)) (fma (- 0.5 0.5) (/ 1.0 (+ 0.5 0.5)) 1.0))
             (*
              (expm1 (* (log t_0) 2.0))
              (fma (cos (+ (fabs x) (fabs x))) -0.5 -0.5)))))
        double code(double x) {
        	double t_0 = tan(fabs(x));
        	double tmp;
        	if (t_0 <= -0.01) {
        		tmp = (1.0 - (t_0 * t_0)) / fma((0.5 - 0.5), (1.0 / (0.5 + 0.5)), 1.0);
        	} else {
        		tmp = expm1((log(t_0) * 2.0)) * fma(cos((fabs(x) + fabs(x))), -0.5, -0.5);
        	}
        	return tmp;
        }
        
        function code(x)
        	t_0 = tan(abs(x))
        	tmp = 0.0
        	if (t_0 <= -0.01)
        		tmp = Float64(Float64(1.0 - Float64(t_0 * t_0)) / fma(Float64(0.5 - 0.5), Float64(1.0 / Float64(0.5 + 0.5)), 1.0));
        	else
        		tmp = Float64(expm1(Float64(log(t_0) * 2.0)) * fma(cos(Float64(abs(x) + abs(x))), -0.5, -0.5));
        	end
        	return tmp
        end
        
        code[x_] := Block[{t$95$0 = N[Tan[N[Abs[x], $MachinePrecision]], $MachinePrecision]}, If[LessEqual[t$95$0, -0.01], N[(N[(1.0 - N[(t$95$0 * t$95$0), $MachinePrecision]), $MachinePrecision] / N[(N[(0.5 - 0.5), $MachinePrecision] * N[(1.0 / N[(0.5 + 0.5), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(Exp[N[(N[Log[t$95$0], $MachinePrecision] * 2.0), $MachinePrecision]] - 1), $MachinePrecision] * N[(N[Cos[N[(N[Abs[x], $MachinePrecision] + N[Abs[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * -0.5 + -0.5), $MachinePrecision]), $MachinePrecision]]]
        
        \begin{array}{l}
        t_0 := \tan \left(\left|x\right|\right)\\
        \mathbf{if}\;t\_0 \leq -0.01:\\
        \;\;\;\;\frac{1 - t\_0 \cdot t\_0}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + 0.5}, 1\right)}\\
        
        \mathbf{else}:\\
        \;\;\;\;\mathsf{expm1}\left(\log t\_0 \cdot 2\right) \cdot \mathsf{fma}\left(\cos \left(\left|x\right| + \left|x\right|\right), -0.5, -0.5\right)\\
        
        
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if (tan.f64 x) < -0.01

          1. Initial program 99.5%

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

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{1 + \tan x \cdot \tan x}} \]
            2. +-commutativeN/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\tan x \cdot \tan x + 1}} \]
            3. lift-*.f64N/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\tan x \cdot \tan x} + 1} \]
            4. lift-tan.f64N/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\tan x} \cdot \tan x + 1} \]
            5. tan-quotN/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\frac{\sin x}{\cos x}} \cdot \tan x + 1} \]
            6. lift-tan.f64N/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\frac{\sin x}{\cos x} \cdot \color{blue}{\tan x} + 1} \]
            7. tan-quotN/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\frac{\sin x}{\cos x} \cdot \color{blue}{\frac{\sin x}{\cos x}} + 1} \]
            8. frac-timesN/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\frac{\sin x \cdot \sin x}{\cos x \cdot \cos x}} + 1} \]
            9. mult-flipN/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\left(\sin x \cdot \sin x\right) \cdot \frac{1}{\cos x \cdot \cos x}} + 1} \]
            10. lower-fma.f64N/A

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\mathsf{fma}\left(\sin x \cdot \sin x, \frac{1}{\cos x \cdot \cos x}, 1\right)}} \]
          3. Applied rewrites98.9%

            \[\leadsto \frac{1 - \tan x \cdot \tan x}{\color{blue}{\mathsf{fma}\left(0.5 - 0.5 \cdot \cos \left(x + x\right), \frac{1}{0.5 + 0.5 \cdot \cos \left(x + x\right)}, 1\right)}} \]
          4. Taylor expanded in x around 0

            \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - \color{blue}{\frac{1}{2}}, \frac{1}{0.5 + 0.5 \cdot \cos \left(x + x\right)}, 1\right)} \]
          5. Step-by-step derivation
            1. Applied rewrites59.3%

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - \color{blue}{0.5}, \frac{1}{0.5 + 0.5 \cdot \cos \left(x + x\right)}, 1\right)} \]
            2. Taylor expanded in x around 0

              \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + \color{blue}{\frac{1}{2}}}, 1\right)} \]
            3. Step-by-step derivation
              1. Applied rewrites59.3%

                \[\leadsto \frac{1 - \tan x \cdot \tan x}{\mathsf{fma}\left(0.5 - 0.5, \frac{1}{0.5 + \color{blue}{0.5}}, 1\right)} \]

              if -0.01 < (tan.f64 x)

              1. Initial program 99.5%

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

                  \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
                2. frac-2negN/A

                  \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                3. lift--.f64N/A

                  \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                4. sub-negate-revN/A

                  \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                5. lift-*.f64N/A

                  \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                6. difference-of-sqr-1N/A

                  \[\leadsto \frac{\color{blue}{\left(\tan x + 1\right) \cdot \left(\tan x - 1\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                7. associate-/l*N/A

                  \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                8. lower-*.f64N/A

                  \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                9. add-flipN/A

                  \[\leadsto \color{blue}{\left(\tan x - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                10. metadata-evalN/A

                  \[\leadsto \left(\tan x - \color{blue}{-1}\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                11. lower--.f64N/A

                  \[\leadsto \color{blue}{\left(\tan x - -1\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                12. lower-/.f64N/A

                  \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                13. lower--.f64N/A

                  \[\leadsto \left(\tan x - -1\right) \cdot \frac{\color{blue}{\tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                14. lift-+.f64N/A

                  \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
                15. distribute-neg-inN/A

                  \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
                16. metadata-evalN/A

                  \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
                17. sub-flip-reverseN/A

                  \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                18. lower--.f6499.4%

                  \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
              3. Applied rewrites99.4%

                \[\leadsto \color{blue}{\left(\tan x - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}}} \]
              4. Applied rewrites98.8%

                \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\frac{1}{\mathsf{fma}\left(-0.5, \cos \left(x + x\right), -0.5\right)}}} \]
              5. Step-by-step derivation
                1. lift-*.f64N/A

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

                  \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\frac{1}{\mathsf{fma}\left(\frac{-1}{2}, \cos \left(x + x\right), \frac{-1}{2}\right)}}} \]
                3. associate-*r/N/A

                  \[\leadsto \color{blue}{\frac{\left(\tan x - -1\right) \cdot \left(\tan x - 1\right)}{\frac{1}{\mathsf{fma}\left(\frac{-1}{2}, \cos \left(x + x\right), \frac{-1}{2}\right)}}} \]
                4. mult-flipN/A

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

                  \[\leadsto \color{blue}{\left(\left(\tan x - -1\right) \cdot \left(\tan x - 1\right)\right) \cdot \frac{1}{\frac{1}{\mathsf{fma}\left(\frac{-1}{2}, \cos \left(x + x\right), \frac{-1}{2}\right)}}} \]
              6. Applied rewrites49.3%

                \[\leadsto \color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right) \cdot \mathsf{fma}\left(\cos \left(x + x\right), -0.5, -0.5\right)} \]
            4. Recombined 2 regimes into one program.
            5. Add Preprocessing

            Alternative 8: 60.3% accurate, 1.1× speedup?

            \[\begin{array}{l} t_0 := \tan \left(\left|x\right|\right)\\ \mathbf{if}\;t\_0 \cdot t\_0 \leq 1:\\ \;\;\;\;\frac{-1}{-1 - {t\_0}^{2}}\\ \mathbf{else}:\\ \;\;\;\;-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, \left|x\right| \cdot \left|x\right|, 1\right) \cdot \left|x\right|\right)\\ \end{array} \]
            (FPCore (x)
             :precision binary64
             (let* ((t_0 (tan (fabs x))))
               (if (<= (* t_0 t_0) 1.0)
                 (/ -1.0 (- -1.0 (pow t_0 2.0)))
                 (-
                  (tanh
                   (log
                    (* (fma 0.3333333333333333 (* (fabs x) (fabs x)) 1.0) (fabs x))))))))
            double code(double x) {
            	double t_0 = tan(fabs(x));
            	double tmp;
            	if ((t_0 * t_0) <= 1.0) {
            		tmp = -1.0 / (-1.0 - pow(t_0, 2.0));
            	} else {
            		tmp = -tanh(log((fma(0.3333333333333333, (fabs(x) * fabs(x)), 1.0) * fabs(x))));
            	}
            	return tmp;
            }
            
            function code(x)
            	t_0 = tan(abs(x))
            	tmp = 0.0
            	if (Float64(t_0 * t_0) <= 1.0)
            		tmp = Float64(-1.0 / Float64(-1.0 - (t_0 ^ 2.0)));
            	else
            		tmp = Float64(-tanh(log(Float64(fma(0.3333333333333333, Float64(abs(x) * abs(x)), 1.0) * abs(x)))));
            	end
            	return tmp
            end
            
            code[x_] := Block[{t$95$0 = N[Tan[N[Abs[x], $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(t$95$0 * t$95$0), $MachinePrecision], 1.0], N[(-1.0 / N[(-1.0 - N[Power[t$95$0, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], (-N[Tanh[N[Log[N[(N[(0.3333333333333333 * N[(N[Abs[x], $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision])]]
            
            \begin{array}{l}
            t_0 := \tan \left(\left|x\right|\right)\\
            \mathbf{if}\;t\_0 \cdot t\_0 \leq 1:\\
            \;\;\;\;\frac{-1}{-1 - {t\_0}^{2}}\\
            
            \mathbf{else}:\\
            \;\;\;\;-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, \left|x\right| \cdot \left|x\right|, 1\right) \cdot \left|x\right|\right)\\
            
            
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if (*.f64 (tan.f64 x) (tan.f64 x)) < 1

              1. Initial program 99.5%

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

                  \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
                2. frac-2negN/A

                  \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                3. lower-/.f64N/A

                  \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                4. lift--.f64N/A

                  \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                5. sub-negate-revN/A

                  \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                6. lower--.f32N/A

                  \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                7. lower-unsound--.f32N/A

                  \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                8. lift-*.f64N/A

                  \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                9. pow2N/A

                  \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                10. pow-to-expN/A

                  \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                11. lower-unsound-expm1.f64N/A

                  \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                12. lower-unsound-*.f64N/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                13. lower-unsound-log.f64N/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                14. lift-+.f64N/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
                15. distribute-neg-inN/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
                16. metadata-evalN/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
                17. sub-flip-reverseN/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                18. lower--.f6449.5%

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                19. lift-*.f64N/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
                20. pow2N/A

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
                21. lower-pow.f6449.5%

                  \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
              3. Applied rewrites49.5%

                \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
              4. Taylor expanded in x around 0

                \[\leadsto \frac{\color{blue}{-1}}{-1 - {\tan x}^{2}} \]
              5. Step-by-step derivation
                1. Applied rewrites55.5%

                  \[\leadsto \frac{\color{blue}{-1}}{-1 - {\tan x}^{2}} \]

                if 1 < (*.f64 (tan.f64 x) (tan.f64 x))

                1. Initial program 99.5%

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

                    \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
                  2. frac-2negN/A

                    \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  3. lift--.f64N/A

                    \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  4. sub-negate-revN/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  5. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  6. difference-of-sqr-1N/A

                    \[\leadsto \frac{\color{blue}{\left(\tan x + 1\right) \cdot \left(\tan x - 1\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  7. associate-/l*N/A

                    \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  8. lower-*.f64N/A

                    \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  9. add-flipN/A

                    \[\leadsto \color{blue}{\left(\tan x - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  10. metadata-evalN/A

                    \[\leadsto \left(\tan x - \color{blue}{-1}\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  11. lower--.f64N/A

                    \[\leadsto \color{blue}{\left(\tan x - -1\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  12. lower-/.f64N/A

                    \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  13. lower--.f64N/A

                    \[\leadsto \left(\tan x - -1\right) \cdot \frac{\color{blue}{\tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  14. lift-+.f64N/A

                    \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
                  15. distribute-neg-inN/A

                    \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
                  16. metadata-evalN/A

                    \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
                  17. sub-flip-reverseN/A

                    \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                  18. lower--.f6499.4%

                    \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                3. Applied rewrites99.4%

                  \[\leadsto \color{blue}{\left(\tan x - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}}} \]
                4. Taylor expanded in x around 0

                  \[\leadsto \left(\color{blue}{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)} - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                5. Step-by-step derivation
                  1. lower-*.f64N/A

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

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

                    \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right) - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                  4. lower-pow.f6450.8%

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right) - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                6. Applied rewrites50.8%

                  \[\leadsto \left(\color{blue}{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)} - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                7. Taylor expanded in x around 0

                  \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{\color{blue}{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)} - 1}{-1 - {\tan x}^{2}} \]
                8. Step-by-step derivation
                  1. lower-*.f64N/A

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

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

                    \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right) - 1}{-1 - {\tan x}^{2}} \]
                  4. lower-pow.f6450.7%

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right) - 1}{-1 - {\tan x}^{2}} \]
                9. Applied rewrites50.7%

                  \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{\color{blue}{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)} - 1}{-1 - {\tan x}^{2}} \]
                10. Taylor expanded in x around 0

                  \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\color{blue}{\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}}^{2}} \]
                11. Step-by-step derivation
                  1. lower-*.f64N/A

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

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

                    \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right)\right)}^{2}} \]
                  4. lower-pow.f6450.8%

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right)\right)}^{2}} \]
                12. Applied rewrites50.8%

                  \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\color{blue}{\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}}^{2}} \]
                13. Step-by-step derivation
                  1. lift-*.f64N/A

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

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

                    \[\leadsto \left(\left(x \cdot 1 + \color{blue}{x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right)}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  4. *-rgt-identityN/A

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

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

                    \[\leadsto \left(\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  7. lift-pow.f64N/A

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

                    \[\leadsto \left(\left(x \cdot \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) + x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  9. lift-*.f64N/A

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

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

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

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

                    \[\leadsto \left(\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \frac{1}{3}, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  14. cube-unmultN/A

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  17. lower-*.f6450.8%

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}^{2}} \]
                14. Applied rewrites50.8%

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

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

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

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

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  7. lift-pow.f64N/A

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

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  11. associate-*r*N/A

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  14. cube-unmultN/A

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                  17. lower-*.f6450.8%

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}^{2}} \]
                16. Applied rewrites50.8%

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

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

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

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

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right)}^{2}} \]
                  7. lift-pow.f64N/A

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

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + x\right)}^{2}} \]
                  11. associate-*r*N/A

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

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

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

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

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

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right)\right)}^{2}} \]
                  17. lower-*.f6450.8%

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right)\right)}^{2}} \]
                18. Applied rewrites50.8%

                  \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \color{blue}{0.3333333333333333}, x\right)\right)}^{2}} \]
                19. Applied rewrites27.5%

                  \[\leadsto \color{blue}{-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, x \cdot x, 1\right) \cdot x\right)} \]
              6. Recombined 2 regimes into one program.
              7. Add Preprocessing

              Alternative 9: 59.9% accurate, 1.5× speedup?

              \[\begin{array}{l} t_0 := \tan \left(\left|x\right|\right)\\ \mathbf{if}\;t\_0 \cdot t\_0 \leq 1:\\ \;\;\;\;1\\ \mathbf{else}:\\ \;\;\;\;-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, \left|x\right| \cdot \left|x\right|, 1\right) \cdot \left|x\right|\right)\\ \end{array} \]
              (FPCore (x)
               :precision binary64
               (let* ((t_0 (tan (fabs x))))
                 (if (<= (* t_0 t_0) 1.0)
                   1.0
                   (-
                    (tanh
                     (log
                      (* (fma 0.3333333333333333 (* (fabs x) (fabs x)) 1.0) (fabs x))))))))
              double code(double x) {
              	double t_0 = tan(fabs(x));
              	double tmp;
              	if ((t_0 * t_0) <= 1.0) {
              		tmp = 1.0;
              	} else {
              		tmp = -tanh(log((fma(0.3333333333333333, (fabs(x) * fabs(x)), 1.0) * fabs(x))));
              	}
              	return tmp;
              }
              
              function code(x)
              	t_0 = tan(abs(x))
              	tmp = 0.0
              	if (Float64(t_0 * t_0) <= 1.0)
              		tmp = 1.0;
              	else
              		tmp = Float64(-tanh(log(Float64(fma(0.3333333333333333, Float64(abs(x) * abs(x)), 1.0) * abs(x)))));
              	end
              	return tmp
              end
              
              code[x_] := Block[{t$95$0 = N[Tan[N[Abs[x], $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(t$95$0 * t$95$0), $MachinePrecision], 1.0], 1.0, (-N[Tanh[N[Log[N[(N[(0.3333333333333333 * N[(N[Abs[x], $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision] * N[Abs[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision])]]
              
              \begin{array}{l}
              t_0 := \tan \left(\left|x\right|\right)\\
              \mathbf{if}\;t\_0 \cdot t\_0 \leq 1:\\
              \;\;\;\;1\\
              
              \mathbf{else}:\\
              \;\;\;\;-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, \left|x\right| \cdot \left|x\right|, 1\right) \cdot \left|x\right|\right)\\
              
              
              \end{array}
              
              Derivation
              1. Split input into 2 regimes
              2. if (*.f64 (tan.f64 x) (tan.f64 x)) < 1

                1. Initial program 99.5%

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

                    \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
                  2. frac-2negN/A

                    \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  3. lower-/.f64N/A

                    \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  4. lift--.f64N/A

                    \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  5. sub-negate-revN/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  6. lower--.f32N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  7. lower-unsound--.f32N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  8. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  9. pow2N/A

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  10. pow-to-expN/A

                    \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  11. lower-unsound-expm1.f64N/A

                    \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  12. lower-unsound-*.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  13. lower-unsound-log.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  14. lift-+.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
                  15. distribute-neg-inN/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
                  16. metadata-evalN/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
                  17. sub-flip-reverseN/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                  18. lower--.f6449.5%

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                  19. lift-*.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
                  20. pow2N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
                  21. lower-pow.f6449.5%

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
                3. Applied rewrites49.5%

                  \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
                4. Step-by-step derivation
                  1. lift-expm1.f64N/A

                    \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2} - 1}}{-1 - {\tan x}^{2}} \]
                  2. lift-*.f64N/A

                    \[\leadsto \frac{e^{\color{blue}{\log \tan x \cdot 2}} - 1}{-1 - {\tan x}^{2}} \]
                  3. lift-log.f64N/A

                    \[\leadsto \frac{e^{\color{blue}{\log \tan x} \cdot 2} - 1}{-1 - {\tan x}^{2}} \]
                  4. exp-to-powN/A

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
                  5. pow2N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
                  6. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
                  7. lower--.f6499.5%

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{-1 - {\tan x}^{2}} \]
                  8. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
                  9. pow2N/A

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
                  10. lift-pow.f6499.5%

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
                5. Applied rewrites99.5%

                  \[\leadsto \frac{\color{blue}{{\tan x}^{2} - 1}}{-1 - {\tan x}^{2}} \]
                6. Taylor expanded in x around 0

                  \[\leadsto \color{blue}{1} \]
                7. Step-by-step derivation
                  1. Applied rewrites55.1%

                    \[\leadsto \color{blue}{1} \]

                  if 1 < (*.f64 (tan.f64 x) (tan.f64 x))

                  1. Initial program 99.5%

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

                      \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
                    2. frac-2negN/A

                      \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                    3. lift--.f64N/A

                      \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    4. sub-negate-revN/A

                      \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    5. lift-*.f64N/A

                      \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    6. difference-of-sqr-1N/A

                      \[\leadsto \frac{\color{blue}{\left(\tan x + 1\right) \cdot \left(\tan x - 1\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    7. associate-/l*N/A

                      \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                    8. lower-*.f64N/A

                      \[\leadsto \color{blue}{\left(\tan x + 1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                    9. add-flipN/A

                      \[\leadsto \color{blue}{\left(\tan x - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    10. metadata-evalN/A

                      \[\leadsto \left(\tan x - \color{blue}{-1}\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    11. lower--.f64N/A

                      \[\leadsto \color{blue}{\left(\tan x - -1\right)} \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    12. lower-/.f64N/A

                      \[\leadsto \left(\tan x - -1\right) \cdot \color{blue}{\frac{\tan x - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                    13. lower--.f64N/A

                      \[\leadsto \left(\tan x - -1\right) \cdot \frac{\color{blue}{\tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                    14. lift-+.f64N/A

                      \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
                    15. distribute-neg-inN/A

                      \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
                    16. metadata-evalN/A

                      \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
                    17. sub-flip-reverseN/A

                      \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                    18. lower--.f6499.4%

                      \[\leadsto \left(\tan x - -1\right) \cdot \frac{\tan x - 1}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                  3. Applied rewrites99.4%

                    \[\leadsto \color{blue}{\left(\tan x - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}}} \]
                  4. Taylor expanded in x around 0

                    \[\leadsto \left(\color{blue}{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)} - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                  5. Step-by-step derivation
                    1. lower-*.f64N/A

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

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

                      \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right) - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                    4. lower-pow.f6450.8%

                      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right) - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                  6. Applied rewrites50.8%

                    \[\leadsto \left(\color{blue}{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)} - -1\right) \cdot \frac{\tan x - 1}{-1 - {\tan x}^{2}} \]
                  7. Taylor expanded in x around 0

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{\color{blue}{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)} - 1}{-1 - {\tan x}^{2}} \]
                  8. Step-by-step derivation
                    1. lower-*.f64N/A

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

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

                      \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right) - 1}{-1 - {\tan x}^{2}} \]
                    4. lower-pow.f6450.7%

                      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right) - 1}{-1 - {\tan x}^{2}} \]
                  9. Applied rewrites50.7%

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{\color{blue}{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)} - 1}{-1 - {\tan x}^{2}} \]
                  10. Taylor expanded in x around 0

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\color{blue}{\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}}^{2}} \]
                  11. Step-by-step derivation
                    1. lower-*.f64N/A

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

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

                      \[\leadsto \left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot \color{blue}{{x}^{2}}\right)\right)}^{2}} \]
                    4. lower-pow.f6450.8%

                      \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{\color{blue}{2}}\right)\right)}^{2}} \]
                  12. Applied rewrites50.8%

                    \[\leadsto \left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\color{blue}{\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}}^{2}} \]
                  13. Step-by-step derivation
                    1. lift-*.f64N/A

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

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

                      \[\leadsto \left(\left(x \cdot 1 + \color{blue}{x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right)}\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    4. *-rgt-identityN/A

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

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

                      \[\leadsto \left(\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    7. lift-pow.f64N/A

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

                      \[\leadsto \left(\left(x \cdot \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) + x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    9. lift-*.f64N/A

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

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

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

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

                      \[\leadsto \left(\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \frac{1}{3}, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    14. cube-unmultN/A

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    17. lower-*.f6450.8%

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}^{2}} \]
                  14. Applied rewrites50.8%

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

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

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

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

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    7. lift-pow.f64N/A

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

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    11. associate-*r*N/A

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    14. cube-unmultN/A

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(1 + \frac{1}{3} \cdot {x}^{2}\right)\right)}^{2}} \]
                    17. lower-*.f6450.8%

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(x \cdot \left(1 + 0.3333333333333333 \cdot {x}^{2}\right)\right)}^{2}} \]
                  16. Applied rewrites50.8%

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

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

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

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

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(\frac{1}{3} \cdot {x}^{2}\right) + x\right)}^{2}} \]
                    7. lift-pow.f64N/A

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

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + x\right)}^{2}} \]
                    11. associate-*r*N/A

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

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

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

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

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

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{1}{3}, x\right)\right)}^{2}} \]
                    17. lower-*.f6450.8%

                      \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right)\right)}^{2}} \]
                  18. Applied rewrites50.8%

                    \[\leadsto \left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - -1\right) \cdot \frac{\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333, x\right) - 1}{-1 - {\left(\mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \color{blue}{0.3333333333333333}, x\right)\right)}^{2}} \]
                  19. Applied rewrites27.5%

                    \[\leadsto \color{blue}{-\tanh \log \left(\mathsf{fma}\left(0.3333333333333333, x \cdot x, 1\right) \cdot x\right)} \]
                8. Recombined 2 regimes into one program.
                9. Add Preprocessing

                Alternative 10: 55.1% accurate, 164.8× speedup?

                \[1 \]
                (FPCore (x) :precision binary64 1.0)
                double code(double x) {
                	return 1.0;
                }
                
                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)
                use fmin_fmax_functions
                    real(8), intent (in) :: x
                    code = 1.0d0
                end function
                
                public static double code(double x) {
                	return 1.0;
                }
                
                def code(x):
                	return 1.0
                
                function code(x)
                	return 1.0
                end
                
                function tmp = code(x)
                	tmp = 1.0;
                end
                
                code[x_] := 1.0
                
                1
                
                Derivation
                1. Initial program 99.5%

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

                    \[\leadsto \color{blue}{\frac{1 - \tan x \cdot \tan x}{1 + \tan x \cdot \tan x}} \]
                  2. frac-2negN/A

                    \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  3. lower-/.f64N/A

                    \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(\left(1 - \tan x \cdot \tan x\right)\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)}} \]
                  4. lift--.f64N/A

                    \[\leadsto \frac{\mathsf{neg}\left(\color{blue}{\left(1 - \tan x \cdot \tan x\right)}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  5. sub-negate-revN/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  6. lower--.f32N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  7. lower-unsound--.f32N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  8. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  9. pow2N/A

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  10. pow-to-expN/A

                    \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2}} - 1}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  11. lower-unsound-expm1.f64N/A

                    \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  12. lower-unsound-*.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x \cdot 2}\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  13. lower-unsound-log.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\log \tan x} \cdot 2\right)}{\mathsf{neg}\left(\left(1 + \tan x \cdot \tan x\right)\right)} \]
                  14. lift-+.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\mathsf{neg}\left(\color{blue}{\left(1 + \tan x \cdot \tan x\right)}\right)} \]
                  15. distribute-neg-inN/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)}} \]
                  16. metadata-evalN/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1} + \left(\mathsf{neg}\left(\tan x \cdot \tan x\right)\right)} \]
                  17. sub-flip-reverseN/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                  18. lower--.f6449.5%

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{\color{blue}{-1 - \tan x \cdot \tan x}} \]
                  19. lift-*.f64N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{\tan x \cdot \tan x}} \]
                  20. pow2N/A

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
                  21. lower-pow.f6449.5%

                    \[\leadsto \frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - \color{blue}{{\tan x}^{2}}} \]
                3. Applied rewrites49.5%

                  \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\log \tan x \cdot 2\right)}{-1 - {\tan x}^{2}}} \]
                4. Step-by-step derivation
                  1. lift-expm1.f64N/A

                    \[\leadsto \frac{\color{blue}{e^{\log \tan x \cdot 2} - 1}}{-1 - {\tan x}^{2}} \]
                  2. lift-*.f64N/A

                    \[\leadsto \frac{e^{\color{blue}{\log \tan x \cdot 2}} - 1}{-1 - {\tan x}^{2}} \]
                  3. lift-log.f64N/A

                    \[\leadsto \frac{e^{\color{blue}{\log \tan x} \cdot 2} - 1}{-1 - {\tan x}^{2}} \]
                  4. exp-to-powN/A

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
                  5. pow2N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
                  6. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
                  7. lower--.f6499.5%

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x - 1}}{-1 - {\tan x}^{2}} \]
                  8. lift-*.f64N/A

                    \[\leadsto \frac{\color{blue}{\tan x \cdot \tan x} - 1}{-1 - {\tan x}^{2}} \]
                  9. pow2N/A

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
                  10. lift-pow.f6499.5%

                    \[\leadsto \frac{\color{blue}{{\tan x}^{2}} - 1}{-1 - {\tan x}^{2}} \]
                5. Applied rewrites99.5%

                  \[\leadsto \frac{\color{blue}{{\tan x}^{2} - 1}}{-1 - {\tan x}^{2}} \]
                6. Taylor expanded in x around 0

                  \[\leadsto \color{blue}{1} \]
                7. Step-by-step derivation
                  1. Applied rewrites55.1%

                    \[\leadsto \color{blue}{1} \]
                  2. Add Preprocessing

                  Reproduce

                  ?
                  herbie shell --seed 2025204 
                  (FPCore (x)
                    :name "Trigonometry B"
                    :precision binary64
                    (/ (- 1.0 (* (tan x) (tan x))) (+ 1.0 (* (tan x) (tan x)))))