FastMath dist4

Percentage Accurate: 87.6% → 100.0%
Time: 16.5s
Alternatives: 13
Speedup: 1.7×

Specification

?
\[\begin{array}{l} \\ \left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))
double code(double d1, double d2, double d3, double d4) {
	return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    code = (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1)
end function
public static double code(double d1, double d2, double d3, double d4) {
	return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
}
def code(d1, d2, d3, d4):
	return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1)
function code(d1, d2, d3, d4)
	return Float64(Float64(Float64(Float64(d1 * d2) - Float64(d1 * d3)) + Float64(d4 * d1)) - Float64(d1 * d1))
end
function tmp = code(d1, d2, d3, d4)
	tmp = (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
end
code[d1_, d2_, d3_, d4_] := N[(N[(N[(N[(d1 * d2), $MachinePrecision] - N[(d1 * d3), $MachinePrecision]), $MachinePrecision] + N[(d4 * d1), $MachinePrecision]), $MachinePrecision] - N[(d1 * d1), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\end{array}

Sampling outcomes in binary64 precision:

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 13 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: 87.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))
double code(double d1, double d2, double d3, double d4) {
	return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    code = (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1)
end function
public static double code(double d1, double d2, double d3, double d4) {
	return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
}
def code(d1, d2, d3, d4):
	return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1)
function code(d1, d2, d3, d4)
	return Float64(Float64(Float64(Float64(d1 * d2) - Float64(d1 * d3)) + Float64(d4 * d1)) - Float64(d1 * d1))
end
function tmp = code(d1, d2, d3, d4)
	tmp = (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
end
code[d1_, d2_, d3_, d4_] := N[(N[(N[(N[(d1 * d2), $MachinePrecision] - N[(d1 * d3), $MachinePrecision]), $MachinePrecision] + N[(d4 * d1), $MachinePrecision]), $MachinePrecision] - N[(d1 * d1), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\end{array}

Alternative 1: 100.0% accurate, 1.7× speedup?

\[\begin{array}{l} \\ d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right) \end{array} \]
(FPCore (d1 d2 d3 d4) :precision binary64 (* d1 (+ (- d2 d3) (- d4 d1))))
double code(double d1, double d2, double d3, double d4) {
	return d1 * ((d2 - d3) + (d4 - d1));
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    code = d1 * ((d2 - d3) + (d4 - d1))
end function
public static double code(double d1, double d2, double d3, double d4) {
	return d1 * ((d2 - d3) + (d4 - d1));
}
def code(d1, d2, d3, d4):
	return d1 * ((d2 - d3) + (d4 - d1))
function code(d1, d2, d3, d4)
	return Float64(d1 * Float64(Float64(d2 - d3) + Float64(d4 - d1)))
end
function tmp = code(d1, d2, d3, d4)
	tmp = d1 * ((d2 - d3) + (d4 - d1));
end
code[d1_, d2_, d3_, d4_] := N[(d1 * N[(N[(d2 - d3), $MachinePrecision] + N[(d4 - d1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)
\end{array}
Derivation
  1. Initial program 86.7%

    \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
  2. Step-by-step derivation
    1. associate--l+86.7%

      \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
    2. distribute-lft-out--88.7%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
    3. distribute-rgt-out--91.8%

      \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
    4. distribute-lft-out100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
  3. Simplified100.0%

    \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
  4. Add Preprocessing
  5. Add Preprocessing

Alternative 2: 39.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(-d3\right)\\ t_1 := d1 \cdot \left(-d1\right)\\ \mathbf{if}\;d2 \leq -7.5 \cdot 10^{+68}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -7.4 \cdot 10^{+18}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -9 \cdot 10^{+16}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.1 \cdot 10^{+14}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{+14}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -720000000000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -500000000000:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -24000000000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1700000:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -0.072:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.05 \cdot 10^{-6}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-11}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -4.1 \cdot 10^{-16}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-23}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -3 \cdot 10^{-25}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4 \cdot 10^{-26}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.8 \cdot 10^{-33}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.1 \cdot 10^{-45}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.65 \cdot 10^{-52}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-54}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -1.5 \cdot 10^{-68}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -3.5 \cdot 10^{-70}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -1.16 \cdot 10^{-78}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.9 \cdot 10^{-80}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -8.5 \cdot 10^{-92}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-101}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -6 \cdot 10^{-104}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -2.55 \cdot 10^{-104}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.45 \cdot 10^{-111}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.45 \cdot 10^{-114}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -7.4 \cdot 10^{-118}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-120}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -6.4 \cdot 10^{-133}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-137}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -3.7 \cdot 10^{-141}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -5 \cdot 10^{-146}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -4.3 \cdot 10^{-148}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.02 \cdot 10^{-149}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-153}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-161}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-183}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1 \cdot 10^{-197}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-208}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -5.4 \cdot 10^{-242}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.5 \cdot 10^{-244}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -4.4 \cdot 10^{-259}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.28 \cdot 10^{-264}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -7.4 \cdot 10^{-267}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -3.3 \cdot 10^{-276}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-285}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-287}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -9.2 \cdot 10^{-288}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -5.5 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.1 \cdot 10^{-294}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.4 \cdot 10^{-297}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-305}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 8 \cdot 10^{-303}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 9.2 \cdot 10^{-290}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 1.3 \cdot 10^{-285}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-259}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 3.1 \cdot 10^{-255}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-251}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-245}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-234}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 3.5 \cdot 10^{-207}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 3 \cdot 10^{-205}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 6.2 \cdot 10^{-199}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 4.1 \cdot 10^{-197}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 5.4 \cdot 10^{-187}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 4.6 \cdot 10^{-179}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 2.85 \cdot 10^{-168}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.12 \cdot 10^{-164}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-120}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 4.5 \cdot 10^{-108}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 1.66 \cdot 10^{-99}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-91}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 2.9 \cdot 10^{-90}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 3.2 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-44}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 2.9 \cdot 10^{-21}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 4 \cdot 10^{-9}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1800000:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 5.8 \cdot 10^{+21}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 3.1 \cdot 10^{+34}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.2 \cdot 10^{+36}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 1.7 \cdot 10^{+65} \lor \neg \left(d2 \leq 5.3 \cdot 10^{+76} \lor \neg \left(d2 \leq 1.1 \cdot 10^{+83}\right) \land d2 \leq 2.5 \cdot 10^{+85}\right):\\ \;\;\;\;d1 \cdot d4\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- d3))) (t_1 (* d1 (- d1))))
   (if (<= d2 -7.5e+68)
     (* d1 d2)
     (if (<= d2 -7.4e+18)
       t_1
       (if (<= d2 -9e+16)
         (* d1 d4)
         (if (<= d2 -4.1e+14)
           t_0
           (if (<= d2 -1.3e+14)
             t_1
             (if (<= d2 -720000000000.0)
               t_0
               (if (<= d2 -500000000000.0)
                 t_1
                 (if (<= d2 -24000000000.0)
                   t_0
                   (if (<= d2 -1700000.0)
                     t_1
                     (if (<= d2 -0.072)
                       t_0
                       (if (<= d2 -1.05e-6)
                         t_1
                         (if (<= d2 -5.2e-11)
                           t_0
                           (if (<= d2 -4.1e-16)
                             (* d1 d4)
                             (if (<= d2 -2.7e-23)
                               t_0
                               (if (<= d2 -3e-25)
                                 (* d1 d4)
                                 (if (<= d2 -4e-26)
                                   t_0
                                   (if (<= d2 -1.8e-33)
                                     (* d1 d4)
                                     (if (<= d2 -2.1e-45)
                                       t_0
                                       (if (<= d2 -1.65e-52)
                                         t_1
                                         (if (<= d2 -1.6e-52)
                                           (* d1 d2)
                                           (if (<= d2 -4.5e-54)
                                             t_1
                                             (if (<= d2 -1.5e-68)
                                               (* d1 d4)
                                               (if (<= d2 -3.5e-70)
                                                 t_1
                                                 (if (<= d2 -1.16e-78)
                                                   t_0
                                                   (if (<= d2 -2.9e-80)
                                                     t_1
                                                     (if (<= d2 -8.5e-92)
                                                       (* d1 d4)
                                                       (if (<= d2 -4.8e-101)
                                                         t_0
                                                         (if (<= d2 -6e-104)
                                                           t_1
                                                           (if (<=
                                                                d2
                                                                -2.55e-104)
                                                             (* d1 d4)
                                                             (if (<=
                                                                  d2
                                                                  -1.45e-111)
                                                               t_0
                                                               (if (<=
                                                                    d2
                                                                    -1.45e-114)
                                                                 (* d1 d4)
                                                                 (if (<=
                                                                      d2
                                                                      -7.4e-118)
                                                                   t_0
                                                                   (if (<=
                                                                        d2
                                                                        -1.3e-120)
                                                                     t_1
                                                                     (if (<=
                                                                          d2
                                                                          -6.4e-133)
                                                                       t_0
                                                                       (if (<=
                                                                            d2
                                                                            -2.7e-137)
                                                                         t_1
                                                                         (if (<=
                                                                              d2
                                                                              -3.7e-141)
                                                                           (*
                                                                            d1
                                                                            d4)
                                                                           (if (<=
                                                                                d2
                                                                                -5e-146)
                                                                             t_0
                                                                             (if (<=
                                                                                  d2
                                                                                  -4.3e-148)
                                                                               (*
                                                                                d1
                                                                                d4)
                                                                               (if (<=
                                                                                    d2
                                                                                    -1.02e-149)
                                                                                 t_1
                                                                                 (if (<=
                                                                                      d2
                                                                                      -7e-153)
                                                                                   (*
                                                                                    d1
                                                                                    d4)
                                                                                   (if (<=
                                                                                        d2
                                                                                        -5.2e-161)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          d2
                                                                                          -7e-183)
                                                                                       (*
                                                                                        d1
                                                                                        d4)
                                                                                       (if (<=
                                                                                            d2
                                                                                            -1e-197)
                                                                                         t_0
                                                                                         (if (<=
                                                                                              d2
                                                                                              -4.2e-208)
                                                                                           t_1
                                                                                           (if (<=
                                                                                                d2
                                                                                                -5.4e-242)
                                                                                             t_0
                                                                                             (if (<=
                                                                                                  d2
                                                                                                  -1.5e-244)
                                                                                               t_1
                                                                                               (if (<=
                                                                                                    d2
                                                                                                    -4.4e-259)
                                                                                                 t_0
                                                                                                 (if (<=
                                                                                                      d2
                                                                                                      -1.28e-264)
                                                                                                   (*
                                                                                                    d1
                                                                                                    d4)
                                                                                                   (if (<=
                                                                                                        d2
                                                                                                        -7.4e-267)
                                                                                                     t_1
                                                                                                     (if (<=
                                                                                                          d2
                                                                                                          -3.3e-276)
                                                                                                       (*
                                                                                                        d1
                                                                                                        d4)
                                                                                                       (if (<=
                                                                                                            d2
                                                                                                            -2.7e-285)
                                                                                                         t_0
                                                                                                         (if (<=
                                                                                                              d2
                                                                                                              -7e-287)
                                                                                                           (*
                                                                                                            d1
                                                                                                            d4)
                                                                                                           (if (<=
                                                                                                                d2
                                                                                                                -9.2e-288)
                                                                                                             t_0
                                                                                                             (if (<=
                                                                                                                  d2
                                                                                                                  -5.5e-292)
                                                                                                               (*
                                                                                                                d1
                                                                                                                d4)
                                                                                                               (if (<=
                                                                                                                    d2
                                                                                                                    -2.1e-294)
                                                                                                                 t_0
                                                                                                                 (if (<=
                                                                                                                      d2
                                                                                                                      -1.4e-297)
                                                                                                                   t_1
                                                                                                                   (if (<=
                                                                                                                        d2
                                                                                                                        -5.8e-305)
                                                                                                                     t_0
                                                                                                                     (if (<=
                                                                                                                          d2
                                                                                                                          8e-303)
                                                                                                                       t_1
                                                                                                                       (if (<=
                                                                                                                            d2
                                                                                                                            9.2e-290)
                                                                                                                         t_0
                                                                                                                         (if (<=
                                                                                                                              d2
                                                                                                                              1.3e-285)
                                                                                                                           (*
                                                                                                                            d1
                                                                                                                            d4)
                                                                                                                           (if (<=
                                                                                                                                d2
                                                                                                                                3.3e-259)
                                                                                                                             t_0
                                                                                                                             (if (<=
                                                                                                                                  d2
                                                                                                                                  3.1e-255)
                                                                                                                               (*
                                                                                                                                d1
                                                                                                                                d4)
                                                                                                                               (if (<=
                                                                                                                                    d2
                                                                                                                                    8.5e-251)
                                                                                                                                 t_0
                                                                                                                                 (if (<=
                                                                                                                                      d2
                                                                                                                                      8.5e-245)
                                                                                                                                   (*
                                                                                                                                    d1
                                                                                                                                    d4)
                                                                                                                                   (if (<=
                                                                                                                                        d2
                                                                                                                                        1.6e-234)
                                                                                                                                     t_1
                                                                                                                                     (if (<=
                                                                                                                                          d2
                                                                                                                                          3.5e-207)
                                                                                                                                       t_0
                                                                                                                                       (if (<=
                                                                                                                                            d2
                                                                                                                                            3e-205)
                                                                                                                                         t_1
                                                                                                                                         (if (<=
                                                                                                                                              d2
                                                                                                                                              6.2e-199)
                                                                                                                                           (*
                                                                                                                                            d1
                                                                                                                                            d4)
                                                                                                                                           (if (<=
                                                                                                                                                d2
                                                                                                                                                4.1e-197)
                                                                                                                                             t_1
                                                                                                                                             (if (<=
                                                                                                                                                  d2
                                                                                                                                                  5.4e-187)
                                                                                                                                               (*
                                                                                                                                                d1
                                                                                                                                                d4)
                                                                                                                                               (if (<=
                                                                                                                                                    d2
                                                                                                                                                    4.6e-179)
                                                                                                                                                 t_1
                                                                                                                                                 (if (<=
                                                                                                                                                      d2
                                                                                                                                                      2.85e-168)
                                                                                                                                                   (*
                                                                                                                                                    d1
                                                                                                                                                    d4)
                                                                                                                                                   (if (<=
                                                                                                                                                        d2
                                                                                                                                                        1.12e-164)
                                                                                                                                                     t_1
                                                                                                                                                     (if (<=
                                                                                                                                                          d2
                                                                                                                                                          1.6e-120)
                                                                                                                                                       (*
                                                                                                                                                        d1
                                                                                                                                                        d4)
                                                                                                                                                       (if (<=
                                                                                                                                                            d2
                                                                                                                                                            4.5e-108)
                                                                                                                                                         t_0
                                                                                                                                                         (if (<=
                                                                                                                                                              d2
                                                                                                                                                              1.66e-99)
                                                                                                                                                           (*
                                                                                                                                                            d1
                                                                                                                                                            d4)
                                                                                                                                                           (if (<=
                                                                                                                                                                d2
                                                                                                                                                                8.5e-91)
                                                                                                                                                             t_0
                                                                                                                                                             (if (<=
                                                                                                                                                                  d2
                                                                                                                                                                  2.9e-90)
                                                                                                                                                               (*
                                                                                                                                                                d1
                                                                                                                                                                d4)
                                                                                                                                                               (if (<=
                                                                                                                                                                    d2
                                                                                                                                                                    3.2e-85)
                                                                                                                                                                 t_1
                                                                                                                                                                 (if (<=
                                                                                                                                                                      d2
                                                                                                                                                                      8.5e-44)
                                                                                                                                                                   (*
                                                                                                                                                                    d1
                                                                                                                                                                    d4)
                                                                                                                                                                   (if (<=
                                                                                                                                                                        d2
                                                                                                                                                                        2.9e-21)
                                                                                                                                                                     t_1
                                                                                                                                                                     (if (<=
                                                                                                                                                                          d2
                                                                                                                                                                          4e-9)
                                                                                                                                                                       (*
                                                                                                                                                                        d1
                                                                                                                                                                        d4)
                                                                                                                                                                       (if (<=
                                                                                                                                                                            d2
                                                                                                                                                                            1800000.0)
                                                                                                                                                                         t_1
                                                                                                                                                                         (if (<=
                                                                                                                                                                              d2
                                                                                                                                                                              5.8e+21)
                                                                                                                                                                           t_0
                                                                                                                                                                           (if (<=
                                                                                                                                                                                d2
                                                                                                                                                                                3.1e+34)
                                                                                                                                                                             (*
                                                                                                                                                                              d1
                                                                                                                                                                              d4)
                                                                                                                                                                             (if (<=
                                                                                                                                                                                  d2
                                                                                                                                                                                  1.2e+36)
                                                                                                                                                                               t_1
                                                                                                                                                                               (if (or (<=
                                                                                                                                                                                        d2
                                                                                                                                                                                        1.7e+65)
                                                                                                                                                                                       (not
                                                                                                                                                                                        (or (<=
                                                                                                                                                                                             d2
                                                                                                                                                                                             5.3e+76)
                                                                                                                                                                                            (and (not
                                                                                                                                                                                                  (<=
                                                                                                                                                                                                   d2
                                                                                                                                                                                                   1.1e+83))
                                                                                                                                                                                                 (<=
                                                                                                                                                                                                  d2
                                                                                                                                                                                                  2.5e+85)))))
                                                                                                                                                                                 (*
                                                                                                                                                                                  d1
                                                                                                                                                                                  d4)
                                                                                                                                                                                 t_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * -d3;
	double t_1 = d1 * -d1;
	double tmp;
	if (d2 <= -7.5e+68) {
		tmp = d1 * d2;
	} else if (d2 <= -7.4e+18) {
		tmp = t_1;
	} else if (d2 <= -9e+16) {
		tmp = d1 * d4;
	} else if (d2 <= -4.1e+14) {
		tmp = t_0;
	} else if (d2 <= -1.3e+14) {
		tmp = t_1;
	} else if (d2 <= -720000000000.0) {
		tmp = t_0;
	} else if (d2 <= -500000000000.0) {
		tmp = t_1;
	} else if (d2 <= -24000000000.0) {
		tmp = t_0;
	} else if (d2 <= -1700000.0) {
		tmp = t_1;
	} else if (d2 <= -0.072) {
		tmp = t_0;
	} else if (d2 <= -1.05e-6) {
		tmp = t_1;
	} else if (d2 <= -5.2e-11) {
		tmp = t_0;
	} else if (d2 <= -4.1e-16) {
		tmp = d1 * d4;
	} else if (d2 <= -2.7e-23) {
		tmp = t_0;
	} else if (d2 <= -3e-25) {
		tmp = d1 * d4;
	} else if (d2 <= -4e-26) {
		tmp = t_0;
	} else if (d2 <= -1.8e-33) {
		tmp = d1 * d4;
	} else if (d2 <= -2.1e-45) {
		tmp = t_0;
	} else if (d2 <= -1.65e-52) {
		tmp = t_1;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * d2;
	} else if (d2 <= -4.5e-54) {
		tmp = t_1;
	} else if (d2 <= -1.5e-68) {
		tmp = d1 * d4;
	} else if (d2 <= -3.5e-70) {
		tmp = t_1;
	} else if (d2 <= -1.16e-78) {
		tmp = t_0;
	} else if (d2 <= -2.9e-80) {
		tmp = t_1;
	} else if (d2 <= -8.5e-92) {
		tmp = d1 * d4;
	} else if (d2 <= -4.8e-101) {
		tmp = t_0;
	} else if (d2 <= -6e-104) {
		tmp = t_1;
	} else if (d2 <= -2.55e-104) {
		tmp = d1 * d4;
	} else if (d2 <= -1.45e-111) {
		tmp = t_0;
	} else if (d2 <= -1.45e-114) {
		tmp = d1 * d4;
	} else if (d2 <= -7.4e-118) {
		tmp = t_0;
	} else if (d2 <= -1.3e-120) {
		tmp = t_1;
	} else if (d2 <= -6.4e-133) {
		tmp = t_0;
	} else if (d2 <= -2.7e-137) {
		tmp = t_1;
	} else if (d2 <= -3.7e-141) {
		tmp = d1 * d4;
	} else if (d2 <= -5e-146) {
		tmp = t_0;
	} else if (d2 <= -4.3e-148) {
		tmp = d1 * d4;
	} else if (d2 <= -1.02e-149) {
		tmp = t_1;
	} else if (d2 <= -7e-153) {
		tmp = d1 * d4;
	} else if (d2 <= -5.2e-161) {
		tmp = t_1;
	} else if (d2 <= -7e-183) {
		tmp = d1 * d4;
	} else if (d2 <= -1e-197) {
		tmp = t_0;
	} else if (d2 <= -4.2e-208) {
		tmp = t_1;
	} else if (d2 <= -5.4e-242) {
		tmp = t_0;
	} else if (d2 <= -1.5e-244) {
		tmp = t_1;
	} else if (d2 <= -4.4e-259) {
		tmp = t_0;
	} else if (d2 <= -1.28e-264) {
		tmp = d1 * d4;
	} else if (d2 <= -7.4e-267) {
		tmp = t_1;
	} else if (d2 <= -3.3e-276) {
		tmp = d1 * d4;
	} else if (d2 <= -2.7e-285) {
		tmp = t_0;
	} else if (d2 <= -7e-287) {
		tmp = d1 * d4;
	} else if (d2 <= -9.2e-288) {
		tmp = t_0;
	} else if (d2 <= -5.5e-292) {
		tmp = d1 * d4;
	} else if (d2 <= -2.1e-294) {
		tmp = t_0;
	} else if (d2 <= -1.4e-297) {
		tmp = t_1;
	} else if (d2 <= -5.8e-305) {
		tmp = t_0;
	} else if (d2 <= 8e-303) {
		tmp = t_1;
	} else if (d2 <= 9.2e-290) {
		tmp = t_0;
	} else if (d2 <= 1.3e-285) {
		tmp = d1 * d4;
	} else if (d2 <= 3.3e-259) {
		tmp = t_0;
	} else if (d2 <= 3.1e-255) {
		tmp = d1 * d4;
	} else if (d2 <= 8.5e-251) {
		tmp = t_0;
	} else if (d2 <= 8.5e-245) {
		tmp = d1 * d4;
	} else if (d2 <= 1.6e-234) {
		tmp = t_1;
	} else if (d2 <= 3.5e-207) {
		tmp = t_0;
	} else if (d2 <= 3e-205) {
		tmp = t_1;
	} else if (d2 <= 6.2e-199) {
		tmp = d1 * d4;
	} else if (d2 <= 4.1e-197) {
		tmp = t_1;
	} else if (d2 <= 5.4e-187) {
		tmp = d1 * d4;
	} else if (d2 <= 4.6e-179) {
		tmp = t_1;
	} else if (d2 <= 2.85e-168) {
		tmp = d1 * d4;
	} else if (d2 <= 1.12e-164) {
		tmp = t_1;
	} else if (d2 <= 1.6e-120) {
		tmp = d1 * d4;
	} else if (d2 <= 4.5e-108) {
		tmp = t_0;
	} else if (d2 <= 1.66e-99) {
		tmp = d1 * d4;
	} else if (d2 <= 8.5e-91) {
		tmp = t_0;
	} else if (d2 <= 2.9e-90) {
		tmp = d1 * d4;
	} else if (d2 <= 3.2e-85) {
		tmp = t_1;
	} else if (d2 <= 8.5e-44) {
		tmp = d1 * d4;
	} else if (d2 <= 2.9e-21) {
		tmp = t_1;
	} else if (d2 <= 4e-9) {
		tmp = d1 * d4;
	} else if (d2 <= 1800000.0) {
		tmp = t_1;
	} else if (d2 <= 5.8e+21) {
		tmp = t_0;
	} else if (d2 <= 3.1e+34) {
		tmp = d1 * d4;
	} else if (d2 <= 1.2e+36) {
		tmp = t_1;
	} else if ((d2 <= 1.7e+65) || !((d2 <= 5.3e+76) || (!(d2 <= 1.1e+83) && (d2 <= 2.5e+85)))) {
		tmp = d1 * d4;
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = d1 * -d3
    t_1 = d1 * -d1
    if (d2 <= (-7.5d+68)) then
        tmp = d1 * d2
    else if (d2 <= (-7.4d+18)) then
        tmp = t_1
    else if (d2 <= (-9d+16)) then
        tmp = d1 * d4
    else if (d2 <= (-4.1d+14)) then
        tmp = t_0
    else if (d2 <= (-1.3d+14)) then
        tmp = t_1
    else if (d2 <= (-720000000000.0d0)) then
        tmp = t_0
    else if (d2 <= (-500000000000.0d0)) then
        tmp = t_1
    else if (d2 <= (-24000000000.0d0)) then
        tmp = t_0
    else if (d2 <= (-1700000.0d0)) then
        tmp = t_1
    else if (d2 <= (-0.072d0)) then
        tmp = t_0
    else if (d2 <= (-1.05d-6)) then
        tmp = t_1
    else if (d2 <= (-5.2d-11)) then
        tmp = t_0
    else if (d2 <= (-4.1d-16)) then
        tmp = d1 * d4
    else if (d2 <= (-2.7d-23)) then
        tmp = t_0
    else if (d2 <= (-3d-25)) then
        tmp = d1 * d4
    else if (d2 <= (-4d-26)) then
        tmp = t_0
    else if (d2 <= (-1.8d-33)) then
        tmp = d1 * d4
    else if (d2 <= (-2.1d-45)) then
        tmp = t_0
    else if (d2 <= (-1.65d-52)) then
        tmp = t_1
    else if (d2 <= (-1.6d-52)) then
        tmp = d1 * d2
    else if (d2 <= (-4.5d-54)) then
        tmp = t_1
    else if (d2 <= (-1.5d-68)) then
        tmp = d1 * d4
    else if (d2 <= (-3.5d-70)) then
        tmp = t_1
    else if (d2 <= (-1.16d-78)) then
        tmp = t_0
    else if (d2 <= (-2.9d-80)) then
        tmp = t_1
    else if (d2 <= (-8.5d-92)) then
        tmp = d1 * d4
    else if (d2 <= (-4.8d-101)) then
        tmp = t_0
    else if (d2 <= (-6d-104)) then
        tmp = t_1
    else if (d2 <= (-2.55d-104)) then
        tmp = d1 * d4
    else if (d2 <= (-1.45d-111)) then
        tmp = t_0
    else if (d2 <= (-1.45d-114)) then
        tmp = d1 * d4
    else if (d2 <= (-7.4d-118)) then
        tmp = t_0
    else if (d2 <= (-1.3d-120)) then
        tmp = t_1
    else if (d2 <= (-6.4d-133)) then
        tmp = t_0
    else if (d2 <= (-2.7d-137)) then
        tmp = t_1
    else if (d2 <= (-3.7d-141)) then
        tmp = d1 * d4
    else if (d2 <= (-5d-146)) then
        tmp = t_0
    else if (d2 <= (-4.3d-148)) then
        tmp = d1 * d4
    else if (d2 <= (-1.02d-149)) then
        tmp = t_1
    else if (d2 <= (-7d-153)) then
        tmp = d1 * d4
    else if (d2 <= (-5.2d-161)) then
        tmp = t_1
    else if (d2 <= (-7d-183)) then
        tmp = d1 * d4
    else if (d2 <= (-1d-197)) then
        tmp = t_0
    else if (d2 <= (-4.2d-208)) then
        tmp = t_1
    else if (d2 <= (-5.4d-242)) then
        tmp = t_0
    else if (d2 <= (-1.5d-244)) then
        tmp = t_1
    else if (d2 <= (-4.4d-259)) then
        tmp = t_0
    else if (d2 <= (-1.28d-264)) then
        tmp = d1 * d4
    else if (d2 <= (-7.4d-267)) then
        tmp = t_1
    else if (d2 <= (-3.3d-276)) then
        tmp = d1 * d4
    else if (d2 <= (-2.7d-285)) then
        tmp = t_0
    else if (d2 <= (-7d-287)) then
        tmp = d1 * d4
    else if (d2 <= (-9.2d-288)) then
        tmp = t_0
    else if (d2 <= (-5.5d-292)) then
        tmp = d1 * d4
    else if (d2 <= (-2.1d-294)) then
        tmp = t_0
    else if (d2 <= (-1.4d-297)) then
        tmp = t_1
    else if (d2 <= (-5.8d-305)) then
        tmp = t_0
    else if (d2 <= 8d-303) then
        tmp = t_1
    else if (d2 <= 9.2d-290) then
        tmp = t_0
    else if (d2 <= 1.3d-285) then
        tmp = d1 * d4
    else if (d2 <= 3.3d-259) then
        tmp = t_0
    else if (d2 <= 3.1d-255) then
        tmp = d1 * d4
    else if (d2 <= 8.5d-251) then
        tmp = t_0
    else if (d2 <= 8.5d-245) then
        tmp = d1 * d4
    else if (d2 <= 1.6d-234) then
        tmp = t_1
    else if (d2 <= 3.5d-207) then
        tmp = t_0
    else if (d2 <= 3d-205) then
        tmp = t_1
    else if (d2 <= 6.2d-199) then
        tmp = d1 * d4
    else if (d2 <= 4.1d-197) then
        tmp = t_1
    else if (d2 <= 5.4d-187) then
        tmp = d1 * d4
    else if (d2 <= 4.6d-179) then
        tmp = t_1
    else if (d2 <= 2.85d-168) then
        tmp = d1 * d4
    else if (d2 <= 1.12d-164) then
        tmp = t_1
    else if (d2 <= 1.6d-120) then
        tmp = d1 * d4
    else if (d2 <= 4.5d-108) then
        tmp = t_0
    else if (d2 <= 1.66d-99) then
        tmp = d1 * d4
    else if (d2 <= 8.5d-91) then
        tmp = t_0
    else if (d2 <= 2.9d-90) then
        tmp = d1 * d4
    else if (d2 <= 3.2d-85) then
        tmp = t_1
    else if (d2 <= 8.5d-44) then
        tmp = d1 * d4
    else if (d2 <= 2.9d-21) then
        tmp = t_1
    else if (d2 <= 4d-9) then
        tmp = d1 * d4
    else if (d2 <= 1800000.0d0) then
        tmp = t_1
    else if (d2 <= 5.8d+21) then
        tmp = t_0
    else if (d2 <= 3.1d+34) then
        tmp = d1 * d4
    else if (d2 <= 1.2d+36) then
        tmp = t_1
    else if ((d2 <= 1.7d+65) .or. (.not. (d2 <= 5.3d+76) .or. (.not. (d2 <= 1.1d+83)) .and. (d2 <= 2.5d+85))) then
        tmp = d1 * d4
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * -d3;
	double t_1 = d1 * -d1;
	double tmp;
	if (d2 <= -7.5e+68) {
		tmp = d1 * d2;
	} else if (d2 <= -7.4e+18) {
		tmp = t_1;
	} else if (d2 <= -9e+16) {
		tmp = d1 * d4;
	} else if (d2 <= -4.1e+14) {
		tmp = t_0;
	} else if (d2 <= -1.3e+14) {
		tmp = t_1;
	} else if (d2 <= -720000000000.0) {
		tmp = t_0;
	} else if (d2 <= -500000000000.0) {
		tmp = t_1;
	} else if (d2 <= -24000000000.0) {
		tmp = t_0;
	} else if (d2 <= -1700000.0) {
		tmp = t_1;
	} else if (d2 <= -0.072) {
		tmp = t_0;
	} else if (d2 <= -1.05e-6) {
		tmp = t_1;
	} else if (d2 <= -5.2e-11) {
		tmp = t_0;
	} else if (d2 <= -4.1e-16) {
		tmp = d1 * d4;
	} else if (d2 <= -2.7e-23) {
		tmp = t_0;
	} else if (d2 <= -3e-25) {
		tmp = d1 * d4;
	} else if (d2 <= -4e-26) {
		tmp = t_0;
	} else if (d2 <= -1.8e-33) {
		tmp = d1 * d4;
	} else if (d2 <= -2.1e-45) {
		tmp = t_0;
	} else if (d2 <= -1.65e-52) {
		tmp = t_1;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * d2;
	} else if (d2 <= -4.5e-54) {
		tmp = t_1;
	} else if (d2 <= -1.5e-68) {
		tmp = d1 * d4;
	} else if (d2 <= -3.5e-70) {
		tmp = t_1;
	} else if (d2 <= -1.16e-78) {
		tmp = t_0;
	} else if (d2 <= -2.9e-80) {
		tmp = t_1;
	} else if (d2 <= -8.5e-92) {
		tmp = d1 * d4;
	} else if (d2 <= -4.8e-101) {
		tmp = t_0;
	} else if (d2 <= -6e-104) {
		tmp = t_1;
	} else if (d2 <= -2.55e-104) {
		tmp = d1 * d4;
	} else if (d2 <= -1.45e-111) {
		tmp = t_0;
	} else if (d2 <= -1.45e-114) {
		tmp = d1 * d4;
	} else if (d2 <= -7.4e-118) {
		tmp = t_0;
	} else if (d2 <= -1.3e-120) {
		tmp = t_1;
	} else if (d2 <= -6.4e-133) {
		tmp = t_0;
	} else if (d2 <= -2.7e-137) {
		tmp = t_1;
	} else if (d2 <= -3.7e-141) {
		tmp = d1 * d4;
	} else if (d2 <= -5e-146) {
		tmp = t_0;
	} else if (d2 <= -4.3e-148) {
		tmp = d1 * d4;
	} else if (d2 <= -1.02e-149) {
		tmp = t_1;
	} else if (d2 <= -7e-153) {
		tmp = d1 * d4;
	} else if (d2 <= -5.2e-161) {
		tmp = t_1;
	} else if (d2 <= -7e-183) {
		tmp = d1 * d4;
	} else if (d2 <= -1e-197) {
		tmp = t_0;
	} else if (d2 <= -4.2e-208) {
		tmp = t_1;
	} else if (d2 <= -5.4e-242) {
		tmp = t_0;
	} else if (d2 <= -1.5e-244) {
		tmp = t_1;
	} else if (d2 <= -4.4e-259) {
		tmp = t_0;
	} else if (d2 <= -1.28e-264) {
		tmp = d1 * d4;
	} else if (d2 <= -7.4e-267) {
		tmp = t_1;
	} else if (d2 <= -3.3e-276) {
		tmp = d1 * d4;
	} else if (d2 <= -2.7e-285) {
		tmp = t_0;
	} else if (d2 <= -7e-287) {
		tmp = d1 * d4;
	} else if (d2 <= -9.2e-288) {
		tmp = t_0;
	} else if (d2 <= -5.5e-292) {
		tmp = d1 * d4;
	} else if (d2 <= -2.1e-294) {
		tmp = t_0;
	} else if (d2 <= -1.4e-297) {
		tmp = t_1;
	} else if (d2 <= -5.8e-305) {
		tmp = t_0;
	} else if (d2 <= 8e-303) {
		tmp = t_1;
	} else if (d2 <= 9.2e-290) {
		tmp = t_0;
	} else if (d2 <= 1.3e-285) {
		tmp = d1 * d4;
	} else if (d2 <= 3.3e-259) {
		tmp = t_0;
	} else if (d2 <= 3.1e-255) {
		tmp = d1 * d4;
	} else if (d2 <= 8.5e-251) {
		tmp = t_0;
	} else if (d2 <= 8.5e-245) {
		tmp = d1 * d4;
	} else if (d2 <= 1.6e-234) {
		tmp = t_1;
	} else if (d2 <= 3.5e-207) {
		tmp = t_0;
	} else if (d2 <= 3e-205) {
		tmp = t_1;
	} else if (d2 <= 6.2e-199) {
		tmp = d1 * d4;
	} else if (d2 <= 4.1e-197) {
		tmp = t_1;
	} else if (d2 <= 5.4e-187) {
		tmp = d1 * d4;
	} else if (d2 <= 4.6e-179) {
		tmp = t_1;
	} else if (d2 <= 2.85e-168) {
		tmp = d1 * d4;
	} else if (d2 <= 1.12e-164) {
		tmp = t_1;
	} else if (d2 <= 1.6e-120) {
		tmp = d1 * d4;
	} else if (d2 <= 4.5e-108) {
		tmp = t_0;
	} else if (d2 <= 1.66e-99) {
		tmp = d1 * d4;
	} else if (d2 <= 8.5e-91) {
		tmp = t_0;
	} else if (d2 <= 2.9e-90) {
		tmp = d1 * d4;
	} else if (d2 <= 3.2e-85) {
		tmp = t_1;
	} else if (d2 <= 8.5e-44) {
		tmp = d1 * d4;
	} else if (d2 <= 2.9e-21) {
		tmp = t_1;
	} else if (d2 <= 4e-9) {
		tmp = d1 * d4;
	} else if (d2 <= 1800000.0) {
		tmp = t_1;
	} else if (d2 <= 5.8e+21) {
		tmp = t_0;
	} else if (d2 <= 3.1e+34) {
		tmp = d1 * d4;
	} else if (d2 <= 1.2e+36) {
		tmp = t_1;
	} else if ((d2 <= 1.7e+65) || !((d2 <= 5.3e+76) || (!(d2 <= 1.1e+83) && (d2 <= 2.5e+85)))) {
		tmp = d1 * d4;
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * -d3
	t_1 = d1 * -d1
	tmp = 0
	if d2 <= -7.5e+68:
		tmp = d1 * d2
	elif d2 <= -7.4e+18:
		tmp = t_1
	elif d2 <= -9e+16:
		tmp = d1 * d4
	elif d2 <= -4.1e+14:
		tmp = t_0
	elif d2 <= -1.3e+14:
		tmp = t_1
	elif d2 <= -720000000000.0:
		tmp = t_0
	elif d2 <= -500000000000.0:
		tmp = t_1
	elif d2 <= -24000000000.0:
		tmp = t_0
	elif d2 <= -1700000.0:
		tmp = t_1
	elif d2 <= -0.072:
		tmp = t_0
	elif d2 <= -1.05e-6:
		tmp = t_1
	elif d2 <= -5.2e-11:
		tmp = t_0
	elif d2 <= -4.1e-16:
		tmp = d1 * d4
	elif d2 <= -2.7e-23:
		tmp = t_0
	elif d2 <= -3e-25:
		tmp = d1 * d4
	elif d2 <= -4e-26:
		tmp = t_0
	elif d2 <= -1.8e-33:
		tmp = d1 * d4
	elif d2 <= -2.1e-45:
		tmp = t_0
	elif d2 <= -1.65e-52:
		tmp = t_1
	elif d2 <= -1.6e-52:
		tmp = d1 * d2
	elif d2 <= -4.5e-54:
		tmp = t_1
	elif d2 <= -1.5e-68:
		tmp = d1 * d4
	elif d2 <= -3.5e-70:
		tmp = t_1
	elif d2 <= -1.16e-78:
		tmp = t_0
	elif d2 <= -2.9e-80:
		tmp = t_1
	elif d2 <= -8.5e-92:
		tmp = d1 * d4
	elif d2 <= -4.8e-101:
		tmp = t_0
	elif d2 <= -6e-104:
		tmp = t_1
	elif d2 <= -2.55e-104:
		tmp = d1 * d4
	elif d2 <= -1.45e-111:
		tmp = t_0
	elif d2 <= -1.45e-114:
		tmp = d1 * d4
	elif d2 <= -7.4e-118:
		tmp = t_0
	elif d2 <= -1.3e-120:
		tmp = t_1
	elif d2 <= -6.4e-133:
		tmp = t_0
	elif d2 <= -2.7e-137:
		tmp = t_1
	elif d2 <= -3.7e-141:
		tmp = d1 * d4
	elif d2 <= -5e-146:
		tmp = t_0
	elif d2 <= -4.3e-148:
		tmp = d1 * d4
	elif d2 <= -1.02e-149:
		tmp = t_1
	elif d2 <= -7e-153:
		tmp = d1 * d4
	elif d2 <= -5.2e-161:
		tmp = t_1
	elif d2 <= -7e-183:
		tmp = d1 * d4
	elif d2 <= -1e-197:
		tmp = t_0
	elif d2 <= -4.2e-208:
		tmp = t_1
	elif d2 <= -5.4e-242:
		tmp = t_0
	elif d2 <= -1.5e-244:
		tmp = t_1
	elif d2 <= -4.4e-259:
		tmp = t_0
	elif d2 <= -1.28e-264:
		tmp = d1 * d4
	elif d2 <= -7.4e-267:
		tmp = t_1
	elif d2 <= -3.3e-276:
		tmp = d1 * d4
	elif d2 <= -2.7e-285:
		tmp = t_0
	elif d2 <= -7e-287:
		tmp = d1 * d4
	elif d2 <= -9.2e-288:
		tmp = t_0
	elif d2 <= -5.5e-292:
		tmp = d1 * d4
	elif d2 <= -2.1e-294:
		tmp = t_0
	elif d2 <= -1.4e-297:
		tmp = t_1
	elif d2 <= -5.8e-305:
		tmp = t_0
	elif d2 <= 8e-303:
		tmp = t_1
	elif d2 <= 9.2e-290:
		tmp = t_0
	elif d2 <= 1.3e-285:
		tmp = d1 * d4
	elif d2 <= 3.3e-259:
		tmp = t_0
	elif d2 <= 3.1e-255:
		tmp = d1 * d4
	elif d2 <= 8.5e-251:
		tmp = t_0
	elif d2 <= 8.5e-245:
		tmp = d1 * d4
	elif d2 <= 1.6e-234:
		tmp = t_1
	elif d2 <= 3.5e-207:
		tmp = t_0
	elif d2 <= 3e-205:
		tmp = t_1
	elif d2 <= 6.2e-199:
		tmp = d1 * d4
	elif d2 <= 4.1e-197:
		tmp = t_1
	elif d2 <= 5.4e-187:
		tmp = d1 * d4
	elif d2 <= 4.6e-179:
		tmp = t_1
	elif d2 <= 2.85e-168:
		tmp = d1 * d4
	elif d2 <= 1.12e-164:
		tmp = t_1
	elif d2 <= 1.6e-120:
		tmp = d1 * d4
	elif d2 <= 4.5e-108:
		tmp = t_0
	elif d2 <= 1.66e-99:
		tmp = d1 * d4
	elif d2 <= 8.5e-91:
		tmp = t_0
	elif d2 <= 2.9e-90:
		tmp = d1 * d4
	elif d2 <= 3.2e-85:
		tmp = t_1
	elif d2 <= 8.5e-44:
		tmp = d1 * d4
	elif d2 <= 2.9e-21:
		tmp = t_1
	elif d2 <= 4e-9:
		tmp = d1 * d4
	elif d2 <= 1800000.0:
		tmp = t_1
	elif d2 <= 5.8e+21:
		tmp = t_0
	elif d2 <= 3.1e+34:
		tmp = d1 * d4
	elif d2 <= 1.2e+36:
		tmp = t_1
	elif (d2 <= 1.7e+65) or not ((d2 <= 5.3e+76) or (not (d2 <= 1.1e+83) and (d2 <= 2.5e+85))):
		tmp = d1 * d4
	else:
		tmp = t_0
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(-d3))
	t_1 = Float64(d1 * Float64(-d1))
	tmp = 0.0
	if (d2 <= -7.5e+68)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -7.4e+18)
		tmp = t_1;
	elseif (d2 <= -9e+16)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -4.1e+14)
		tmp = t_0;
	elseif (d2 <= -1.3e+14)
		tmp = t_1;
	elseif (d2 <= -720000000000.0)
		tmp = t_0;
	elseif (d2 <= -500000000000.0)
		tmp = t_1;
	elseif (d2 <= -24000000000.0)
		tmp = t_0;
	elseif (d2 <= -1700000.0)
		tmp = t_1;
	elseif (d2 <= -0.072)
		tmp = t_0;
	elseif (d2 <= -1.05e-6)
		tmp = t_1;
	elseif (d2 <= -5.2e-11)
		tmp = t_0;
	elseif (d2 <= -4.1e-16)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.7e-23)
		tmp = t_0;
	elseif (d2 <= -3e-25)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -4e-26)
		tmp = t_0;
	elseif (d2 <= -1.8e-33)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.1e-45)
		tmp = t_0;
	elseif (d2 <= -1.65e-52)
		tmp = t_1;
	elseif (d2 <= -1.6e-52)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -4.5e-54)
		tmp = t_1;
	elseif (d2 <= -1.5e-68)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -3.5e-70)
		tmp = t_1;
	elseif (d2 <= -1.16e-78)
		tmp = t_0;
	elseif (d2 <= -2.9e-80)
		tmp = t_1;
	elseif (d2 <= -8.5e-92)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -4.8e-101)
		tmp = t_0;
	elseif (d2 <= -6e-104)
		tmp = t_1;
	elseif (d2 <= -2.55e-104)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.45e-111)
		tmp = t_0;
	elseif (d2 <= -1.45e-114)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -7.4e-118)
		tmp = t_0;
	elseif (d2 <= -1.3e-120)
		tmp = t_1;
	elseif (d2 <= -6.4e-133)
		tmp = t_0;
	elseif (d2 <= -2.7e-137)
		tmp = t_1;
	elseif (d2 <= -3.7e-141)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -5e-146)
		tmp = t_0;
	elseif (d2 <= -4.3e-148)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.02e-149)
		tmp = t_1;
	elseif (d2 <= -7e-153)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -5.2e-161)
		tmp = t_1;
	elseif (d2 <= -7e-183)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1e-197)
		tmp = t_0;
	elseif (d2 <= -4.2e-208)
		tmp = t_1;
	elseif (d2 <= -5.4e-242)
		tmp = t_0;
	elseif (d2 <= -1.5e-244)
		tmp = t_1;
	elseif (d2 <= -4.4e-259)
		tmp = t_0;
	elseif (d2 <= -1.28e-264)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -7.4e-267)
		tmp = t_1;
	elseif (d2 <= -3.3e-276)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.7e-285)
		tmp = t_0;
	elseif (d2 <= -7e-287)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -9.2e-288)
		tmp = t_0;
	elseif (d2 <= -5.5e-292)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.1e-294)
		tmp = t_0;
	elseif (d2 <= -1.4e-297)
		tmp = t_1;
	elseif (d2 <= -5.8e-305)
		tmp = t_0;
	elseif (d2 <= 8e-303)
		tmp = t_1;
	elseif (d2 <= 9.2e-290)
		tmp = t_0;
	elseif (d2 <= 1.3e-285)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 3.3e-259)
		tmp = t_0;
	elseif (d2 <= 3.1e-255)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 8.5e-251)
		tmp = t_0;
	elseif (d2 <= 8.5e-245)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1.6e-234)
		tmp = t_1;
	elseif (d2 <= 3.5e-207)
		tmp = t_0;
	elseif (d2 <= 3e-205)
		tmp = t_1;
	elseif (d2 <= 6.2e-199)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 4.1e-197)
		tmp = t_1;
	elseif (d2 <= 5.4e-187)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 4.6e-179)
		tmp = t_1;
	elseif (d2 <= 2.85e-168)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1.12e-164)
		tmp = t_1;
	elseif (d2 <= 1.6e-120)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 4.5e-108)
		tmp = t_0;
	elseif (d2 <= 1.66e-99)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 8.5e-91)
		tmp = t_0;
	elseif (d2 <= 2.9e-90)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 3.2e-85)
		tmp = t_1;
	elseif (d2 <= 8.5e-44)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 2.9e-21)
		tmp = t_1;
	elseif (d2 <= 4e-9)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1800000.0)
		tmp = t_1;
	elseif (d2 <= 5.8e+21)
		tmp = t_0;
	elseif (d2 <= 3.1e+34)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1.2e+36)
		tmp = t_1;
	elseif ((d2 <= 1.7e+65) || !((d2 <= 5.3e+76) || (!(d2 <= 1.1e+83) && (d2 <= 2.5e+85))))
		tmp = Float64(d1 * d4);
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * -d3;
	t_1 = d1 * -d1;
	tmp = 0.0;
	if (d2 <= -7.5e+68)
		tmp = d1 * d2;
	elseif (d2 <= -7.4e+18)
		tmp = t_1;
	elseif (d2 <= -9e+16)
		tmp = d1 * d4;
	elseif (d2 <= -4.1e+14)
		tmp = t_0;
	elseif (d2 <= -1.3e+14)
		tmp = t_1;
	elseif (d2 <= -720000000000.0)
		tmp = t_0;
	elseif (d2 <= -500000000000.0)
		tmp = t_1;
	elseif (d2 <= -24000000000.0)
		tmp = t_0;
	elseif (d2 <= -1700000.0)
		tmp = t_1;
	elseif (d2 <= -0.072)
		tmp = t_0;
	elseif (d2 <= -1.05e-6)
		tmp = t_1;
	elseif (d2 <= -5.2e-11)
		tmp = t_0;
	elseif (d2 <= -4.1e-16)
		tmp = d1 * d4;
	elseif (d2 <= -2.7e-23)
		tmp = t_0;
	elseif (d2 <= -3e-25)
		tmp = d1 * d4;
	elseif (d2 <= -4e-26)
		tmp = t_0;
	elseif (d2 <= -1.8e-33)
		tmp = d1 * d4;
	elseif (d2 <= -2.1e-45)
		tmp = t_0;
	elseif (d2 <= -1.65e-52)
		tmp = t_1;
	elseif (d2 <= -1.6e-52)
		tmp = d1 * d2;
	elseif (d2 <= -4.5e-54)
		tmp = t_1;
	elseif (d2 <= -1.5e-68)
		tmp = d1 * d4;
	elseif (d2 <= -3.5e-70)
		tmp = t_1;
	elseif (d2 <= -1.16e-78)
		tmp = t_0;
	elseif (d2 <= -2.9e-80)
		tmp = t_1;
	elseif (d2 <= -8.5e-92)
		tmp = d1 * d4;
	elseif (d2 <= -4.8e-101)
		tmp = t_0;
	elseif (d2 <= -6e-104)
		tmp = t_1;
	elseif (d2 <= -2.55e-104)
		tmp = d1 * d4;
	elseif (d2 <= -1.45e-111)
		tmp = t_0;
	elseif (d2 <= -1.45e-114)
		tmp = d1 * d4;
	elseif (d2 <= -7.4e-118)
		tmp = t_0;
	elseif (d2 <= -1.3e-120)
		tmp = t_1;
	elseif (d2 <= -6.4e-133)
		tmp = t_0;
	elseif (d2 <= -2.7e-137)
		tmp = t_1;
	elseif (d2 <= -3.7e-141)
		tmp = d1 * d4;
	elseif (d2 <= -5e-146)
		tmp = t_0;
	elseif (d2 <= -4.3e-148)
		tmp = d1 * d4;
	elseif (d2 <= -1.02e-149)
		tmp = t_1;
	elseif (d2 <= -7e-153)
		tmp = d1 * d4;
	elseif (d2 <= -5.2e-161)
		tmp = t_1;
	elseif (d2 <= -7e-183)
		tmp = d1 * d4;
	elseif (d2 <= -1e-197)
		tmp = t_0;
	elseif (d2 <= -4.2e-208)
		tmp = t_1;
	elseif (d2 <= -5.4e-242)
		tmp = t_0;
	elseif (d2 <= -1.5e-244)
		tmp = t_1;
	elseif (d2 <= -4.4e-259)
		tmp = t_0;
	elseif (d2 <= -1.28e-264)
		tmp = d1 * d4;
	elseif (d2 <= -7.4e-267)
		tmp = t_1;
	elseif (d2 <= -3.3e-276)
		tmp = d1 * d4;
	elseif (d2 <= -2.7e-285)
		tmp = t_0;
	elseif (d2 <= -7e-287)
		tmp = d1 * d4;
	elseif (d2 <= -9.2e-288)
		tmp = t_0;
	elseif (d2 <= -5.5e-292)
		tmp = d1 * d4;
	elseif (d2 <= -2.1e-294)
		tmp = t_0;
	elseif (d2 <= -1.4e-297)
		tmp = t_1;
	elseif (d2 <= -5.8e-305)
		tmp = t_0;
	elseif (d2 <= 8e-303)
		tmp = t_1;
	elseif (d2 <= 9.2e-290)
		tmp = t_0;
	elseif (d2 <= 1.3e-285)
		tmp = d1 * d4;
	elseif (d2 <= 3.3e-259)
		tmp = t_0;
	elseif (d2 <= 3.1e-255)
		tmp = d1 * d4;
	elseif (d2 <= 8.5e-251)
		tmp = t_0;
	elseif (d2 <= 8.5e-245)
		tmp = d1 * d4;
	elseif (d2 <= 1.6e-234)
		tmp = t_1;
	elseif (d2 <= 3.5e-207)
		tmp = t_0;
	elseif (d2 <= 3e-205)
		tmp = t_1;
	elseif (d2 <= 6.2e-199)
		tmp = d1 * d4;
	elseif (d2 <= 4.1e-197)
		tmp = t_1;
	elseif (d2 <= 5.4e-187)
		tmp = d1 * d4;
	elseif (d2 <= 4.6e-179)
		tmp = t_1;
	elseif (d2 <= 2.85e-168)
		tmp = d1 * d4;
	elseif (d2 <= 1.12e-164)
		tmp = t_1;
	elseif (d2 <= 1.6e-120)
		tmp = d1 * d4;
	elseif (d2 <= 4.5e-108)
		tmp = t_0;
	elseif (d2 <= 1.66e-99)
		tmp = d1 * d4;
	elseif (d2 <= 8.5e-91)
		tmp = t_0;
	elseif (d2 <= 2.9e-90)
		tmp = d1 * d4;
	elseif (d2 <= 3.2e-85)
		tmp = t_1;
	elseif (d2 <= 8.5e-44)
		tmp = d1 * d4;
	elseif (d2 <= 2.9e-21)
		tmp = t_1;
	elseif (d2 <= 4e-9)
		tmp = d1 * d4;
	elseif (d2 <= 1800000.0)
		tmp = t_1;
	elseif (d2 <= 5.8e+21)
		tmp = t_0;
	elseif (d2 <= 3.1e+34)
		tmp = d1 * d4;
	elseif (d2 <= 1.2e+36)
		tmp = t_1;
	elseif ((d2 <= 1.7e+65) || ~(((d2 <= 5.3e+76) || (~((d2 <= 1.1e+83)) && (d2 <= 2.5e+85)))))
		tmp = d1 * d4;
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * (-d3)), $MachinePrecision]}, Block[{t$95$1 = N[(d1 * (-d1)), $MachinePrecision]}, If[LessEqual[d2, -7.5e+68], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -7.4e+18], t$95$1, If[LessEqual[d2, -9e+16], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -4.1e+14], t$95$0, If[LessEqual[d2, -1.3e+14], t$95$1, If[LessEqual[d2, -720000000000.0], t$95$0, If[LessEqual[d2, -500000000000.0], t$95$1, If[LessEqual[d2, -24000000000.0], t$95$0, If[LessEqual[d2, -1700000.0], t$95$1, If[LessEqual[d2, -0.072], t$95$0, If[LessEqual[d2, -1.05e-6], t$95$1, If[LessEqual[d2, -5.2e-11], t$95$0, If[LessEqual[d2, -4.1e-16], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.7e-23], t$95$0, If[LessEqual[d2, -3e-25], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -4e-26], t$95$0, If[LessEqual[d2, -1.8e-33], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.1e-45], t$95$0, If[LessEqual[d2, -1.65e-52], t$95$1, If[LessEqual[d2, -1.6e-52], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -4.5e-54], t$95$1, If[LessEqual[d2, -1.5e-68], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -3.5e-70], t$95$1, If[LessEqual[d2, -1.16e-78], t$95$0, If[LessEqual[d2, -2.9e-80], t$95$1, If[LessEqual[d2, -8.5e-92], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -4.8e-101], t$95$0, If[LessEqual[d2, -6e-104], t$95$1, If[LessEqual[d2, -2.55e-104], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.45e-111], t$95$0, If[LessEqual[d2, -1.45e-114], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -7.4e-118], t$95$0, If[LessEqual[d2, -1.3e-120], t$95$1, If[LessEqual[d2, -6.4e-133], t$95$0, If[LessEqual[d2, -2.7e-137], t$95$1, If[LessEqual[d2, -3.7e-141], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -5e-146], t$95$0, If[LessEqual[d2, -4.3e-148], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.02e-149], t$95$1, If[LessEqual[d2, -7e-153], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -5.2e-161], t$95$1, If[LessEqual[d2, -7e-183], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1e-197], t$95$0, If[LessEqual[d2, -4.2e-208], t$95$1, If[LessEqual[d2, -5.4e-242], t$95$0, If[LessEqual[d2, -1.5e-244], t$95$1, If[LessEqual[d2, -4.4e-259], t$95$0, If[LessEqual[d2, -1.28e-264], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -7.4e-267], t$95$1, If[LessEqual[d2, -3.3e-276], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.7e-285], t$95$0, If[LessEqual[d2, -7e-287], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -9.2e-288], t$95$0, If[LessEqual[d2, -5.5e-292], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.1e-294], t$95$0, If[LessEqual[d2, -1.4e-297], t$95$1, If[LessEqual[d2, -5.8e-305], t$95$0, If[LessEqual[d2, 8e-303], t$95$1, If[LessEqual[d2, 9.2e-290], t$95$0, If[LessEqual[d2, 1.3e-285], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 3.3e-259], t$95$0, If[LessEqual[d2, 3.1e-255], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 8.5e-251], t$95$0, If[LessEqual[d2, 8.5e-245], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1.6e-234], t$95$1, If[LessEqual[d2, 3.5e-207], t$95$0, If[LessEqual[d2, 3e-205], t$95$1, If[LessEqual[d2, 6.2e-199], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 4.1e-197], t$95$1, If[LessEqual[d2, 5.4e-187], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 4.6e-179], t$95$1, If[LessEqual[d2, 2.85e-168], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1.12e-164], t$95$1, If[LessEqual[d2, 1.6e-120], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 4.5e-108], t$95$0, If[LessEqual[d2, 1.66e-99], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 8.5e-91], t$95$0, If[LessEqual[d2, 2.9e-90], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 3.2e-85], t$95$1, If[LessEqual[d2, 8.5e-44], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 2.9e-21], t$95$1, If[LessEqual[d2, 4e-9], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1800000.0], t$95$1, If[LessEqual[d2, 5.8e+21], t$95$0, If[LessEqual[d2, 3.1e+34], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1.2e+36], t$95$1, If[Or[LessEqual[d2, 1.7e+65], N[Not[Or[LessEqual[d2, 5.3e+76], And[N[Not[LessEqual[d2, 1.1e+83]], $MachinePrecision], LessEqual[d2, 2.5e+85]]]], $MachinePrecision]], N[(d1 * d4), $MachinePrecision], t$95$0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(-d3\right)\\
t_1 := d1 \cdot \left(-d1\right)\\
\mathbf{if}\;d2 \leq -7.5 \cdot 10^{+68}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -7.4 \cdot 10^{+18}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -9 \cdot 10^{+16}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -4.1 \cdot 10^{+14}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.3 \cdot 10^{+14}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -720000000000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -500000000000:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -24000000000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1700000:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -0.072:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.05 \cdot 10^{-6}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-11}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -4.1 \cdot 10^{-16}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-23}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -3 \cdot 10^{-25}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -4 \cdot 10^{-26}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.8 \cdot 10^{-33}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.1 \cdot 10^{-45}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.65 \cdot 10^{-52}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-54}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -1.5 \cdot 10^{-68}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -3.5 \cdot 10^{-70}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -1.16 \cdot 10^{-78}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.9 \cdot 10^{-80}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -8.5 \cdot 10^{-92}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-101}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -6 \cdot 10^{-104}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -2.55 \cdot 10^{-104}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.45 \cdot 10^{-111}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.45 \cdot 10^{-114}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -7.4 \cdot 10^{-118}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-120}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -6.4 \cdot 10^{-133}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-137}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -3.7 \cdot 10^{-141}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -5 \cdot 10^{-146}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -4.3 \cdot 10^{-148}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.02 \cdot 10^{-149}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -7 \cdot 10^{-153}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-161}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -7 \cdot 10^{-183}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1 \cdot 10^{-197}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-208}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -5.4 \cdot 10^{-242}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.5 \cdot 10^{-244}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -4.4 \cdot 10^{-259}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.28 \cdot 10^{-264}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -7.4 \cdot 10^{-267}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -3.3 \cdot 10^{-276}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-285}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -7 \cdot 10^{-287}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -9.2 \cdot 10^{-288}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -5.5 \cdot 10^{-292}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.1 \cdot 10^{-294}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.4 \cdot 10^{-297}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-305}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 8 \cdot 10^{-303}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 9.2 \cdot 10^{-290}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 1.3 \cdot 10^{-285}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-259}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 3.1 \cdot 10^{-255}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-251}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-245}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-234}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 3.5 \cdot 10^{-207}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 3 \cdot 10^{-205}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 6.2 \cdot 10^{-199}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 4.1 \cdot 10^{-197}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 5.4 \cdot 10^{-187}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 4.6 \cdot 10^{-179}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 2.85 \cdot 10^{-168}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1.12 \cdot 10^{-164}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-120}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 4.5 \cdot 10^{-108}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 1.66 \cdot 10^{-99}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-91}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 2.9 \cdot 10^{-90}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 3.2 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-44}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 2.9 \cdot 10^{-21}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 4 \cdot 10^{-9}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1800000:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 5.8 \cdot 10^{+21}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 3.1 \cdot 10^{+34}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1.2 \cdot 10^{+36}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 1.7 \cdot 10^{+65} \lor \neg \left(d2 \leq 5.3 \cdot 10^{+76} \lor \neg \left(d2 \leq 1.1 \cdot 10^{+83}\right) \land d2 \leq 2.5 \cdot 10^{+85}\right):\\
\;\;\;\;d1 \cdot d4\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if d2 < -7.49999999999999959e68 or -1.64999999999999998e-52 < d2 < -1.60000000000000005e-52

    1. Initial program 79.9%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+79.9%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--85.4%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--89.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 64.5%

      \[\leadsto \color{blue}{d1 \cdot d2} \]

    if -7.49999999999999959e68 < d2 < -7.4e18 or -4.1e14 < d2 < -1.3e14 or -7.2e11 < d2 < -5e11 or -2.4e10 < d2 < -1.7e6 or -0.0719999999999999946 < d2 < -1.0499999999999999e-6 or -2.09999999999999995e-45 < d2 < -1.64999999999999998e-52 or -1.60000000000000005e-52 < d2 < -4.4999999999999998e-54 or -1.5e-68 < d2 < -3.49999999999999974e-70 or -1.16e-78 < d2 < -2.89999999999999998e-80 or -4.8e-101 < d2 < -6.0000000000000005e-104 or -7.40000000000000029e-118 < d2 < -1.3000000000000001e-120 or -6.40000000000000025e-133 < d2 < -2.69999999999999993e-137 or -4.2999999999999998e-148 < d2 < -1.0200000000000001e-149 or -6.99999999999999961e-153 < d2 < -5.19999999999999991e-161 or -9.9999999999999999e-198 < d2 < -4.20000000000000024e-208 or -5.4e-242 < d2 < -1.5000000000000001e-244 or -1.28e-264 < d2 < -7.39999999999999971e-267 or -2.09999999999999984e-294 < d2 < -1.39999999999999992e-297 or -5.79999999999999975e-305 < d2 < 7.99999999999999944e-303 or 8.50000000000000022e-245 < d2 < 1.5999999999999999e-234 or 3.5000000000000002e-207 < d2 < 3e-205 or 6.20000000000000024e-199 < d2 < 4.1e-197 or 5.4000000000000002e-187 < d2 < 4.59999999999999975e-179 or 2.85000000000000004e-168 < d2 < 1.12e-164 or 2.89999999999999983e-90 < d2 < 3.20000000000000027e-85 or 8.5000000000000002e-44 < d2 < 2.9e-21 or 4.00000000000000025e-9 < d2 < 1.8e6 or 3.09999999999999977e34 < d2 < 1.19999999999999996e36

    1. Initial program 88.7%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.7%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.7%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.4%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around inf 63.8%

      \[\leadsto d1 \cdot \color{blue}{\left(-1 \cdot d1\right)} \]
    6. Step-by-step derivation
      1. neg-mul-163.8%

        \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]
    7. Simplified63.8%

      \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]

    if -7.4e18 < d2 < -9e16 or -5.2000000000000001e-11 < d2 < -4.10000000000000006e-16 or -2.69999999999999985e-23 < d2 < -2.9999999999999998e-25 or -4.0000000000000002e-26 < d2 < -1.80000000000000017e-33 or -4.4999999999999998e-54 < d2 < -1.5e-68 or -2.89999999999999998e-80 < d2 < -8.50000000000000067e-92 or -6.0000000000000005e-104 < d2 < -2.54999999999999996e-104 or -1.45000000000000001e-111 < d2 < -1.44999999999999998e-114 or -2.69999999999999993e-137 < d2 < -3.7e-141 or -4.99999999999999957e-146 < d2 < -4.2999999999999998e-148 or -1.0200000000000001e-149 < d2 < -6.99999999999999961e-153 or -5.19999999999999991e-161 < d2 < -6.99999999999999983e-183 or -4.40000000000000019e-259 < d2 < -1.28e-264 or -7.39999999999999971e-267 < d2 < -3.29999999999999991e-276 or -2.6999999999999998e-285 < d2 < -7e-287 or -9.2e-288 < d2 < -5.50000000000000006e-292 or 9.2000000000000003e-290 < d2 < 1.3000000000000001e-285 or 3.3e-259 < d2 < 3.09999999999999997e-255 or 8.49999999999999984e-251 < d2 < 8.50000000000000022e-245 or 3e-205 < d2 < 6.20000000000000024e-199 or 4.1e-197 < d2 < 5.4000000000000002e-187 or 4.59999999999999975e-179 < d2 < 2.85000000000000004e-168 or 1.12e-164 < d2 < 1.6e-120 or 4.4999999999999997e-108 < d2 < 1.6599999999999999e-99 or 8.49999999999999985e-91 < d2 < 2.89999999999999983e-90 or 3.20000000000000027e-85 < d2 < 8.5000000000000002e-44 or 2.9e-21 < d2 < 4.00000000000000025e-9 or 5.8e21 < d2 < 3.09999999999999977e34 or 1.19999999999999996e36 < d2 < 1.7e65 or 5.30000000000000015e76 < d2 < 1.09999999999999999e83 or 2.5e85 < d2

    1. Initial program 86.8%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+86.8%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.7%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.5%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 36.9%

      \[\leadsto \color{blue}{d1 \cdot d4} \]

    if -9e16 < d2 < -4.1e14 or -1.3e14 < d2 < -7.2e11 or -5e11 < d2 < -2.4e10 or -1.7e6 < d2 < -0.0719999999999999946 or -1.0499999999999999e-6 < d2 < -5.2000000000000001e-11 or -4.10000000000000006e-16 < d2 < -2.69999999999999985e-23 or -2.9999999999999998e-25 < d2 < -4.0000000000000002e-26 or -1.80000000000000017e-33 < d2 < -2.09999999999999995e-45 or -3.49999999999999974e-70 < d2 < -1.16e-78 or -8.50000000000000067e-92 < d2 < -4.8e-101 or -2.54999999999999996e-104 < d2 < -1.45000000000000001e-111 or -1.44999999999999998e-114 < d2 < -7.40000000000000029e-118 or -1.3000000000000001e-120 < d2 < -6.40000000000000025e-133 or -3.7e-141 < d2 < -4.99999999999999957e-146 or -6.99999999999999983e-183 < d2 < -9.9999999999999999e-198 or -4.20000000000000024e-208 < d2 < -5.4e-242 or -1.5000000000000001e-244 < d2 < -4.40000000000000019e-259 or -3.29999999999999991e-276 < d2 < -2.6999999999999998e-285 or -7e-287 < d2 < -9.2e-288 or -5.50000000000000006e-292 < d2 < -2.09999999999999984e-294 or -1.39999999999999992e-297 < d2 < -5.79999999999999975e-305 or 7.99999999999999944e-303 < d2 < 9.2000000000000003e-290 or 1.3000000000000001e-285 < d2 < 3.3e-259 or 3.09999999999999997e-255 < d2 < 8.49999999999999984e-251 or 1.5999999999999999e-234 < d2 < 3.5000000000000002e-207 or 1.6e-120 < d2 < 4.4999999999999997e-108 or 1.6599999999999999e-99 < d2 < 8.49999999999999985e-91 or 1.8e6 < d2 < 5.8e21 or 1.7e65 < d2 < 5.30000000000000015e76 or 1.09999999999999999e83 < d2 < 2.5e85

    1. Initial program 92.9%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+92.9%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--92.9%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--95.2%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d3 around inf 79.3%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right)} \]
    6. Step-by-step derivation
      1. mul-1-neg79.3%

        \[\leadsto \color{blue}{-d1 \cdot d3} \]
      2. distribute-rgt-neg-out79.3%

        \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
    7. Simplified79.3%

      \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification55.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d2 \leq -7.5 \cdot 10^{+68}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -7.4 \cdot 10^{+18}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -9 \cdot 10^{+16}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.1 \cdot 10^{+14}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{+14}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -720000000000:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -500000000000:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -24000000000:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1700000:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -0.072:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.05 \cdot 10^{-6}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-11}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -4.1 \cdot 10^{-16}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-23}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -3 \cdot 10^{-25}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4 \cdot 10^{-26}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.8 \cdot 10^{-33}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.1 \cdot 10^{-45}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.65 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-54}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.5 \cdot 10^{-68}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -3.5 \cdot 10^{-70}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.16 \cdot 10^{-78}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -2.9 \cdot 10^{-80}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -8.5 \cdot 10^{-92}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-101}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -6 \cdot 10^{-104}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -2.55 \cdot 10^{-104}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.45 \cdot 10^{-111}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.45 \cdot 10^{-114}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -7.4 \cdot 10^{-118}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-120}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -6.4 \cdot 10^{-133}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-137}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -3.7 \cdot 10^{-141}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -5 \cdot 10^{-146}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -4.3 \cdot 10^{-148}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.02 \cdot 10^{-149}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-153}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-161}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-183}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1 \cdot 10^{-197}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-208}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -5.4 \cdot 10^{-242}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.5 \cdot 10^{-244}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -4.4 \cdot 10^{-259}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.28 \cdot 10^{-264}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -7.4 \cdot 10^{-267}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -3.3 \cdot 10^{-276}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.7 \cdot 10^{-285}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-287}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -9.2 \cdot 10^{-288}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -5.5 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.1 \cdot 10^{-294}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq -1.4 \cdot 10^{-297}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-305}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 8 \cdot 10^{-303}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 9.2 \cdot 10^{-290}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 1.3 \cdot 10^{-285}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-259}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 3.1 \cdot 10^{-255}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-251}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-245}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-234}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 3.5 \cdot 10^{-207}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 3 \cdot 10^{-205}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 6.2 \cdot 10^{-199}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 4.1 \cdot 10^{-197}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 5.4 \cdot 10^{-187}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 4.6 \cdot 10^{-179}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 2.85 \cdot 10^{-168}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.12 \cdot 10^{-164}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-120}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 4.5 \cdot 10^{-108}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 1.66 \cdot 10^{-99}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-91}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 2.9 \cdot 10^{-90}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 3.2 \cdot 10^{-85}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 8.5 \cdot 10^{-44}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 2.9 \cdot 10^{-21}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 4 \cdot 10^{-9}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1800000:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 5.8 \cdot 10^{+21}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 3.1 \cdot 10^{+34}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.2 \cdot 10^{+36}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 1.7 \cdot 10^{+65} \lor \neg \left(d2 \leq 5.3 \cdot 10^{+76} \lor \neg \left(d2 \leq 1.1 \cdot 10^{+83}\right) \land d2 \leq 2.5 \cdot 10^{+85}\right):\\ \;\;\;\;d1 \cdot d4\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 58.3% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(d2 + d4\right)\\ t_1 := d1 \cdot \left(-d3\right)\\ t_2 := d1 \cdot \left(-d1\right)\\ \mathbf{if}\;d3 \leq -1.55 \cdot 10^{+74}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq -160000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq -155000:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq -7.6 \cdot 10^{-5}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -6.5 \cdot 10^{-13}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq -4 \cdot 10^{-25}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -7.6 \cdot 10^{-40}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq -8 \cdot 10^{-47}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -7.4 \cdot 10^{-81}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq -2.4 \cdot 10^{-84}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq -2.9 \cdot 10^{-114}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq -2.2 \cdot 10^{-128}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -7 \cdot 10^{-135}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq -3.3 \cdot 10^{-137}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -1.2 \cdot 10^{-167}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq -2.7 \cdot 10^{-176}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -4.15 \cdot 10^{-224}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq -6.1 \cdot 10^{-230}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -2.3 \cdot 10^{-286}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq -2.6 \cdot 10^{-295}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq -2.1 \cdot 10^{-306}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{-304}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-271}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 3.4 \cdot 10^{-271}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-262}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 1.2 \cdot 10^{-261}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 7.6 \cdot 10^{-219}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.6 \cdot 10^{-202}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3 \cdot 10^{-201}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-200}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 2.4 \cdot 10^{-172}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 1.6 \cdot 10^{-171}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 2 \cdot 10^{-169}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.05 \cdot 10^{-161}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 2.15 \cdot 10^{-128}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 2.3 \cdot 10^{-128}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 1.95 \cdot 10^{-107}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 4.3 \cdot 10^{-107}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 2 \cdot 10^{-92}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 3.2 \cdot 10^{-87}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.3 \cdot 10^{-87}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 4.6 \cdot 10^{-76}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 4.2 \cdot 10^{-74}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 2.4 \cdot 10^{-71}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 2.45 \cdot 10^{-71}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 2 \cdot 10^{-46}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 8.8 \cdot 10^{-37}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 8.2 \cdot 10^{-25}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 8 \cdot 10^{-22}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 3.6 \cdot 10^{-19}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.4 \cdot 10^{+21}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 3.45 \cdot 10^{+21}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 1.6 \cdot 10^{+31}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 1.4 \cdot 10^{+32}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 1.02 \cdot 10^{+51}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 9.8 \cdot 10^{+51}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 3.2 \cdot 10^{+59}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 7 \cdot 10^{+62}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 1.05 \cdot 10^{+64}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 4.8 \cdot 10^{+67}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{+68}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+72}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 4.5 \cdot 10^{+89}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 1.85 \cdot 10^{+99}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 6 \cdot 10^{+104}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.2 \cdot 10^{+124}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 1.26 \cdot 10^{+128}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 4.5 \cdot 10^{+129}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 5.6 \cdot 10^{+138}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 2.2 \cdot 10^{+140}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 6.2 \cdot 10^{+151}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 2.9 \cdot 10^{+152}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.2 \cdot 10^{+157}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 1.74 \cdot 10^{+164}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+165}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 3.7 \cdot 10^{+177}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 7.6 \cdot 10^{+180}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{+207}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 1.95 \cdot 10^{+216}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d3 \leq 2.8 \cdot 10^{+216}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+271} \lor \neg \left(d3 \leq 1.9 \cdot 10^{+271} \lor \neg \left(d3 \leq 4.2 \cdot 10^{+288}\right) \land d3 \leq 4.3 \cdot 10^{+288}\right):\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d2\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (+ d2 d4))) (t_1 (* d1 (- d3))) (t_2 (* d1 (- d1))))
   (if (<= d3 -1.55e+74)
     t_1
     (if (<= d3 -160000.0)
       t_0
       (if (<= d3 -155000.0)
         t_1
         (if (<= d3 -7.6e-5)
           t_2
           (if (<= d3 -6.5e-13)
             (* d1 d2)
             (if (<= d3 -4e-25)
               t_2
               (if (<= d3 -7.6e-40)
                 (* d1 d4)
                 (if (<= d3 -8e-47)
                   t_2
                   (if (<= d3 -7.4e-81)
                     t_0
                     (if (<= d3 -2.4e-84)
                       t_1
                       (if (<= d3 -2.9e-114)
                         t_0
                         (if (<= d3 -2.2e-128)
                           t_2
                           (if (<= d3 -7e-135)
                             (* d1 d4)
                             (if (<= d3 -3.3e-137)
                               t_2
                               (if (<= d3 -1.2e-167)
                                 t_0
                                 (if (<= d3 -2.7e-176)
                                   t_2
                                   (if (<= d3 -4.15e-224)
                                     t_0
                                     (if (<= d3 -6.1e-230)
                                       t_2
                                       (if (<= d3 -2.3e-286)
                                         t_0
                                         (if (<= d3 -2.6e-295)
                                           t_2
                                           (if (<= d3 -2.1e-306)
                                             (* d1 d4)
                                             (if (<= d3 1.8e-304)
                                               t_2
                                               (if (<= d3 3.1e-271)
                                                 t_0
                                                 (if (<= d3 3.4e-271)
                                                   t_2
                                                   (if (<= d3 3.1e-262)
                                                     t_0
                                                     (if (<= d3 1.2e-261)
                                                       t_2
                                                       (if (<= d3 7.6e-219)
                                                         (* d1 d2)
                                                         (if (<= d3 1.6e-202)
                                                           t_2
                                                           (if (<= d3 3e-201)
                                                             (* d1 d4)
                                                             (if (<=
                                                                  d3
                                                                  3.1e-200)
                                                               t_2
                                                               (if (<=
                                                                    d3
                                                                    2.4e-172)
                                                                 t_0
                                                                 (if (<=
                                                                      d3
                                                                      1.6e-171)
                                                                   t_2
                                                                   (if (<=
                                                                        d3
                                                                        2e-169)
                                                                     (* d1 d2)
                                                                     (if (<=
                                                                          d3
                                                                          1.05e-161)
                                                                       t_2
                                                                       (if (<=
                                                                            d3
                                                                            2.15e-128)
                                                                         t_0
                                                                         (if (<=
                                                                              d3
                                                                              2.3e-128)
                                                                           t_2
                                                                           (if (<=
                                                                                d3
                                                                                1.95e-107)
                                                                             t_0
                                                                             (if (<=
                                                                                  d3
                                                                                  4.3e-107)
                                                                               t_2
                                                                               (if (<=
                                                                                    d3
                                                                                    2e-92)
                                                                                 t_0
                                                                                 (if (<=
                                                                                      d3
                                                                                      3.2e-87)
                                                                                   t_2
                                                                                   (if (<=
                                                                                        d3
                                                                                        3.3e-87)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          d3
                                                                                          4.6e-76)
                                                                                       (*
                                                                                        d1
                                                                                        d4)
                                                                                       (if (<=
                                                                                            d3
                                                                                            4.2e-74)
                                                                                         t_2
                                                                                         (if (<=
                                                                                              d3
                                                                                              2.4e-71)
                                                                                           (*
                                                                                            d1
                                                                                            d4)
                                                                                           (if (<=
                                                                                                d3
                                                                                                2.45e-71)
                                                                                             t_1
                                                                                             (if (<=
                                                                                                  d3
                                                                                                  2e-46)
                                                                                               t_2
                                                                                               (if (<=
                                                                                                    d3
                                                                                                    8.8e-37)
                                                                                                 (*
                                                                                                  d1
                                                                                                  d4)
                                                                                                 (if (<=
                                                                                                      d3
                                                                                                      8.2e-25)
                                                                                                   t_2
                                                                                                   (if (<=
                                                                                                        d3
                                                                                                        8e-22)
                                                                                                     (*
                                                                                                      d1
                                                                                                      d2)
                                                                                                     (if (<=
                                                                                                          d3
                                                                                                          3.6e-19)
                                                                                                       t_2
                                                                                                       (if (<=
                                                                                                            d3
                                                                                                            3.4e+21)
                                                                                                         t_0
                                                                                                         (if (<=
                                                                                                              d3
                                                                                                              3.45e+21)
                                                                                                           t_1
                                                                                                           (if (<=
                                                                                                                d3
                                                                                                                1.6e+31)
                                                                                                             t_0
                                                                                                             (if (<=
                                                                                                                  d3
                                                                                                                  1.4e+32)
                                                                                                               t_2
                                                                                                               (if (<=
                                                                                                                    d3
                                                                                                                    1.02e+51)
                                                                                                                 (*
                                                                                                                  d1
                                                                                                                  d4)
                                                                                                                 (if (<=
                                                                                                                      d3
                                                                                                                      9.8e+51)
                                                                                                                   t_1
                                                                                                                   (if (<=
                                                                                                                        d3
                                                                                                                        3.2e+59)
                                                                                                                     t_0
                                                                                                                     (if (<=
                                                                                                                          d3
                                                                                                                          7e+62)
                                                                                                                       t_2
                                                                                                                       (if (<=
                                                                                                                            d3
                                                                                                                            1.05e+64)
                                                                                                                         (*
                                                                                                                          d1
                                                                                                                          d4)
                                                                                                                         (if (<=
                                                                                                                              d3
                                                                                                                              4.8e+67)
                                                                                                                           t_2
                                                                                                                           (if (<=
                                                                                                                                d3
                                                                                                                                3.1e+68)
                                                                                                                             (*
                                                                                                                              d1
                                                                                                                              d2)
                                                                                                                             (if (<=
                                                                                                                                  d3
                                                                                                                                  1.8e+72)
                                                                                                                               t_2
                                                                                                                               (if (<=
                                                                                                                                    d3
                                                                                                                                    4.5e+89)
                                                                                                                                 t_0
                                                                                                                                 (if (<=
                                                                                                                                      d3
                                                                                                                                      1.85e+99)
                                                                                                                                   t_1
                                                                                                                                   (if (<=
                                                                                                                                        d3
                                                                                                                                        6e+104)
                                                                                                                                     t_2
                                                                                                                                     (if (<=
                                                                                                                                          d3
                                                                                                                                          3.2e+124)
                                                                                                                                       t_1
                                                                                                                                       (if (<=
                                                                                                                                            d3
                                                                                                                                            1.26e+128)
                                                                                                                                         (*
                                                                                                                                          d1
                                                                                                                                          d4)
                                                                                                                                         (if (<=
                                                                                                                                              d3
                                                                                                                                              4.5e+129)
                                                                                                                                           t_2
                                                                                                                                           (if (<=
                                                                                                                                                d3
                                                                                                                                                5.6e+138)
                                                                                                                                             t_1
                                                                                                                                             (if (<=
                                                                                                                                                  d3
                                                                                                                                                  2.2e+140)
                                                                                                                                               (*
                                                                                                                                                d1
                                                                                                                                                d4)
                                                                                                                                               (if (<=
                                                                                                                                                    d3
                                                                                                                                                    6.2e+151)
                                                                                                                                                 t_1
                                                                                                                                                 (if (<=
                                                                                                                                                      d3
                                                                                                                                                      2.9e+152)
                                                                                                                                                   (*
                                                                                                                                                    d1
                                                                                                                                                    d2)
                                                                                                                                                   (if (<=
                                                                                                                                                        d3
                                                                                                                                                        1.2e+157)
                                                                                                                                                     (*
                                                                                                                                                      d1
                                                                                                                                                      d4)
                                                                                                                                                     (if (<=
                                                                                                                                                          d3
                                                                                                                                                          1.74e+164)
                                                                                                                                                       t_1
                                                                                                                                                       (if (<=
                                                                                                                                                            d3
                                                                                                                                                            1.8e+165)
                                                                                                                                                         (*
                                                                                                                                                          d1
                                                                                                                                                          d2)
                                                                                                                                                         (if (<=
                                                                                                                                                              d3
                                                                                                                                                              3.7e+177)
                                                                                                                                                           t_1
                                                                                                                                                           (if (<=
                                                                                                                                                                d3
                                                                                                                                                                7.6e+180)
                                                                                                                                                             t_2
                                                                                                                                                             (if (<=
                                                                                                                                                                  d3
                                                                                                                                                                  3.1e+207)
                                                                                                                                                               t_0
                                                                                                                                                               (if (<=
                                                                                                                                                                    d3
                                                                                                                                                                    1.95e+216)
                                                                                                                                                                 t_1
                                                                                                                                                                 (if (<=
                                                                                                                                                                      d3
                                                                                                                                                                      2.8e+216)
                                                                                                                                                                   t_0
                                                                                                                                                                   (if (or (<=
                                                                                                                                                                            d3
                                                                                                                                                                            1.8e+271)
                                                                                                                                                                           (not
                                                                                                                                                                            (or (<=
                                                                                                                                                                                 d3
                                                                                                                                                                                 1.9e+271)
                                                                                                                                                                                (and (not
                                                                                                                                                                                      (<=
                                                                                                                                                                                       d3
                                                                                                                                                                                       4.2e+288))
                                                                                                                                                                                     (<=
                                                                                                                                                                                      d3
                                                                                                                                                                                      4.3e+288)))))
                                                                                                                                                                     t_1
                                                                                                                                                                     (*
                                                                                                                                                                      d1
                                                                                                                                                                      d2))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d2 + d4);
	double t_1 = d1 * -d3;
	double t_2 = d1 * -d1;
	double tmp;
	if (d3 <= -1.55e+74) {
		tmp = t_1;
	} else if (d3 <= -160000.0) {
		tmp = t_0;
	} else if (d3 <= -155000.0) {
		tmp = t_1;
	} else if (d3 <= -7.6e-5) {
		tmp = t_2;
	} else if (d3 <= -6.5e-13) {
		tmp = d1 * d2;
	} else if (d3 <= -4e-25) {
		tmp = t_2;
	} else if (d3 <= -7.6e-40) {
		tmp = d1 * d4;
	} else if (d3 <= -8e-47) {
		tmp = t_2;
	} else if (d3 <= -7.4e-81) {
		tmp = t_0;
	} else if (d3 <= -2.4e-84) {
		tmp = t_1;
	} else if (d3 <= -2.9e-114) {
		tmp = t_0;
	} else if (d3 <= -2.2e-128) {
		tmp = t_2;
	} else if (d3 <= -7e-135) {
		tmp = d1 * d4;
	} else if (d3 <= -3.3e-137) {
		tmp = t_2;
	} else if (d3 <= -1.2e-167) {
		tmp = t_0;
	} else if (d3 <= -2.7e-176) {
		tmp = t_2;
	} else if (d3 <= -4.15e-224) {
		tmp = t_0;
	} else if (d3 <= -6.1e-230) {
		tmp = t_2;
	} else if (d3 <= -2.3e-286) {
		tmp = t_0;
	} else if (d3 <= -2.6e-295) {
		tmp = t_2;
	} else if (d3 <= -2.1e-306) {
		tmp = d1 * d4;
	} else if (d3 <= 1.8e-304) {
		tmp = t_2;
	} else if (d3 <= 3.1e-271) {
		tmp = t_0;
	} else if (d3 <= 3.4e-271) {
		tmp = t_2;
	} else if (d3 <= 3.1e-262) {
		tmp = t_0;
	} else if (d3 <= 1.2e-261) {
		tmp = t_2;
	} else if (d3 <= 7.6e-219) {
		tmp = d1 * d2;
	} else if (d3 <= 1.6e-202) {
		tmp = t_2;
	} else if (d3 <= 3e-201) {
		tmp = d1 * d4;
	} else if (d3 <= 3.1e-200) {
		tmp = t_2;
	} else if (d3 <= 2.4e-172) {
		tmp = t_0;
	} else if (d3 <= 1.6e-171) {
		tmp = t_2;
	} else if (d3 <= 2e-169) {
		tmp = d1 * d2;
	} else if (d3 <= 1.05e-161) {
		tmp = t_2;
	} else if (d3 <= 2.15e-128) {
		tmp = t_0;
	} else if (d3 <= 2.3e-128) {
		tmp = t_2;
	} else if (d3 <= 1.95e-107) {
		tmp = t_0;
	} else if (d3 <= 4.3e-107) {
		tmp = t_2;
	} else if (d3 <= 2e-92) {
		tmp = t_0;
	} else if (d3 <= 3.2e-87) {
		tmp = t_2;
	} else if (d3 <= 3.3e-87) {
		tmp = t_1;
	} else if (d3 <= 4.6e-76) {
		tmp = d1 * d4;
	} else if (d3 <= 4.2e-74) {
		tmp = t_2;
	} else if (d3 <= 2.4e-71) {
		tmp = d1 * d4;
	} else if (d3 <= 2.45e-71) {
		tmp = t_1;
	} else if (d3 <= 2e-46) {
		tmp = t_2;
	} else if (d3 <= 8.8e-37) {
		tmp = d1 * d4;
	} else if (d3 <= 8.2e-25) {
		tmp = t_2;
	} else if (d3 <= 8e-22) {
		tmp = d1 * d2;
	} else if (d3 <= 3.6e-19) {
		tmp = t_2;
	} else if (d3 <= 3.4e+21) {
		tmp = t_0;
	} else if (d3 <= 3.45e+21) {
		tmp = t_1;
	} else if (d3 <= 1.6e+31) {
		tmp = t_0;
	} else if (d3 <= 1.4e+32) {
		tmp = t_2;
	} else if (d3 <= 1.02e+51) {
		tmp = d1 * d4;
	} else if (d3 <= 9.8e+51) {
		tmp = t_1;
	} else if (d3 <= 3.2e+59) {
		tmp = t_0;
	} else if (d3 <= 7e+62) {
		tmp = t_2;
	} else if (d3 <= 1.05e+64) {
		tmp = d1 * d4;
	} else if (d3 <= 4.8e+67) {
		tmp = t_2;
	} else if (d3 <= 3.1e+68) {
		tmp = d1 * d2;
	} else if (d3 <= 1.8e+72) {
		tmp = t_2;
	} else if (d3 <= 4.5e+89) {
		tmp = t_0;
	} else if (d3 <= 1.85e+99) {
		tmp = t_1;
	} else if (d3 <= 6e+104) {
		tmp = t_2;
	} else if (d3 <= 3.2e+124) {
		tmp = t_1;
	} else if (d3 <= 1.26e+128) {
		tmp = d1 * d4;
	} else if (d3 <= 4.5e+129) {
		tmp = t_2;
	} else if (d3 <= 5.6e+138) {
		tmp = t_1;
	} else if (d3 <= 2.2e+140) {
		tmp = d1 * d4;
	} else if (d3 <= 6.2e+151) {
		tmp = t_1;
	} else if (d3 <= 2.9e+152) {
		tmp = d1 * d2;
	} else if (d3 <= 1.2e+157) {
		tmp = d1 * d4;
	} else if (d3 <= 1.74e+164) {
		tmp = t_1;
	} else if (d3 <= 1.8e+165) {
		tmp = d1 * d2;
	} else if (d3 <= 3.7e+177) {
		tmp = t_1;
	} else if (d3 <= 7.6e+180) {
		tmp = t_2;
	} else if (d3 <= 3.1e+207) {
		tmp = t_0;
	} else if (d3 <= 1.95e+216) {
		tmp = t_1;
	} else if (d3 <= 2.8e+216) {
		tmp = t_0;
	} else if ((d3 <= 1.8e+271) || !((d3 <= 1.9e+271) || (!(d3 <= 4.2e+288) && (d3 <= 4.3e+288)))) {
		tmp = t_1;
	} else {
		tmp = d1 * d2;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = d1 * (d2 + d4)
    t_1 = d1 * -d3
    t_2 = d1 * -d1
    if (d3 <= (-1.55d+74)) then
        tmp = t_1
    else if (d3 <= (-160000.0d0)) then
        tmp = t_0
    else if (d3 <= (-155000.0d0)) then
        tmp = t_1
    else if (d3 <= (-7.6d-5)) then
        tmp = t_2
    else if (d3 <= (-6.5d-13)) then
        tmp = d1 * d2
    else if (d3 <= (-4d-25)) then
        tmp = t_2
    else if (d3 <= (-7.6d-40)) then
        tmp = d1 * d4
    else if (d3 <= (-8d-47)) then
        tmp = t_2
    else if (d3 <= (-7.4d-81)) then
        tmp = t_0
    else if (d3 <= (-2.4d-84)) then
        tmp = t_1
    else if (d3 <= (-2.9d-114)) then
        tmp = t_0
    else if (d3 <= (-2.2d-128)) then
        tmp = t_2
    else if (d3 <= (-7d-135)) then
        tmp = d1 * d4
    else if (d3 <= (-3.3d-137)) then
        tmp = t_2
    else if (d3 <= (-1.2d-167)) then
        tmp = t_0
    else if (d3 <= (-2.7d-176)) then
        tmp = t_2
    else if (d3 <= (-4.15d-224)) then
        tmp = t_0
    else if (d3 <= (-6.1d-230)) then
        tmp = t_2
    else if (d3 <= (-2.3d-286)) then
        tmp = t_0
    else if (d3 <= (-2.6d-295)) then
        tmp = t_2
    else if (d3 <= (-2.1d-306)) then
        tmp = d1 * d4
    else if (d3 <= 1.8d-304) then
        tmp = t_2
    else if (d3 <= 3.1d-271) then
        tmp = t_0
    else if (d3 <= 3.4d-271) then
        tmp = t_2
    else if (d3 <= 3.1d-262) then
        tmp = t_0
    else if (d3 <= 1.2d-261) then
        tmp = t_2
    else if (d3 <= 7.6d-219) then
        tmp = d1 * d2
    else if (d3 <= 1.6d-202) then
        tmp = t_2
    else if (d3 <= 3d-201) then
        tmp = d1 * d4
    else if (d3 <= 3.1d-200) then
        tmp = t_2
    else if (d3 <= 2.4d-172) then
        tmp = t_0
    else if (d3 <= 1.6d-171) then
        tmp = t_2
    else if (d3 <= 2d-169) then
        tmp = d1 * d2
    else if (d3 <= 1.05d-161) then
        tmp = t_2
    else if (d3 <= 2.15d-128) then
        tmp = t_0
    else if (d3 <= 2.3d-128) then
        tmp = t_2
    else if (d3 <= 1.95d-107) then
        tmp = t_0
    else if (d3 <= 4.3d-107) then
        tmp = t_2
    else if (d3 <= 2d-92) then
        tmp = t_0
    else if (d3 <= 3.2d-87) then
        tmp = t_2
    else if (d3 <= 3.3d-87) then
        tmp = t_1
    else if (d3 <= 4.6d-76) then
        tmp = d1 * d4
    else if (d3 <= 4.2d-74) then
        tmp = t_2
    else if (d3 <= 2.4d-71) then
        tmp = d1 * d4
    else if (d3 <= 2.45d-71) then
        tmp = t_1
    else if (d3 <= 2d-46) then
        tmp = t_2
    else if (d3 <= 8.8d-37) then
        tmp = d1 * d4
    else if (d3 <= 8.2d-25) then
        tmp = t_2
    else if (d3 <= 8d-22) then
        tmp = d1 * d2
    else if (d3 <= 3.6d-19) then
        tmp = t_2
    else if (d3 <= 3.4d+21) then
        tmp = t_0
    else if (d3 <= 3.45d+21) then
        tmp = t_1
    else if (d3 <= 1.6d+31) then
        tmp = t_0
    else if (d3 <= 1.4d+32) then
        tmp = t_2
    else if (d3 <= 1.02d+51) then
        tmp = d1 * d4
    else if (d3 <= 9.8d+51) then
        tmp = t_1
    else if (d3 <= 3.2d+59) then
        tmp = t_0
    else if (d3 <= 7d+62) then
        tmp = t_2
    else if (d3 <= 1.05d+64) then
        tmp = d1 * d4
    else if (d3 <= 4.8d+67) then
        tmp = t_2
    else if (d3 <= 3.1d+68) then
        tmp = d1 * d2
    else if (d3 <= 1.8d+72) then
        tmp = t_2
    else if (d3 <= 4.5d+89) then
        tmp = t_0
    else if (d3 <= 1.85d+99) then
        tmp = t_1
    else if (d3 <= 6d+104) then
        tmp = t_2
    else if (d3 <= 3.2d+124) then
        tmp = t_1
    else if (d3 <= 1.26d+128) then
        tmp = d1 * d4
    else if (d3 <= 4.5d+129) then
        tmp = t_2
    else if (d3 <= 5.6d+138) then
        tmp = t_1
    else if (d3 <= 2.2d+140) then
        tmp = d1 * d4
    else if (d3 <= 6.2d+151) then
        tmp = t_1
    else if (d3 <= 2.9d+152) then
        tmp = d1 * d2
    else if (d3 <= 1.2d+157) then
        tmp = d1 * d4
    else if (d3 <= 1.74d+164) then
        tmp = t_1
    else if (d3 <= 1.8d+165) then
        tmp = d1 * d2
    else if (d3 <= 3.7d+177) then
        tmp = t_1
    else if (d3 <= 7.6d+180) then
        tmp = t_2
    else if (d3 <= 3.1d+207) then
        tmp = t_0
    else if (d3 <= 1.95d+216) then
        tmp = t_1
    else if (d3 <= 2.8d+216) then
        tmp = t_0
    else if ((d3 <= 1.8d+271) .or. (.not. (d3 <= 1.9d+271) .or. (.not. (d3 <= 4.2d+288)) .and. (d3 <= 4.3d+288))) then
        tmp = t_1
    else
        tmp = d1 * d2
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d2 + d4);
	double t_1 = d1 * -d3;
	double t_2 = d1 * -d1;
	double tmp;
	if (d3 <= -1.55e+74) {
		tmp = t_1;
	} else if (d3 <= -160000.0) {
		tmp = t_0;
	} else if (d3 <= -155000.0) {
		tmp = t_1;
	} else if (d3 <= -7.6e-5) {
		tmp = t_2;
	} else if (d3 <= -6.5e-13) {
		tmp = d1 * d2;
	} else if (d3 <= -4e-25) {
		tmp = t_2;
	} else if (d3 <= -7.6e-40) {
		tmp = d1 * d4;
	} else if (d3 <= -8e-47) {
		tmp = t_2;
	} else if (d3 <= -7.4e-81) {
		tmp = t_0;
	} else if (d3 <= -2.4e-84) {
		tmp = t_1;
	} else if (d3 <= -2.9e-114) {
		tmp = t_0;
	} else if (d3 <= -2.2e-128) {
		tmp = t_2;
	} else if (d3 <= -7e-135) {
		tmp = d1 * d4;
	} else if (d3 <= -3.3e-137) {
		tmp = t_2;
	} else if (d3 <= -1.2e-167) {
		tmp = t_0;
	} else if (d3 <= -2.7e-176) {
		tmp = t_2;
	} else if (d3 <= -4.15e-224) {
		tmp = t_0;
	} else if (d3 <= -6.1e-230) {
		tmp = t_2;
	} else if (d3 <= -2.3e-286) {
		tmp = t_0;
	} else if (d3 <= -2.6e-295) {
		tmp = t_2;
	} else if (d3 <= -2.1e-306) {
		tmp = d1 * d4;
	} else if (d3 <= 1.8e-304) {
		tmp = t_2;
	} else if (d3 <= 3.1e-271) {
		tmp = t_0;
	} else if (d3 <= 3.4e-271) {
		tmp = t_2;
	} else if (d3 <= 3.1e-262) {
		tmp = t_0;
	} else if (d3 <= 1.2e-261) {
		tmp = t_2;
	} else if (d3 <= 7.6e-219) {
		tmp = d1 * d2;
	} else if (d3 <= 1.6e-202) {
		tmp = t_2;
	} else if (d3 <= 3e-201) {
		tmp = d1 * d4;
	} else if (d3 <= 3.1e-200) {
		tmp = t_2;
	} else if (d3 <= 2.4e-172) {
		tmp = t_0;
	} else if (d3 <= 1.6e-171) {
		tmp = t_2;
	} else if (d3 <= 2e-169) {
		tmp = d1 * d2;
	} else if (d3 <= 1.05e-161) {
		tmp = t_2;
	} else if (d3 <= 2.15e-128) {
		tmp = t_0;
	} else if (d3 <= 2.3e-128) {
		tmp = t_2;
	} else if (d3 <= 1.95e-107) {
		tmp = t_0;
	} else if (d3 <= 4.3e-107) {
		tmp = t_2;
	} else if (d3 <= 2e-92) {
		tmp = t_0;
	} else if (d3 <= 3.2e-87) {
		tmp = t_2;
	} else if (d3 <= 3.3e-87) {
		tmp = t_1;
	} else if (d3 <= 4.6e-76) {
		tmp = d1 * d4;
	} else if (d3 <= 4.2e-74) {
		tmp = t_2;
	} else if (d3 <= 2.4e-71) {
		tmp = d1 * d4;
	} else if (d3 <= 2.45e-71) {
		tmp = t_1;
	} else if (d3 <= 2e-46) {
		tmp = t_2;
	} else if (d3 <= 8.8e-37) {
		tmp = d1 * d4;
	} else if (d3 <= 8.2e-25) {
		tmp = t_2;
	} else if (d3 <= 8e-22) {
		tmp = d1 * d2;
	} else if (d3 <= 3.6e-19) {
		tmp = t_2;
	} else if (d3 <= 3.4e+21) {
		tmp = t_0;
	} else if (d3 <= 3.45e+21) {
		tmp = t_1;
	} else if (d3 <= 1.6e+31) {
		tmp = t_0;
	} else if (d3 <= 1.4e+32) {
		tmp = t_2;
	} else if (d3 <= 1.02e+51) {
		tmp = d1 * d4;
	} else if (d3 <= 9.8e+51) {
		tmp = t_1;
	} else if (d3 <= 3.2e+59) {
		tmp = t_0;
	} else if (d3 <= 7e+62) {
		tmp = t_2;
	} else if (d3 <= 1.05e+64) {
		tmp = d1 * d4;
	} else if (d3 <= 4.8e+67) {
		tmp = t_2;
	} else if (d3 <= 3.1e+68) {
		tmp = d1 * d2;
	} else if (d3 <= 1.8e+72) {
		tmp = t_2;
	} else if (d3 <= 4.5e+89) {
		tmp = t_0;
	} else if (d3 <= 1.85e+99) {
		tmp = t_1;
	} else if (d3 <= 6e+104) {
		tmp = t_2;
	} else if (d3 <= 3.2e+124) {
		tmp = t_1;
	} else if (d3 <= 1.26e+128) {
		tmp = d1 * d4;
	} else if (d3 <= 4.5e+129) {
		tmp = t_2;
	} else if (d3 <= 5.6e+138) {
		tmp = t_1;
	} else if (d3 <= 2.2e+140) {
		tmp = d1 * d4;
	} else if (d3 <= 6.2e+151) {
		tmp = t_1;
	} else if (d3 <= 2.9e+152) {
		tmp = d1 * d2;
	} else if (d3 <= 1.2e+157) {
		tmp = d1 * d4;
	} else if (d3 <= 1.74e+164) {
		tmp = t_1;
	} else if (d3 <= 1.8e+165) {
		tmp = d1 * d2;
	} else if (d3 <= 3.7e+177) {
		tmp = t_1;
	} else if (d3 <= 7.6e+180) {
		tmp = t_2;
	} else if (d3 <= 3.1e+207) {
		tmp = t_0;
	} else if (d3 <= 1.95e+216) {
		tmp = t_1;
	} else if (d3 <= 2.8e+216) {
		tmp = t_0;
	} else if ((d3 <= 1.8e+271) || !((d3 <= 1.9e+271) || (!(d3 <= 4.2e+288) && (d3 <= 4.3e+288)))) {
		tmp = t_1;
	} else {
		tmp = d1 * d2;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * (d2 + d4)
	t_1 = d1 * -d3
	t_2 = d1 * -d1
	tmp = 0
	if d3 <= -1.55e+74:
		tmp = t_1
	elif d3 <= -160000.0:
		tmp = t_0
	elif d3 <= -155000.0:
		tmp = t_1
	elif d3 <= -7.6e-5:
		tmp = t_2
	elif d3 <= -6.5e-13:
		tmp = d1 * d2
	elif d3 <= -4e-25:
		tmp = t_2
	elif d3 <= -7.6e-40:
		tmp = d1 * d4
	elif d3 <= -8e-47:
		tmp = t_2
	elif d3 <= -7.4e-81:
		tmp = t_0
	elif d3 <= -2.4e-84:
		tmp = t_1
	elif d3 <= -2.9e-114:
		tmp = t_0
	elif d3 <= -2.2e-128:
		tmp = t_2
	elif d3 <= -7e-135:
		tmp = d1 * d4
	elif d3 <= -3.3e-137:
		tmp = t_2
	elif d3 <= -1.2e-167:
		tmp = t_0
	elif d3 <= -2.7e-176:
		tmp = t_2
	elif d3 <= -4.15e-224:
		tmp = t_0
	elif d3 <= -6.1e-230:
		tmp = t_2
	elif d3 <= -2.3e-286:
		tmp = t_0
	elif d3 <= -2.6e-295:
		tmp = t_2
	elif d3 <= -2.1e-306:
		tmp = d1 * d4
	elif d3 <= 1.8e-304:
		tmp = t_2
	elif d3 <= 3.1e-271:
		tmp = t_0
	elif d3 <= 3.4e-271:
		tmp = t_2
	elif d3 <= 3.1e-262:
		tmp = t_0
	elif d3 <= 1.2e-261:
		tmp = t_2
	elif d3 <= 7.6e-219:
		tmp = d1 * d2
	elif d3 <= 1.6e-202:
		tmp = t_2
	elif d3 <= 3e-201:
		tmp = d1 * d4
	elif d3 <= 3.1e-200:
		tmp = t_2
	elif d3 <= 2.4e-172:
		tmp = t_0
	elif d3 <= 1.6e-171:
		tmp = t_2
	elif d3 <= 2e-169:
		tmp = d1 * d2
	elif d3 <= 1.05e-161:
		tmp = t_2
	elif d3 <= 2.15e-128:
		tmp = t_0
	elif d3 <= 2.3e-128:
		tmp = t_2
	elif d3 <= 1.95e-107:
		tmp = t_0
	elif d3 <= 4.3e-107:
		tmp = t_2
	elif d3 <= 2e-92:
		tmp = t_0
	elif d3 <= 3.2e-87:
		tmp = t_2
	elif d3 <= 3.3e-87:
		tmp = t_1
	elif d3 <= 4.6e-76:
		tmp = d1 * d4
	elif d3 <= 4.2e-74:
		tmp = t_2
	elif d3 <= 2.4e-71:
		tmp = d1 * d4
	elif d3 <= 2.45e-71:
		tmp = t_1
	elif d3 <= 2e-46:
		tmp = t_2
	elif d3 <= 8.8e-37:
		tmp = d1 * d4
	elif d3 <= 8.2e-25:
		tmp = t_2
	elif d3 <= 8e-22:
		tmp = d1 * d2
	elif d3 <= 3.6e-19:
		tmp = t_2
	elif d3 <= 3.4e+21:
		tmp = t_0
	elif d3 <= 3.45e+21:
		tmp = t_1
	elif d3 <= 1.6e+31:
		tmp = t_0
	elif d3 <= 1.4e+32:
		tmp = t_2
	elif d3 <= 1.02e+51:
		tmp = d1 * d4
	elif d3 <= 9.8e+51:
		tmp = t_1
	elif d3 <= 3.2e+59:
		tmp = t_0
	elif d3 <= 7e+62:
		tmp = t_2
	elif d3 <= 1.05e+64:
		tmp = d1 * d4
	elif d3 <= 4.8e+67:
		tmp = t_2
	elif d3 <= 3.1e+68:
		tmp = d1 * d2
	elif d3 <= 1.8e+72:
		tmp = t_2
	elif d3 <= 4.5e+89:
		tmp = t_0
	elif d3 <= 1.85e+99:
		tmp = t_1
	elif d3 <= 6e+104:
		tmp = t_2
	elif d3 <= 3.2e+124:
		tmp = t_1
	elif d3 <= 1.26e+128:
		tmp = d1 * d4
	elif d3 <= 4.5e+129:
		tmp = t_2
	elif d3 <= 5.6e+138:
		tmp = t_1
	elif d3 <= 2.2e+140:
		tmp = d1 * d4
	elif d3 <= 6.2e+151:
		tmp = t_1
	elif d3 <= 2.9e+152:
		tmp = d1 * d2
	elif d3 <= 1.2e+157:
		tmp = d1 * d4
	elif d3 <= 1.74e+164:
		tmp = t_1
	elif d3 <= 1.8e+165:
		tmp = d1 * d2
	elif d3 <= 3.7e+177:
		tmp = t_1
	elif d3 <= 7.6e+180:
		tmp = t_2
	elif d3 <= 3.1e+207:
		tmp = t_0
	elif d3 <= 1.95e+216:
		tmp = t_1
	elif d3 <= 2.8e+216:
		tmp = t_0
	elif (d3 <= 1.8e+271) or not ((d3 <= 1.9e+271) or (not (d3 <= 4.2e+288) and (d3 <= 4.3e+288))):
		tmp = t_1
	else:
		tmp = d1 * d2
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(d2 + d4))
	t_1 = Float64(d1 * Float64(-d3))
	t_2 = Float64(d1 * Float64(-d1))
	tmp = 0.0
	if (d3 <= -1.55e+74)
		tmp = t_1;
	elseif (d3 <= -160000.0)
		tmp = t_0;
	elseif (d3 <= -155000.0)
		tmp = t_1;
	elseif (d3 <= -7.6e-5)
		tmp = t_2;
	elseif (d3 <= -6.5e-13)
		tmp = Float64(d1 * d2);
	elseif (d3 <= -4e-25)
		tmp = t_2;
	elseif (d3 <= -7.6e-40)
		tmp = Float64(d1 * d4);
	elseif (d3 <= -8e-47)
		tmp = t_2;
	elseif (d3 <= -7.4e-81)
		tmp = t_0;
	elseif (d3 <= -2.4e-84)
		tmp = t_1;
	elseif (d3 <= -2.9e-114)
		tmp = t_0;
	elseif (d3 <= -2.2e-128)
		tmp = t_2;
	elseif (d3 <= -7e-135)
		tmp = Float64(d1 * d4);
	elseif (d3 <= -3.3e-137)
		tmp = t_2;
	elseif (d3 <= -1.2e-167)
		tmp = t_0;
	elseif (d3 <= -2.7e-176)
		tmp = t_2;
	elseif (d3 <= -4.15e-224)
		tmp = t_0;
	elseif (d3 <= -6.1e-230)
		tmp = t_2;
	elseif (d3 <= -2.3e-286)
		tmp = t_0;
	elseif (d3 <= -2.6e-295)
		tmp = t_2;
	elseif (d3 <= -2.1e-306)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 1.8e-304)
		tmp = t_2;
	elseif (d3 <= 3.1e-271)
		tmp = t_0;
	elseif (d3 <= 3.4e-271)
		tmp = t_2;
	elseif (d3 <= 3.1e-262)
		tmp = t_0;
	elseif (d3 <= 1.2e-261)
		tmp = t_2;
	elseif (d3 <= 7.6e-219)
		tmp = Float64(d1 * d2);
	elseif (d3 <= 1.6e-202)
		tmp = t_2;
	elseif (d3 <= 3e-201)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 3.1e-200)
		tmp = t_2;
	elseif (d3 <= 2.4e-172)
		tmp = t_0;
	elseif (d3 <= 1.6e-171)
		tmp = t_2;
	elseif (d3 <= 2e-169)
		tmp = Float64(d1 * d2);
	elseif (d3 <= 1.05e-161)
		tmp = t_2;
	elseif (d3 <= 2.15e-128)
		tmp = t_0;
	elseif (d3 <= 2.3e-128)
		tmp = t_2;
	elseif (d3 <= 1.95e-107)
		tmp = t_0;
	elseif (d3 <= 4.3e-107)
		tmp = t_2;
	elseif (d3 <= 2e-92)
		tmp = t_0;
	elseif (d3 <= 3.2e-87)
		tmp = t_2;
	elseif (d3 <= 3.3e-87)
		tmp = t_1;
	elseif (d3 <= 4.6e-76)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 4.2e-74)
		tmp = t_2;
	elseif (d3 <= 2.4e-71)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 2.45e-71)
		tmp = t_1;
	elseif (d3 <= 2e-46)
		tmp = t_2;
	elseif (d3 <= 8.8e-37)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 8.2e-25)
		tmp = t_2;
	elseif (d3 <= 8e-22)
		tmp = Float64(d1 * d2);
	elseif (d3 <= 3.6e-19)
		tmp = t_2;
	elseif (d3 <= 3.4e+21)
		tmp = t_0;
	elseif (d3 <= 3.45e+21)
		tmp = t_1;
	elseif (d3 <= 1.6e+31)
		tmp = t_0;
	elseif (d3 <= 1.4e+32)
		tmp = t_2;
	elseif (d3 <= 1.02e+51)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 9.8e+51)
		tmp = t_1;
	elseif (d3 <= 3.2e+59)
		tmp = t_0;
	elseif (d3 <= 7e+62)
		tmp = t_2;
	elseif (d3 <= 1.05e+64)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 4.8e+67)
		tmp = t_2;
	elseif (d3 <= 3.1e+68)
		tmp = Float64(d1 * d2);
	elseif (d3 <= 1.8e+72)
		tmp = t_2;
	elseif (d3 <= 4.5e+89)
		tmp = t_0;
	elseif (d3 <= 1.85e+99)
		tmp = t_1;
	elseif (d3 <= 6e+104)
		tmp = t_2;
	elseif (d3 <= 3.2e+124)
		tmp = t_1;
	elseif (d3 <= 1.26e+128)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 4.5e+129)
		tmp = t_2;
	elseif (d3 <= 5.6e+138)
		tmp = t_1;
	elseif (d3 <= 2.2e+140)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 6.2e+151)
		tmp = t_1;
	elseif (d3 <= 2.9e+152)
		tmp = Float64(d1 * d2);
	elseif (d3 <= 1.2e+157)
		tmp = Float64(d1 * d4);
	elseif (d3 <= 1.74e+164)
		tmp = t_1;
	elseif (d3 <= 1.8e+165)
		tmp = Float64(d1 * d2);
	elseif (d3 <= 3.7e+177)
		tmp = t_1;
	elseif (d3 <= 7.6e+180)
		tmp = t_2;
	elseif (d3 <= 3.1e+207)
		tmp = t_0;
	elseif (d3 <= 1.95e+216)
		tmp = t_1;
	elseif (d3 <= 2.8e+216)
		tmp = t_0;
	elseif ((d3 <= 1.8e+271) || !((d3 <= 1.9e+271) || (!(d3 <= 4.2e+288) && (d3 <= 4.3e+288))))
		tmp = t_1;
	else
		tmp = Float64(d1 * d2);
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * (d2 + d4);
	t_1 = d1 * -d3;
	t_2 = d1 * -d1;
	tmp = 0.0;
	if (d3 <= -1.55e+74)
		tmp = t_1;
	elseif (d3 <= -160000.0)
		tmp = t_0;
	elseif (d3 <= -155000.0)
		tmp = t_1;
	elseif (d3 <= -7.6e-5)
		tmp = t_2;
	elseif (d3 <= -6.5e-13)
		tmp = d1 * d2;
	elseif (d3 <= -4e-25)
		tmp = t_2;
	elseif (d3 <= -7.6e-40)
		tmp = d1 * d4;
	elseif (d3 <= -8e-47)
		tmp = t_2;
	elseif (d3 <= -7.4e-81)
		tmp = t_0;
	elseif (d3 <= -2.4e-84)
		tmp = t_1;
	elseif (d3 <= -2.9e-114)
		tmp = t_0;
	elseif (d3 <= -2.2e-128)
		tmp = t_2;
	elseif (d3 <= -7e-135)
		tmp = d1 * d4;
	elseif (d3 <= -3.3e-137)
		tmp = t_2;
	elseif (d3 <= -1.2e-167)
		tmp = t_0;
	elseif (d3 <= -2.7e-176)
		tmp = t_2;
	elseif (d3 <= -4.15e-224)
		tmp = t_0;
	elseif (d3 <= -6.1e-230)
		tmp = t_2;
	elseif (d3 <= -2.3e-286)
		tmp = t_0;
	elseif (d3 <= -2.6e-295)
		tmp = t_2;
	elseif (d3 <= -2.1e-306)
		tmp = d1 * d4;
	elseif (d3 <= 1.8e-304)
		tmp = t_2;
	elseif (d3 <= 3.1e-271)
		tmp = t_0;
	elseif (d3 <= 3.4e-271)
		tmp = t_2;
	elseif (d3 <= 3.1e-262)
		tmp = t_0;
	elseif (d3 <= 1.2e-261)
		tmp = t_2;
	elseif (d3 <= 7.6e-219)
		tmp = d1 * d2;
	elseif (d3 <= 1.6e-202)
		tmp = t_2;
	elseif (d3 <= 3e-201)
		tmp = d1 * d4;
	elseif (d3 <= 3.1e-200)
		tmp = t_2;
	elseif (d3 <= 2.4e-172)
		tmp = t_0;
	elseif (d3 <= 1.6e-171)
		tmp = t_2;
	elseif (d3 <= 2e-169)
		tmp = d1 * d2;
	elseif (d3 <= 1.05e-161)
		tmp = t_2;
	elseif (d3 <= 2.15e-128)
		tmp = t_0;
	elseif (d3 <= 2.3e-128)
		tmp = t_2;
	elseif (d3 <= 1.95e-107)
		tmp = t_0;
	elseif (d3 <= 4.3e-107)
		tmp = t_2;
	elseif (d3 <= 2e-92)
		tmp = t_0;
	elseif (d3 <= 3.2e-87)
		tmp = t_2;
	elseif (d3 <= 3.3e-87)
		tmp = t_1;
	elseif (d3 <= 4.6e-76)
		tmp = d1 * d4;
	elseif (d3 <= 4.2e-74)
		tmp = t_2;
	elseif (d3 <= 2.4e-71)
		tmp = d1 * d4;
	elseif (d3 <= 2.45e-71)
		tmp = t_1;
	elseif (d3 <= 2e-46)
		tmp = t_2;
	elseif (d3 <= 8.8e-37)
		tmp = d1 * d4;
	elseif (d3 <= 8.2e-25)
		tmp = t_2;
	elseif (d3 <= 8e-22)
		tmp = d1 * d2;
	elseif (d3 <= 3.6e-19)
		tmp = t_2;
	elseif (d3 <= 3.4e+21)
		tmp = t_0;
	elseif (d3 <= 3.45e+21)
		tmp = t_1;
	elseif (d3 <= 1.6e+31)
		tmp = t_0;
	elseif (d3 <= 1.4e+32)
		tmp = t_2;
	elseif (d3 <= 1.02e+51)
		tmp = d1 * d4;
	elseif (d3 <= 9.8e+51)
		tmp = t_1;
	elseif (d3 <= 3.2e+59)
		tmp = t_0;
	elseif (d3 <= 7e+62)
		tmp = t_2;
	elseif (d3 <= 1.05e+64)
		tmp = d1 * d4;
	elseif (d3 <= 4.8e+67)
		tmp = t_2;
	elseif (d3 <= 3.1e+68)
		tmp = d1 * d2;
	elseif (d3 <= 1.8e+72)
		tmp = t_2;
	elseif (d3 <= 4.5e+89)
		tmp = t_0;
	elseif (d3 <= 1.85e+99)
		tmp = t_1;
	elseif (d3 <= 6e+104)
		tmp = t_2;
	elseif (d3 <= 3.2e+124)
		tmp = t_1;
	elseif (d3 <= 1.26e+128)
		tmp = d1 * d4;
	elseif (d3 <= 4.5e+129)
		tmp = t_2;
	elseif (d3 <= 5.6e+138)
		tmp = t_1;
	elseif (d3 <= 2.2e+140)
		tmp = d1 * d4;
	elseif (d3 <= 6.2e+151)
		tmp = t_1;
	elseif (d3 <= 2.9e+152)
		tmp = d1 * d2;
	elseif (d3 <= 1.2e+157)
		tmp = d1 * d4;
	elseif (d3 <= 1.74e+164)
		tmp = t_1;
	elseif (d3 <= 1.8e+165)
		tmp = d1 * d2;
	elseif (d3 <= 3.7e+177)
		tmp = t_1;
	elseif (d3 <= 7.6e+180)
		tmp = t_2;
	elseif (d3 <= 3.1e+207)
		tmp = t_0;
	elseif (d3 <= 1.95e+216)
		tmp = t_1;
	elseif (d3 <= 2.8e+216)
		tmp = t_0;
	elseif ((d3 <= 1.8e+271) || ~(((d3 <= 1.9e+271) || (~((d3 <= 4.2e+288)) && (d3 <= 4.3e+288)))))
		tmp = t_1;
	else
		tmp = d1 * d2;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(d2 + d4), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(d1 * (-d3)), $MachinePrecision]}, Block[{t$95$2 = N[(d1 * (-d1)), $MachinePrecision]}, If[LessEqual[d3, -1.55e+74], t$95$1, If[LessEqual[d3, -160000.0], t$95$0, If[LessEqual[d3, -155000.0], t$95$1, If[LessEqual[d3, -7.6e-5], t$95$2, If[LessEqual[d3, -6.5e-13], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, -4e-25], t$95$2, If[LessEqual[d3, -7.6e-40], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, -8e-47], t$95$2, If[LessEqual[d3, -7.4e-81], t$95$0, If[LessEqual[d3, -2.4e-84], t$95$1, If[LessEqual[d3, -2.9e-114], t$95$0, If[LessEqual[d3, -2.2e-128], t$95$2, If[LessEqual[d3, -7e-135], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, -3.3e-137], t$95$2, If[LessEqual[d3, -1.2e-167], t$95$0, If[LessEqual[d3, -2.7e-176], t$95$2, If[LessEqual[d3, -4.15e-224], t$95$0, If[LessEqual[d3, -6.1e-230], t$95$2, If[LessEqual[d3, -2.3e-286], t$95$0, If[LessEqual[d3, -2.6e-295], t$95$2, If[LessEqual[d3, -2.1e-306], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 1.8e-304], t$95$2, If[LessEqual[d3, 3.1e-271], t$95$0, If[LessEqual[d3, 3.4e-271], t$95$2, If[LessEqual[d3, 3.1e-262], t$95$0, If[LessEqual[d3, 1.2e-261], t$95$2, If[LessEqual[d3, 7.6e-219], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, 1.6e-202], t$95$2, If[LessEqual[d3, 3e-201], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 3.1e-200], t$95$2, If[LessEqual[d3, 2.4e-172], t$95$0, If[LessEqual[d3, 1.6e-171], t$95$2, If[LessEqual[d3, 2e-169], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, 1.05e-161], t$95$2, If[LessEqual[d3, 2.15e-128], t$95$0, If[LessEqual[d3, 2.3e-128], t$95$2, If[LessEqual[d3, 1.95e-107], t$95$0, If[LessEqual[d3, 4.3e-107], t$95$2, If[LessEqual[d3, 2e-92], t$95$0, If[LessEqual[d3, 3.2e-87], t$95$2, If[LessEqual[d3, 3.3e-87], t$95$1, If[LessEqual[d3, 4.6e-76], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 4.2e-74], t$95$2, If[LessEqual[d3, 2.4e-71], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 2.45e-71], t$95$1, If[LessEqual[d3, 2e-46], t$95$2, If[LessEqual[d3, 8.8e-37], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 8.2e-25], t$95$2, If[LessEqual[d3, 8e-22], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, 3.6e-19], t$95$2, If[LessEqual[d3, 3.4e+21], t$95$0, If[LessEqual[d3, 3.45e+21], t$95$1, If[LessEqual[d3, 1.6e+31], t$95$0, If[LessEqual[d3, 1.4e+32], t$95$2, If[LessEqual[d3, 1.02e+51], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 9.8e+51], t$95$1, If[LessEqual[d3, 3.2e+59], t$95$0, If[LessEqual[d3, 7e+62], t$95$2, If[LessEqual[d3, 1.05e+64], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 4.8e+67], t$95$2, If[LessEqual[d3, 3.1e+68], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, 1.8e+72], t$95$2, If[LessEqual[d3, 4.5e+89], t$95$0, If[LessEqual[d3, 1.85e+99], t$95$1, If[LessEqual[d3, 6e+104], t$95$2, If[LessEqual[d3, 3.2e+124], t$95$1, If[LessEqual[d3, 1.26e+128], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 4.5e+129], t$95$2, If[LessEqual[d3, 5.6e+138], t$95$1, If[LessEqual[d3, 2.2e+140], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 6.2e+151], t$95$1, If[LessEqual[d3, 2.9e+152], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, 1.2e+157], N[(d1 * d4), $MachinePrecision], If[LessEqual[d3, 1.74e+164], t$95$1, If[LessEqual[d3, 1.8e+165], N[(d1 * d2), $MachinePrecision], If[LessEqual[d3, 3.7e+177], t$95$1, If[LessEqual[d3, 7.6e+180], t$95$2, If[LessEqual[d3, 3.1e+207], t$95$0, If[LessEqual[d3, 1.95e+216], t$95$1, If[LessEqual[d3, 2.8e+216], t$95$0, If[Or[LessEqual[d3, 1.8e+271], N[Not[Or[LessEqual[d3, 1.9e+271], And[N[Not[LessEqual[d3, 4.2e+288]], $MachinePrecision], LessEqual[d3, 4.3e+288]]]], $MachinePrecision]], t$95$1, N[(d1 * d2), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(d2 + d4\right)\\
t_1 := d1 \cdot \left(-d3\right)\\
t_2 := d1 \cdot \left(-d1\right)\\
\mathbf{if}\;d3 \leq -1.55 \cdot 10^{+74}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq -160000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq -155000:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq -7.6 \cdot 10^{-5}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -6.5 \cdot 10^{-13}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq -4 \cdot 10^{-25}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -7.6 \cdot 10^{-40}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq -8 \cdot 10^{-47}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -7.4 \cdot 10^{-81}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq -2.4 \cdot 10^{-84}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq -2.9 \cdot 10^{-114}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq -2.2 \cdot 10^{-128}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -7 \cdot 10^{-135}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq -3.3 \cdot 10^{-137}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -1.2 \cdot 10^{-167}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq -2.7 \cdot 10^{-176}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -4.15 \cdot 10^{-224}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq -6.1 \cdot 10^{-230}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -2.3 \cdot 10^{-286}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq -2.6 \cdot 10^{-295}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq -2.1 \cdot 10^{-306}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 1.8 \cdot 10^{-304}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-271}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 3.4 \cdot 10^{-271}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-262}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 1.2 \cdot 10^{-261}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 7.6 \cdot 10^{-219}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq 1.6 \cdot 10^{-202}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3 \cdot 10^{-201}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-200}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 2.4 \cdot 10^{-172}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 1.6 \cdot 10^{-171}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 2 \cdot 10^{-169}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq 1.05 \cdot 10^{-161}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 2.15 \cdot 10^{-128}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 2.3 \cdot 10^{-128}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 1.95 \cdot 10^{-107}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 4.3 \cdot 10^{-107}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 2 \cdot 10^{-92}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 3.2 \cdot 10^{-87}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.3 \cdot 10^{-87}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 4.6 \cdot 10^{-76}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 4.2 \cdot 10^{-74}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 2.4 \cdot 10^{-71}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 2.45 \cdot 10^{-71}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 2 \cdot 10^{-46}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 8.8 \cdot 10^{-37}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 8.2 \cdot 10^{-25}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 8 \cdot 10^{-22}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq 3.6 \cdot 10^{-19}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.4 \cdot 10^{+21}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 3.45 \cdot 10^{+21}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 1.6 \cdot 10^{+31}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 1.4 \cdot 10^{+32}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 1.02 \cdot 10^{+51}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 9.8 \cdot 10^{+51}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 3.2 \cdot 10^{+59}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 7 \cdot 10^{+62}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 1.05 \cdot 10^{+64}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 4.8 \cdot 10^{+67}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.1 \cdot 10^{+68}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+72}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 4.5 \cdot 10^{+89}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 1.85 \cdot 10^{+99}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 6 \cdot 10^{+104}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.2 \cdot 10^{+124}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 1.26 \cdot 10^{+128}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 4.5 \cdot 10^{+129}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 5.6 \cdot 10^{+138}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 2.2 \cdot 10^{+140}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 6.2 \cdot 10^{+151}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 2.9 \cdot 10^{+152}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq 1.2 \cdot 10^{+157}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d3 \leq 1.74 \cdot 10^{+164}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+165}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d3 \leq 3.7 \cdot 10^{+177}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 7.6 \cdot 10^{+180}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d3 \leq 3.1 \cdot 10^{+207}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 1.95 \cdot 10^{+216}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d3 \leq 2.8 \cdot 10^{+216}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+271} \lor \neg \left(d3 \leq 1.9 \cdot 10^{+271} \lor \neg \left(d3 \leq 4.2 \cdot 10^{+288}\right) \land d3 \leq 4.3 \cdot 10^{+288}\right):\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;d1 \cdot d2\\


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if d3 < -1.55000000000000011e74 or -1.6e5 < d3 < -155000 or -7.39999999999999971e-81 < d3 < -2.40000000000000017e-84 or 3.19999999999999979e-87 < d3 < 3.3e-87 or 2.4e-71 < d3 < 2.4499999999999999e-71 or 3.4e21 < d3 < 3.45e21 or 1.02e51 < d3 < 9.79999999999999967e51 or 4.5e89 < d3 < 1.85000000000000005e99 or 5.99999999999999937e104 < d3 < 3.19999999999999993e124 or 4.5000000000000001e129 < d3 < 5.6000000000000002e138 or 2.1999999999999998e140 < d3 < 6.2000000000000004e151 or 1.2e157 < d3 < 1.7400000000000001e164 or 1.7999999999999999e165 < d3 < 3.70000000000000014e177 or 3.1000000000000003e207 < d3 < 1.9499999999999999e216 or 2.79999999999999982e216 < d3 < 1.8000000000000002e271 or 1.8999999999999999e271 < d3 < 4.19999999999999998e288 or 4.3000000000000002e288 < d3

    1. Initial program 86.3%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+86.3%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.5%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.6%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d3 around inf 84.3%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right)} \]
    6. Step-by-step derivation
      1. mul-1-neg84.3%

        \[\leadsto \color{blue}{-d1 \cdot d3} \]
      2. distribute-rgt-neg-out84.3%

        \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
    7. Simplified84.3%

      \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]

    if -1.55000000000000011e74 < d3 < -1.6e5 or -7.9999999999999998e-47 < d3 < -7.39999999999999971e-81 or -2.40000000000000017e-84 < d3 < -2.89999999999999997e-114 or -3.3000000000000002e-137 < d3 < -1.19999999999999997e-167 or -2.6999999999999998e-176 < d3 < -4.14999999999999999e-224 or -6.09999999999999956e-230 < d3 < -2.3000000000000002e-286 or 1.8000000000000001e-304 < d3 < 3.0999999999999999e-271 or 3.4000000000000001e-271 < d3 < 3.0999999999999998e-262 or 3.0999999999999999e-200 < d3 < 2.4000000000000001e-172 or 1.05e-161 < d3 < 2.14999999999999997e-128 or 2.3000000000000001e-128 < d3 < 1.95e-107 or 4.2999999999999997e-107 < d3 < 1.99999999999999998e-92 or 3.6000000000000001e-19 < d3 < 3.4e21 or 3.45e21 < d3 < 1.6e31 or 9.79999999999999967e51 < d3 < 3.19999999999999982e59 or 1.80000000000000017e72 < d3 < 4.5e89 or 7.6e180 < d3 < 3.1000000000000003e207 or 1.9499999999999999e216 < d3 < 2.79999999999999982e216

    1. Initial program 92.4%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+92.4%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--93.6%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--94.9%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 97.6%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d3 around 0 95.8%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 + d4\right)} \]
    7. Step-by-step derivation
      1. +-commutative95.8%

        \[\leadsto d1 \cdot \color{blue}{\left(d4 + d2\right)} \]
    8. Simplified95.8%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 + d2\right)} \]

    if -155000 < d3 < -7.6000000000000004e-5 or -6.49999999999999957e-13 < d3 < -4.00000000000000015e-25 or -7.5999999999999998e-40 < d3 < -7.9999999999999998e-47 or -2.89999999999999997e-114 < d3 < -2.20000000000000009e-128 or -6.9999999999999997e-135 < d3 < -3.3000000000000002e-137 or -1.19999999999999997e-167 < d3 < -2.6999999999999998e-176 or -4.14999999999999999e-224 < d3 < -6.09999999999999956e-230 or -2.3000000000000002e-286 < d3 < -2.59999999999999985e-295 or -2.1000000000000001e-306 < d3 < 1.8000000000000001e-304 or 3.0999999999999999e-271 < d3 < 3.4000000000000001e-271 or 3.0999999999999998e-262 < d3 < 1.20000000000000007e-261 or 7.60000000000000049e-219 < d3 < 1.6000000000000001e-202 or 3.00000000000000002e-201 < d3 < 3.0999999999999999e-200 or 2.4000000000000001e-172 < d3 < 1.6000000000000001e-171 or 2.00000000000000004e-169 < d3 < 1.05e-161 or 2.14999999999999997e-128 < d3 < 2.3000000000000001e-128 or 1.95e-107 < d3 < 4.2999999999999997e-107 or 1.99999999999999998e-92 < d3 < 3.19999999999999979e-87 or 4.60000000000000012e-76 < d3 < 4.2e-74 or 2.4499999999999999e-71 < d3 < 2.00000000000000005e-46 or 8.80000000000000008e-37 < d3 < 8.19999999999999974e-25 or 8.0000000000000004e-22 < d3 < 3.6000000000000001e-19 or 1.6e31 < d3 < 1.4e32 or 3.19999999999999982e59 < d3 < 6.99999999999999967e62 or 1.05e64 < d3 < 4.80000000000000004e67 or 3.0999999999999998e68 < d3 < 1.80000000000000017e72 or 1.85000000000000005e99 < d3 < 5.99999999999999937e104 or 1.26000000000000009e128 < d3 < 4.5000000000000001e129 or 3.70000000000000014e177 < d3 < 7.6e180

    1. Initial program 77.1%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+77.1%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--77.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--87.5%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around inf 98.2%

      \[\leadsto d1 \cdot \color{blue}{\left(-1 \cdot d1\right)} \]
    6. Step-by-step derivation
      1. neg-mul-198.2%

        \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]
    7. Simplified98.2%

      \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]

    if -7.6000000000000004e-5 < d3 < -6.49999999999999957e-13 or 1.20000000000000007e-261 < d3 < 7.60000000000000049e-219 or 1.6000000000000001e-171 < d3 < 2.00000000000000004e-169 or 8.19999999999999974e-25 < d3 < 8.0000000000000004e-22 or 4.80000000000000004e67 < d3 < 3.0999999999999998e68 or 6.2000000000000004e151 < d3 < 2.8999999999999998e152 or 1.7400000000000001e164 < d3 < 1.7999999999999999e165 or 1.8000000000000002e271 < d3 < 1.8999999999999999e271 or 4.19999999999999998e288 < d3 < 4.3000000000000002e288

    1. Initial program 85.6%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+85.6%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--85.6%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--85.6%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 60.0%

      \[\leadsto \color{blue}{d1 \cdot d2} \]

    if -4.00000000000000015e-25 < d3 < -7.5999999999999998e-40 or -2.20000000000000009e-128 < d3 < -6.9999999999999997e-135 or -2.59999999999999985e-295 < d3 < -2.1000000000000001e-306 or 1.6000000000000001e-202 < d3 < 3.00000000000000002e-201 or 3.3e-87 < d3 < 4.60000000000000012e-76 or 4.2e-74 < d3 < 2.4e-71 or 2.00000000000000005e-46 < d3 < 8.80000000000000008e-37 or 1.4e32 < d3 < 1.02e51 or 6.99999999999999967e62 < d3 < 1.05e64 or 3.19999999999999993e124 < d3 < 1.26000000000000009e128 or 5.6000000000000002e138 < d3 < 2.1999999999999998e140 or 2.8999999999999998e152 < d3 < 1.2e157

    1. Initial program 90.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+90.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--95.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--95.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 51.2%

      \[\leadsto \color{blue}{d1 \cdot d4} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification86.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d3 \leq -1.55 \cdot 10^{+74}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq -160000:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq -155000:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq -7.6 \cdot 10^{-5}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -6.5 \cdot 10^{-13}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq -4 \cdot 10^{-25}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -7.6 \cdot 10^{-40}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq -8 \cdot 10^{-47}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -7.4 \cdot 10^{-81}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq -2.4 \cdot 10^{-84}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq -2.9 \cdot 10^{-114}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq -2.2 \cdot 10^{-128}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -7 \cdot 10^{-135}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq -3.3 \cdot 10^{-137}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -1.2 \cdot 10^{-167}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq -2.7 \cdot 10^{-176}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -4.15 \cdot 10^{-224}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq -6.1 \cdot 10^{-230}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -2.3 \cdot 10^{-286}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq -2.6 \cdot 10^{-295}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq -2.1 \cdot 10^{-306}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{-304}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-271}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 3.4 \cdot 10^{-271}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-262}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 1.2 \cdot 10^{-261}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 7.6 \cdot 10^{-219}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.6 \cdot 10^{-202}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3 \cdot 10^{-201}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{-200}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 2.4 \cdot 10^{-172}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 1.6 \cdot 10^{-171}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 2 \cdot 10^{-169}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.05 \cdot 10^{-161}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 2.15 \cdot 10^{-128}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 2.3 \cdot 10^{-128}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 1.95 \cdot 10^{-107}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 4.3 \cdot 10^{-107}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 2 \cdot 10^{-92}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 3.2 \cdot 10^{-87}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.3 \cdot 10^{-87}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 4.6 \cdot 10^{-76}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 4.2 \cdot 10^{-74}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 2.4 \cdot 10^{-71}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 2.45 \cdot 10^{-71}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 2 \cdot 10^{-46}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 8.8 \cdot 10^{-37}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 8.2 \cdot 10^{-25}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 8 \cdot 10^{-22}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 3.6 \cdot 10^{-19}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.4 \cdot 10^{+21}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 3.45 \cdot 10^{+21}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 1.6 \cdot 10^{+31}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 1.4 \cdot 10^{+32}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 1.02 \cdot 10^{+51}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 9.8 \cdot 10^{+51}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 3.2 \cdot 10^{+59}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 7 \cdot 10^{+62}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 1.05 \cdot 10^{+64}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 4.8 \cdot 10^{+67}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{+68}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+72}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 4.5 \cdot 10^{+89}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 1.85 \cdot 10^{+99}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 6 \cdot 10^{+104}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.2 \cdot 10^{+124}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 1.26 \cdot 10^{+128}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 4.5 \cdot 10^{+129}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 5.6 \cdot 10^{+138}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 2.2 \cdot 10^{+140}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 6.2 \cdot 10^{+151}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 2.9 \cdot 10^{+152}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 1.2 \cdot 10^{+157}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d3 \leq 1.74 \cdot 10^{+164}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+165}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d3 \leq 3.7 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 7.6 \cdot 10^{+180}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d3 \leq 3.1 \cdot 10^{+207}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 1.95 \cdot 10^{+216}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d3 \leq 2.8 \cdot 10^{+216}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d3 \leq 1.8 \cdot 10^{+271} \lor \neg \left(d3 \leq 1.9 \cdot 10^{+271} \lor \neg \left(d3 \leq 4.2 \cdot 10^{+288}\right) \land d3 \leq 4.3 \cdot 10^{+288}\right):\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d2\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 39.9% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(-d1\right)\\ \mathbf{if}\;d2 \leq -6.2 \cdot 10^{+65}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -3.3 \cdot 10^{+18}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -3.7 \cdot 10^{+14}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -90000000000000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -54000000000000:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -210:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -205:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -0.0038:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.55 \cdot 10^{-8}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.3 \cdot 10^{-8}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -3 \cdot 10^{-16}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-20}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -3.5 \cdot 10^{-21}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -3.3 \cdot 10^{-46}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.65 \cdot 10^{-52}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-58}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.4 \cdot 10^{-66}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.75 \cdot 10^{-70}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-72}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.35 \cdot 10^{-74}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.15 \cdot 10^{-78}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-81}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.15 \cdot 10^{-94}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.55 \cdot 10^{-103}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -6.5 \cdot 10^{-111}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -6.4 \cdot 10^{-111}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -2.9 \cdot 10^{-116}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-117}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -1.25 \cdot 10^{-127}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.8 \cdot 10^{-132}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.1 \cdot 10^{-137}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.5 \cdot 10^{-145}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-146}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-148}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.7 \cdot 10^{-150}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -5.3 \cdot 10^{-157}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-160}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.35 \cdot 10^{-188}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-188}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-219}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -5.6 \cdot 10^{-219}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-229}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-241}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -6 \cdot 10^{-249}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-249}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-264}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-269}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -3.4 \cdot 10^{-281}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -9 \cdot 10^{-284}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-298}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.85 \cdot 10^{-301}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq 8 \cdot 10^{-292}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 3.2 \cdot 10^{-272}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.45 \cdot 10^{-257}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-246}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.05 \cdot 10^{-216}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 1.15 \cdot 10^{-207}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.8 \cdot 10^{-205}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 1.3 \cdot 10^{-198}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-197}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 6 \cdot 10^{-187}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 2.95 \cdot 10^{-179}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-170}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 2.15 \cdot 10^{-166}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 3.25 \cdot 10^{-99}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-99}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-90} \lor \neg \left(d2 \leq 3.8 \cdot 10^{-87} \lor \neg \left(d2 \leq 9 \cdot 10^{-45}\right) \land \left(d2 \leq 9 \cdot 10^{-20} \lor \neg \left(d2 \leq 1.02 \cdot 10^{-7}\right) \land \left(d2 \leq 2.4 \cdot 10^{+23} \lor \neg \left(d2 \leq 8.5 \cdot 10^{+34}\right) \land \left(d2 \leq 7 \cdot 10^{+37} \lor \neg \left(d2 \leq 3.4 \cdot 10^{+70}\right) \land d2 \leq 2.7 \cdot 10^{+78}\right)\right)\right)\right):\\ \;\;\;\;d1 \cdot d4\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- d1))))
   (if (<= d2 -6.2e+65)
     (* d1 d2)
     (if (<= d2 -3.3e+18)
       t_0
       (if (<= d2 -3.7e+14)
         (* d1 d4)
         (if (<= d2 -90000000000000.0)
           t_0
           (if (<= d2 -54000000000000.0)
             (* d1 d2)
             (if (<= d2 -210.0)
               t_0
               (if (<= d2 -205.0)
                 (* d1 d2)
                 (if (<= d2 -0.0038)
                   t_0
                   (if (<= d2 -2.55e-8)
                     (* d1 d4)
                     (if (<= d2 -2.3e-8)
                       (* d1 d2)
                       (if (<= d2 -3e-16)
                         (* d1 d4)
                         (if (<= d2 -2.8e-20)
                           t_0
                           (if (<= d2 -3.5e-21)
                             (* d1 d2)
                             (if (<= d2 -3.3e-46)
                               (* d1 d4)
                               (if (<= d2 -1.65e-52)
                                 t_0
                                 (if (<= d2 -1.6e-52)
                                   (* d1 d2)
                                   (if (<= d2 -4.8e-58)
                                     t_0
                                     (if (<= d2 -2.4e-66)
                                       (* d1 d4)
                                       (if (<= d2 -2.75e-70)
                                         t_0
                                         (if (<= d2 -4.2e-72)
                                           (* d1 d4)
                                           (if (<= d2 -1.35e-74)
                                             t_0
                                             (if (<= d2 -1.15e-78)
                                               (* d1 d4)
                                               (if (<= d2 -2.8e-81)
                                                 t_0
                                                 (if (<= d2 -2.15e-94)
                                                   (* d1 d4)
                                                   (if (<= d2 -1.55e-103)
                                                     t_0
                                                     (if (<= d2 -6.5e-111)
                                                       (* d1 d4)
                                                       (if (<= d2 -6.4e-111)
                                                         (* d1 d2)
                                                         (if (<= d2 -2.9e-116)
                                                           (* d1 d4)
                                                           (if (<=
                                                                d2
                                                                -1.2e-117)
                                                             (* d1 d2)
                                                             (if (<=
                                                                  d2
                                                                  -1.25e-127)
                                                               t_0
                                                               (if (<=
                                                                    d2
                                                                    -1.8e-132)
                                                                 (* d1 d4)
                                                                 (if (<=
                                                                      d2
                                                                      -1.1e-137)
                                                                   t_0
                                                                   (if (<=
                                                                        d2
                                                                        -2.5e-145)
                                                                     (* d1 d4)
                                                                     (if (<=
                                                                          d2
                                                                          -4.5e-146)
                                                                       t_0
                                                                       (if (<=
                                                                            d2
                                                                            -4.2e-148)
                                                                         (*
                                                                          d1
                                                                          d4)
                                                                         (if (<=
                                                                              d2
                                                                              -4.7e-150)
                                                                           t_0
                                                                           (if (<=
                                                                                d2
                                                                                -5.3e-157)
                                                                             (*
                                                                              d1
                                                                              d4)
                                                                             (if (<=
                                                                                  d2
                                                                                  -1.2e-160)
                                                                               t_0
                                                                               (if (<=
                                                                                    d2
                                                                                    -1.35e-188)
                                                                                 (*
                                                                                  d1
                                                                                  d4)
                                                                                 (if (<=
                                                                                      d2
                                                                                      -1.3e-188)
                                                                                   (*
                                                                                    d1
                                                                                    d2)
                                                                                   (if (<=
                                                                                        d2
                                                                                        -5.8e-219)
                                                                                     t_0
                                                                                     (if (<=
                                                                                          d2
                                                                                          -5.6e-219)
                                                                                       (*
                                                                                        d1
                                                                                        d2)
                                                                                       (if (<=
                                                                                            d2
                                                                                            -4.8e-229)
                                                                                         t_0
                                                                                         (if (<=
                                                                                              d2
                                                                                              -1.2e-241)
                                                                                           (*
                                                                                            d1
                                                                                            d4)
                                                                                           (if (<=
                                                                                                d2
                                                                                                -6e-249)
                                                                                             t_0
                                                                                             (if (<=
                                                                                                  d2
                                                                                                  -5.8e-249)
                                                                                               (*
                                                                                                d1
                                                                                                d2)
                                                                                               (if (<=
                                                                                                    d2
                                                                                                    -1.3e-264)
                                                                                                 (*
                                                                                                  d1
                                                                                                  d4)
                                                                                                 (if (<=
                                                                                                      d2
                                                                                                      -7e-269)
                                                                                                   t_0
                                                                                                   (if (<=
                                                                                                        d2
                                                                                                        -3.4e-281)
                                                                                                     (*
                                                                                                      d1
                                                                                                      d4)
                                                                                                     (if (<=
                                                                                                          d2
                                                                                                          -9e-284)
                                                                                                       (*
                                                                                                        d1
                                                                                                        d2)
                                                                                                       (if (<=
                                                                                                            d2
                                                                                                            -4.5e-292)
                                                                                                         (*
                                                                                                          d1
                                                                                                          d4)
                                                                                                         (if (<=
                                                                                                              d2
                                                                                                              -4.2e-292)
                                                                                                           (*
                                                                                                            d1
                                                                                                            d2)
                                                                                                           (if (<=
                                                                                                                d2
                                                                                                                -1.2e-298)
                                                                                                             t_0
                                                                                                             (if (<=
                                                                                                                  d2
                                                                                                                  -1.85e-301)
                                                                                                               (*
                                                                                                                d1
                                                                                                                d2)
                                                                                                               (if (<=
                                                                                                                    d2
                                                                                                                    8e-292)
                                                                                                                 t_0
                                                                                                                 (if (<=
                                                                                                                      d2
                                                                                                                      3.2e-272)
                                                                                                                   (*
                                                                                                                    d1
                                                                                                                    d4)
                                                                                                                   (if (<=
                                                                                                                        d2
                                                                                                                        1.45e-257)
                                                                                                                     t_0
                                                                                                                     (if (<=
                                                                                                                          d2
                                                                                                                          7.5e-246)
                                                                                                                       (*
                                                                                                                        d1
                                                                                                                        d4)
                                                                                                                       (if (<=
                                                                                                                            d2
                                                                                                                            1.05e-216)
                                                                                                                         t_0
                                                                                                                         (if (<=
                                                                                                                              d2
                                                                                                                              1.15e-207)
                                                                                                                           (*
                                                                                                                            d1
                                                                                                                            d4)
                                                                                                                           (if (<=
                                                                                                                                d2
                                                                                                                                1.8e-205)
                                                                                                                             t_0
                                                                                                                             (if (<=
                                                                                                                                  d2
                                                                                                                                  1.3e-198)
                                                                                                                               (*
                                                                                                                                d1
                                                                                                                                d4)
                                                                                                                               (if (<=
                                                                                                                                    d2
                                                                                                                                    7.5e-197)
                                                                                                                                 t_0
                                                                                                                                 (if (<=
                                                                                                                                      d2
                                                                                                                                      6e-187)
                                                                                                                                   (*
                                                                                                                                    d1
                                                                                                                                    d4)
                                                                                                                                   (if (<=
                                                                                                                                        d2
                                                                                                                                        2.95e-179)
                                                                                                                                     t_0
                                                                                                                                     (if (<=
                                                                                                                                          d2
                                                                                                                                          7.5e-170)
                                                                                                                                       (*
                                                                                                                                        d1
                                                                                                                                        d4)
                                                                                                                                       (if (<=
                                                                                                                                            d2
                                                                                                                                            2.15e-166)
                                                                                                                                         t_0
                                                                                                                                         (if (<=
                                                                                                                                              d2
                                                                                                                                              3.25e-99)
                                                                                                                                           (*
                                                                                                                                            d1
                                                                                                                                            d4)
                                                                                                                                           (if (<=
                                                                                                                                                d2
                                                                                                                                                3.3e-99)
                                                                                                                                             (*
                                                                                                                                              d1
                                                                                                                                              d2)
                                                                                                                                             (if (or (<=
                                                                                                                                                      d2
                                                                                                                                                      3.3e-90)
                                                                                                                                                     (not
                                                                                                                                                      (or (<=
                                                                                                                                                           d2
                                                                                                                                                           3.8e-87)
                                                                                                                                                          (and (not
                                                                                                                                                                (<=
                                                                                                                                                                 d2
                                                                                                                                                                 9e-45))
                                                                                                                                                               (or (<=
                                                                                                                                                                    d2
                                                                                                                                                                    9e-20)
                                                                                                                                                                   (and (not
                                                                                                                                                                         (<=
                                                                                                                                                                          d2
                                                                                                                                                                          1.02e-7))
                                                                                                                                                                        (or (<=
                                                                                                                                                                             d2
                                                                                                                                                                             2.4e+23)
                                                                                                                                                                            (and (not
                                                                                                                                                                                  (<=
                                                                                                                                                                                   d2
                                                                                                                                                                                   8.5e+34))
                                                                                                                                                                                 (or (<=
                                                                                                                                                                                      d2
                                                                                                                                                                                      7e+37)
                                                                                                                                                                                     (and (not
                                                                                                                                                                                           (<=
                                                                                                                                                                                            d2
                                                                                                                                                                                            3.4e+70))
                                                                                                                                                                                          (<=
                                                                                                                                                                                           d2
                                                                                                                                                                                           2.7e+78)))))))))))
                                                                                                                                               (*
                                                                                                                                                d1
                                                                                                                                                d4)
                                                                                                                                               t_0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * -d1;
	double tmp;
	if (d2 <= -6.2e+65) {
		tmp = d1 * d2;
	} else if (d2 <= -3.3e+18) {
		tmp = t_0;
	} else if (d2 <= -3.7e+14) {
		tmp = d1 * d4;
	} else if (d2 <= -90000000000000.0) {
		tmp = t_0;
	} else if (d2 <= -54000000000000.0) {
		tmp = d1 * d2;
	} else if (d2 <= -210.0) {
		tmp = t_0;
	} else if (d2 <= -205.0) {
		tmp = d1 * d2;
	} else if (d2 <= -0.0038) {
		tmp = t_0;
	} else if (d2 <= -2.55e-8) {
		tmp = d1 * d4;
	} else if (d2 <= -2.3e-8) {
		tmp = d1 * d2;
	} else if (d2 <= -3e-16) {
		tmp = d1 * d4;
	} else if (d2 <= -2.8e-20) {
		tmp = t_0;
	} else if (d2 <= -3.5e-21) {
		tmp = d1 * d2;
	} else if (d2 <= -3.3e-46) {
		tmp = d1 * d4;
	} else if (d2 <= -1.65e-52) {
		tmp = t_0;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * d2;
	} else if (d2 <= -4.8e-58) {
		tmp = t_0;
	} else if (d2 <= -2.4e-66) {
		tmp = d1 * d4;
	} else if (d2 <= -2.75e-70) {
		tmp = t_0;
	} else if (d2 <= -4.2e-72) {
		tmp = d1 * d4;
	} else if (d2 <= -1.35e-74) {
		tmp = t_0;
	} else if (d2 <= -1.15e-78) {
		tmp = d1 * d4;
	} else if (d2 <= -2.8e-81) {
		tmp = t_0;
	} else if (d2 <= -2.15e-94) {
		tmp = d1 * d4;
	} else if (d2 <= -1.55e-103) {
		tmp = t_0;
	} else if (d2 <= -6.5e-111) {
		tmp = d1 * d4;
	} else if (d2 <= -6.4e-111) {
		tmp = d1 * d2;
	} else if (d2 <= -2.9e-116) {
		tmp = d1 * d4;
	} else if (d2 <= -1.2e-117) {
		tmp = d1 * d2;
	} else if (d2 <= -1.25e-127) {
		tmp = t_0;
	} else if (d2 <= -1.8e-132) {
		tmp = d1 * d4;
	} else if (d2 <= -1.1e-137) {
		tmp = t_0;
	} else if (d2 <= -2.5e-145) {
		tmp = d1 * d4;
	} else if (d2 <= -4.5e-146) {
		tmp = t_0;
	} else if (d2 <= -4.2e-148) {
		tmp = d1 * d4;
	} else if (d2 <= -4.7e-150) {
		tmp = t_0;
	} else if (d2 <= -5.3e-157) {
		tmp = d1 * d4;
	} else if (d2 <= -1.2e-160) {
		tmp = t_0;
	} else if (d2 <= -1.35e-188) {
		tmp = d1 * d4;
	} else if (d2 <= -1.3e-188) {
		tmp = d1 * d2;
	} else if (d2 <= -5.8e-219) {
		tmp = t_0;
	} else if (d2 <= -5.6e-219) {
		tmp = d1 * d2;
	} else if (d2 <= -4.8e-229) {
		tmp = t_0;
	} else if (d2 <= -1.2e-241) {
		tmp = d1 * d4;
	} else if (d2 <= -6e-249) {
		tmp = t_0;
	} else if (d2 <= -5.8e-249) {
		tmp = d1 * d2;
	} else if (d2 <= -1.3e-264) {
		tmp = d1 * d4;
	} else if (d2 <= -7e-269) {
		tmp = t_0;
	} else if (d2 <= -3.4e-281) {
		tmp = d1 * d4;
	} else if (d2 <= -9e-284) {
		tmp = d1 * d2;
	} else if (d2 <= -4.5e-292) {
		tmp = d1 * d4;
	} else if (d2 <= -4.2e-292) {
		tmp = d1 * d2;
	} else if (d2 <= -1.2e-298) {
		tmp = t_0;
	} else if (d2 <= -1.85e-301) {
		tmp = d1 * d2;
	} else if (d2 <= 8e-292) {
		tmp = t_0;
	} else if (d2 <= 3.2e-272) {
		tmp = d1 * d4;
	} else if (d2 <= 1.45e-257) {
		tmp = t_0;
	} else if (d2 <= 7.5e-246) {
		tmp = d1 * d4;
	} else if (d2 <= 1.05e-216) {
		tmp = t_0;
	} else if (d2 <= 1.15e-207) {
		tmp = d1 * d4;
	} else if (d2 <= 1.8e-205) {
		tmp = t_0;
	} else if (d2 <= 1.3e-198) {
		tmp = d1 * d4;
	} else if (d2 <= 7.5e-197) {
		tmp = t_0;
	} else if (d2 <= 6e-187) {
		tmp = d1 * d4;
	} else if (d2 <= 2.95e-179) {
		tmp = t_0;
	} else if (d2 <= 7.5e-170) {
		tmp = d1 * d4;
	} else if (d2 <= 2.15e-166) {
		tmp = t_0;
	} else if (d2 <= 3.25e-99) {
		tmp = d1 * d4;
	} else if (d2 <= 3.3e-99) {
		tmp = d1 * d2;
	} else if ((d2 <= 3.3e-90) || !((d2 <= 3.8e-87) || (!(d2 <= 9e-45) && ((d2 <= 9e-20) || (!(d2 <= 1.02e-7) && ((d2 <= 2.4e+23) || (!(d2 <= 8.5e+34) && ((d2 <= 7e+37) || (!(d2 <= 3.4e+70) && (d2 <= 2.7e+78)))))))))) {
		tmp = d1 * d4;
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: tmp
    t_0 = d1 * -d1
    if (d2 <= (-6.2d+65)) then
        tmp = d1 * d2
    else if (d2 <= (-3.3d+18)) then
        tmp = t_0
    else if (d2 <= (-3.7d+14)) then
        tmp = d1 * d4
    else if (d2 <= (-90000000000000.0d0)) then
        tmp = t_0
    else if (d2 <= (-54000000000000.0d0)) then
        tmp = d1 * d2
    else if (d2 <= (-210.0d0)) then
        tmp = t_0
    else if (d2 <= (-205.0d0)) then
        tmp = d1 * d2
    else if (d2 <= (-0.0038d0)) then
        tmp = t_0
    else if (d2 <= (-2.55d-8)) then
        tmp = d1 * d4
    else if (d2 <= (-2.3d-8)) then
        tmp = d1 * d2
    else if (d2 <= (-3d-16)) then
        tmp = d1 * d4
    else if (d2 <= (-2.8d-20)) then
        tmp = t_0
    else if (d2 <= (-3.5d-21)) then
        tmp = d1 * d2
    else if (d2 <= (-3.3d-46)) then
        tmp = d1 * d4
    else if (d2 <= (-1.65d-52)) then
        tmp = t_0
    else if (d2 <= (-1.6d-52)) then
        tmp = d1 * d2
    else if (d2 <= (-4.8d-58)) then
        tmp = t_0
    else if (d2 <= (-2.4d-66)) then
        tmp = d1 * d4
    else if (d2 <= (-2.75d-70)) then
        tmp = t_0
    else if (d2 <= (-4.2d-72)) then
        tmp = d1 * d4
    else if (d2 <= (-1.35d-74)) then
        tmp = t_0
    else if (d2 <= (-1.15d-78)) then
        tmp = d1 * d4
    else if (d2 <= (-2.8d-81)) then
        tmp = t_0
    else if (d2 <= (-2.15d-94)) then
        tmp = d1 * d4
    else if (d2 <= (-1.55d-103)) then
        tmp = t_0
    else if (d2 <= (-6.5d-111)) then
        tmp = d1 * d4
    else if (d2 <= (-6.4d-111)) then
        tmp = d1 * d2
    else if (d2 <= (-2.9d-116)) then
        tmp = d1 * d4
    else if (d2 <= (-1.2d-117)) then
        tmp = d1 * d2
    else if (d2 <= (-1.25d-127)) then
        tmp = t_0
    else if (d2 <= (-1.8d-132)) then
        tmp = d1 * d4
    else if (d2 <= (-1.1d-137)) then
        tmp = t_0
    else if (d2 <= (-2.5d-145)) then
        tmp = d1 * d4
    else if (d2 <= (-4.5d-146)) then
        tmp = t_0
    else if (d2 <= (-4.2d-148)) then
        tmp = d1 * d4
    else if (d2 <= (-4.7d-150)) then
        tmp = t_0
    else if (d2 <= (-5.3d-157)) then
        tmp = d1 * d4
    else if (d2 <= (-1.2d-160)) then
        tmp = t_0
    else if (d2 <= (-1.35d-188)) then
        tmp = d1 * d4
    else if (d2 <= (-1.3d-188)) then
        tmp = d1 * d2
    else if (d2 <= (-5.8d-219)) then
        tmp = t_0
    else if (d2 <= (-5.6d-219)) then
        tmp = d1 * d2
    else if (d2 <= (-4.8d-229)) then
        tmp = t_0
    else if (d2 <= (-1.2d-241)) then
        tmp = d1 * d4
    else if (d2 <= (-6d-249)) then
        tmp = t_0
    else if (d2 <= (-5.8d-249)) then
        tmp = d1 * d2
    else if (d2 <= (-1.3d-264)) then
        tmp = d1 * d4
    else if (d2 <= (-7d-269)) then
        tmp = t_0
    else if (d2 <= (-3.4d-281)) then
        tmp = d1 * d4
    else if (d2 <= (-9d-284)) then
        tmp = d1 * d2
    else if (d2 <= (-4.5d-292)) then
        tmp = d1 * d4
    else if (d2 <= (-4.2d-292)) then
        tmp = d1 * d2
    else if (d2 <= (-1.2d-298)) then
        tmp = t_0
    else if (d2 <= (-1.85d-301)) then
        tmp = d1 * d2
    else if (d2 <= 8d-292) then
        tmp = t_0
    else if (d2 <= 3.2d-272) then
        tmp = d1 * d4
    else if (d2 <= 1.45d-257) then
        tmp = t_0
    else if (d2 <= 7.5d-246) then
        tmp = d1 * d4
    else if (d2 <= 1.05d-216) then
        tmp = t_0
    else if (d2 <= 1.15d-207) then
        tmp = d1 * d4
    else if (d2 <= 1.8d-205) then
        tmp = t_0
    else if (d2 <= 1.3d-198) then
        tmp = d1 * d4
    else if (d2 <= 7.5d-197) then
        tmp = t_0
    else if (d2 <= 6d-187) then
        tmp = d1 * d4
    else if (d2 <= 2.95d-179) then
        tmp = t_0
    else if (d2 <= 7.5d-170) then
        tmp = d1 * d4
    else if (d2 <= 2.15d-166) then
        tmp = t_0
    else if (d2 <= 3.25d-99) then
        tmp = d1 * d4
    else if (d2 <= 3.3d-99) then
        tmp = d1 * d2
    else if ((d2 <= 3.3d-90) .or. (.not. (d2 <= 3.8d-87) .or. (.not. (d2 <= 9d-45)) .and. (d2 <= 9d-20) .or. (.not. (d2 <= 1.02d-7)) .and. (d2 <= 2.4d+23) .or. (.not. (d2 <= 8.5d+34)) .and. (d2 <= 7d+37) .or. (.not. (d2 <= 3.4d+70)) .and. (d2 <= 2.7d+78))) then
        tmp = d1 * d4
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * -d1;
	double tmp;
	if (d2 <= -6.2e+65) {
		tmp = d1 * d2;
	} else if (d2 <= -3.3e+18) {
		tmp = t_0;
	} else if (d2 <= -3.7e+14) {
		tmp = d1 * d4;
	} else if (d2 <= -90000000000000.0) {
		tmp = t_0;
	} else if (d2 <= -54000000000000.0) {
		tmp = d1 * d2;
	} else if (d2 <= -210.0) {
		tmp = t_0;
	} else if (d2 <= -205.0) {
		tmp = d1 * d2;
	} else if (d2 <= -0.0038) {
		tmp = t_0;
	} else if (d2 <= -2.55e-8) {
		tmp = d1 * d4;
	} else if (d2 <= -2.3e-8) {
		tmp = d1 * d2;
	} else if (d2 <= -3e-16) {
		tmp = d1 * d4;
	} else if (d2 <= -2.8e-20) {
		tmp = t_0;
	} else if (d2 <= -3.5e-21) {
		tmp = d1 * d2;
	} else if (d2 <= -3.3e-46) {
		tmp = d1 * d4;
	} else if (d2 <= -1.65e-52) {
		tmp = t_0;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * d2;
	} else if (d2 <= -4.8e-58) {
		tmp = t_0;
	} else if (d2 <= -2.4e-66) {
		tmp = d1 * d4;
	} else if (d2 <= -2.75e-70) {
		tmp = t_0;
	} else if (d2 <= -4.2e-72) {
		tmp = d1 * d4;
	} else if (d2 <= -1.35e-74) {
		tmp = t_0;
	} else if (d2 <= -1.15e-78) {
		tmp = d1 * d4;
	} else if (d2 <= -2.8e-81) {
		tmp = t_0;
	} else if (d2 <= -2.15e-94) {
		tmp = d1 * d4;
	} else if (d2 <= -1.55e-103) {
		tmp = t_0;
	} else if (d2 <= -6.5e-111) {
		tmp = d1 * d4;
	} else if (d2 <= -6.4e-111) {
		tmp = d1 * d2;
	} else if (d2 <= -2.9e-116) {
		tmp = d1 * d4;
	} else if (d2 <= -1.2e-117) {
		tmp = d1 * d2;
	} else if (d2 <= -1.25e-127) {
		tmp = t_0;
	} else if (d2 <= -1.8e-132) {
		tmp = d1 * d4;
	} else if (d2 <= -1.1e-137) {
		tmp = t_0;
	} else if (d2 <= -2.5e-145) {
		tmp = d1 * d4;
	} else if (d2 <= -4.5e-146) {
		tmp = t_0;
	} else if (d2 <= -4.2e-148) {
		tmp = d1 * d4;
	} else if (d2 <= -4.7e-150) {
		tmp = t_0;
	} else if (d2 <= -5.3e-157) {
		tmp = d1 * d4;
	} else if (d2 <= -1.2e-160) {
		tmp = t_0;
	} else if (d2 <= -1.35e-188) {
		tmp = d1 * d4;
	} else if (d2 <= -1.3e-188) {
		tmp = d1 * d2;
	} else if (d2 <= -5.8e-219) {
		tmp = t_0;
	} else if (d2 <= -5.6e-219) {
		tmp = d1 * d2;
	} else if (d2 <= -4.8e-229) {
		tmp = t_0;
	} else if (d2 <= -1.2e-241) {
		tmp = d1 * d4;
	} else if (d2 <= -6e-249) {
		tmp = t_0;
	} else if (d2 <= -5.8e-249) {
		tmp = d1 * d2;
	} else if (d2 <= -1.3e-264) {
		tmp = d1 * d4;
	} else if (d2 <= -7e-269) {
		tmp = t_0;
	} else if (d2 <= -3.4e-281) {
		tmp = d1 * d4;
	} else if (d2 <= -9e-284) {
		tmp = d1 * d2;
	} else if (d2 <= -4.5e-292) {
		tmp = d1 * d4;
	} else if (d2 <= -4.2e-292) {
		tmp = d1 * d2;
	} else if (d2 <= -1.2e-298) {
		tmp = t_0;
	} else if (d2 <= -1.85e-301) {
		tmp = d1 * d2;
	} else if (d2 <= 8e-292) {
		tmp = t_0;
	} else if (d2 <= 3.2e-272) {
		tmp = d1 * d4;
	} else if (d2 <= 1.45e-257) {
		tmp = t_0;
	} else if (d2 <= 7.5e-246) {
		tmp = d1 * d4;
	} else if (d2 <= 1.05e-216) {
		tmp = t_0;
	} else if (d2 <= 1.15e-207) {
		tmp = d1 * d4;
	} else if (d2 <= 1.8e-205) {
		tmp = t_0;
	} else if (d2 <= 1.3e-198) {
		tmp = d1 * d4;
	} else if (d2 <= 7.5e-197) {
		tmp = t_0;
	} else if (d2 <= 6e-187) {
		tmp = d1 * d4;
	} else if (d2 <= 2.95e-179) {
		tmp = t_0;
	} else if (d2 <= 7.5e-170) {
		tmp = d1 * d4;
	} else if (d2 <= 2.15e-166) {
		tmp = t_0;
	} else if (d2 <= 3.25e-99) {
		tmp = d1 * d4;
	} else if (d2 <= 3.3e-99) {
		tmp = d1 * d2;
	} else if ((d2 <= 3.3e-90) || !((d2 <= 3.8e-87) || (!(d2 <= 9e-45) && ((d2 <= 9e-20) || (!(d2 <= 1.02e-7) && ((d2 <= 2.4e+23) || (!(d2 <= 8.5e+34) && ((d2 <= 7e+37) || (!(d2 <= 3.4e+70) && (d2 <= 2.7e+78)))))))))) {
		tmp = d1 * d4;
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * -d1
	tmp = 0
	if d2 <= -6.2e+65:
		tmp = d1 * d2
	elif d2 <= -3.3e+18:
		tmp = t_0
	elif d2 <= -3.7e+14:
		tmp = d1 * d4
	elif d2 <= -90000000000000.0:
		tmp = t_0
	elif d2 <= -54000000000000.0:
		tmp = d1 * d2
	elif d2 <= -210.0:
		tmp = t_0
	elif d2 <= -205.0:
		tmp = d1 * d2
	elif d2 <= -0.0038:
		tmp = t_0
	elif d2 <= -2.55e-8:
		tmp = d1 * d4
	elif d2 <= -2.3e-8:
		tmp = d1 * d2
	elif d2 <= -3e-16:
		tmp = d1 * d4
	elif d2 <= -2.8e-20:
		tmp = t_0
	elif d2 <= -3.5e-21:
		tmp = d1 * d2
	elif d2 <= -3.3e-46:
		tmp = d1 * d4
	elif d2 <= -1.65e-52:
		tmp = t_0
	elif d2 <= -1.6e-52:
		tmp = d1 * d2
	elif d2 <= -4.8e-58:
		tmp = t_0
	elif d2 <= -2.4e-66:
		tmp = d1 * d4
	elif d2 <= -2.75e-70:
		tmp = t_0
	elif d2 <= -4.2e-72:
		tmp = d1 * d4
	elif d2 <= -1.35e-74:
		tmp = t_0
	elif d2 <= -1.15e-78:
		tmp = d1 * d4
	elif d2 <= -2.8e-81:
		tmp = t_0
	elif d2 <= -2.15e-94:
		tmp = d1 * d4
	elif d2 <= -1.55e-103:
		tmp = t_0
	elif d2 <= -6.5e-111:
		tmp = d1 * d4
	elif d2 <= -6.4e-111:
		tmp = d1 * d2
	elif d2 <= -2.9e-116:
		tmp = d1 * d4
	elif d2 <= -1.2e-117:
		tmp = d1 * d2
	elif d2 <= -1.25e-127:
		tmp = t_0
	elif d2 <= -1.8e-132:
		tmp = d1 * d4
	elif d2 <= -1.1e-137:
		tmp = t_0
	elif d2 <= -2.5e-145:
		tmp = d1 * d4
	elif d2 <= -4.5e-146:
		tmp = t_0
	elif d2 <= -4.2e-148:
		tmp = d1 * d4
	elif d2 <= -4.7e-150:
		tmp = t_0
	elif d2 <= -5.3e-157:
		tmp = d1 * d4
	elif d2 <= -1.2e-160:
		tmp = t_0
	elif d2 <= -1.35e-188:
		tmp = d1 * d4
	elif d2 <= -1.3e-188:
		tmp = d1 * d2
	elif d2 <= -5.8e-219:
		tmp = t_0
	elif d2 <= -5.6e-219:
		tmp = d1 * d2
	elif d2 <= -4.8e-229:
		tmp = t_0
	elif d2 <= -1.2e-241:
		tmp = d1 * d4
	elif d2 <= -6e-249:
		tmp = t_0
	elif d2 <= -5.8e-249:
		tmp = d1 * d2
	elif d2 <= -1.3e-264:
		tmp = d1 * d4
	elif d2 <= -7e-269:
		tmp = t_0
	elif d2 <= -3.4e-281:
		tmp = d1 * d4
	elif d2 <= -9e-284:
		tmp = d1 * d2
	elif d2 <= -4.5e-292:
		tmp = d1 * d4
	elif d2 <= -4.2e-292:
		tmp = d1 * d2
	elif d2 <= -1.2e-298:
		tmp = t_0
	elif d2 <= -1.85e-301:
		tmp = d1 * d2
	elif d2 <= 8e-292:
		tmp = t_0
	elif d2 <= 3.2e-272:
		tmp = d1 * d4
	elif d2 <= 1.45e-257:
		tmp = t_0
	elif d2 <= 7.5e-246:
		tmp = d1 * d4
	elif d2 <= 1.05e-216:
		tmp = t_0
	elif d2 <= 1.15e-207:
		tmp = d1 * d4
	elif d2 <= 1.8e-205:
		tmp = t_0
	elif d2 <= 1.3e-198:
		tmp = d1 * d4
	elif d2 <= 7.5e-197:
		tmp = t_0
	elif d2 <= 6e-187:
		tmp = d1 * d4
	elif d2 <= 2.95e-179:
		tmp = t_0
	elif d2 <= 7.5e-170:
		tmp = d1 * d4
	elif d2 <= 2.15e-166:
		tmp = t_0
	elif d2 <= 3.25e-99:
		tmp = d1 * d4
	elif d2 <= 3.3e-99:
		tmp = d1 * d2
	elif (d2 <= 3.3e-90) or not ((d2 <= 3.8e-87) or (not (d2 <= 9e-45) and ((d2 <= 9e-20) or (not (d2 <= 1.02e-7) and ((d2 <= 2.4e+23) or (not (d2 <= 8.5e+34) and ((d2 <= 7e+37) or (not (d2 <= 3.4e+70) and (d2 <= 2.7e+78))))))))):
		tmp = d1 * d4
	else:
		tmp = t_0
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(-d1))
	tmp = 0.0
	if (d2 <= -6.2e+65)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -3.3e+18)
		tmp = t_0;
	elseif (d2 <= -3.7e+14)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -90000000000000.0)
		tmp = t_0;
	elseif (d2 <= -54000000000000.0)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -210.0)
		tmp = t_0;
	elseif (d2 <= -205.0)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -0.0038)
		tmp = t_0;
	elseif (d2 <= -2.55e-8)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.3e-8)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -3e-16)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.8e-20)
		tmp = t_0;
	elseif (d2 <= -3.5e-21)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -3.3e-46)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.65e-52)
		tmp = t_0;
	elseif (d2 <= -1.6e-52)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -4.8e-58)
		tmp = t_0;
	elseif (d2 <= -2.4e-66)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.75e-70)
		tmp = t_0;
	elseif (d2 <= -4.2e-72)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.35e-74)
		tmp = t_0;
	elseif (d2 <= -1.15e-78)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -2.8e-81)
		tmp = t_0;
	elseif (d2 <= -2.15e-94)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.55e-103)
		tmp = t_0;
	elseif (d2 <= -6.5e-111)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -6.4e-111)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -2.9e-116)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.2e-117)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -1.25e-127)
		tmp = t_0;
	elseif (d2 <= -1.8e-132)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.1e-137)
		tmp = t_0;
	elseif (d2 <= -2.5e-145)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -4.5e-146)
		tmp = t_0;
	elseif (d2 <= -4.2e-148)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -4.7e-150)
		tmp = t_0;
	elseif (d2 <= -5.3e-157)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.2e-160)
		tmp = t_0;
	elseif (d2 <= -1.35e-188)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -1.3e-188)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -5.8e-219)
		tmp = t_0;
	elseif (d2 <= -5.6e-219)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -4.8e-229)
		tmp = t_0;
	elseif (d2 <= -1.2e-241)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -6e-249)
		tmp = t_0;
	elseif (d2 <= -5.8e-249)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -1.3e-264)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -7e-269)
		tmp = t_0;
	elseif (d2 <= -3.4e-281)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -9e-284)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -4.5e-292)
		tmp = Float64(d1 * d4);
	elseif (d2 <= -4.2e-292)
		tmp = Float64(d1 * d2);
	elseif (d2 <= -1.2e-298)
		tmp = t_0;
	elseif (d2 <= -1.85e-301)
		tmp = Float64(d1 * d2);
	elseif (d2 <= 8e-292)
		tmp = t_0;
	elseif (d2 <= 3.2e-272)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1.45e-257)
		tmp = t_0;
	elseif (d2 <= 7.5e-246)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1.05e-216)
		tmp = t_0;
	elseif (d2 <= 1.15e-207)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 1.8e-205)
		tmp = t_0;
	elseif (d2 <= 1.3e-198)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 7.5e-197)
		tmp = t_0;
	elseif (d2 <= 6e-187)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 2.95e-179)
		tmp = t_0;
	elseif (d2 <= 7.5e-170)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 2.15e-166)
		tmp = t_0;
	elseif (d2 <= 3.25e-99)
		tmp = Float64(d1 * d4);
	elseif (d2 <= 3.3e-99)
		tmp = Float64(d1 * d2);
	elseif ((d2 <= 3.3e-90) || !((d2 <= 3.8e-87) || (!(d2 <= 9e-45) && ((d2 <= 9e-20) || (!(d2 <= 1.02e-7) && ((d2 <= 2.4e+23) || (!(d2 <= 8.5e+34) && ((d2 <= 7e+37) || (!(d2 <= 3.4e+70) && (d2 <= 2.7e+78))))))))))
		tmp = Float64(d1 * d4);
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * -d1;
	tmp = 0.0;
	if (d2 <= -6.2e+65)
		tmp = d1 * d2;
	elseif (d2 <= -3.3e+18)
		tmp = t_0;
	elseif (d2 <= -3.7e+14)
		tmp = d1 * d4;
	elseif (d2 <= -90000000000000.0)
		tmp = t_0;
	elseif (d2 <= -54000000000000.0)
		tmp = d1 * d2;
	elseif (d2 <= -210.0)
		tmp = t_0;
	elseif (d2 <= -205.0)
		tmp = d1 * d2;
	elseif (d2 <= -0.0038)
		tmp = t_0;
	elseif (d2 <= -2.55e-8)
		tmp = d1 * d4;
	elseif (d2 <= -2.3e-8)
		tmp = d1 * d2;
	elseif (d2 <= -3e-16)
		tmp = d1 * d4;
	elseif (d2 <= -2.8e-20)
		tmp = t_0;
	elseif (d2 <= -3.5e-21)
		tmp = d1 * d2;
	elseif (d2 <= -3.3e-46)
		tmp = d1 * d4;
	elseif (d2 <= -1.65e-52)
		tmp = t_0;
	elseif (d2 <= -1.6e-52)
		tmp = d1 * d2;
	elseif (d2 <= -4.8e-58)
		tmp = t_0;
	elseif (d2 <= -2.4e-66)
		tmp = d1 * d4;
	elseif (d2 <= -2.75e-70)
		tmp = t_0;
	elseif (d2 <= -4.2e-72)
		tmp = d1 * d4;
	elseif (d2 <= -1.35e-74)
		tmp = t_0;
	elseif (d2 <= -1.15e-78)
		tmp = d1 * d4;
	elseif (d2 <= -2.8e-81)
		tmp = t_0;
	elseif (d2 <= -2.15e-94)
		tmp = d1 * d4;
	elseif (d2 <= -1.55e-103)
		tmp = t_0;
	elseif (d2 <= -6.5e-111)
		tmp = d1 * d4;
	elseif (d2 <= -6.4e-111)
		tmp = d1 * d2;
	elseif (d2 <= -2.9e-116)
		tmp = d1 * d4;
	elseif (d2 <= -1.2e-117)
		tmp = d1 * d2;
	elseif (d2 <= -1.25e-127)
		tmp = t_0;
	elseif (d2 <= -1.8e-132)
		tmp = d1 * d4;
	elseif (d2 <= -1.1e-137)
		tmp = t_0;
	elseif (d2 <= -2.5e-145)
		tmp = d1 * d4;
	elseif (d2 <= -4.5e-146)
		tmp = t_0;
	elseif (d2 <= -4.2e-148)
		tmp = d1 * d4;
	elseif (d2 <= -4.7e-150)
		tmp = t_0;
	elseif (d2 <= -5.3e-157)
		tmp = d1 * d4;
	elseif (d2 <= -1.2e-160)
		tmp = t_0;
	elseif (d2 <= -1.35e-188)
		tmp = d1 * d4;
	elseif (d2 <= -1.3e-188)
		tmp = d1 * d2;
	elseif (d2 <= -5.8e-219)
		tmp = t_0;
	elseif (d2 <= -5.6e-219)
		tmp = d1 * d2;
	elseif (d2 <= -4.8e-229)
		tmp = t_0;
	elseif (d2 <= -1.2e-241)
		tmp = d1 * d4;
	elseif (d2 <= -6e-249)
		tmp = t_0;
	elseif (d2 <= -5.8e-249)
		tmp = d1 * d2;
	elseif (d2 <= -1.3e-264)
		tmp = d1 * d4;
	elseif (d2 <= -7e-269)
		tmp = t_0;
	elseif (d2 <= -3.4e-281)
		tmp = d1 * d4;
	elseif (d2 <= -9e-284)
		tmp = d1 * d2;
	elseif (d2 <= -4.5e-292)
		tmp = d1 * d4;
	elseif (d2 <= -4.2e-292)
		tmp = d1 * d2;
	elseif (d2 <= -1.2e-298)
		tmp = t_0;
	elseif (d2 <= -1.85e-301)
		tmp = d1 * d2;
	elseif (d2 <= 8e-292)
		tmp = t_0;
	elseif (d2 <= 3.2e-272)
		tmp = d1 * d4;
	elseif (d2 <= 1.45e-257)
		tmp = t_0;
	elseif (d2 <= 7.5e-246)
		tmp = d1 * d4;
	elseif (d2 <= 1.05e-216)
		tmp = t_0;
	elseif (d2 <= 1.15e-207)
		tmp = d1 * d4;
	elseif (d2 <= 1.8e-205)
		tmp = t_0;
	elseif (d2 <= 1.3e-198)
		tmp = d1 * d4;
	elseif (d2 <= 7.5e-197)
		tmp = t_0;
	elseif (d2 <= 6e-187)
		tmp = d1 * d4;
	elseif (d2 <= 2.95e-179)
		tmp = t_0;
	elseif (d2 <= 7.5e-170)
		tmp = d1 * d4;
	elseif (d2 <= 2.15e-166)
		tmp = t_0;
	elseif (d2 <= 3.25e-99)
		tmp = d1 * d4;
	elseif (d2 <= 3.3e-99)
		tmp = d1 * d2;
	elseif ((d2 <= 3.3e-90) || ~(((d2 <= 3.8e-87) || (~((d2 <= 9e-45)) && ((d2 <= 9e-20) || (~((d2 <= 1.02e-7)) && ((d2 <= 2.4e+23) || (~((d2 <= 8.5e+34)) && ((d2 <= 7e+37) || (~((d2 <= 3.4e+70)) && (d2 <= 2.7e+78)))))))))))
		tmp = d1 * d4;
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * (-d1)), $MachinePrecision]}, If[LessEqual[d2, -6.2e+65], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -3.3e+18], t$95$0, If[LessEqual[d2, -3.7e+14], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -90000000000000.0], t$95$0, If[LessEqual[d2, -54000000000000.0], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -210.0], t$95$0, If[LessEqual[d2, -205.0], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -0.0038], t$95$0, If[LessEqual[d2, -2.55e-8], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.3e-8], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -3e-16], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.8e-20], t$95$0, If[LessEqual[d2, -3.5e-21], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -3.3e-46], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.65e-52], t$95$0, If[LessEqual[d2, -1.6e-52], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -4.8e-58], t$95$0, If[LessEqual[d2, -2.4e-66], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.75e-70], t$95$0, If[LessEqual[d2, -4.2e-72], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.35e-74], t$95$0, If[LessEqual[d2, -1.15e-78], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -2.8e-81], t$95$0, If[LessEqual[d2, -2.15e-94], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.55e-103], t$95$0, If[LessEqual[d2, -6.5e-111], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -6.4e-111], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -2.9e-116], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.2e-117], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -1.25e-127], t$95$0, If[LessEqual[d2, -1.8e-132], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.1e-137], t$95$0, If[LessEqual[d2, -2.5e-145], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -4.5e-146], t$95$0, If[LessEqual[d2, -4.2e-148], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -4.7e-150], t$95$0, If[LessEqual[d2, -5.3e-157], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.2e-160], t$95$0, If[LessEqual[d2, -1.35e-188], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -1.3e-188], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -5.8e-219], t$95$0, If[LessEqual[d2, -5.6e-219], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -4.8e-229], t$95$0, If[LessEqual[d2, -1.2e-241], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -6e-249], t$95$0, If[LessEqual[d2, -5.8e-249], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -1.3e-264], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -7e-269], t$95$0, If[LessEqual[d2, -3.4e-281], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -9e-284], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -4.5e-292], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, -4.2e-292], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, -1.2e-298], t$95$0, If[LessEqual[d2, -1.85e-301], N[(d1 * d2), $MachinePrecision], If[LessEqual[d2, 8e-292], t$95$0, If[LessEqual[d2, 3.2e-272], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1.45e-257], t$95$0, If[LessEqual[d2, 7.5e-246], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1.05e-216], t$95$0, If[LessEqual[d2, 1.15e-207], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 1.8e-205], t$95$0, If[LessEqual[d2, 1.3e-198], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 7.5e-197], t$95$0, If[LessEqual[d2, 6e-187], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 2.95e-179], t$95$0, If[LessEqual[d2, 7.5e-170], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 2.15e-166], t$95$0, If[LessEqual[d2, 3.25e-99], N[(d1 * d4), $MachinePrecision], If[LessEqual[d2, 3.3e-99], N[(d1 * d2), $MachinePrecision], If[Or[LessEqual[d2, 3.3e-90], N[Not[Or[LessEqual[d2, 3.8e-87], And[N[Not[LessEqual[d2, 9e-45]], $MachinePrecision], Or[LessEqual[d2, 9e-20], And[N[Not[LessEqual[d2, 1.02e-7]], $MachinePrecision], Or[LessEqual[d2, 2.4e+23], And[N[Not[LessEqual[d2, 8.5e+34]], $MachinePrecision], Or[LessEqual[d2, 7e+37], And[N[Not[LessEqual[d2, 3.4e+70]], $MachinePrecision], LessEqual[d2, 2.7e+78]]]]]]]]]], $MachinePrecision]], N[(d1 * d4), $MachinePrecision], t$95$0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(-d1\right)\\
\mathbf{if}\;d2 \leq -6.2 \cdot 10^{+65}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -3.3 \cdot 10^{+18}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -3.7 \cdot 10^{+14}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -90000000000000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -54000000000000:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -210:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -205:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -0.0038:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.55 \cdot 10^{-8}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.3 \cdot 10^{-8}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -3 \cdot 10^{-16}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-20}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -3.5 \cdot 10^{-21}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -3.3 \cdot 10^{-46}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.65 \cdot 10^{-52}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-58}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.4 \cdot 10^{-66}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.75 \cdot 10^{-70}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-72}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.35 \cdot 10^{-74}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.15 \cdot 10^{-78}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-81}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.15 \cdot 10^{-94}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.55 \cdot 10^{-103}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -6.5 \cdot 10^{-111}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -6.4 \cdot 10^{-111}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -2.9 \cdot 10^{-116}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-117}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -1.25 \cdot 10^{-127}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.8 \cdot 10^{-132}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.1 \cdot 10^{-137}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.5 \cdot 10^{-145}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-146}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-148}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -4.7 \cdot 10^{-150}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -5.3 \cdot 10^{-157}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-160}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.35 \cdot 10^{-188}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-188}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-219}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -5.6 \cdot 10^{-219}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-229}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-241}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -6 \cdot 10^{-249}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-249}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-264}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -7 \cdot 10^{-269}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -3.4 \cdot 10^{-281}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -9 \cdot 10^{-284}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-292}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-292}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-298}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.85 \cdot 10^{-301}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq 8 \cdot 10^{-292}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 3.2 \cdot 10^{-272}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1.45 \cdot 10^{-257}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-246}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1.05 \cdot 10^{-216}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 1.15 \cdot 10^{-207}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 1.8 \cdot 10^{-205}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 1.3 \cdot 10^{-198}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-197}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 6 \cdot 10^{-187}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 2.95 \cdot 10^{-179}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-170}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 2.15 \cdot 10^{-166}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 3.25 \cdot 10^{-99}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-99}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-90} \lor \neg \left(d2 \leq 3.8 \cdot 10^{-87} \lor \neg \left(d2 \leq 9 \cdot 10^{-45}\right) \land \left(d2 \leq 9 \cdot 10^{-20} \lor \neg \left(d2 \leq 1.02 \cdot 10^{-7}\right) \land \left(d2 \leq 2.4 \cdot 10^{+23} \lor \neg \left(d2 \leq 8.5 \cdot 10^{+34}\right) \land \left(d2 \leq 7 \cdot 10^{+37} \lor \neg \left(d2 \leq 3.4 \cdot 10^{+70}\right) \land d2 \leq 2.7 \cdot 10^{+78}\right)\right)\right)\right):\\
\;\;\;\;d1 \cdot d4\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if d2 < -6.19999999999999981e65 or -9e13 < d2 < -5.4e13 or -210 < d2 < -205 or -2.55e-8 < d2 < -2.3000000000000001e-8 or -2.8000000000000003e-20 < d2 < -3.5000000000000003e-21 or -1.64999999999999998e-52 < d2 < -1.60000000000000005e-52 or -6.49999999999999974e-111 < d2 < -6.3999999999999997e-111 or -2.8999999999999998e-116 < d2 < -1.20000000000000007e-117 or -1.35e-188 < d2 < -1.3e-188 or -5.79999999999999968e-219 < d2 < -5.5999999999999998e-219 or -6.00000000000000008e-249 < d2 < -5.80000000000000044e-249 or -3.4e-281 < d2 < -8.9999999999999999e-284 or -4.49999999999999956e-292 < d2 < -4.19999999999999977e-292 or -1.19999999999999994e-298 < d2 < -1.8499999999999999e-301 or 3.25000000000000017e-99 < d2 < 3.29999999999999986e-99

    1. Initial program 82.2%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+82.2%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--87.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--90.3%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 57.6%

      \[\leadsto \color{blue}{d1 \cdot d2} \]

    if -6.19999999999999981e65 < d2 < -3.3e18 or -3.7e14 < d2 < -9e13 or -5.4e13 < d2 < -210 or -205 < d2 < -0.00379999999999999999 or -2.99999999999999994e-16 < d2 < -2.8000000000000003e-20 or -3.30000000000000013e-46 < d2 < -1.64999999999999998e-52 or -1.60000000000000005e-52 < d2 < -4.8000000000000001e-58 or -2.40000000000000026e-66 < d2 < -2.75e-70 or -4.2e-72 < d2 < -1.35000000000000009e-74 or -1.1500000000000001e-78 < d2 < -2.7999999999999999e-81 or -2.1499999999999999e-94 < d2 < -1.5500000000000001e-103 or -1.20000000000000007e-117 < d2 < -1.2499999999999999e-127 or -1.80000000000000004e-132 < d2 < -1.1000000000000001e-137 or -2.4999999999999999e-145 < d2 < -4.5000000000000001e-146 or -4.2e-148 < d2 < -4.6999999999999999e-150 or -5.3000000000000002e-157 < d2 < -1.19999999999999995e-160 or -1.3e-188 < d2 < -5.79999999999999968e-219 or -5.5999999999999998e-219 < d2 < -4.8e-229 or -1.2e-241 < d2 < -6.00000000000000008e-249 or -1.3000000000000001e-264 < d2 < -7.00000000000000038e-269 or -4.19999999999999977e-292 < d2 < -1.19999999999999994e-298 or -1.8499999999999999e-301 < d2 < 8.0000000000000004e-292 or 3.2e-272 < d2 < 1.4500000000000001e-257 or 7.50000000000000049e-246 < d2 < 1.0500000000000001e-216 or 1.15e-207 < d2 < 1.7999999999999999e-205 or 1.30000000000000003e-198 < d2 < 7.5e-197 or 6.00000000000000008e-187 < d2 < 2.95000000000000015e-179 or 7.4999999999999998e-170 < d2 < 2.15e-166 or 3.3e-90 < d2 < 3.8e-87 or 8.9999999999999997e-45 < d2 < 9.0000000000000003e-20 or 1.02e-7 < d2 < 2.4e23 or 8.5000000000000003e34 < d2 < 7e37 or 3.4000000000000001e70 < d2 < 2.70000000000000004e78

    1. Initial program 89.6%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+89.6%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.6%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--93.5%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around inf 51.2%

      \[\leadsto d1 \cdot \color{blue}{\left(-1 \cdot d1\right)} \]
    6. Step-by-step derivation
      1. neg-mul-151.2%

        \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]
    7. Simplified51.2%

      \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]

    if -3.3e18 < d2 < -3.7e14 or -0.00379999999999999999 < d2 < -2.55e-8 or -2.3000000000000001e-8 < d2 < -2.99999999999999994e-16 or -3.5000000000000003e-21 < d2 < -3.30000000000000013e-46 or -4.8000000000000001e-58 < d2 < -2.40000000000000026e-66 or -2.75e-70 < d2 < -4.2e-72 or -1.35000000000000009e-74 < d2 < -1.1500000000000001e-78 or -2.7999999999999999e-81 < d2 < -2.1499999999999999e-94 or -1.5500000000000001e-103 < d2 < -6.49999999999999974e-111 or -6.3999999999999997e-111 < d2 < -2.8999999999999998e-116 or -1.2499999999999999e-127 < d2 < -1.80000000000000004e-132 or -1.1000000000000001e-137 < d2 < -2.4999999999999999e-145 or -4.5000000000000001e-146 < d2 < -4.2e-148 or -4.6999999999999999e-150 < d2 < -5.3000000000000002e-157 or -1.19999999999999995e-160 < d2 < -1.35e-188 or -4.8e-229 < d2 < -1.2e-241 or -5.80000000000000044e-249 < d2 < -1.3000000000000001e-264 or -7.00000000000000038e-269 < d2 < -3.4e-281 or -8.9999999999999999e-284 < d2 < -4.49999999999999956e-292 or 8.0000000000000004e-292 < d2 < 3.2e-272 or 1.4500000000000001e-257 < d2 < 7.50000000000000049e-246 or 1.0500000000000001e-216 < d2 < 1.15e-207 or 1.7999999999999999e-205 < d2 < 1.30000000000000003e-198 or 7.5e-197 < d2 < 6.00000000000000008e-187 or 2.95000000000000015e-179 < d2 < 7.4999999999999998e-170 or 2.15e-166 < d2 < 3.25000000000000017e-99 or 3.29999999999999986e-99 < d2 < 3.3e-90 or 3.8e-87 < d2 < 8.9999999999999997e-45 or 9.0000000000000003e-20 < d2 < 1.02e-7 or 2.4e23 < d2 < 8.5000000000000003e34 or 7e37 < d2 < 3.4000000000000001e70 or 2.70000000000000004e78 < d2

    1. Initial program 87.2%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+87.2%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.9%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.4%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 36.4%

      \[\leadsto \color{blue}{d1 \cdot d4} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification46.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d2 \leq -6.2 \cdot 10^{+65}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -3.3 \cdot 10^{+18}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -3.7 \cdot 10^{+14}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -90000000000000:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -54000000000000:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -210:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -205:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -0.0038:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -2.55 \cdot 10^{-8}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.3 \cdot 10^{-8}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -3 \cdot 10^{-16}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-20}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -3.5 \cdot 10^{-21}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -3.3 \cdot 10^{-46}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.65 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-58}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -2.4 \cdot 10^{-66}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.75 \cdot 10^{-70}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-72}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.35 \cdot 10^{-74}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.15 \cdot 10^{-78}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-81}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -2.15 \cdot 10^{-94}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.55 \cdot 10^{-103}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -6.5 \cdot 10^{-111}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -6.4 \cdot 10^{-111}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -2.9 \cdot 10^{-116}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-117}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -1.25 \cdot 10^{-127}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.8 \cdot 10^{-132}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.1 \cdot 10^{-137}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -2.5 \cdot 10^{-145}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-146}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-148}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.7 \cdot 10^{-150}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -5.3 \cdot 10^{-157}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-160}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.35 \cdot 10^{-188}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-188}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-219}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -5.6 \cdot 10^{-219}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.8 \cdot 10^{-229}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-241}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -6 \cdot 10^{-249}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -5.8 \cdot 10^{-249}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -1.3 \cdot 10^{-264}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -7 \cdot 10^{-269}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -3.4 \cdot 10^{-281}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -9 \cdot 10^{-284}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -4.5 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq -4.2 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq -1.2 \cdot 10^{-298}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq -1.85 \cdot 10^{-301}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq 8 \cdot 10^{-292}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 3.2 \cdot 10^{-272}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.45 \cdot 10^{-257}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-246}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.05 \cdot 10^{-216}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 1.15 \cdot 10^{-207}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 1.8 \cdot 10^{-205}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 1.3 \cdot 10^{-198}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-197}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 6 \cdot 10^{-187}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 2.95 \cdot 10^{-179}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 7.5 \cdot 10^{-170}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 2.15 \cdot 10^{-166}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d2 \leq 3.25 \cdot 10^{-99}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-99}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d2 \leq 3.3 \cdot 10^{-90} \lor \neg \left(d2 \leq 3.8 \cdot 10^{-87} \lor \neg \left(d2 \leq 9 \cdot 10^{-45}\right) \land \left(d2 \leq 9 \cdot 10^{-20} \lor \neg \left(d2 \leq 1.02 \cdot 10^{-7}\right) \land \left(d2 \leq 2.4 \cdot 10^{+23} \lor \neg \left(d2 \leq 8.5 \cdot 10^{+34}\right) \land \left(d2 \leq 7 \cdot 10^{+37} \lor \neg \left(d2 \leq 3.4 \cdot 10^{+70}\right) \land d2 \leq 2.7 \cdot 10^{+78}\right)\right)\right)\right):\\ \;\;\;\;d1 \cdot d4\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 37.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;d2 \leq -7 \cdot 10^{+61} \lor \neg \left(d2 \leq -3.7 \cdot 10^{-21}\right) \land \left(d2 \leq -1.15 \cdot 10^{-21} \lor \neg \left(d2 \leq -3.25 \cdot 10^{-46}\right) \land \left(d2 \leq -5.5 \cdot 10^{-49} \lor \neg \left(d2 \leq -1.65 \cdot 10^{-52}\right) \land \left(d2 \leq -2.55 \cdot 10^{-54} \lor \neg \left(d2 \leq -4.2 \cdot 10^{-70}\right) \land \left(d2 \leq -5.7 \cdot 10^{-71} \lor \neg \left(d2 \leq -2.5 \cdot 10^{-72}\right) \land \left(d2 \leq -2.4 \cdot 10^{-72} \lor \neg \left(d2 \leq -1.15 \cdot 10^{-78}\right) \land \left(d2 \leq -9.5 \cdot 10^{-80} \lor \neg \left(d2 \leq -3.7 \cdot 10^{-103}\right) \land \left(d2 \leq -1.6 \cdot 10^{-103} \lor \neg \left(d2 \leq -6.5 \cdot 10^{-111}\right) \land \left(d2 \leq -6.4 \cdot 10^{-111} \lor \neg \left(d2 \leq -2.9 \cdot 10^{-116}\right) \land \left(d2 \leq -1.2 \cdot 10^{-117} \lor \neg \left(d2 \leq -2 \cdot 10^{-118} \lor d2 \leq -2.4 \cdot 10^{-120}\right) \land \left(d2 \leq -1.35 \cdot 10^{-126} \lor \neg \left(d2 \leq -5.1 \cdot 10^{-133}\right) \land \left(d2 \leq -5 \cdot 10^{-133} \lor \neg \left(d2 \leq -2.4 \cdot 10^{-145}\right) \land \left(d2 \leq -2.3 \cdot 10^{-145} \lor \neg \left(d2 \leq -2.4 \cdot 10^{-149}\right) \land \left(d2 \leq -2.35 \cdot 10^{-149} \lor \neg \left(d2 \leq -1.35 \cdot 10^{-188}\right) \land \left(d2 \leq -2.9 \cdot 10^{-202} \lor \neg \left(d2 \leq -5.8 \cdot 10^{-219}\right) \land \left(d2 \leq -2.8 \cdot 10^{-224} \lor \neg \left(d2 \leq -3.3 \cdot 10^{-242}\right) \land \left(d2 \leq -5.8 \cdot 10^{-249} \lor \neg \left(d2 \leq -8.8 \cdot 10^{-265}\right) \land \left(d2 \leq -8.7 \cdot 10^{-265} \lor \neg \left(d2 \leq -3.4 \cdot 10^{-281}\right) \land \left(d2 \leq -9 \cdot 10^{-284} \lor \neg \left(d2 \leq -4.5 \cdot 10^{-292}\right) \land \left(d2 \leq -4.2 \cdot 10^{-292} \lor \neg \left(d2 \leq -1.2 \cdot 10^{-298}\right) \land \left(d2 \leq -1.85 \cdot 10^{-301} \lor \neg \left(d2 \leq 2.9 \cdot 10^{-283}\right) \land \left(d2 \leq 1.6 \cdot 10^{-259} \lor \neg \left(d2 \leq 1.55 \cdot 10^{-233}\right) \land \left(d2 \leq 3 \cdot 10^{-219} \lor \neg \left(d2 \leq 3.6 \cdot 10^{-207}\right) \land \left(d2 \leq 3.7 \cdot 10^{-207} \lor \neg \left(d2 \leq 4.8 \cdot 10^{-168}\right) \land \left(d2 \leq 5 \cdot 10^{-168} \lor \neg \left(d2 \leq 3.25 \cdot 10^{-99}\right) \land \left(d2 \leq 3.3 \cdot 10^{-99} \lor \neg \left(d2 \leq 7.4 \cdot 10^{-90}\right) \land \left(d2 \leq 7.5 \cdot 10^{-90} \lor \neg \left(d2 \leq 7 \cdot 10^{-22}\right) \land \left(d2 \leq 7.2 \cdot 10^{-22} \lor \neg \left(d2 \leq 24500\right) \land \left(d2 \leq 3.1 \cdot 10^{+18} \lor \neg \left(d2 \leq 2.6 \cdot 10^{+33}\right) \land \left(d2 \leq 1.22 \cdot 10^{+35} \lor \neg \left(d2 \leq 8.2 \cdot 10^{+68}\right) \land d2 \leq 8 \cdot 10^{+77}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\ \;\;\;\;d1 \cdot d2\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (if (or (<= d2 -7e+61)
         (and (not (<= d2 -3.7e-21))
              (or (<= d2 -1.15e-21)
                  (and (not (<= d2 -3.25e-46))
                       (or (<= d2 -5.5e-49)
                           (and (not (<= d2 -1.65e-52))
                                (or (<= d2 -2.55e-54)
                                    (and (not (<= d2 -4.2e-70))
                                         (or (<= d2 -5.7e-71)
                                             (and (not (<= d2 -2.5e-72))
                                                  (or (<= d2 -2.4e-72)
                                                      (and (not
                                                            (<= d2 -1.15e-78))
                                                           (or (<= d2 -9.5e-80)
                                                               (and (not
                                                                     (<=
                                                                      d2
                                                                      -3.7e-103))
                                                                    (or (<=
                                                                         d2
                                                                         -1.6e-103)
                                                                        (and (not
                                                                              (<=
                                                                               d2
                                                                               -6.5e-111))
                                                                             (or (<=
                                                                                  d2
                                                                                  -6.4e-111)
                                                                                 (and (not
                                                                                       (<=
                                                                                        d2
                                                                                        -2.9e-116))
                                                                                      (or (<=
                                                                                           d2
                                                                                           -1.2e-117)
                                                                                          (and (not
                                                                                                (or (<=
                                                                                                     d2
                                                                                                     -2e-118)
                                                                                                    (<=
                                                                                                     d2
                                                                                                     -2.4e-120)))
                                                                                               (or (<=
                                                                                                    d2
                                                                                                    -1.35e-126)
                                                                                                   (and (not
                                                                                                         (<=
                                                                                                          d2
                                                                                                          -5.1e-133))
                                                                                                        (or (<=
                                                                                                             d2
                                                                                                             -5e-133)
                                                                                                            (and (not
                                                                                                                  (<=
                                                                                                                   d2
                                                                                                                   -2.4e-145))
                                                                                                                 (or (<=
                                                                                                                      d2
                                                                                                                      -2.3e-145)
                                                                                                                     (and (not
                                                                                                                           (<=
                                                                                                                            d2
                                                                                                                            -2.4e-149))
                                                                                                                          (or (<=
                                                                                                                               d2
                                                                                                                               -2.35e-149)
                                                                                                                              (and (not
                                                                                                                                    (<=
                                                                                                                                     d2
                                                                                                                                     -1.35e-188))
                                                                                                                                   (or (<=
                                                                                                                                        d2
                                                                                                                                        -2.9e-202)
                                                                                                                                       (and (not
                                                                                                                                             (<=
                                                                                                                                              d2
                                                                                                                                              -5.8e-219))
                                                                                                                                            (or (<=
                                                                                                                                                 d2
                                                                                                                                                 -2.8e-224)
                                                                                                                                                (and (not
                                                                                                                                                      (<=
                                                                                                                                                       d2
                                                                                                                                                       -3.3e-242))
                                                                                                                                                     (or (<=
                                                                                                                                                          d2
                                                                                                                                                          -5.8e-249)
                                                                                                                                                         (and (not
                                                                                                                                                               (<=
                                                                                                                                                                d2
                                                                                                                                                                -8.8e-265))
                                                                                                                                                              (or (<=
                                                                                                                                                                   d2
                                                                                                                                                                   -8.7e-265)
                                                                                                                                                                  (and (not
                                                                                                                                                                        (<=
                                                                                                                                                                         d2
                                                                                                                                                                         -3.4e-281))
                                                                                                                                                                       (or (<=
                                                                                                                                                                            d2
                                                                                                                                                                            -9e-284)
                                                                                                                                                                           (and (not
                                                                                                                                                                                 (<=
                                                                                                                                                                                  d2
                                                                                                                                                                                  -4.5e-292))
                                                                                                                                                                                (or (<=
                                                                                                                                                                                     d2
                                                                                                                                                                                     -4.2e-292)
                                                                                                                                                                                    (and (not
                                                                                                                                                                                          (<=
                                                                                                                                                                                           d2
                                                                                                                                                                                           -1.2e-298))
                                                                                                                                                                                         (or (<=
                                                                                                                                                                                              d2
                                                                                                                                                                                              -1.85e-301)
                                                                                                                                                                                             (and (not
                                                                                                                                                                                                   (<=
                                                                                                                                                                                                    d2
                                                                                                                                                                                                    2.9e-283))
                                                                                                                                                                                                  (or (<=
                                                                                                                                                                                                       d2
                                                                                                                                                                                                       1.6e-259)
                                                                                                                                                                                                      (and (not
                                                                                                                                                                                                            (<=
                                                                                                                                                                                                             d2
                                                                                                                                                                                                             1.55e-233))
                                                                                                                                                                                                           (or (<=
                                                                                                                                                                                                                d2
                                                                                                                                                                                                                3e-219)
                                                                                                                                                                                                               (and (not
                                                                                                                                                                                                                     (<=
                                                                                                                                                                                                                      d2
                                                                                                                                                                                                                      3.6e-207))
                                                                                                                                                                                                                    (or (<=
                                                                                                                                                                                                                         d2
                                                                                                                                                                                                                         3.7e-207)
                                                                                                                                                                                                                        (and (not
                                                                                                                                                                                                                              (<=
                                                                                                                                                                                                                               d2
                                                                                                                                                                                                                               4.8e-168))
                                                                                                                                                                                                                             (or (<=
                                                                                                                                                                                                                                  d2
                                                                                                                                                                                                                                  5e-168)
                                                                                                                                                                                                                                 (and (not
                                                                                                                                                                                                                                       (<=
                                                                                                                                                                                                                                        d2
                                                                                                                                                                                                                                        3.25e-99))
                                                                                                                                                                                                                                      (or (<=
                                                                                                                                                                                                                                           d2
                                                                                                                                                                                                                                           3.3e-99)
                                                                                                                                                                                                                                          (and (not
                                                                                                                                                                                                                                                (<=
                                                                                                                                                                                                                                                 d2
                                                                                                                                                                                                                                                 7.4e-90))
                                                                                                                                                                                                                                               (or (<=
                                                                                                                                                                                                                                                    d2
                                                                                                                                                                                                                                                    7.5e-90)
                                                                                                                                                                                                                                                   (and (not
                                                                                                                                                                                                                                                         (<=
                                                                                                                                                                                                                                                          d2
                                                                                                                                                                                                                                                          7e-22))
                                                                                                                                                                                                                                                        (or (<=
                                                                                                                                                                                                                                                             d2
                                                                                                                                                                                                                                                             7.2e-22)
                                                                                                                                                                                                                                                            (and (not
                                                                                                                                                                                                                                                                  (<=
                                                                                                                                                                                                                                                                   d2
                                                                                                                                                                                                                                                                   24500.0))
                                                                                                                                                                                                                                                                 (or (<=
                                                                                                                                                                                                                                                                      d2
                                                                                                                                                                                                                                                                      3.1e+18)
                                                                                                                                                                                                                                                                     (and (not
                                                                                                                                                                                                                                                                           (<=
                                                                                                                                                                                                                                                                            d2
                                                                                                                                                                                                                                                                            2.6e+33))
                                                                                                                                                                                                                                                                          (or (<=
                                                                                                                                                                                                                                                                               d2
                                                                                                                                                                                                                                                                               1.22e+35)
                                                                                                                                                                                                                                                                              (and (not
                                                                                                                                                                                                                                                                                    (<=
                                                                                                                                                                                                                                                                                     d2
                                                                                                                                                                                                                                                                                     8.2e+68))
                                                                                                                                                                                                                                                                                   (<=
                                                                                                                                                                                                                                                                                    d2
                                                                                                                                                                                                                                                                                    8e+77)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
   (* d1 d2)
   (* d1 d4)))
double code(double d1, double d2, double d3, double d4) {
	double tmp;
	if ((d2 <= -7e+61) || (!(d2 <= -3.7e-21) && ((d2 <= -1.15e-21) || (!(d2 <= -3.25e-46) && ((d2 <= -5.5e-49) || (!(d2 <= -1.65e-52) && ((d2 <= -2.55e-54) || (!(d2 <= -4.2e-70) && ((d2 <= -5.7e-71) || (!(d2 <= -2.5e-72) && ((d2 <= -2.4e-72) || (!(d2 <= -1.15e-78) && ((d2 <= -9.5e-80) || (!(d2 <= -3.7e-103) && ((d2 <= -1.6e-103) || (!(d2 <= -6.5e-111) && ((d2 <= -6.4e-111) || (!(d2 <= -2.9e-116) && ((d2 <= -1.2e-117) || (!((d2 <= -2e-118) || (d2 <= -2.4e-120)) && ((d2 <= -1.35e-126) || (!(d2 <= -5.1e-133) && ((d2 <= -5e-133) || (!(d2 <= -2.4e-145) && ((d2 <= -2.3e-145) || (!(d2 <= -2.4e-149) && ((d2 <= -2.35e-149) || (!(d2 <= -1.35e-188) && ((d2 <= -2.9e-202) || (!(d2 <= -5.8e-219) && ((d2 <= -2.8e-224) || (!(d2 <= -3.3e-242) && ((d2 <= -5.8e-249) || (!(d2 <= -8.8e-265) && ((d2 <= -8.7e-265) || (!(d2 <= -3.4e-281) && ((d2 <= -9e-284) || (!(d2 <= -4.5e-292) && ((d2 <= -4.2e-292) || (!(d2 <= -1.2e-298) && ((d2 <= -1.85e-301) || (!(d2 <= 2.9e-283) && ((d2 <= 1.6e-259) || (!(d2 <= 1.55e-233) && ((d2 <= 3e-219) || (!(d2 <= 3.6e-207) && ((d2 <= 3.7e-207) || (!(d2 <= 4.8e-168) && ((d2 <= 5e-168) || (!(d2 <= 3.25e-99) && ((d2 <= 3.3e-99) || (!(d2 <= 7.4e-90) && ((d2 <= 7.5e-90) || (!(d2 <= 7e-22) && ((d2 <= 7.2e-22) || (!(d2 <= 24500.0) && ((d2 <= 3.1e+18) || (!(d2 <= 2.6e+33) && ((d2 <= 1.22e+35) || (!(d2 <= 8.2e+68) && (d2 <= 8e+77))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) {
		tmp = d1 * d2;
	} else {
		tmp = d1 * d4;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: tmp
    if ((d2 <= (-7d+61)) .or. (.not. (d2 <= (-3.7d-21))) .and. (d2 <= (-1.15d-21)) .or. (.not. (d2 <= (-3.25d-46))) .and. (d2 <= (-5.5d-49)) .or. (.not. (d2 <= (-1.65d-52))) .and. (d2 <= (-2.55d-54)) .or. (.not. (d2 <= (-4.2d-70))) .and. (d2 <= (-5.7d-71)) .or. (.not. (d2 <= (-2.5d-72))) .and. (d2 <= (-2.4d-72)) .or. (.not. (d2 <= (-1.15d-78))) .and. (d2 <= (-9.5d-80)) .or. (.not. (d2 <= (-3.7d-103))) .and. (d2 <= (-1.6d-103)) .or. (.not. (d2 <= (-6.5d-111))) .and. (d2 <= (-6.4d-111)) .or. (.not. (d2 <= (-2.9d-116))) .and. (d2 <= (-1.2d-117)) .or. (.not. (d2 <= (-2d-118)) .or. (d2 <= (-2.4d-120))) .and. (d2 <= (-1.35d-126)) .or. (.not. (d2 <= (-5.1d-133))) .and. (d2 <= (-5d-133)) .or. (.not. (d2 <= (-2.4d-145))) .and. (d2 <= (-2.3d-145)) .or. (.not. (d2 <= (-2.4d-149))) .and. (d2 <= (-2.35d-149)) .or. (.not. (d2 <= (-1.35d-188))) .and. (d2 <= (-2.9d-202)) .or. (.not. (d2 <= (-5.8d-219))) .and. (d2 <= (-2.8d-224)) .or. (.not. (d2 <= (-3.3d-242))) .and. (d2 <= (-5.8d-249)) .or. (.not. (d2 <= (-8.8d-265))) .and. (d2 <= (-8.7d-265)) .or. (.not. (d2 <= (-3.4d-281))) .and. (d2 <= (-9d-284)) .or. (.not. (d2 <= (-4.5d-292))) .and. (d2 <= (-4.2d-292)) .or. (.not. (d2 <= (-1.2d-298))) .and. (d2 <= (-1.85d-301)) .or. (.not. (d2 <= 2.9d-283)) .and. (d2 <= 1.6d-259) .or. (.not. (d2 <= 1.55d-233)) .and. (d2 <= 3d-219) .or. (.not. (d2 <= 3.6d-207)) .and. (d2 <= 3.7d-207) .or. (.not. (d2 <= 4.8d-168)) .and. (d2 <= 5d-168) .or. (.not. (d2 <= 3.25d-99)) .and. (d2 <= 3.3d-99) .or. (.not. (d2 <= 7.4d-90)) .and. (d2 <= 7.5d-90) .or. (.not. (d2 <= 7d-22)) .and. (d2 <= 7.2d-22) .or. (.not. (d2 <= 24500.0d0)) .and. (d2 <= 3.1d+18) .or. (.not. (d2 <= 2.6d+33)) .and. (d2 <= 1.22d+35) .or. (.not. (d2 <= 8.2d+68)) .and. (d2 <= 8d+77)) then
        tmp = d1 * d2
    else
        tmp = d1 * d4
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double tmp;
	if ((d2 <= -7e+61) || (!(d2 <= -3.7e-21) && ((d2 <= -1.15e-21) || (!(d2 <= -3.25e-46) && ((d2 <= -5.5e-49) || (!(d2 <= -1.65e-52) && ((d2 <= -2.55e-54) || (!(d2 <= -4.2e-70) && ((d2 <= -5.7e-71) || (!(d2 <= -2.5e-72) && ((d2 <= -2.4e-72) || (!(d2 <= -1.15e-78) && ((d2 <= -9.5e-80) || (!(d2 <= -3.7e-103) && ((d2 <= -1.6e-103) || (!(d2 <= -6.5e-111) && ((d2 <= -6.4e-111) || (!(d2 <= -2.9e-116) && ((d2 <= -1.2e-117) || (!((d2 <= -2e-118) || (d2 <= -2.4e-120)) && ((d2 <= -1.35e-126) || (!(d2 <= -5.1e-133) && ((d2 <= -5e-133) || (!(d2 <= -2.4e-145) && ((d2 <= -2.3e-145) || (!(d2 <= -2.4e-149) && ((d2 <= -2.35e-149) || (!(d2 <= -1.35e-188) && ((d2 <= -2.9e-202) || (!(d2 <= -5.8e-219) && ((d2 <= -2.8e-224) || (!(d2 <= -3.3e-242) && ((d2 <= -5.8e-249) || (!(d2 <= -8.8e-265) && ((d2 <= -8.7e-265) || (!(d2 <= -3.4e-281) && ((d2 <= -9e-284) || (!(d2 <= -4.5e-292) && ((d2 <= -4.2e-292) || (!(d2 <= -1.2e-298) && ((d2 <= -1.85e-301) || (!(d2 <= 2.9e-283) && ((d2 <= 1.6e-259) || (!(d2 <= 1.55e-233) && ((d2 <= 3e-219) || (!(d2 <= 3.6e-207) && ((d2 <= 3.7e-207) || (!(d2 <= 4.8e-168) && ((d2 <= 5e-168) || (!(d2 <= 3.25e-99) && ((d2 <= 3.3e-99) || (!(d2 <= 7.4e-90) && ((d2 <= 7.5e-90) || (!(d2 <= 7e-22) && ((d2 <= 7.2e-22) || (!(d2 <= 24500.0) && ((d2 <= 3.1e+18) || (!(d2 <= 2.6e+33) && ((d2 <= 1.22e+35) || (!(d2 <= 8.2e+68) && (d2 <= 8e+77))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) {
		tmp = d1 * d2;
	} else {
		tmp = d1 * d4;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	tmp = 0
	if (d2 <= -7e+61) or (not (d2 <= -3.7e-21) and ((d2 <= -1.15e-21) or (not (d2 <= -3.25e-46) and ((d2 <= -5.5e-49) or (not (d2 <= -1.65e-52) and ((d2 <= -2.55e-54) or (not (d2 <= -4.2e-70) and ((d2 <= -5.7e-71) or (not (d2 <= -2.5e-72) and ((d2 <= -2.4e-72) or (not (d2 <= -1.15e-78) and ((d2 <= -9.5e-80) or (not (d2 <= -3.7e-103) and ((d2 <= -1.6e-103) or (not (d2 <= -6.5e-111) and ((d2 <= -6.4e-111) or (not (d2 <= -2.9e-116) and ((d2 <= -1.2e-117) or (not ((d2 <= -2e-118) or (d2 <= -2.4e-120)) and ((d2 <= -1.35e-126) or (not (d2 <= -5.1e-133) and ((d2 <= -5e-133) or (not (d2 <= -2.4e-145) and ((d2 <= -2.3e-145) or (not (d2 <= -2.4e-149) and ((d2 <= -2.35e-149) or (not (d2 <= -1.35e-188) and ((d2 <= -2.9e-202) or (not (d2 <= -5.8e-219) and ((d2 <= -2.8e-224) or (not (d2 <= -3.3e-242) and ((d2 <= -5.8e-249) or (not (d2 <= -8.8e-265) and ((d2 <= -8.7e-265) or (not (d2 <= -3.4e-281) and ((d2 <= -9e-284) or (not (d2 <= -4.5e-292) and ((d2 <= -4.2e-292) or (not (d2 <= -1.2e-298) and ((d2 <= -1.85e-301) or (not (d2 <= 2.9e-283) and ((d2 <= 1.6e-259) or (not (d2 <= 1.55e-233) and ((d2 <= 3e-219) or (not (d2 <= 3.6e-207) and ((d2 <= 3.7e-207) or (not (d2 <= 4.8e-168) and ((d2 <= 5e-168) or (not (d2 <= 3.25e-99) and ((d2 <= 3.3e-99) or (not (d2 <= 7.4e-90) and ((d2 <= 7.5e-90) or (not (d2 <= 7e-22) and ((d2 <= 7.2e-22) or (not (d2 <= 24500.0) and ((d2 <= 3.1e+18) or (not (d2 <= 2.6e+33) and ((d2 <= 1.22e+35) or (not (d2 <= 8.2e+68) and (d2 <= 8e+77)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
		tmp = d1 * d2
	else:
		tmp = d1 * d4
	return tmp
function code(d1, d2, d3, d4)
	tmp = 0.0
	if ((d2 <= -7e+61) || (!(d2 <= -3.7e-21) && ((d2 <= -1.15e-21) || (!(d2 <= -3.25e-46) && ((d2 <= -5.5e-49) || (!(d2 <= -1.65e-52) && ((d2 <= -2.55e-54) || (!(d2 <= -4.2e-70) && ((d2 <= -5.7e-71) || (!(d2 <= -2.5e-72) && ((d2 <= -2.4e-72) || (!(d2 <= -1.15e-78) && ((d2 <= -9.5e-80) || (!(d2 <= -3.7e-103) && ((d2 <= -1.6e-103) || (!(d2 <= -6.5e-111) && ((d2 <= -6.4e-111) || (!(d2 <= -2.9e-116) && ((d2 <= -1.2e-117) || (!((d2 <= -2e-118) || (d2 <= -2.4e-120)) && ((d2 <= -1.35e-126) || (!(d2 <= -5.1e-133) && ((d2 <= -5e-133) || (!(d2 <= -2.4e-145) && ((d2 <= -2.3e-145) || (!(d2 <= -2.4e-149) && ((d2 <= -2.35e-149) || (!(d2 <= -1.35e-188) && ((d2 <= -2.9e-202) || (!(d2 <= -5.8e-219) && ((d2 <= -2.8e-224) || (!(d2 <= -3.3e-242) && ((d2 <= -5.8e-249) || (!(d2 <= -8.8e-265) && ((d2 <= -8.7e-265) || (!(d2 <= -3.4e-281) && ((d2 <= -9e-284) || (!(d2 <= -4.5e-292) && ((d2 <= -4.2e-292) || (!(d2 <= -1.2e-298) && ((d2 <= -1.85e-301) || (!(d2 <= 2.9e-283) && ((d2 <= 1.6e-259) || (!(d2 <= 1.55e-233) && ((d2 <= 3e-219) || (!(d2 <= 3.6e-207) && ((d2 <= 3.7e-207) || (!(d2 <= 4.8e-168) && ((d2 <= 5e-168) || (!(d2 <= 3.25e-99) && ((d2 <= 3.3e-99) || (!(d2 <= 7.4e-90) && ((d2 <= 7.5e-90) || (!(d2 <= 7e-22) && ((d2 <= 7.2e-22) || (!(d2 <= 24500.0) && ((d2 <= 3.1e+18) || (!(d2 <= 2.6e+33) && ((d2 <= 1.22e+35) || (!(d2 <= 8.2e+68) && (d2 <= 8e+77)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
		tmp = Float64(d1 * d2);
	else
		tmp = Float64(d1 * d4);
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	tmp = 0.0;
	if ((d2 <= -7e+61) || (~((d2 <= -3.7e-21)) && ((d2 <= -1.15e-21) || (~((d2 <= -3.25e-46)) && ((d2 <= -5.5e-49) || (~((d2 <= -1.65e-52)) && ((d2 <= -2.55e-54) || (~((d2 <= -4.2e-70)) && ((d2 <= -5.7e-71) || (~((d2 <= -2.5e-72)) && ((d2 <= -2.4e-72) || (~((d2 <= -1.15e-78)) && ((d2 <= -9.5e-80) || (~((d2 <= -3.7e-103)) && ((d2 <= -1.6e-103) || (~((d2 <= -6.5e-111)) && ((d2 <= -6.4e-111) || (~((d2 <= -2.9e-116)) && ((d2 <= -1.2e-117) || (~(((d2 <= -2e-118) || (d2 <= -2.4e-120))) && ((d2 <= -1.35e-126) || (~((d2 <= -5.1e-133)) && ((d2 <= -5e-133) || (~((d2 <= -2.4e-145)) && ((d2 <= -2.3e-145) || (~((d2 <= -2.4e-149)) && ((d2 <= -2.35e-149) || (~((d2 <= -1.35e-188)) && ((d2 <= -2.9e-202) || (~((d2 <= -5.8e-219)) && ((d2 <= -2.8e-224) || (~((d2 <= -3.3e-242)) && ((d2 <= -5.8e-249) || (~((d2 <= -8.8e-265)) && ((d2 <= -8.7e-265) || (~((d2 <= -3.4e-281)) && ((d2 <= -9e-284) || (~((d2 <= -4.5e-292)) && ((d2 <= -4.2e-292) || (~((d2 <= -1.2e-298)) && ((d2 <= -1.85e-301) || (~((d2 <= 2.9e-283)) && ((d2 <= 1.6e-259) || (~((d2 <= 1.55e-233)) && ((d2 <= 3e-219) || (~((d2 <= 3.6e-207)) && ((d2 <= 3.7e-207) || (~((d2 <= 4.8e-168)) && ((d2 <= 5e-168) || (~((d2 <= 3.25e-99)) && ((d2 <= 3.3e-99) || (~((d2 <= 7.4e-90)) && ((d2 <= 7.5e-90) || (~((d2 <= 7e-22)) && ((d2 <= 7.2e-22) || (~((d2 <= 24500.0)) && ((d2 <= 3.1e+18) || (~((d2 <= 2.6e+33)) && ((d2 <= 1.22e+35) || (~((d2 <= 8.2e+68)) && (d2 <= 8e+77)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
		tmp = d1 * d2;
	else
		tmp = d1 * d4;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := If[Or[LessEqual[d2, -7e+61], And[N[Not[LessEqual[d2, -3.7e-21]], $MachinePrecision], Or[LessEqual[d2, -1.15e-21], And[N[Not[LessEqual[d2, -3.25e-46]], $MachinePrecision], Or[LessEqual[d2, -5.5e-49], And[N[Not[LessEqual[d2, -1.65e-52]], $MachinePrecision], Or[LessEqual[d2, -2.55e-54], And[N[Not[LessEqual[d2, -4.2e-70]], $MachinePrecision], Or[LessEqual[d2, -5.7e-71], And[N[Not[LessEqual[d2, -2.5e-72]], $MachinePrecision], Or[LessEqual[d2, -2.4e-72], And[N[Not[LessEqual[d2, -1.15e-78]], $MachinePrecision], Or[LessEqual[d2, -9.5e-80], And[N[Not[LessEqual[d2, -3.7e-103]], $MachinePrecision], Or[LessEqual[d2, -1.6e-103], And[N[Not[LessEqual[d2, -6.5e-111]], $MachinePrecision], Or[LessEqual[d2, -6.4e-111], And[N[Not[LessEqual[d2, -2.9e-116]], $MachinePrecision], Or[LessEqual[d2, -1.2e-117], And[N[Not[Or[LessEqual[d2, -2e-118], LessEqual[d2, -2.4e-120]]], $MachinePrecision], Or[LessEqual[d2, -1.35e-126], And[N[Not[LessEqual[d2, -5.1e-133]], $MachinePrecision], Or[LessEqual[d2, -5e-133], And[N[Not[LessEqual[d2, -2.4e-145]], $MachinePrecision], Or[LessEqual[d2, -2.3e-145], And[N[Not[LessEqual[d2, -2.4e-149]], $MachinePrecision], Or[LessEqual[d2, -2.35e-149], And[N[Not[LessEqual[d2, -1.35e-188]], $MachinePrecision], Or[LessEqual[d2, -2.9e-202], And[N[Not[LessEqual[d2, -5.8e-219]], $MachinePrecision], Or[LessEqual[d2, -2.8e-224], And[N[Not[LessEqual[d2, -3.3e-242]], $MachinePrecision], Or[LessEqual[d2, -5.8e-249], And[N[Not[LessEqual[d2, -8.8e-265]], $MachinePrecision], Or[LessEqual[d2, -8.7e-265], And[N[Not[LessEqual[d2, -3.4e-281]], $MachinePrecision], Or[LessEqual[d2, -9e-284], And[N[Not[LessEqual[d2, -4.5e-292]], $MachinePrecision], Or[LessEqual[d2, -4.2e-292], And[N[Not[LessEqual[d2, -1.2e-298]], $MachinePrecision], Or[LessEqual[d2, -1.85e-301], And[N[Not[LessEqual[d2, 2.9e-283]], $MachinePrecision], Or[LessEqual[d2, 1.6e-259], And[N[Not[LessEqual[d2, 1.55e-233]], $MachinePrecision], Or[LessEqual[d2, 3e-219], And[N[Not[LessEqual[d2, 3.6e-207]], $MachinePrecision], Or[LessEqual[d2, 3.7e-207], And[N[Not[LessEqual[d2, 4.8e-168]], $MachinePrecision], Or[LessEqual[d2, 5e-168], And[N[Not[LessEqual[d2, 3.25e-99]], $MachinePrecision], Or[LessEqual[d2, 3.3e-99], And[N[Not[LessEqual[d2, 7.4e-90]], $MachinePrecision], Or[LessEqual[d2, 7.5e-90], And[N[Not[LessEqual[d2, 7e-22]], $MachinePrecision], Or[LessEqual[d2, 7.2e-22], And[N[Not[LessEqual[d2, 24500.0]], $MachinePrecision], Or[LessEqual[d2, 3.1e+18], And[N[Not[LessEqual[d2, 2.6e+33]], $MachinePrecision], Or[LessEqual[d2, 1.22e+35], And[N[Not[LessEqual[d2, 8.2e+68]], $MachinePrecision], LessEqual[d2, 8e+77]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], N[(d1 * d2), $MachinePrecision], N[(d1 * d4), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;d2 \leq -7 \cdot 10^{+61} \lor \neg \left(d2 \leq -3.7 \cdot 10^{-21}\right) \land \left(d2 \leq -1.15 \cdot 10^{-21} \lor \neg \left(d2 \leq -3.25 \cdot 10^{-46}\right) \land \left(d2 \leq -5.5 \cdot 10^{-49} \lor \neg \left(d2 \leq -1.65 \cdot 10^{-52}\right) \land \left(d2 \leq -2.55 \cdot 10^{-54} \lor \neg \left(d2 \leq -4.2 \cdot 10^{-70}\right) \land \left(d2 \leq -5.7 \cdot 10^{-71} \lor \neg \left(d2 \leq -2.5 \cdot 10^{-72}\right) \land \left(d2 \leq -2.4 \cdot 10^{-72} \lor \neg \left(d2 \leq -1.15 \cdot 10^{-78}\right) \land \left(d2 \leq -9.5 \cdot 10^{-80} \lor \neg \left(d2 \leq -3.7 \cdot 10^{-103}\right) \land \left(d2 \leq -1.6 \cdot 10^{-103} \lor \neg \left(d2 \leq -6.5 \cdot 10^{-111}\right) \land \left(d2 \leq -6.4 \cdot 10^{-111} \lor \neg \left(d2 \leq -2.9 \cdot 10^{-116}\right) \land \left(d2 \leq -1.2 \cdot 10^{-117} \lor \neg \left(d2 \leq -2 \cdot 10^{-118} \lor d2 \leq -2.4 \cdot 10^{-120}\right) \land \left(d2 \leq -1.35 \cdot 10^{-126} \lor \neg \left(d2 \leq -5.1 \cdot 10^{-133}\right) \land \left(d2 \leq -5 \cdot 10^{-133} \lor \neg \left(d2 \leq -2.4 \cdot 10^{-145}\right) \land \left(d2 \leq -2.3 \cdot 10^{-145} \lor \neg \left(d2 \leq -2.4 \cdot 10^{-149}\right) \land \left(d2 \leq -2.35 \cdot 10^{-149} \lor \neg \left(d2 \leq -1.35 \cdot 10^{-188}\right) \land \left(d2 \leq -2.9 \cdot 10^{-202} \lor \neg \left(d2 \leq -5.8 \cdot 10^{-219}\right) \land \left(d2 \leq -2.8 \cdot 10^{-224} \lor \neg \left(d2 \leq -3.3 \cdot 10^{-242}\right) \land \left(d2 \leq -5.8 \cdot 10^{-249} \lor \neg \left(d2 \leq -8.8 \cdot 10^{-265}\right) \land \left(d2 \leq -8.7 \cdot 10^{-265} \lor \neg \left(d2 \leq -3.4 \cdot 10^{-281}\right) \land \left(d2 \leq -9 \cdot 10^{-284} \lor \neg \left(d2 \leq -4.5 \cdot 10^{-292}\right) \land \left(d2 \leq -4.2 \cdot 10^{-292} \lor \neg \left(d2 \leq -1.2 \cdot 10^{-298}\right) \land \left(d2 \leq -1.85 \cdot 10^{-301} \lor \neg \left(d2 \leq 2.9 \cdot 10^{-283}\right) \land \left(d2 \leq 1.6 \cdot 10^{-259} \lor \neg \left(d2 \leq 1.55 \cdot 10^{-233}\right) \land \left(d2 \leq 3 \cdot 10^{-219} \lor \neg \left(d2 \leq 3.6 \cdot 10^{-207}\right) \land \left(d2 \leq 3.7 \cdot 10^{-207} \lor \neg \left(d2 \leq 4.8 \cdot 10^{-168}\right) \land \left(d2 \leq 5 \cdot 10^{-168} \lor \neg \left(d2 \leq 3.25 \cdot 10^{-99}\right) \land \left(d2 \leq 3.3 \cdot 10^{-99} \lor \neg \left(d2 \leq 7.4 \cdot 10^{-90}\right) \land \left(d2 \leq 7.5 \cdot 10^{-90} \lor \neg \left(d2 \leq 7 \cdot 10^{-22}\right) \land \left(d2 \leq 7.2 \cdot 10^{-22} \lor \neg \left(d2 \leq 24500\right) \land \left(d2 \leq 3.1 \cdot 10^{+18} \lor \neg \left(d2 \leq 2.6 \cdot 10^{+33}\right) \land \left(d2 \leq 1.22 \cdot 10^{+35} \lor \neg \left(d2 \leq 8.2 \cdot 10^{+68}\right) \land d2 \leq 8 \cdot 10^{+77}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\
\;\;\;\;d1 \cdot d2\\

\mathbf{else}:\\
\;\;\;\;d1 \cdot d4\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if d2 < -7.00000000000000036e61 or -3.7000000000000002e-21 < d2 < -1.15e-21 or -3.24999999999999983e-46 < d2 < -5.50000000000000031e-49 or -1.64999999999999998e-52 < d2 < -2.55000000000000005e-54 or -4.2000000000000002e-70 < d2 < -5.7000000000000003e-71 or -2.4999999999999998e-72 < d2 < -2.4e-72 or -1.1500000000000001e-78 < d2 < -9.5000000000000003e-80 or -3.6999999999999999e-103 < d2 < -1.59999999999999988e-103 or -6.49999999999999974e-111 < d2 < -6.3999999999999997e-111 or -2.8999999999999998e-116 < d2 < -1.20000000000000007e-117 or -2.3999999999999999e-120 < d2 < -1.34999999999999998e-126 or -5.0999999999999999e-133 < d2 < -4.9999999999999999e-133 or -2.40000000000000015e-145 < d2 < -2.30000000000000007e-145 or -2.4000000000000001e-149 < d2 < -2.35e-149 or -1.35e-188 < d2 < -2.89999999999999988e-202 or -5.79999999999999968e-219 < d2 < -2.7999999999999998e-224 or -3.29999999999999982e-242 < d2 < -5.80000000000000044e-249 or -8.80000000000000042e-265 < d2 < -8.6999999999999998e-265 or -3.4e-281 < d2 < -8.9999999999999999e-284 or -4.49999999999999956e-292 < d2 < -4.19999999999999977e-292 or -1.19999999999999994e-298 < d2 < -1.8499999999999999e-301 or 2.89999999999999988e-283 < d2 < 1.59999999999999994e-259 or 1.55000000000000007e-233 < d2 < 3.0000000000000001e-219 or 3.5999999999999997e-207 < d2 < 3.69999999999999984e-207 or 4.7999999999999999e-168 < d2 < 5.00000000000000001e-168 or 3.25000000000000017e-99 < d2 < 3.29999999999999986e-99 or 7.40000000000000035e-90 < d2 < 7.4999999999999999e-90 or 7.00000000000000011e-22 < d2 < 7.1999999999999996e-22 or 24500 < d2 < 3.1e18 or 2.5999999999999997e33 < d2 < 1.21999999999999999e35 or 8.1999999999999998e68 < d2 < 7.99999999999999986e77

    1. Initial program 83.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+83.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--86.8%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--90.1%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 43.5%

      \[\leadsto \color{blue}{d1 \cdot d2} \]

    if -7.00000000000000036e61 < d2 < -3.7000000000000002e-21 or -1.15e-21 < d2 < -3.24999999999999983e-46 or -5.50000000000000031e-49 < d2 < -1.64999999999999998e-52 or -2.55000000000000005e-54 < d2 < -4.2000000000000002e-70 or -5.7000000000000003e-71 < d2 < -2.4999999999999998e-72 or -2.4e-72 < d2 < -1.1500000000000001e-78 or -9.5000000000000003e-80 < d2 < -3.6999999999999999e-103 or -1.59999999999999988e-103 < d2 < -6.49999999999999974e-111 or -6.3999999999999997e-111 < d2 < -2.8999999999999998e-116 or -1.20000000000000007e-117 < d2 < -1.99999999999999997e-118 or -1.99999999999999997e-118 < d2 < -2.3999999999999999e-120 or -1.34999999999999998e-126 < d2 < -5.0999999999999999e-133 or -4.9999999999999999e-133 < d2 < -2.40000000000000015e-145 or -2.30000000000000007e-145 < d2 < -2.4000000000000001e-149 or -2.35e-149 < d2 < -1.35e-188 or -2.89999999999999988e-202 < d2 < -5.79999999999999968e-219 or -2.7999999999999998e-224 < d2 < -3.29999999999999982e-242 or -5.80000000000000044e-249 < d2 < -8.80000000000000042e-265 or -8.6999999999999998e-265 < d2 < -3.4e-281 or -8.9999999999999999e-284 < d2 < -4.49999999999999956e-292 or -4.19999999999999977e-292 < d2 < -1.19999999999999994e-298 or -1.8499999999999999e-301 < d2 < 2.89999999999999988e-283 or 1.59999999999999994e-259 < d2 < 1.55000000000000007e-233 or 3.0000000000000001e-219 < d2 < 3.5999999999999997e-207 or 3.69999999999999984e-207 < d2 < 4.7999999999999999e-168 or 5.00000000000000001e-168 < d2 < 3.25000000000000017e-99 or 3.29999999999999986e-99 < d2 < 7.40000000000000035e-90 or 7.4999999999999999e-90 < d2 < 7.00000000000000011e-22 or 7.1999999999999996e-22 < d2 < 24500 or 3.1e18 < d2 < 2.5999999999999997e33 or 1.21999999999999999e35 < d2 < 8.1999999999999998e68 or 7.99999999999999986e77 < d2

    1. Initial program 88.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.7%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.7%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 33.2%

      \[\leadsto \color{blue}{d1 \cdot d4} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification36.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d2 \leq -7 \cdot 10^{+61} \lor \neg \left(d2 \leq -3.7 \cdot 10^{-21}\right) \land \left(d2 \leq -1.15 \cdot 10^{-21} \lor \neg \left(d2 \leq -3.25 \cdot 10^{-46}\right) \land \left(d2 \leq -5.5 \cdot 10^{-49} \lor \neg \left(d2 \leq -1.65 \cdot 10^{-52}\right) \land \left(d2 \leq -2.55 \cdot 10^{-54} \lor \neg \left(d2 \leq -4.2 \cdot 10^{-70}\right) \land \left(d2 \leq -5.7 \cdot 10^{-71} \lor \neg \left(d2 \leq -2.5 \cdot 10^{-72}\right) \land \left(d2 \leq -2.4 \cdot 10^{-72} \lor \neg \left(d2 \leq -1.15 \cdot 10^{-78}\right) \land \left(d2 \leq -9.5 \cdot 10^{-80} \lor \neg \left(d2 \leq -3.7 \cdot 10^{-103}\right) \land \left(d2 \leq -1.6 \cdot 10^{-103} \lor \neg \left(d2 \leq -6.5 \cdot 10^{-111}\right) \land \left(d2 \leq -6.4 \cdot 10^{-111} \lor \neg \left(d2 \leq -2.9 \cdot 10^{-116}\right) \land \left(d2 \leq -1.2 \cdot 10^{-117} \lor \neg \left(d2 \leq -2 \cdot 10^{-118} \lor d2 \leq -2.4 \cdot 10^{-120}\right) \land \left(d2 \leq -1.35 \cdot 10^{-126} \lor \neg \left(d2 \leq -5.1 \cdot 10^{-133}\right) \land \left(d2 \leq -5 \cdot 10^{-133} \lor \neg \left(d2 \leq -2.4 \cdot 10^{-145}\right) \land \left(d2 \leq -2.3 \cdot 10^{-145} \lor \neg \left(d2 \leq -2.4 \cdot 10^{-149}\right) \land \left(d2 \leq -2.35 \cdot 10^{-149} \lor \neg \left(d2 \leq -1.35 \cdot 10^{-188}\right) \land \left(d2 \leq -2.9 \cdot 10^{-202} \lor \neg \left(d2 \leq -5.8 \cdot 10^{-219}\right) \land \left(d2 \leq -2.8 \cdot 10^{-224} \lor \neg \left(d2 \leq -3.3 \cdot 10^{-242}\right) \land \left(d2 \leq -5.8 \cdot 10^{-249} \lor \neg \left(d2 \leq -8.8 \cdot 10^{-265}\right) \land \left(d2 \leq -8.7 \cdot 10^{-265} \lor \neg \left(d2 \leq -3.4 \cdot 10^{-281}\right) \land \left(d2 \leq -9 \cdot 10^{-284} \lor \neg \left(d2 \leq -4.5 \cdot 10^{-292}\right) \land \left(d2 \leq -4.2 \cdot 10^{-292} \lor \neg \left(d2 \leq -1.2 \cdot 10^{-298}\right) \land \left(d2 \leq -1.85 \cdot 10^{-301} \lor \neg \left(d2 \leq 2.9 \cdot 10^{-283}\right) \land \left(d2 \leq 1.6 \cdot 10^{-259} \lor \neg \left(d2 \leq 1.55 \cdot 10^{-233}\right) \land \left(d2 \leq 3 \cdot 10^{-219} \lor \neg \left(d2 \leq 3.6 \cdot 10^{-207}\right) \land \left(d2 \leq 3.7 \cdot 10^{-207} \lor \neg \left(d2 \leq 4.8 \cdot 10^{-168}\right) \land \left(d2 \leq 5 \cdot 10^{-168} \lor \neg \left(d2 \leq 3.25 \cdot 10^{-99}\right) \land \left(d2 \leq 3.3 \cdot 10^{-99} \lor \neg \left(d2 \leq 7.4 \cdot 10^{-90}\right) \land \left(d2 \leq 7.5 \cdot 10^{-90} \lor \neg \left(d2 \leq 7 \cdot 10^{-22}\right) \land \left(d2 \leq 7.2 \cdot 10^{-22} \lor \neg \left(d2 \leq 24500\right) \land \left(d2 \leq 3.1 \cdot 10^{+18} \lor \neg \left(d2 \leq 2.6 \cdot 10^{+33}\right) \land \left(d2 \leq 1.22 \cdot 10^{+35} \lor \neg \left(d2 \leq 8.2 \cdot 10^{+68}\right) \land d2 \leq 8 \cdot 10^{+77}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\ \;\;\;\;d1 \cdot d2\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 62.5% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(d4 - d1\right)\\ t_1 := d1 \cdot \left(d2 + d4\right)\\ t_2 := d1 \cdot \left(-d3\right)\\ t_3 := d1 \cdot \left(d2 - d3\right)\\ \mathbf{if}\;d4 \leq 5 \cdot 10^{+53}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;d4 \leq 9.6 \cdot 10^{+88}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.75 \cdot 10^{+93}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 9 \cdot 10^{+93}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.6 \cdot 10^{+109}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;d4 \leq 1.45 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+110}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 1.2 \cdot 10^{+122}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 2.1 \cdot 10^{+122}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d4 \leq 6.2 \cdot 10^{+128}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d4 \leq 5.2 \cdot 10^{+150}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 5.3 \cdot 10^{+150}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 3.8 \cdot 10^{+162}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 3.9 \cdot 10^{+162}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+168}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 9.1 \cdot 10^{+170}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 7.8 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 8 \cdot 10^{+177}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 1.15 \cdot 10^{+222}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 1.2 \cdot 10^{+222}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 4.8 \cdot 10^{+242}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.05 \cdot 10^{+252}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 1.08 \cdot 10^{+252}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 7.3 \cdot 10^{+289}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 7.5 \cdot 10^{+289}:\\ \;\;\;\;t\_2\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- d4 d1)))
        (t_1 (* d1 (+ d2 d4)))
        (t_2 (* d1 (- d3)))
        (t_3 (* d1 (- d2 d3))))
   (if (<= d4 5e+53)
     t_3
     (if (<= d4 9.6e+88)
       t_0
       (if (<= d4 1.75e+93)
         t_2
         (if (<= d4 9e+93)
           (* d1 d4)
           (if (<= d4 1.6e+109)
             t_3
             (if (<= d4 1.45e+110)
               (* d1 d4)
               (if (<= d4 1.5e+110)
                 t_2
                 (if (<= d4 1.2e+122)
                   t_0
                   (if (<= d4 2.1e+122)
                     (* d1 d2)
                     (if (<= d4 6.2e+128)
                       (* d1 (- d1))
                       (if (<= d4 5.2e+150)
                         t_1
                         (if (<= d4 5.3e+150)
                           t_2
                           (if (<= d4 3.8e+162)
                             t_0
                             (if (<= d4 3.9e+162)
                               t_2
                               (if (<= d4 1.1e+168)
                                 (* d1 d4)
                                 (if (<= d4 9.1e+170)
                                   t_2
                                   (if (<= d4 7.8e+177)
                                     (* d1 d4)
                                     (if (<= d4 8e+177)
                                       t_2
                                       (if (<= d4 1.15e+222)
                                         t_1
                                         (if (<= d4 1.2e+222)
                                           t_2
                                           (if (<= d4 4.8e+242)
                                             t_0
                                             (if (<= d4 1.05e+252)
                                               t_1
                                               (if (<= d4 1.08e+252)
                                                 t_2
                                                 (if (<= d4 7.3e+289)
                                                   t_0
                                                   (if (<= d4 7.5e+289)
                                                     t_2
                                                     (*
                                                      d1
                                                      d4))))))))))))))))))))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d4 - d1);
	double t_1 = d1 * (d2 + d4);
	double t_2 = d1 * -d3;
	double t_3 = d1 * (d2 - d3);
	double tmp;
	if (d4 <= 5e+53) {
		tmp = t_3;
	} else if (d4 <= 9.6e+88) {
		tmp = t_0;
	} else if (d4 <= 1.75e+93) {
		tmp = t_2;
	} else if (d4 <= 9e+93) {
		tmp = d1 * d4;
	} else if (d4 <= 1.6e+109) {
		tmp = t_3;
	} else if (d4 <= 1.45e+110) {
		tmp = d1 * d4;
	} else if (d4 <= 1.5e+110) {
		tmp = t_2;
	} else if (d4 <= 1.2e+122) {
		tmp = t_0;
	} else if (d4 <= 2.1e+122) {
		tmp = d1 * d2;
	} else if (d4 <= 6.2e+128) {
		tmp = d1 * -d1;
	} else if (d4 <= 5.2e+150) {
		tmp = t_1;
	} else if (d4 <= 5.3e+150) {
		tmp = t_2;
	} else if (d4 <= 3.8e+162) {
		tmp = t_0;
	} else if (d4 <= 3.9e+162) {
		tmp = t_2;
	} else if (d4 <= 1.1e+168) {
		tmp = d1 * d4;
	} else if (d4 <= 9.1e+170) {
		tmp = t_2;
	} else if (d4 <= 7.8e+177) {
		tmp = d1 * d4;
	} else if (d4 <= 8e+177) {
		tmp = t_2;
	} else if (d4 <= 1.15e+222) {
		tmp = t_1;
	} else if (d4 <= 1.2e+222) {
		tmp = t_2;
	} else if (d4 <= 4.8e+242) {
		tmp = t_0;
	} else if (d4 <= 1.05e+252) {
		tmp = t_1;
	} else if (d4 <= 1.08e+252) {
		tmp = t_2;
	} else if (d4 <= 7.3e+289) {
		tmp = t_0;
	} else if (d4 <= 7.5e+289) {
		tmp = t_2;
	} else {
		tmp = d1 * d4;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: tmp
    t_0 = d1 * (d4 - d1)
    t_1 = d1 * (d2 + d4)
    t_2 = d1 * -d3
    t_3 = d1 * (d2 - d3)
    if (d4 <= 5d+53) then
        tmp = t_3
    else if (d4 <= 9.6d+88) then
        tmp = t_0
    else if (d4 <= 1.75d+93) then
        tmp = t_2
    else if (d4 <= 9d+93) then
        tmp = d1 * d4
    else if (d4 <= 1.6d+109) then
        tmp = t_3
    else if (d4 <= 1.45d+110) then
        tmp = d1 * d4
    else if (d4 <= 1.5d+110) then
        tmp = t_2
    else if (d4 <= 1.2d+122) then
        tmp = t_0
    else if (d4 <= 2.1d+122) then
        tmp = d1 * d2
    else if (d4 <= 6.2d+128) then
        tmp = d1 * -d1
    else if (d4 <= 5.2d+150) then
        tmp = t_1
    else if (d4 <= 5.3d+150) then
        tmp = t_2
    else if (d4 <= 3.8d+162) then
        tmp = t_0
    else if (d4 <= 3.9d+162) then
        tmp = t_2
    else if (d4 <= 1.1d+168) then
        tmp = d1 * d4
    else if (d4 <= 9.1d+170) then
        tmp = t_2
    else if (d4 <= 7.8d+177) then
        tmp = d1 * d4
    else if (d4 <= 8d+177) then
        tmp = t_2
    else if (d4 <= 1.15d+222) then
        tmp = t_1
    else if (d4 <= 1.2d+222) then
        tmp = t_2
    else if (d4 <= 4.8d+242) then
        tmp = t_0
    else if (d4 <= 1.05d+252) then
        tmp = t_1
    else if (d4 <= 1.08d+252) then
        tmp = t_2
    else if (d4 <= 7.3d+289) then
        tmp = t_0
    else if (d4 <= 7.5d+289) then
        tmp = t_2
    else
        tmp = d1 * d4
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d4 - d1);
	double t_1 = d1 * (d2 + d4);
	double t_2 = d1 * -d3;
	double t_3 = d1 * (d2 - d3);
	double tmp;
	if (d4 <= 5e+53) {
		tmp = t_3;
	} else if (d4 <= 9.6e+88) {
		tmp = t_0;
	} else if (d4 <= 1.75e+93) {
		tmp = t_2;
	} else if (d4 <= 9e+93) {
		tmp = d1 * d4;
	} else if (d4 <= 1.6e+109) {
		tmp = t_3;
	} else if (d4 <= 1.45e+110) {
		tmp = d1 * d4;
	} else if (d4 <= 1.5e+110) {
		tmp = t_2;
	} else if (d4 <= 1.2e+122) {
		tmp = t_0;
	} else if (d4 <= 2.1e+122) {
		tmp = d1 * d2;
	} else if (d4 <= 6.2e+128) {
		tmp = d1 * -d1;
	} else if (d4 <= 5.2e+150) {
		tmp = t_1;
	} else if (d4 <= 5.3e+150) {
		tmp = t_2;
	} else if (d4 <= 3.8e+162) {
		tmp = t_0;
	} else if (d4 <= 3.9e+162) {
		tmp = t_2;
	} else if (d4 <= 1.1e+168) {
		tmp = d1 * d4;
	} else if (d4 <= 9.1e+170) {
		tmp = t_2;
	} else if (d4 <= 7.8e+177) {
		tmp = d1 * d4;
	} else if (d4 <= 8e+177) {
		tmp = t_2;
	} else if (d4 <= 1.15e+222) {
		tmp = t_1;
	} else if (d4 <= 1.2e+222) {
		tmp = t_2;
	} else if (d4 <= 4.8e+242) {
		tmp = t_0;
	} else if (d4 <= 1.05e+252) {
		tmp = t_1;
	} else if (d4 <= 1.08e+252) {
		tmp = t_2;
	} else if (d4 <= 7.3e+289) {
		tmp = t_0;
	} else if (d4 <= 7.5e+289) {
		tmp = t_2;
	} else {
		tmp = d1 * d4;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * (d4 - d1)
	t_1 = d1 * (d2 + d4)
	t_2 = d1 * -d3
	t_3 = d1 * (d2 - d3)
	tmp = 0
	if d4 <= 5e+53:
		tmp = t_3
	elif d4 <= 9.6e+88:
		tmp = t_0
	elif d4 <= 1.75e+93:
		tmp = t_2
	elif d4 <= 9e+93:
		tmp = d1 * d4
	elif d4 <= 1.6e+109:
		tmp = t_3
	elif d4 <= 1.45e+110:
		tmp = d1 * d4
	elif d4 <= 1.5e+110:
		tmp = t_2
	elif d4 <= 1.2e+122:
		tmp = t_0
	elif d4 <= 2.1e+122:
		tmp = d1 * d2
	elif d4 <= 6.2e+128:
		tmp = d1 * -d1
	elif d4 <= 5.2e+150:
		tmp = t_1
	elif d4 <= 5.3e+150:
		tmp = t_2
	elif d4 <= 3.8e+162:
		tmp = t_0
	elif d4 <= 3.9e+162:
		tmp = t_2
	elif d4 <= 1.1e+168:
		tmp = d1 * d4
	elif d4 <= 9.1e+170:
		tmp = t_2
	elif d4 <= 7.8e+177:
		tmp = d1 * d4
	elif d4 <= 8e+177:
		tmp = t_2
	elif d4 <= 1.15e+222:
		tmp = t_1
	elif d4 <= 1.2e+222:
		tmp = t_2
	elif d4 <= 4.8e+242:
		tmp = t_0
	elif d4 <= 1.05e+252:
		tmp = t_1
	elif d4 <= 1.08e+252:
		tmp = t_2
	elif d4 <= 7.3e+289:
		tmp = t_0
	elif d4 <= 7.5e+289:
		tmp = t_2
	else:
		tmp = d1 * d4
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(d4 - d1))
	t_1 = Float64(d1 * Float64(d2 + d4))
	t_2 = Float64(d1 * Float64(-d3))
	t_3 = Float64(d1 * Float64(d2 - d3))
	tmp = 0.0
	if (d4 <= 5e+53)
		tmp = t_3;
	elseif (d4 <= 9.6e+88)
		tmp = t_0;
	elseif (d4 <= 1.75e+93)
		tmp = t_2;
	elseif (d4 <= 9e+93)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 1.6e+109)
		tmp = t_3;
	elseif (d4 <= 1.45e+110)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 1.5e+110)
		tmp = t_2;
	elseif (d4 <= 1.2e+122)
		tmp = t_0;
	elseif (d4 <= 2.1e+122)
		tmp = Float64(d1 * d2);
	elseif (d4 <= 6.2e+128)
		tmp = Float64(d1 * Float64(-d1));
	elseif (d4 <= 5.2e+150)
		tmp = t_1;
	elseif (d4 <= 5.3e+150)
		tmp = t_2;
	elseif (d4 <= 3.8e+162)
		tmp = t_0;
	elseif (d4 <= 3.9e+162)
		tmp = t_2;
	elseif (d4 <= 1.1e+168)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 9.1e+170)
		tmp = t_2;
	elseif (d4 <= 7.8e+177)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 8e+177)
		tmp = t_2;
	elseif (d4 <= 1.15e+222)
		tmp = t_1;
	elseif (d4 <= 1.2e+222)
		tmp = t_2;
	elseif (d4 <= 4.8e+242)
		tmp = t_0;
	elseif (d4 <= 1.05e+252)
		tmp = t_1;
	elseif (d4 <= 1.08e+252)
		tmp = t_2;
	elseif (d4 <= 7.3e+289)
		tmp = t_0;
	elseif (d4 <= 7.5e+289)
		tmp = t_2;
	else
		tmp = Float64(d1 * d4);
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * (d4 - d1);
	t_1 = d1 * (d2 + d4);
	t_2 = d1 * -d3;
	t_3 = d1 * (d2 - d3);
	tmp = 0.0;
	if (d4 <= 5e+53)
		tmp = t_3;
	elseif (d4 <= 9.6e+88)
		tmp = t_0;
	elseif (d4 <= 1.75e+93)
		tmp = t_2;
	elseif (d4 <= 9e+93)
		tmp = d1 * d4;
	elseif (d4 <= 1.6e+109)
		tmp = t_3;
	elseif (d4 <= 1.45e+110)
		tmp = d1 * d4;
	elseif (d4 <= 1.5e+110)
		tmp = t_2;
	elseif (d4 <= 1.2e+122)
		tmp = t_0;
	elseif (d4 <= 2.1e+122)
		tmp = d1 * d2;
	elseif (d4 <= 6.2e+128)
		tmp = d1 * -d1;
	elseif (d4 <= 5.2e+150)
		tmp = t_1;
	elseif (d4 <= 5.3e+150)
		tmp = t_2;
	elseif (d4 <= 3.8e+162)
		tmp = t_0;
	elseif (d4 <= 3.9e+162)
		tmp = t_2;
	elseif (d4 <= 1.1e+168)
		tmp = d1 * d4;
	elseif (d4 <= 9.1e+170)
		tmp = t_2;
	elseif (d4 <= 7.8e+177)
		tmp = d1 * d4;
	elseif (d4 <= 8e+177)
		tmp = t_2;
	elseif (d4 <= 1.15e+222)
		tmp = t_1;
	elseif (d4 <= 1.2e+222)
		tmp = t_2;
	elseif (d4 <= 4.8e+242)
		tmp = t_0;
	elseif (d4 <= 1.05e+252)
		tmp = t_1;
	elseif (d4 <= 1.08e+252)
		tmp = t_2;
	elseif (d4 <= 7.3e+289)
		tmp = t_0;
	elseif (d4 <= 7.5e+289)
		tmp = t_2;
	else
		tmp = d1 * d4;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(d4 - d1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(d1 * N[(d2 + d4), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(d1 * (-d3)), $MachinePrecision]}, Block[{t$95$3 = N[(d1 * N[(d2 - d3), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[d4, 5e+53], t$95$3, If[LessEqual[d4, 9.6e+88], t$95$0, If[LessEqual[d4, 1.75e+93], t$95$2, If[LessEqual[d4, 9e+93], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 1.6e+109], t$95$3, If[LessEqual[d4, 1.45e+110], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 1.5e+110], t$95$2, If[LessEqual[d4, 1.2e+122], t$95$0, If[LessEqual[d4, 2.1e+122], N[(d1 * d2), $MachinePrecision], If[LessEqual[d4, 6.2e+128], N[(d1 * (-d1)), $MachinePrecision], If[LessEqual[d4, 5.2e+150], t$95$1, If[LessEqual[d4, 5.3e+150], t$95$2, If[LessEqual[d4, 3.8e+162], t$95$0, If[LessEqual[d4, 3.9e+162], t$95$2, If[LessEqual[d4, 1.1e+168], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 9.1e+170], t$95$2, If[LessEqual[d4, 7.8e+177], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 8e+177], t$95$2, If[LessEqual[d4, 1.15e+222], t$95$1, If[LessEqual[d4, 1.2e+222], t$95$2, If[LessEqual[d4, 4.8e+242], t$95$0, If[LessEqual[d4, 1.05e+252], t$95$1, If[LessEqual[d4, 1.08e+252], t$95$2, If[LessEqual[d4, 7.3e+289], t$95$0, If[LessEqual[d4, 7.5e+289], t$95$2, N[(d1 * d4), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(d4 - d1\right)\\
t_1 := d1 \cdot \left(d2 + d4\right)\\
t_2 := d1 \cdot \left(-d3\right)\\
t_3 := d1 \cdot \left(d2 - d3\right)\\
\mathbf{if}\;d4 \leq 5 \cdot 10^{+53}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;d4 \leq 9.6 \cdot 10^{+88}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.75 \cdot 10^{+93}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 9 \cdot 10^{+93}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 1.6 \cdot 10^{+109}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;d4 \leq 1.45 \cdot 10^{+110}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+110}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 1.2 \cdot 10^{+122}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 2.1 \cdot 10^{+122}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d4 \leq 6.2 \cdot 10^{+128}:\\
\;\;\;\;d1 \cdot \left(-d1\right)\\

\mathbf{elif}\;d4 \leq 5.2 \cdot 10^{+150}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 5.3 \cdot 10^{+150}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 3.8 \cdot 10^{+162}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 3.9 \cdot 10^{+162}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+168}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 9.1 \cdot 10^{+170}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 7.8 \cdot 10^{+177}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 8 \cdot 10^{+177}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 1.15 \cdot 10^{+222}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 1.2 \cdot 10^{+222}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 4.8 \cdot 10^{+242}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.05 \cdot 10^{+252}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 1.08 \cdot 10^{+252}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 7.3 \cdot 10^{+289}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 7.5 \cdot 10^{+289}:\\
\;\;\;\;t\_2\\

\mathbf{else}:\\
\;\;\;\;d1 \cdot d4\\


\end{array}
\end{array}
Derivation
  1. Split input into 7 regimes
  2. if d4 < 5.0000000000000004e53 or 8.99999999999999981e93 < d4 < 1.6000000000000001e109

    1. Initial program 87.2%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+87.2%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 79.3%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 65.8%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} \]

    if 5.0000000000000004e53 < d4 < 9.5999999999999996e88 or 1.50000000000000004e110 < d4 < 1.2000000000000001e122 or 5.30000000000000013e150 < d4 < 3.80000000000000024e162 or 1.2000000000000001e222 < d4 < 4.80000000000000024e242 or 1.08e252 < d4 < 7.3000000000000002e289

    1. Initial program 73.3%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+73.3%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--80.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--93.2%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 87.5%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+87.5%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified87.5%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]
    8. Taylor expanded in d3 around 0 87.5%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - d1\right)} \]

    if 9.5999999999999996e88 < d4 < 1.74999999999999999e93 or 1.45e110 < d4 < 1.50000000000000004e110 or 5.20000000000000012e150 < d4 < 5.30000000000000013e150 or 3.80000000000000024e162 < d4 < 3.9000000000000004e162 or 1.1000000000000001e168 < d4 < 9.09999999999999982e170 or 7.7999999999999998e177 < d4 < 8.0000000000000001e177 or 1.15000000000000005e222 < d4 < 1.2000000000000001e222 or 1.0500000000000001e252 < d4 < 1.08e252 or 7.3000000000000002e289 < d4 < 7.5e289

    1. Initial program 80.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+80.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--80.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--80.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d3 around inf 100.0%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right)} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \color{blue}{-d1 \cdot d3} \]
      2. distribute-rgt-neg-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]

    if 1.74999999999999999e93 < d4 < 8.99999999999999981e93 or 1.6000000000000001e109 < d4 < 1.45e110 or 3.9000000000000004e162 < d4 < 1.1000000000000001e168 or 9.09999999999999982e170 < d4 < 7.7999999999999998e177 or 7.5e289 < d4

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 100.0%

      \[\leadsto \color{blue}{d1 \cdot d4} \]

    if 1.2000000000000001e122 < d4 < 2.10000000000000016e122

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 100.0%

      \[\leadsto \color{blue}{d1 \cdot d2} \]

    if 2.10000000000000016e122 < d4 < 6.20000000000000008e128

    1. Initial program 0.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--0.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around inf 100.0%

      \[\leadsto d1 \cdot \color{blue}{\left(-1 \cdot d1\right)} \]
    6. Step-by-step derivation
      1. neg-mul-1100.0%

        \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]
    7. Simplified100.0%

      \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]

    if 6.20000000000000008e128 < d4 < 5.20000000000000012e150 or 8.0000000000000001e177 < d4 < 1.15000000000000005e222 or 4.80000000000000024e242 < d4 < 1.0500000000000001e252

    1. Initial program 94.4%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+94.4%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--94.4%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d3 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 + d4\right)} \]
    7. Step-by-step derivation
      1. +-commutative100.0%

        \[\leadsto d1 \cdot \color{blue}{\left(d4 + d2\right)} \]
    8. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 + d2\right)} \]
  3. Recombined 7 regimes into one program.
  4. Final simplification71.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d4 \leq 5 \cdot 10^{+53}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 9.6 \cdot 10^{+88}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 1.75 \cdot 10^{+93}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 9 \cdot 10^{+93}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.6 \cdot 10^{+109}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 1.45 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 1.2 \cdot 10^{+122}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 2.1 \cdot 10^{+122}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d4 \leq 6.2 \cdot 10^{+128}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d4 \leq 5.2 \cdot 10^{+150}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 5.3 \cdot 10^{+150}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 3.8 \cdot 10^{+162}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 3.9 \cdot 10^{+162}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+168}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 9.1 \cdot 10^{+170}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 7.8 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 8 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 1.15 \cdot 10^{+222}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 1.2 \cdot 10^{+222}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 4.8 \cdot 10^{+242}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 1.05 \cdot 10^{+252}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 1.08 \cdot 10^{+252}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 7.3 \cdot 10^{+289}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 7.5 \cdot 10^{+289}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 62.4% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(d4 - d3\right)\\ t_1 := d1 \cdot \left(d2 - d3\right)\\ t_2 := d1 \cdot \left(d4 - d1\right)\\ t_3 := d1 \cdot \left(d2 + d4\right)\\ \mathbf{if}\;d4 \leq 5 \cdot 10^{-13}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 4.7 \cdot 10^{+70}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 7 \cdot 10^{+89}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 5.4 \cdot 10^{+101}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 2.9 \cdot 10^{+109}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 1.35 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 4.9 \cdot 10^{+121}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 6.8 \cdot 10^{+125}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d4 \leq 6.2 \cdot 10^{+128}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d4 \leq 4.4 \cdot 10^{+137}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;d4 \leq 1.12 \cdot 10^{+151}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+153}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 3.6 \cdot 10^{+179}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.55 \cdot 10^{+194}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;d4 \leq 2.5 \cdot 10^{+222}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.9 \cdot 10^{+242}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;d4 \leq 1.25 \cdot 10^{+248}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+253} \lor \neg \left(d4 \leq 1.5 \cdot 10^{+257}\right):\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- d4 d3)))
        (t_1 (* d1 (- d2 d3)))
        (t_2 (* d1 (- d4 d1)))
        (t_3 (* d1 (+ d2 d4))))
   (if (<= d4 5e-13)
     t_1
     (if (<= d4 4.7e+70)
       t_0
       (if (<= d4 7e+89)
         t_2
         (if (<= d4 5.4e+101)
           t_0
           (if (<= d4 2.9e+109)
             t_1
             (if (<= d4 1.35e+110)
               (* d1 d4)
               (if (<= d4 1.5e+110)
                 (* d1 (- d3))
                 (if (<= d4 4.9e+121)
                   t_2
                   (if (<= d4 6.8e+125)
                     (* d1 d2)
                     (if (<= d4 6.2e+128)
                       (* d1 (- d1))
                       (if (<= d4 4.4e+137)
                         t_3
                         (if (<= d4 1.12e+151)
                           t_0
                           (if (<= d4 1.1e+153)
                             t_2
                             (if (<= d4 3.6e+179)
                               t_0
                               (if (<= d4 1.55e+194)
                                 t_3
                                 (if (<= d4 2.5e+222)
                                   t_0
                                   (if (<= d4 1.9e+242)
                                     t_3
                                     (if (<= d4 1.25e+248)
                                       t_1
                                       (if (or (<= d4 1.5e+253)
                                               (not (<= d4 1.5e+257)))
                                         t_0
                                         t_2)))))))))))))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d4 - d3);
	double t_1 = d1 * (d2 - d3);
	double t_2 = d1 * (d4 - d1);
	double t_3 = d1 * (d2 + d4);
	double tmp;
	if (d4 <= 5e-13) {
		tmp = t_1;
	} else if (d4 <= 4.7e+70) {
		tmp = t_0;
	} else if (d4 <= 7e+89) {
		tmp = t_2;
	} else if (d4 <= 5.4e+101) {
		tmp = t_0;
	} else if (d4 <= 2.9e+109) {
		tmp = t_1;
	} else if (d4 <= 1.35e+110) {
		tmp = d1 * d4;
	} else if (d4 <= 1.5e+110) {
		tmp = d1 * -d3;
	} else if (d4 <= 4.9e+121) {
		tmp = t_2;
	} else if (d4 <= 6.8e+125) {
		tmp = d1 * d2;
	} else if (d4 <= 6.2e+128) {
		tmp = d1 * -d1;
	} else if (d4 <= 4.4e+137) {
		tmp = t_3;
	} else if (d4 <= 1.12e+151) {
		tmp = t_0;
	} else if (d4 <= 1.1e+153) {
		tmp = t_2;
	} else if (d4 <= 3.6e+179) {
		tmp = t_0;
	} else if (d4 <= 1.55e+194) {
		tmp = t_3;
	} else if (d4 <= 2.5e+222) {
		tmp = t_0;
	} else if (d4 <= 1.9e+242) {
		tmp = t_3;
	} else if (d4 <= 1.25e+248) {
		tmp = t_1;
	} else if ((d4 <= 1.5e+253) || !(d4 <= 1.5e+257)) {
		tmp = t_0;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: tmp
    t_0 = d1 * (d4 - d3)
    t_1 = d1 * (d2 - d3)
    t_2 = d1 * (d4 - d1)
    t_3 = d1 * (d2 + d4)
    if (d4 <= 5d-13) then
        tmp = t_1
    else if (d4 <= 4.7d+70) then
        tmp = t_0
    else if (d4 <= 7d+89) then
        tmp = t_2
    else if (d4 <= 5.4d+101) then
        tmp = t_0
    else if (d4 <= 2.9d+109) then
        tmp = t_1
    else if (d4 <= 1.35d+110) then
        tmp = d1 * d4
    else if (d4 <= 1.5d+110) then
        tmp = d1 * -d3
    else if (d4 <= 4.9d+121) then
        tmp = t_2
    else if (d4 <= 6.8d+125) then
        tmp = d1 * d2
    else if (d4 <= 6.2d+128) then
        tmp = d1 * -d1
    else if (d4 <= 4.4d+137) then
        tmp = t_3
    else if (d4 <= 1.12d+151) then
        tmp = t_0
    else if (d4 <= 1.1d+153) then
        tmp = t_2
    else if (d4 <= 3.6d+179) then
        tmp = t_0
    else if (d4 <= 1.55d+194) then
        tmp = t_3
    else if (d4 <= 2.5d+222) then
        tmp = t_0
    else if (d4 <= 1.9d+242) then
        tmp = t_3
    else if (d4 <= 1.25d+248) then
        tmp = t_1
    else if ((d4 <= 1.5d+253) .or. (.not. (d4 <= 1.5d+257))) then
        tmp = t_0
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d4 - d3);
	double t_1 = d1 * (d2 - d3);
	double t_2 = d1 * (d4 - d1);
	double t_3 = d1 * (d2 + d4);
	double tmp;
	if (d4 <= 5e-13) {
		tmp = t_1;
	} else if (d4 <= 4.7e+70) {
		tmp = t_0;
	} else if (d4 <= 7e+89) {
		tmp = t_2;
	} else if (d4 <= 5.4e+101) {
		tmp = t_0;
	} else if (d4 <= 2.9e+109) {
		tmp = t_1;
	} else if (d4 <= 1.35e+110) {
		tmp = d1 * d4;
	} else if (d4 <= 1.5e+110) {
		tmp = d1 * -d3;
	} else if (d4 <= 4.9e+121) {
		tmp = t_2;
	} else if (d4 <= 6.8e+125) {
		tmp = d1 * d2;
	} else if (d4 <= 6.2e+128) {
		tmp = d1 * -d1;
	} else if (d4 <= 4.4e+137) {
		tmp = t_3;
	} else if (d4 <= 1.12e+151) {
		tmp = t_0;
	} else if (d4 <= 1.1e+153) {
		tmp = t_2;
	} else if (d4 <= 3.6e+179) {
		tmp = t_0;
	} else if (d4 <= 1.55e+194) {
		tmp = t_3;
	} else if (d4 <= 2.5e+222) {
		tmp = t_0;
	} else if (d4 <= 1.9e+242) {
		tmp = t_3;
	} else if (d4 <= 1.25e+248) {
		tmp = t_1;
	} else if ((d4 <= 1.5e+253) || !(d4 <= 1.5e+257)) {
		tmp = t_0;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * (d4 - d3)
	t_1 = d1 * (d2 - d3)
	t_2 = d1 * (d4 - d1)
	t_3 = d1 * (d2 + d4)
	tmp = 0
	if d4 <= 5e-13:
		tmp = t_1
	elif d4 <= 4.7e+70:
		tmp = t_0
	elif d4 <= 7e+89:
		tmp = t_2
	elif d4 <= 5.4e+101:
		tmp = t_0
	elif d4 <= 2.9e+109:
		tmp = t_1
	elif d4 <= 1.35e+110:
		tmp = d1 * d4
	elif d4 <= 1.5e+110:
		tmp = d1 * -d3
	elif d4 <= 4.9e+121:
		tmp = t_2
	elif d4 <= 6.8e+125:
		tmp = d1 * d2
	elif d4 <= 6.2e+128:
		tmp = d1 * -d1
	elif d4 <= 4.4e+137:
		tmp = t_3
	elif d4 <= 1.12e+151:
		tmp = t_0
	elif d4 <= 1.1e+153:
		tmp = t_2
	elif d4 <= 3.6e+179:
		tmp = t_0
	elif d4 <= 1.55e+194:
		tmp = t_3
	elif d4 <= 2.5e+222:
		tmp = t_0
	elif d4 <= 1.9e+242:
		tmp = t_3
	elif d4 <= 1.25e+248:
		tmp = t_1
	elif (d4 <= 1.5e+253) or not (d4 <= 1.5e+257):
		tmp = t_0
	else:
		tmp = t_2
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(d4 - d3))
	t_1 = Float64(d1 * Float64(d2 - d3))
	t_2 = Float64(d1 * Float64(d4 - d1))
	t_3 = Float64(d1 * Float64(d2 + d4))
	tmp = 0.0
	if (d4 <= 5e-13)
		tmp = t_1;
	elseif (d4 <= 4.7e+70)
		tmp = t_0;
	elseif (d4 <= 7e+89)
		tmp = t_2;
	elseif (d4 <= 5.4e+101)
		tmp = t_0;
	elseif (d4 <= 2.9e+109)
		tmp = t_1;
	elseif (d4 <= 1.35e+110)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 1.5e+110)
		tmp = Float64(d1 * Float64(-d3));
	elseif (d4 <= 4.9e+121)
		tmp = t_2;
	elseif (d4 <= 6.8e+125)
		tmp = Float64(d1 * d2);
	elseif (d4 <= 6.2e+128)
		tmp = Float64(d1 * Float64(-d1));
	elseif (d4 <= 4.4e+137)
		tmp = t_3;
	elseif (d4 <= 1.12e+151)
		tmp = t_0;
	elseif (d4 <= 1.1e+153)
		tmp = t_2;
	elseif (d4 <= 3.6e+179)
		tmp = t_0;
	elseif (d4 <= 1.55e+194)
		tmp = t_3;
	elseif (d4 <= 2.5e+222)
		tmp = t_0;
	elseif (d4 <= 1.9e+242)
		tmp = t_3;
	elseif (d4 <= 1.25e+248)
		tmp = t_1;
	elseif ((d4 <= 1.5e+253) || !(d4 <= 1.5e+257))
		tmp = t_0;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * (d4 - d3);
	t_1 = d1 * (d2 - d3);
	t_2 = d1 * (d4 - d1);
	t_3 = d1 * (d2 + d4);
	tmp = 0.0;
	if (d4 <= 5e-13)
		tmp = t_1;
	elseif (d4 <= 4.7e+70)
		tmp = t_0;
	elseif (d4 <= 7e+89)
		tmp = t_2;
	elseif (d4 <= 5.4e+101)
		tmp = t_0;
	elseif (d4 <= 2.9e+109)
		tmp = t_1;
	elseif (d4 <= 1.35e+110)
		tmp = d1 * d4;
	elseif (d4 <= 1.5e+110)
		tmp = d1 * -d3;
	elseif (d4 <= 4.9e+121)
		tmp = t_2;
	elseif (d4 <= 6.8e+125)
		tmp = d1 * d2;
	elseif (d4 <= 6.2e+128)
		tmp = d1 * -d1;
	elseif (d4 <= 4.4e+137)
		tmp = t_3;
	elseif (d4 <= 1.12e+151)
		tmp = t_0;
	elseif (d4 <= 1.1e+153)
		tmp = t_2;
	elseif (d4 <= 3.6e+179)
		tmp = t_0;
	elseif (d4 <= 1.55e+194)
		tmp = t_3;
	elseif (d4 <= 2.5e+222)
		tmp = t_0;
	elseif (d4 <= 1.9e+242)
		tmp = t_3;
	elseif (d4 <= 1.25e+248)
		tmp = t_1;
	elseif ((d4 <= 1.5e+253) || ~((d4 <= 1.5e+257)))
		tmp = t_0;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(d4 - d3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(d1 * N[(d2 - d3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(d1 * N[(d4 - d1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(d1 * N[(d2 + d4), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[d4, 5e-13], t$95$1, If[LessEqual[d4, 4.7e+70], t$95$0, If[LessEqual[d4, 7e+89], t$95$2, If[LessEqual[d4, 5.4e+101], t$95$0, If[LessEqual[d4, 2.9e+109], t$95$1, If[LessEqual[d4, 1.35e+110], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 1.5e+110], N[(d1 * (-d3)), $MachinePrecision], If[LessEqual[d4, 4.9e+121], t$95$2, If[LessEqual[d4, 6.8e+125], N[(d1 * d2), $MachinePrecision], If[LessEqual[d4, 6.2e+128], N[(d1 * (-d1)), $MachinePrecision], If[LessEqual[d4, 4.4e+137], t$95$3, If[LessEqual[d4, 1.12e+151], t$95$0, If[LessEqual[d4, 1.1e+153], t$95$2, If[LessEqual[d4, 3.6e+179], t$95$0, If[LessEqual[d4, 1.55e+194], t$95$3, If[LessEqual[d4, 2.5e+222], t$95$0, If[LessEqual[d4, 1.9e+242], t$95$3, If[LessEqual[d4, 1.25e+248], t$95$1, If[Or[LessEqual[d4, 1.5e+253], N[Not[LessEqual[d4, 1.5e+257]], $MachinePrecision]], t$95$0, t$95$2]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(d4 - d3\right)\\
t_1 := d1 \cdot \left(d2 - d3\right)\\
t_2 := d1 \cdot \left(d4 - d1\right)\\
t_3 := d1 \cdot \left(d2 + d4\right)\\
\mathbf{if}\;d4 \leq 5 \cdot 10^{-13}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 4.7 \cdot 10^{+70}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 7 \cdot 10^{+89}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 5.4 \cdot 10^{+101}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 2.9 \cdot 10^{+109}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 1.35 \cdot 10^{+110}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+110}:\\
\;\;\;\;d1 \cdot \left(-d3\right)\\

\mathbf{elif}\;d4 \leq 4.9 \cdot 10^{+121}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 6.8 \cdot 10^{+125}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d4 \leq 6.2 \cdot 10^{+128}:\\
\;\;\;\;d1 \cdot \left(-d1\right)\\

\mathbf{elif}\;d4 \leq 4.4 \cdot 10^{+137}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;d4 \leq 1.12 \cdot 10^{+151}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+153}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 3.6 \cdot 10^{+179}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.55 \cdot 10^{+194}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;d4 \leq 2.5 \cdot 10^{+222}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.9 \cdot 10^{+242}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;d4 \leq 1.25 \cdot 10^{+248}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+253} \lor \neg \left(d4 \leq 1.5 \cdot 10^{+257}\right):\\
\;\;\;\;t\_0\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 8 regimes
  2. if d4 < 4.9999999999999999e-13 or 5.40000000000000012e101 < d4 < 2.9e109 or 1.90000000000000004e242 < d4 < 1.2499999999999999e248

    1. Initial program 87.3%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+87.3%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.4%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.1%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 79.1%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 66.8%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} \]

    if 4.9999999999999999e-13 < d4 < 4.6999999999999998e70 or 7.0000000000000001e89 < d4 < 5.40000000000000012e101 or 4.40000000000000031e137 < d4 < 1.12000000000000004e151 or 1.1e153 < d4 < 3.5999999999999998e179 or 1.55e194 < d4 < 2.50000000000000012e222 or 1.2499999999999999e248 < d4 < 1.4999999999999999e253 or 1.5e257 < d4

    1. Initial program 88.2%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.2%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.2%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--88.2%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 92.3%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d2 around 0 75.3%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - d3\right)} \]

    if 4.6999999999999998e70 < d4 < 7.0000000000000001e89 or 1.50000000000000004e110 < d4 < 4.8999999999999998e121 or 1.12000000000000004e151 < d4 < 1.1e153 or 1.4999999999999999e253 < d4 < 1.5e257

    1. Initial program 50.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+50.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--75.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--99.6%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.6%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+99.6%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]
    8. Taylor expanded in d3 around 0 99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - d1\right)} \]

    if 2.9e109 < d4 < 1.35000000000000005e110

    1. Initial program 86.7%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+86.7%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.7%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.8%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 28.5%

      \[\leadsto \color{blue}{d1 \cdot d4} \]

    if 1.35000000000000005e110 < d4 < 1.50000000000000004e110

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d3 around inf 100.0%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right)} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \color{blue}{-d1 \cdot d3} \]
      2. distribute-rgt-neg-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]

    if 4.8999999999999998e121 < d4 < 6.7999999999999998e125

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 100.0%

      \[\leadsto \color{blue}{d1 \cdot d2} \]

    if 6.7999999999999998e125 < d4 < 6.20000000000000008e128

    1. Initial program 0.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+0.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--0.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around inf 100.0%

      \[\leadsto d1 \cdot \color{blue}{\left(-1 \cdot d1\right)} \]
    6. Step-by-step derivation
      1. neg-mul-1100.0%

        \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]
    7. Simplified100.0%

      \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]

    if 6.20000000000000008e128 < d4 < 4.40000000000000031e137 or 3.5999999999999998e179 < d4 < 1.55e194 or 2.50000000000000012e222 < d4 < 1.90000000000000004e242

    1. Initial program 87.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+87.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--87.5%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d3 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 + d4\right)} \]
    7. Step-by-step derivation
      1. +-commutative100.0%

        \[\leadsto d1 \cdot \color{blue}{\left(d4 + d2\right)} \]
    8. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 + d2\right)} \]
  3. Recombined 8 regimes into one program.
  4. Final simplification70.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d4 \leq 5 \cdot 10^{-13}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 4.7 \cdot 10^{+70}:\\ \;\;\;\;d1 \cdot \left(d4 - d3\right)\\ \mathbf{elif}\;d4 \leq 7 \cdot 10^{+89}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 5.4 \cdot 10^{+101}:\\ \;\;\;\;d1 \cdot \left(d4 - d3\right)\\ \mathbf{elif}\;d4 \leq 2.9 \cdot 10^{+109}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 1.35 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+110}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 4.9 \cdot 10^{+121}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 6.8 \cdot 10^{+125}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d4 \leq 6.2 \cdot 10^{+128}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d4 \leq 4.4 \cdot 10^{+137}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 1.12 \cdot 10^{+151}:\\ \;\;\;\;d1 \cdot \left(d4 - d3\right)\\ \mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+153}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \mathbf{elif}\;d4 \leq 3.6 \cdot 10^{+179}:\\ \;\;\;\;d1 \cdot \left(d4 - d3\right)\\ \mathbf{elif}\;d4 \leq 1.55 \cdot 10^{+194}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 2.5 \cdot 10^{+222}:\\ \;\;\;\;d1 \cdot \left(d4 - d3\right)\\ \mathbf{elif}\;d4 \leq 1.9 \cdot 10^{+242}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 1.25 \cdot 10^{+248}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 1.5 \cdot 10^{+253} \lor \neg \left(d4 \leq 1.5 \cdot 10^{+257}\right):\\ \;\;\;\;d1 \cdot \left(d4 - d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot \left(d4 - d1\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 62.4% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(d2 + d4\right)\\ t_1 := d1 \cdot \left(-d3\right)\\ t_2 := d1 \cdot \left(-d1\right)\\ \mathbf{if}\;d4 \leq 1.5 \cdot 10^{+50}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 5.2 \cdot 10^{+150}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.85 \cdot 10^{+151}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 2.1 \cdot 10^{+151}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 3.8 \cdot 10^{+162}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 3.9 \cdot 10^{+162}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+168}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 9.1 \cdot 10^{+170}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 7.8 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 8 \cdot 10^{+177}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 1.15 \cdot 10^{+222}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 7 \cdot 10^{+222}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 2.55 \cdot 10^{+238}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.92 \cdot 10^{+242}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;d4 \leq 1.05 \cdot 10^{+252}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d4 \leq 1.08 \cdot 10^{+252}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d4 \leq 9.2 \cdot 10^{+256}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 9.5 \cdot 10^{+256}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d4 \leq 7.3 \cdot 10^{+289} \lor \neg \left(d4 \leq 7.5 \cdot 10^{+289}\right):\\ \;\;\;\;d1 \cdot d4\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (+ d2 d4))) (t_1 (* d1 (- d3))) (t_2 (* d1 (- d1))))
   (if (<= d4 1.5e+50)
     (* d1 (- d2 d3))
     (if (<= d4 5.2e+150)
       t_0
       (if (<= d4 1.85e+151)
         t_1
         (if (<= d4 2.1e+151)
           t_2
           (if (<= d4 3.8e+162)
             (* d1 d4)
             (if (<= d4 3.9e+162)
               t_1
               (if (<= d4 1.1e+168)
                 (* d1 d4)
                 (if (<= d4 9.1e+170)
                   t_1
                   (if (<= d4 7.8e+177)
                     (* d1 d4)
                     (if (<= d4 8e+177)
                       t_1
                       (if (<= d4 1.15e+222)
                         t_0
                         (if (<= d4 7e+222)
                           t_1
                           (if (<= d4 2.55e+238)
                             (* d1 d4)
                             (if (<= d4 1.92e+242)
                               t_2
                               (if (<= d4 1.05e+252)
                                 t_0
                                 (if (<= d4 1.08e+252)
                                   t_1
                                   (if (<= d4 9.2e+256)
                                     (* d1 d4)
                                     (if (<= d4 9.5e+256)
                                       (* d1 d2)
                                       (if (or (<= d4 7.3e+289)
                                               (not (<= d4 7.5e+289)))
                                         (* d1 d4)
                                         t_1)))))))))))))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d2 + d4);
	double t_1 = d1 * -d3;
	double t_2 = d1 * -d1;
	double tmp;
	if (d4 <= 1.5e+50) {
		tmp = d1 * (d2 - d3);
	} else if (d4 <= 5.2e+150) {
		tmp = t_0;
	} else if (d4 <= 1.85e+151) {
		tmp = t_1;
	} else if (d4 <= 2.1e+151) {
		tmp = t_2;
	} else if (d4 <= 3.8e+162) {
		tmp = d1 * d4;
	} else if (d4 <= 3.9e+162) {
		tmp = t_1;
	} else if (d4 <= 1.1e+168) {
		tmp = d1 * d4;
	} else if (d4 <= 9.1e+170) {
		tmp = t_1;
	} else if (d4 <= 7.8e+177) {
		tmp = d1 * d4;
	} else if (d4 <= 8e+177) {
		tmp = t_1;
	} else if (d4 <= 1.15e+222) {
		tmp = t_0;
	} else if (d4 <= 7e+222) {
		tmp = t_1;
	} else if (d4 <= 2.55e+238) {
		tmp = d1 * d4;
	} else if (d4 <= 1.92e+242) {
		tmp = t_2;
	} else if (d4 <= 1.05e+252) {
		tmp = t_0;
	} else if (d4 <= 1.08e+252) {
		tmp = t_1;
	} else if (d4 <= 9.2e+256) {
		tmp = d1 * d4;
	} else if (d4 <= 9.5e+256) {
		tmp = d1 * d2;
	} else if ((d4 <= 7.3e+289) || !(d4 <= 7.5e+289)) {
		tmp = d1 * d4;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = d1 * (d2 + d4)
    t_1 = d1 * -d3
    t_2 = d1 * -d1
    if (d4 <= 1.5d+50) then
        tmp = d1 * (d2 - d3)
    else if (d4 <= 5.2d+150) then
        tmp = t_0
    else if (d4 <= 1.85d+151) then
        tmp = t_1
    else if (d4 <= 2.1d+151) then
        tmp = t_2
    else if (d4 <= 3.8d+162) then
        tmp = d1 * d4
    else if (d4 <= 3.9d+162) then
        tmp = t_1
    else if (d4 <= 1.1d+168) then
        tmp = d1 * d4
    else if (d4 <= 9.1d+170) then
        tmp = t_1
    else if (d4 <= 7.8d+177) then
        tmp = d1 * d4
    else if (d4 <= 8d+177) then
        tmp = t_1
    else if (d4 <= 1.15d+222) then
        tmp = t_0
    else if (d4 <= 7d+222) then
        tmp = t_1
    else if (d4 <= 2.55d+238) then
        tmp = d1 * d4
    else if (d4 <= 1.92d+242) then
        tmp = t_2
    else if (d4 <= 1.05d+252) then
        tmp = t_0
    else if (d4 <= 1.08d+252) then
        tmp = t_1
    else if (d4 <= 9.2d+256) then
        tmp = d1 * d4
    else if (d4 <= 9.5d+256) then
        tmp = d1 * d2
    else if ((d4 <= 7.3d+289) .or. (.not. (d4 <= 7.5d+289))) then
        tmp = d1 * d4
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d2 + d4);
	double t_1 = d1 * -d3;
	double t_2 = d1 * -d1;
	double tmp;
	if (d4 <= 1.5e+50) {
		tmp = d1 * (d2 - d3);
	} else if (d4 <= 5.2e+150) {
		tmp = t_0;
	} else if (d4 <= 1.85e+151) {
		tmp = t_1;
	} else if (d4 <= 2.1e+151) {
		tmp = t_2;
	} else if (d4 <= 3.8e+162) {
		tmp = d1 * d4;
	} else if (d4 <= 3.9e+162) {
		tmp = t_1;
	} else if (d4 <= 1.1e+168) {
		tmp = d1 * d4;
	} else if (d4 <= 9.1e+170) {
		tmp = t_1;
	} else if (d4 <= 7.8e+177) {
		tmp = d1 * d4;
	} else if (d4 <= 8e+177) {
		tmp = t_1;
	} else if (d4 <= 1.15e+222) {
		tmp = t_0;
	} else if (d4 <= 7e+222) {
		tmp = t_1;
	} else if (d4 <= 2.55e+238) {
		tmp = d1 * d4;
	} else if (d4 <= 1.92e+242) {
		tmp = t_2;
	} else if (d4 <= 1.05e+252) {
		tmp = t_0;
	} else if (d4 <= 1.08e+252) {
		tmp = t_1;
	} else if (d4 <= 9.2e+256) {
		tmp = d1 * d4;
	} else if (d4 <= 9.5e+256) {
		tmp = d1 * d2;
	} else if ((d4 <= 7.3e+289) || !(d4 <= 7.5e+289)) {
		tmp = d1 * d4;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * (d2 + d4)
	t_1 = d1 * -d3
	t_2 = d1 * -d1
	tmp = 0
	if d4 <= 1.5e+50:
		tmp = d1 * (d2 - d3)
	elif d4 <= 5.2e+150:
		tmp = t_0
	elif d4 <= 1.85e+151:
		tmp = t_1
	elif d4 <= 2.1e+151:
		tmp = t_2
	elif d4 <= 3.8e+162:
		tmp = d1 * d4
	elif d4 <= 3.9e+162:
		tmp = t_1
	elif d4 <= 1.1e+168:
		tmp = d1 * d4
	elif d4 <= 9.1e+170:
		tmp = t_1
	elif d4 <= 7.8e+177:
		tmp = d1 * d4
	elif d4 <= 8e+177:
		tmp = t_1
	elif d4 <= 1.15e+222:
		tmp = t_0
	elif d4 <= 7e+222:
		tmp = t_1
	elif d4 <= 2.55e+238:
		tmp = d1 * d4
	elif d4 <= 1.92e+242:
		tmp = t_2
	elif d4 <= 1.05e+252:
		tmp = t_0
	elif d4 <= 1.08e+252:
		tmp = t_1
	elif d4 <= 9.2e+256:
		tmp = d1 * d4
	elif d4 <= 9.5e+256:
		tmp = d1 * d2
	elif (d4 <= 7.3e+289) or not (d4 <= 7.5e+289):
		tmp = d1 * d4
	else:
		tmp = t_1
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(d2 + d4))
	t_1 = Float64(d1 * Float64(-d3))
	t_2 = Float64(d1 * Float64(-d1))
	tmp = 0.0
	if (d4 <= 1.5e+50)
		tmp = Float64(d1 * Float64(d2 - d3));
	elseif (d4 <= 5.2e+150)
		tmp = t_0;
	elseif (d4 <= 1.85e+151)
		tmp = t_1;
	elseif (d4 <= 2.1e+151)
		tmp = t_2;
	elseif (d4 <= 3.8e+162)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 3.9e+162)
		tmp = t_1;
	elseif (d4 <= 1.1e+168)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 9.1e+170)
		tmp = t_1;
	elseif (d4 <= 7.8e+177)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 8e+177)
		tmp = t_1;
	elseif (d4 <= 1.15e+222)
		tmp = t_0;
	elseif (d4 <= 7e+222)
		tmp = t_1;
	elseif (d4 <= 2.55e+238)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 1.92e+242)
		tmp = t_2;
	elseif (d4 <= 1.05e+252)
		tmp = t_0;
	elseif (d4 <= 1.08e+252)
		tmp = t_1;
	elseif (d4 <= 9.2e+256)
		tmp = Float64(d1 * d4);
	elseif (d4 <= 9.5e+256)
		tmp = Float64(d1 * d2);
	elseif ((d4 <= 7.3e+289) || !(d4 <= 7.5e+289))
		tmp = Float64(d1 * d4);
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * (d2 + d4);
	t_1 = d1 * -d3;
	t_2 = d1 * -d1;
	tmp = 0.0;
	if (d4 <= 1.5e+50)
		tmp = d1 * (d2 - d3);
	elseif (d4 <= 5.2e+150)
		tmp = t_0;
	elseif (d4 <= 1.85e+151)
		tmp = t_1;
	elseif (d4 <= 2.1e+151)
		tmp = t_2;
	elseif (d4 <= 3.8e+162)
		tmp = d1 * d4;
	elseif (d4 <= 3.9e+162)
		tmp = t_1;
	elseif (d4 <= 1.1e+168)
		tmp = d1 * d4;
	elseif (d4 <= 9.1e+170)
		tmp = t_1;
	elseif (d4 <= 7.8e+177)
		tmp = d1 * d4;
	elseif (d4 <= 8e+177)
		tmp = t_1;
	elseif (d4 <= 1.15e+222)
		tmp = t_0;
	elseif (d4 <= 7e+222)
		tmp = t_1;
	elseif (d4 <= 2.55e+238)
		tmp = d1 * d4;
	elseif (d4 <= 1.92e+242)
		tmp = t_2;
	elseif (d4 <= 1.05e+252)
		tmp = t_0;
	elseif (d4 <= 1.08e+252)
		tmp = t_1;
	elseif (d4 <= 9.2e+256)
		tmp = d1 * d4;
	elseif (d4 <= 9.5e+256)
		tmp = d1 * d2;
	elseif ((d4 <= 7.3e+289) || ~((d4 <= 7.5e+289)))
		tmp = d1 * d4;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(d2 + d4), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(d1 * (-d3)), $MachinePrecision]}, Block[{t$95$2 = N[(d1 * (-d1)), $MachinePrecision]}, If[LessEqual[d4, 1.5e+50], N[(d1 * N[(d2 - d3), $MachinePrecision]), $MachinePrecision], If[LessEqual[d4, 5.2e+150], t$95$0, If[LessEqual[d4, 1.85e+151], t$95$1, If[LessEqual[d4, 2.1e+151], t$95$2, If[LessEqual[d4, 3.8e+162], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 3.9e+162], t$95$1, If[LessEqual[d4, 1.1e+168], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 9.1e+170], t$95$1, If[LessEqual[d4, 7.8e+177], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 8e+177], t$95$1, If[LessEqual[d4, 1.15e+222], t$95$0, If[LessEqual[d4, 7e+222], t$95$1, If[LessEqual[d4, 2.55e+238], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 1.92e+242], t$95$2, If[LessEqual[d4, 1.05e+252], t$95$0, If[LessEqual[d4, 1.08e+252], t$95$1, If[LessEqual[d4, 9.2e+256], N[(d1 * d4), $MachinePrecision], If[LessEqual[d4, 9.5e+256], N[(d1 * d2), $MachinePrecision], If[Or[LessEqual[d4, 7.3e+289], N[Not[LessEqual[d4, 7.5e+289]], $MachinePrecision]], N[(d1 * d4), $MachinePrecision], t$95$1]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(d2 + d4\right)\\
t_1 := d1 \cdot \left(-d3\right)\\
t_2 := d1 \cdot \left(-d1\right)\\
\mathbf{if}\;d4 \leq 1.5 \cdot 10^{+50}:\\
\;\;\;\;d1 \cdot \left(d2 - d3\right)\\

\mathbf{elif}\;d4 \leq 5.2 \cdot 10^{+150}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.85 \cdot 10^{+151}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 2.1 \cdot 10^{+151}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 3.8 \cdot 10^{+162}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 3.9 \cdot 10^{+162}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+168}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 9.1 \cdot 10^{+170}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 7.8 \cdot 10^{+177}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 8 \cdot 10^{+177}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 1.15 \cdot 10^{+222}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 7 \cdot 10^{+222}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 2.55 \cdot 10^{+238}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 1.92 \cdot 10^{+242}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;d4 \leq 1.05 \cdot 10^{+252}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d4 \leq 1.08 \cdot 10^{+252}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d4 \leq 9.2 \cdot 10^{+256}:\\
\;\;\;\;d1 \cdot d4\\

\mathbf{elif}\;d4 \leq 9.5 \cdot 10^{+256}:\\
\;\;\;\;d1 \cdot d2\\

\mathbf{elif}\;d4 \leq 7.3 \cdot 10^{+289} \lor \neg \left(d4 \leq 7.5 \cdot 10^{+289}\right):\\
\;\;\;\;d1 \cdot d4\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 6 regimes
  2. if d4 < 1.4999999999999999e50

    1. Initial program 88.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.9%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.8%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 79.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 65.3%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} \]

    if 1.4999999999999999e50 < d4 < 5.20000000000000012e150 or 8.0000000000000001e177 < d4 < 1.15000000000000005e222 or 1.9199999999999999e242 < d4 < 1.0500000000000001e252

    1. Initial program 78.6%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+78.6%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--82.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.9%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 96.4%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d3 around 0 89.8%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 + d4\right)} \]
    7. Step-by-step derivation
      1. +-commutative89.8%

        \[\leadsto d1 \cdot \color{blue}{\left(d4 + d2\right)} \]
    8. Simplified89.8%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 + d2\right)} \]

    if 5.20000000000000012e150 < d4 < 1.8499999999999999e151 or 3.80000000000000024e162 < d4 < 3.9000000000000004e162 or 1.1000000000000001e168 < d4 < 9.09999999999999982e170 or 7.7999999999999998e177 < d4 < 8.0000000000000001e177 or 1.15000000000000005e222 < d4 < 6.9999999999999997e222 or 1.0500000000000001e252 < d4 < 1.08e252 or 7.3000000000000002e289 < d4 < 7.5e289

    1. Initial program 80.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+80.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--80.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--80.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d3 around inf 80.4%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right)} \]
    6. Step-by-step derivation
      1. mul-1-neg80.4%

        \[\leadsto \color{blue}{-d1 \cdot d3} \]
      2. distribute-rgt-neg-out80.4%

        \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
    7. Simplified80.4%

      \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]

    if 1.8499999999999999e151 < d4 < 2.1000000000000001e151 or 2.5500000000000001e238 < d4 < 1.9199999999999999e242

    1. Initial program 50.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+50.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--50.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--99.2%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.2%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.2%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around inf 62.6%

      \[\leadsto d1 \cdot \color{blue}{\left(-1 \cdot d1\right)} \]
    6. Step-by-step derivation
      1. neg-mul-162.6%

        \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]
    7. Simplified62.6%

      \[\leadsto d1 \cdot \color{blue}{\left(-d1\right)} \]

    if 2.1000000000000001e151 < d4 < 3.80000000000000024e162 or 3.9000000000000004e162 < d4 < 1.1000000000000001e168 or 9.09999999999999982e170 < d4 < 7.7999999999999998e177 or 6.9999999999999997e222 < d4 < 2.5500000000000001e238 or 1.08e252 < d4 < 9.1999999999999995e256 or 9.49999999999999995e256 < d4 < 7.3000000000000002e289 or 7.5e289 < d4

    1. Initial program 92.3%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+92.3%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--92.3%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.3%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d4 around inf 100.0%

      \[\leadsto \color{blue}{d1 \cdot d4} \]

    if 9.1999999999999995e256 < d4 < 9.49999999999999995e256

    1. Initial program 86.7%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+86.7%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.7%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--91.8%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around inf 31.6%

      \[\leadsto \color{blue}{d1 \cdot d2} \]
  3. Recombined 6 regimes into one program.
  4. Final simplification70.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d4 \leq 1.5 \cdot 10^{+50}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d4 \leq 5.2 \cdot 10^{+150}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 1.85 \cdot 10^{+151}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 2.1 \cdot 10^{+151}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d4 \leq 3.8 \cdot 10^{+162}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 3.9 \cdot 10^{+162}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 1.1 \cdot 10^{+168}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 9.1 \cdot 10^{+170}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 7.8 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 8 \cdot 10^{+177}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 1.15 \cdot 10^{+222}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 7 \cdot 10^{+222}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 2.55 \cdot 10^{+238}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 1.92 \cdot 10^{+242}:\\ \;\;\;\;d1 \cdot \left(-d1\right)\\ \mathbf{elif}\;d4 \leq 1.05 \cdot 10^{+252}:\\ \;\;\;\;d1 \cdot \left(d2 + d4\right)\\ \mathbf{elif}\;d4 \leq 1.08 \cdot 10^{+252}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d4 \leq 9.2 \cdot 10^{+256}:\\ \;\;\;\;d1 \cdot d4\\ \mathbf{elif}\;d4 \leq 9.5 \cdot 10^{+256}:\\ \;\;\;\;d1 \cdot d2\\ \mathbf{elif}\;d4 \leq 7.3 \cdot 10^{+289} \lor \neg \left(d4 \leq 7.5 \cdot 10^{+289}\right):\\ \;\;\;\;d1 \cdot d4\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 83.3% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ t_1 := d1 \cdot d4 - d1 \cdot d3\\ \mathbf{if}\;d2 \leq -1.95 \cdot 10^{+62}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d2 \leq -6.6 \cdot 10^{-210}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 9 \cdot 10^{-198}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 6.8 \cdot 10^{-187}:\\ \;\;\;\;d1 \cdot d4 - d1 \cdot d1\\ \mathbf{elif}\;d2 \leq 5.2 \cdot 10^{-83} \lor \neg \left(d2 \leq 9.5 \cdot 10^{-57}\right):\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- (- d4 d1) d3))) (t_1 (- (* d1 d4) (* d1 d3))))
   (if (<= d2 -1.95e+62)
     (* d1 (- (+ d2 d4) d3))
     (if (<= d2 -5.2e-52)
       t_0
       (if (<= d2 -1.6e-52)
         (* d1 (- d2 d3))
         (if (<= d2 -6.6e-210)
           t_0
           (if (<= d2 -2.8e-241)
             t_1
             (if (<= d2 9e-198)
               t_0
               (if (<= d2 6.8e-187)
                 (- (* d1 d4) (* d1 d1))
                 (if (or (<= d2 5.2e-83) (not (<= d2 9.5e-57)))
                   t_0
                   t_1))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * ((d4 - d1) - d3);
	double t_1 = (d1 * d4) - (d1 * d3);
	double tmp;
	if (d2 <= -1.95e+62) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if (d2 <= -5.2e-52) {
		tmp = t_0;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * (d2 - d3);
	} else if (d2 <= -6.6e-210) {
		tmp = t_0;
	} else if (d2 <= -2.8e-241) {
		tmp = t_1;
	} else if (d2 <= 9e-198) {
		tmp = t_0;
	} else if (d2 <= 6.8e-187) {
		tmp = (d1 * d4) - (d1 * d1);
	} else if ((d2 <= 5.2e-83) || !(d2 <= 9.5e-57)) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = d1 * ((d4 - d1) - d3)
    t_1 = (d1 * d4) - (d1 * d3)
    if (d2 <= (-1.95d+62)) then
        tmp = d1 * ((d2 + d4) - d3)
    else if (d2 <= (-5.2d-52)) then
        tmp = t_0
    else if (d2 <= (-1.6d-52)) then
        tmp = d1 * (d2 - d3)
    else if (d2 <= (-6.6d-210)) then
        tmp = t_0
    else if (d2 <= (-2.8d-241)) then
        tmp = t_1
    else if (d2 <= 9d-198) then
        tmp = t_0
    else if (d2 <= 6.8d-187) then
        tmp = (d1 * d4) - (d1 * d1)
    else if ((d2 <= 5.2d-83) .or. (.not. (d2 <= 9.5d-57))) then
        tmp = t_0
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * ((d4 - d1) - d3);
	double t_1 = (d1 * d4) - (d1 * d3);
	double tmp;
	if (d2 <= -1.95e+62) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if (d2 <= -5.2e-52) {
		tmp = t_0;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * (d2 - d3);
	} else if (d2 <= -6.6e-210) {
		tmp = t_0;
	} else if (d2 <= -2.8e-241) {
		tmp = t_1;
	} else if (d2 <= 9e-198) {
		tmp = t_0;
	} else if (d2 <= 6.8e-187) {
		tmp = (d1 * d4) - (d1 * d1);
	} else if ((d2 <= 5.2e-83) || !(d2 <= 9.5e-57)) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * ((d4 - d1) - d3)
	t_1 = (d1 * d4) - (d1 * d3)
	tmp = 0
	if d2 <= -1.95e+62:
		tmp = d1 * ((d2 + d4) - d3)
	elif d2 <= -5.2e-52:
		tmp = t_0
	elif d2 <= -1.6e-52:
		tmp = d1 * (d2 - d3)
	elif d2 <= -6.6e-210:
		tmp = t_0
	elif d2 <= -2.8e-241:
		tmp = t_1
	elif d2 <= 9e-198:
		tmp = t_0
	elif d2 <= 6.8e-187:
		tmp = (d1 * d4) - (d1 * d1)
	elif (d2 <= 5.2e-83) or not (d2 <= 9.5e-57):
		tmp = t_0
	else:
		tmp = t_1
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(Float64(d4 - d1) - d3))
	t_1 = Float64(Float64(d1 * d4) - Float64(d1 * d3))
	tmp = 0.0
	if (d2 <= -1.95e+62)
		tmp = Float64(d1 * Float64(Float64(d2 + d4) - d3));
	elseif (d2 <= -5.2e-52)
		tmp = t_0;
	elseif (d2 <= -1.6e-52)
		tmp = Float64(d1 * Float64(d2 - d3));
	elseif (d2 <= -6.6e-210)
		tmp = t_0;
	elseif (d2 <= -2.8e-241)
		tmp = t_1;
	elseif (d2 <= 9e-198)
		tmp = t_0;
	elseif (d2 <= 6.8e-187)
		tmp = Float64(Float64(d1 * d4) - Float64(d1 * d1));
	elseif ((d2 <= 5.2e-83) || !(d2 <= 9.5e-57))
		tmp = t_0;
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * ((d4 - d1) - d3);
	t_1 = (d1 * d4) - (d1 * d3);
	tmp = 0.0;
	if (d2 <= -1.95e+62)
		tmp = d1 * ((d2 + d4) - d3);
	elseif (d2 <= -5.2e-52)
		tmp = t_0;
	elseif (d2 <= -1.6e-52)
		tmp = d1 * (d2 - d3);
	elseif (d2 <= -6.6e-210)
		tmp = t_0;
	elseif (d2 <= -2.8e-241)
		tmp = t_1;
	elseif (d2 <= 9e-198)
		tmp = t_0;
	elseif (d2 <= 6.8e-187)
		tmp = (d1 * d4) - (d1 * d1);
	elseif ((d2 <= 5.2e-83) || ~((d2 <= 9.5e-57)))
		tmp = t_0;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(N[(d4 - d1), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(d1 * d4), $MachinePrecision] - N[(d1 * d3), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[d2, -1.95e+62], N[(d1 * N[(N[(d2 + d4), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision], If[LessEqual[d2, -5.2e-52], t$95$0, If[LessEqual[d2, -1.6e-52], N[(d1 * N[(d2 - d3), $MachinePrecision]), $MachinePrecision], If[LessEqual[d2, -6.6e-210], t$95$0, If[LessEqual[d2, -2.8e-241], t$95$1, If[LessEqual[d2, 9e-198], t$95$0, If[LessEqual[d2, 6.8e-187], N[(N[(d1 * d4), $MachinePrecision] - N[(d1 * d1), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[d2, 5.2e-83], N[Not[LessEqual[d2, 9.5e-57]], $MachinePrecision]], t$95$0, t$95$1]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\
t_1 := d1 \cdot d4 - d1 \cdot d3\\
\mathbf{if}\;d2 \leq -1.95 \cdot 10^{+62}:\\
\;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\

\mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\
\;\;\;\;d1 \cdot \left(d2 - d3\right)\\

\mathbf{elif}\;d2 \leq -6.6 \cdot 10^{-210}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 9 \cdot 10^{-198}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 6.8 \cdot 10^{-187}:\\
\;\;\;\;d1 \cdot d4 - d1 \cdot d1\\

\mathbf{elif}\;d2 \leq 5.2 \cdot 10^{-83} \lor \neg \left(d2 \leq 9.5 \cdot 10^{-57}\right):\\
\;\;\;\;t\_0\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if d2 < -1.95e62

    1. Initial program 79.6%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+79.6%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--85.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--88.8%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 98.1%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]

    if -1.95e62 < d2 < -5.1999999999999997e-52 or -1.60000000000000005e-52 < d2 < -6.6e-210 or -2.7999999999999999e-241 < d2 < 8.9999999999999996e-198 or 6.8000000000000003e-187 < d2 < 5.20000000000000018e-83 or 9.5000000000000005e-57 < d2

    1. Initial program 88.3%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.3%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.4%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 85.1%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+85.1%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified85.1%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]

    if -5.1999999999999997e-52 < d2 < -1.60000000000000005e-52

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} \]

    if -6.6e-210 < d2 < -2.7999999999999999e-241 or 5.20000000000000018e-83 < d2 < 9.5000000000000005e-57

    1. Initial program 87.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+87.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--87.5%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.8%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 74.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 75.1%

      \[\leadsto \color{blue}{d1 \cdot d4 + d1 \cdot \left(d2 - d3\right)} \]
    7. Taylor expanded in d2 around 0 75.1%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right) + d1 \cdot d4} \]
    8. Step-by-step derivation
      1. +-commutative75.1%

        \[\leadsto \color{blue}{d1 \cdot d4 + -1 \cdot \left(d1 \cdot d3\right)} \]
      2. mul-1-neg75.1%

        \[\leadsto d1 \cdot d4 + \color{blue}{\left(-d1 \cdot d3\right)} \]
      3. unsub-neg75.1%

        \[\leadsto \color{blue}{d1 \cdot d4 - d1 \cdot d3} \]
    9. Simplified75.1%

      \[\leadsto \color{blue}{d1 \cdot d4 - d1 \cdot d3} \]

    if 8.9999999999999996e-198 < d2 < 6.8000000000000003e-187

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--99.6%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.6%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+99.6%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]
    8. Taylor expanded in d3 around 0 99.6%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
    9. Step-by-step derivation
      1. sub-neg99.6%

        \[\leadsto d1 \cdot \color{blue}{\left(d4 + \left(-d1\right)\right)} \]
      2. distribute-rgt-in100.0%

        \[\leadsto \color{blue}{d4 \cdot d1 + \left(-d1\right) \cdot d1} \]
      3. *-commutative100.0%

        \[\leadsto \color{blue}{d1 \cdot d4} + \left(-d1\right) \cdot d1 \]
    10. Applied egg-rr100.0%

      \[\leadsto \color{blue}{d1 \cdot d4 + \left(-d1\right) \cdot d1} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification87.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d2 \leq -1.95 \cdot 10^{+62}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d2 \leq -6.6 \cdot 10^{-210}:\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -2.8 \cdot 10^{-241}:\\ \;\;\;\;d1 \cdot d4 - d1 \cdot d3\\ \mathbf{elif}\;d2 \leq 9 \cdot 10^{-198}:\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{elif}\;d2 \leq 6.8 \cdot 10^{-187}:\\ \;\;\;\;d1 \cdot d4 - d1 \cdot d1\\ \mathbf{elif}\;d2 \leq 5.2 \cdot 10^{-83} \lor \neg \left(d2 \leq 9.5 \cdot 10^{-57}\right):\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4 - d1 \cdot d3\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 67.6% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(d4 - d1\right)\\ t_1 := d1 \cdot \left(d4 - d3\right)\\ \mathbf{if}\;d2 \leq 1.16 \cdot 10^{-207}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq 4.55 \cdot 10^{-166}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 1.15 \cdot 10^{-95}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 2.5 \cdot 10^{-87}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-56}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;d2 \leq 2.25 \cdot 10^{+18}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq 4.4 \cdot 10^{+18}:\\ \;\;\;\;d1 \cdot \left(-d3\right)\\ \mathbf{elif}\;d2 \leq 6.6 \cdot 10^{+35}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- d4 d1))) (t_1 (* d1 (- d4 d3))))
   (if (<= d2 1.16e-207)
     (* d1 (- (+ d2 d4) d3))
     (if (<= d2 4.55e-166)
       t_0
       (if (<= d2 1.15e-95)
         t_1
         (if (<= d2 2.5e-87)
           t_0
           (if (<= d2 1.6e-56)
             t_1
             (if (<= d2 2.25e+18)
               t_0
               (if (<= d2 4.4e+18)
                 (* d1 (- d3))
                 (if (<= d2 6.6e+35) t_0 t_1))))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d4 - d1);
	double t_1 = d1 * (d4 - d3);
	double tmp;
	if (d2 <= 1.16e-207) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if (d2 <= 4.55e-166) {
		tmp = t_0;
	} else if (d2 <= 1.15e-95) {
		tmp = t_1;
	} else if (d2 <= 2.5e-87) {
		tmp = t_0;
	} else if (d2 <= 1.6e-56) {
		tmp = t_1;
	} else if (d2 <= 2.25e+18) {
		tmp = t_0;
	} else if (d2 <= 4.4e+18) {
		tmp = d1 * -d3;
	} else if (d2 <= 6.6e+35) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = d1 * (d4 - d1)
    t_1 = d1 * (d4 - d3)
    if (d2 <= 1.16d-207) then
        tmp = d1 * ((d2 + d4) - d3)
    else if (d2 <= 4.55d-166) then
        tmp = t_0
    else if (d2 <= 1.15d-95) then
        tmp = t_1
    else if (d2 <= 2.5d-87) then
        tmp = t_0
    else if (d2 <= 1.6d-56) then
        tmp = t_1
    else if (d2 <= 2.25d+18) then
        tmp = t_0
    else if (d2 <= 4.4d+18) then
        tmp = d1 * -d3
    else if (d2 <= 6.6d+35) then
        tmp = t_0
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * (d4 - d1);
	double t_1 = d1 * (d4 - d3);
	double tmp;
	if (d2 <= 1.16e-207) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if (d2 <= 4.55e-166) {
		tmp = t_0;
	} else if (d2 <= 1.15e-95) {
		tmp = t_1;
	} else if (d2 <= 2.5e-87) {
		tmp = t_0;
	} else if (d2 <= 1.6e-56) {
		tmp = t_1;
	} else if (d2 <= 2.25e+18) {
		tmp = t_0;
	} else if (d2 <= 4.4e+18) {
		tmp = d1 * -d3;
	} else if (d2 <= 6.6e+35) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * (d4 - d1)
	t_1 = d1 * (d4 - d3)
	tmp = 0
	if d2 <= 1.16e-207:
		tmp = d1 * ((d2 + d4) - d3)
	elif d2 <= 4.55e-166:
		tmp = t_0
	elif d2 <= 1.15e-95:
		tmp = t_1
	elif d2 <= 2.5e-87:
		tmp = t_0
	elif d2 <= 1.6e-56:
		tmp = t_1
	elif d2 <= 2.25e+18:
		tmp = t_0
	elif d2 <= 4.4e+18:
		tmp = d1 * -d3
	elif d2 <= 6.6e+35:
		tmp = t_0
	else:
		tmp = t_1
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(d4 - d1))
	t_1 = Float64(d1 * Float64(d4 - d3))
	tmp = 0.0
	if (d2 <= 1.16e-207)
		tmp = Float64(d1 * Float64(Float64(d2 + d4) - d3));
	elseif (d2 <= 4.55e-166)
		tmp = t_0;
	elseif (d2 <= 1.15e-95)
		tmp = t_1;
	elseif (d2 <= 2.5e-87)
		tmp = t_0;
	elseif (d2 <= 1.6e-56)
		tmp = t_1;
	elseif (d2 <= 2.25e+18)
		tmp = t_0;
	elseif (d2 <= 4.4e+18)
		tmp = Float64(d1 * Float64(-d3));
	elseif (d2 <= 6.6e+35)
		tmp = t_0;
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * (d4 - d1);
	t_1 = d1 * (d4 - d3);
	tmp = 0.0;
	if (d2 <= 1.16e-207)
		tmp = d1 * ((d2 + d4) - d3);
	elseif (d2 <= 4.55e-166)
		tmp = t_0;
	elseif (d2 <= 1.15e-95)
		tmp = t_1;
	elseif (d2 <= 2.5e-87)
		tmp = t_0;
	elseif (d2 <= 1.6e-56)
		tmp = t_1;
	elseif (d2 <= 2.25e+18)
		tmp = t_0;
	elseif (d2 <= 4.4e+18)
		tmp = d1 * -d3;
	elseif (d2 <= 6.6e+35)
		tmp = t_0;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(d4 - d1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(d1 * N[(d4 - d3), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[d2, 1.16e-207], N[(d1 * N[(N[(d2 + d4), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision], If[LessEqual[d2, 4.55e-166], t$95$0, If[LessEqual[d2, 1.15e-95], t$95$1, If[LessEqual[d2, 2.5e-87], t$95$0, If[LessEqual[d2, 1.6e-56], t$95$1, If[LessEqual[d2, 2.25e+18], t$95$0, If[LessEqual[d2, 4.4e+18], N[(d1 * (-d3)), $MachinePrecision], If[LessEqual[d2, 6.6e+35], t$95$0, t$95$1]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(d4 - d1\right)\\
t_1 := d1 \cdot \left(d4 - d3\right)\\
\mathbf{if}\;d2 \leq 1.16 \cdot 10^{-207}:\\
\;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\

\mathbf{elif}\;d2 \leq 4.55 \cdot 10^{-166}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 1.15 \cdot 10^{-95}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 2.5 \cdot 10^{-87}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 1.6 \cdot 10^{-56}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;d2 \leq 2.25 \cdot 10^{+18}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq 4.4 \cdot 10^{+18}:\\
\;\;\;\;d1 \cdot \left(-d3\right)\\

\mathbf{elif}\;d2 \leq 6.6 \cdot 10^{+35}:\\
\;\;\;\;t\_0\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if d2 < 1.16e-207

    1. Initial program 86.2%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+86.2%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--88.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.7%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 82.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]

    if 1.16e-207 < d2 < 4.54999999999999989e-166 or 1.15e-95 < d2 < 2.50000000000000021e-87 or 1.59999999999999993e-56 < d2 < 2.25e18 or 4.4e18 < d2 < 6.6000000000000003e35

    1. Initial program 89.7%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+89.7%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.7%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--93.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 96.6%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+96.6%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified96.6%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]
    8. Taylor expanded in d3 around 0 63.4%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - d1\right)} \]

    if 4.54999999999999989e-166 < d2 < 1.15e-95 or 2.50000000000000021e-87 < d2 < 1.59999999999999993e-56 or 6.6000000000000003e35 < d2

    1. Initial program 86.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+86.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.2%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--89.2%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 87.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d2 around 0 48.7%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - d3\right)} \]

    if 2.25e18 < d2 < 4.4e18

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d3 around inf 100.0%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right)} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \color{blue}{-d1 \cdot d3} \]
      2. distribute-rgt-neg-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(-d3\right)} \]
  3. Recombined 4 regimes into one program.
  4. Add Preprocessing

Alternative 11: 83.6% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{if}\;d2 \leq -9.2 \cdot 10^{+62}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d2 \leq -6.6 \cdot 10^{-210} \lor \neg \left(d2 \leq -2.8 \cdot 10^{-241} \lor \neg \left(d2 \leq 5.2 \cdot 10^{-83}\right) \land d2 \leq 9.5 \cdot 10^{-57}\right):\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4 - d1 \cdot d3\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (let* ((t_0 (* d1 (- (- d4 d1) d3))))
   (if (<= d2 -9.2e+62)
     (* d1 (- (+ d2 d4) d3))
     (if (<= d2 -5.2e-52)
       t_0
       (if (<= d2 -1.6e-52)
         (* d1 (- d2 d3))
         (if (or (<= d2 -6.6e-210)
                 (not
                  (or (<= d2 -2.8e-241)
                      (and (not (<= d2 5.2e-83)) (<= d2 9.5e-57)))))
           t_0
           (- (* d1 d4) (* d1 d3))))))))
double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * ((d4 - d1) - d3);
	double tmp;
	if (d2 <= -9.2e+62) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if (d2 <= -5.2e-52) {
		tmp = t_0;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * (d2 - d3);
	} else if ((d2 <= -6.6e-210) || !((d2 <= -2.8e-241) || (!(d2 <= 5.2e-83) && (d2 <= 9.5e-57)))) {
		tmp = t_0;
	} else {
		tmp = (d1 * d4) - (d1 * d3);
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: t_0
    real(8) :: tmp
    t_0 = d1 * ((d4 - d1) - d3)
    if (d2 <= (-9.2d+62)) then
        tmp = d1 * ((d2 + d4) - d3)
    else if (d2 <= (-5.2d-52)) then
        tmp = t_0
    else if (d2 <= (-1.6d-52)) then
        tmp = d1 * (d2 - d3)
    else if ((d2 <= (-6.6d-210)) .or. (.not. (d2 <= (-2.8d-241)) .or. (.not. (d2 <= 5.2d-83)) .and. (d2 <= 9.5d-57))) then
        tmp = t_0
    else
        tmp = (d1 * d4) - (d1 * d3)
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double t_0 = d1 * ((d4 - d1) - d3);
	double tmp;
	if (d2 <= -9.2e+62) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if (d2 <= -5.2e-52) {
		tmp = t_0;
	} else if (d2 <= -1.6e-52) {
		tmp = d1 * (d2 - d3);
	} else if ((d2 <= -6.6e-210) || !((d2 <= -2.8e-241) || (!(d2 <= 5.2e-83) && (d2 <= 9.5e-57)))) {
		tmp = t_0;
	} else {
		tmp = (d1 * d4) - (d1 * d3);
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	t_0 = d1 * ((d4 - d1) - d3)
	tmp = 0
	if d2 <= -9.2e+62:
		tmp = d1 * ((d2 + d4) - d3)
	elif d2 <= -5.2e-52:
		tmp = t_0
	elif d2 <= -1.6e-52:
		tmp = d1 * (d2 - d3)
	elif (d2 <= -6.6e-210) or not ((d2 <= -2.8e-241) or (not (d2 <= 5.2e-83) and (d2 <= 9.5e-57))):
		tmp = t_0
	else:
		tmp = (d1 * d4) - (d1 * d3)
	return tmp
function code(d1, d2, d3, d4)
	t_0 = Float64(d1 * Float64(Float64(d4 - d1) - d3))
	tmp = 0.0
	if (d2 <= -9.2e+62)
		tmp = Float64(d1 * Float64(Float64(d2 + d4) - d3));
	elseif (d2 <= -5.2e-52)
		tmp = t_0;
	elseif (d2 <= -1.6e-52)
		tmp = Float64(d1 * Float64(d2 - d3));
	elseif ((d2 <= -6.6e-210) || !((d2 <= -2.8e-241) || (!(d2 <= 5.2e-83) && (d2 <= 9.5e-57))))
		tmp = t_0;
	else
		tmp = Float64(Float64(d1 * d4) - Float64(d1 * d3));
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	t_0 = d1 * ((d4 - d1) - d3);
	tmp = 0.0;
	if (d2 <= -9.2e+62)
		tmp = d1 * ((d2 + d4) - d3);
	elseif (d2 <= -5.2e-52)
		tmp = t_0;
	elseif (d2 <= -1.6e-52)
		tmp = d1 * (d2 - d3);
	elseif ((d2 <= -6.6e-210) || ~(((d2 <= -2.8e-241) || (~((d2 <= 5.2e-83)) && (d2 <= 9.5e-57)))))
		tmp = t_0;
	else
		tmp = (d1 * d4) - (d1 * d3);
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := Block[{t$95$0 = N[(d1 * N[(N[(d4 - d1), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[d2, -9.2e+62], N[(d1 * N[(N[(d2 + d4), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision], If[LessEqual[d2, -5.2e-52], t$95$0, If[LessEqual[d2, -1.6e-52], N[(d1 * N[(d2 - d3), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[d2, -6.6e-210], N[Not[Or[LessEqual[d2, -2.8e-241], And[N[Not[LessEqual[d2, 5.2e-83]], $MachinePrecision], LessEqual[d2, 9.5e-57]]]], $MachinePrecision]], t$95$0, N[(N[(d1 * d4), $MachinePrecision] - N[(d1 * d3), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\
\mathbf{if}\;d2 \leq -9.2 \cdot 10^{+62}:\\
\;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\

\mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\
\;\;\;\;d1 \cdot \left(d2 - d3\right)\\

\mathbf{elif}\;d2 \leq -6.6 \cdot 10^{-210} \lor \neg \left(d2 \leq -2.8 \cdot 10^{-241} \lor \neg \left(d2 \leq 5.2 \cdot 10^{-83}\right) \land d2 \leq 9.5 \cdot 10^{-57}\right):\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;d1 \cdot d4 - d1 \cdot d3\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if d2 < -9.19999999999999936e62

    1. Initial program 79.6%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+79.6%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--85.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--88.8%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 98.1%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]

    if -9.19999999999999936e62 < d2 < -5.1999999999999997e-52 or -1.60000000000000005e-52 < d2 < -6.6e-210 or -2.7999999999999999e-241 < d2 < 5.20000000000000018e-83 or 9.5000000000000005e-57 < d2

    1. Initial program 88.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.6%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.2%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 85.4%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+85.4%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified85.4%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]

    if -5.1999999999999997e-52 < d2 < -1.60000000000000005e-52

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} \]

    if -6.6e-210 < d2 < -2.7999999999999999e-241 or 5.20000000000000018e-83 < d2 < 9.5000000000000005e-57

    1. Initial program 87.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+87.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--87.5%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.8%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 74.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 75.1%

      \[\leadsto \color{blue}{d1 \cdot d4 + d1 \cdot \left(d2 - d3\right)} \]
    7. Taylor expanded in d2 around 0 75.1%

      \[\leadsto \color{blue}{-1 \cdot \left(d1 \cdot d3\right) + d1 \cdot d4} \]
    8. Step-by-step derivation
      1. +-commutative75.1%

        \[\leadsto \color{blue}{d1 \cdot d4 + -1 \cdot \left(d1 \cdot d3\right)} \]
      2. mul-1-neg75.1%

        \[\leadsto d1 \cdot d4 + \color{blue}{\left(-d1 \cdot d3\right)} \]
      3. unsub-neg75.1%

        \[\leadsto \color{blue}{d1 \cdot d4 - d1 \cdot d3} \]
    9. Simplified75.1%

      \[\leadsto \color{blue}{d1 \cdot d4 - d1 \cdot d3} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification87.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d2 \leq -9.2 \cdot 10^{+62}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -1.6 \cdot 10^{-52}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \mathbf{elif}\;d2 \leq -6.6 \cdot 10^{-210} \lor \neg \left(d2 \leq -2.8 \cdot 10^{-241} \lor \neg \left(d2 \leq 5.2 \cdot 10^{-83}\right) \land d2 \leq 9.5 \cdot 10^{-57}\right):\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot d4 - d1 \cdot d3\\ \end{array} \]
  5. Add Preprocessing

Alternative 12: 84.7% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;d2 \leq -7 \cdot 10^{+67}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52} \lor \neg \left(d2 \leq -1.6 \cdot 10^{-52}\right):\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \end{array} \end{array} \]
(FPCore (d1 d2 d3 d4)
 :precision binary64
 (if (<= d2 -7e+67)
   (* d1 (- (+ d2 d4) d3))
   (if (or (<= d2 -5.2e-52) (not (<= d2 -1.6e-52)))
     (* d1 (- (- d4 d1) d3))
     (* d1 (- d2 d3)))))
double code(double d1, double d2, double d3, double d4) {
	double tmp;
	if (d2 <= -7e+67) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if ((d2 <= -5.2e-52) || !(d2 <= -1.6e-52)) {
		tmp = d1 * ((d4 - d1) - d3);
	} else {
		tmp = d1 * (d2 - d3);
	}
	return tmp;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    real(8) :: tmp
    if (d2 <= (-7d+67)) then
        tmp = d1 * ((d2 + d4) - d3)
    else if ((d2 <= (-5.2d-52)) .or. (.not. (d2 <= (-1.6d-52)))) then
        tmp = d1 * ((d4 - d1) - d3)
    else
        tmp = d1 * (d2 - d3)
    end if
    code = tmp
end function
public static double code(double d1, double d2, double d3, double d4) {
	double tmp;
	if (d2 <= -7e+67) {
		tmp = d1 * ((d2 + d4) - d3);
	} else if ((d2 <= -5.2e-52) || !(d2 <= -1.6e-52)) {
		tmp = d1 * ((d4 - d1) - d3);
	} else {
		tmp = d1 * (d2 - d3);
	}
	return tmp;
}
def code(d1, d2, d3, d4):
	tmp = 0
	if d2 <= -7e+67:
		tmp = d1 * ((d2 + d4) - d3)
	elif (d2 <= -5.2e-52) or not (d2 <= -1.6e-52):
		tmp = d1 * ((d4 - d1) - d3)
	else:
		tmp = d1 * (d2 - d3)
	return tmp
function code(d1, d2, d3, d4)
	tmp = 0.0
	if (d2 <= -7e+67)
		tmp = Float64(d1 * Float64(Float64(d2 + d4) - d3));
	elseif ((d2 <= -5.2e-52) || !(d2 <= -1.6e-52))
		tmp = Float64(d1 * Float64(Float64(d4 - d1) - d3));
	else
		tmp = Float64(d1 * Float64(d2 - d3));
	end
	return tmp
end
function tmp_2 = code(d1, d2, d3, d4)
	tmp = 0.0;
	if (d2 <= -7e+67)
		tmp = d1 * ((d2 + d4) - d3);
	elseif ((d2 <= -5.2e-52) || ~((d2 <= -1.6e-52)))
		tmp = d1 * ((d4 - d1) - d3);
	else
		tmp = d1 * (d2 - d3);
	end
	tmp_2 = tmp;
end
code[d1_, d2_, d3_, d4_] := If[LessEqual[d2, -7e+67], N[(d1 * N[(N[(d2 + d4), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[d2, -5.2e-52], N[Not[LessEqual[d2, -1.6e-52]], $MachinePrecision]], N[(d1 * N[(N[(d4 - d1), $MachinePrecision] - d3), $MachinePrecision]), $MachinePrecision], N[(d1 * N[(d2 - d3), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;d2 \leq -7 \cdot 10^{+67}:\\
\;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\

\mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52} \lor \neg \left(d2 \leq -1.6 \cdot 10^{-52}\right):\\
\;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\

\mathbf{else}:\\
\;\;\;\;d1 \cdot \left(d2 - d3\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if d2 < -7e67

    1. Initial program 79.6%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+79.6%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--85.1%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--88.8%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out99.9%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 98.1%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]

    if -7e67 < d2 < -5.1999999999999997e-52 or -1.60000000000000005e-52 < d2

    1. Initial program 88.5%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+88.5%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--89.5%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--92.5%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d2 around 0 85.9%

      \[\leadsto \color{blue}{d1 \cdot \left(d4 - \left(d1 + d3\right)\right)} \]
    6. Step-by-step derivation
      1. associate--r+85.9%

        \[\leadsto d1 \cdot \color{blue}{\left(\left(d4 - d1\right) - d3\right)} \]
    7. Simplified85.9%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d4 - d1\right) - d3\right)} \]

    if -5.1999999999999997e-52 < d2 < -1.60000000000000005e-52

    1. Initial program 100.0%

      \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
    2. Step-by-step derivation
      1. associate--l+100.0%

        \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
      2. distribute-lft-out--100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
      3. distribute-rgt-out--100.0%

        \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
      4. distribute-lft-out100.0%

        \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in d1 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 + d4\right) - d3\right)} \]
    6. Taylor expanded in d4 around 0 100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification88.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;d2 \leq -7 \cdot 10^{+67}:\\ \;\;\;\;d1 \cdot \left(\left(d2 + d4\right) - d3\right)\\ \mathbf{elif}\;d2 \leq -5.2 \cdot 10^{-52} \lor \neg \left(d2 \leq -1.6 \cdot 10^{-52}\right):\\ \;\;\;\;d1 \cdot \left(\left(d4 - d1\right) - d3\right)\\ \mathbf{else}:\\ \;\;\;\;d1 \cdot \left(d2 - d3\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 13: 31.2% accurate, 5.0× speedup?

\[\begin{array}{l} \\ d1 \cdot d2 \end{array} \]
(FPCore (d1 d2 d3 d4) :precision binary64 (* d1 d2))
double code(double d1, double d2, double d3, double d4) {
	return d1 * d2;
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    code = d1 * d2
end function
public static double code(double d1, double d2, double d3, double d4) {
	return d1 * d2;
}
def code(d1, d2, d3, d4):
	return d1 * d2
function code(d1, d2, d3, d4)
	return Float64(d1 * d2)
end
function tmp = code(d1, d2, d3, d4)
	tmp = d1 * d2;
end
code[d1_, d2_, d3_, d4_] := N[(d1 * d2), $MachinePrecision]
\begin{array}{l}

\\
d1 \cdot d2
\end{array}
Derivation
  1. Initial program 86.7%

    \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1 \]
  2. Step-by-step derivation
    1. associate--l+86.7%

      \[\leadsto \color{blue}{\left(d1 \cdot d2 - d1 \cdot d3\right) + \left(d4 \cdot d1 - d1 \cdot d1\right)} \]
    2. distribute-lft-out--88.7%

      \[\leadsto \color{blue}{d1 \cdot \left(d2 - d3\right)} + \left(d4 \cdot d1 - d1 \cdot d1\right) \]
    3. distribute-rgt-out--91.8%

      \[\leadsto d1 \cdot \left(d2 - d3\right) + \color{blue}{d1 \cdot \left(d4 - d1\right)} \]
    4. distribute-lft-out100.0%

      \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
  3. Simplified100.0%

    \[\leadsto \color{blue}{d1 \cdot \left(\left(d2 - d3\right) + \left(d4 - d1\right)\right)} \]
  4. Add Preprocessing
  5. Taylor expanded in d2 around inf 31.6%

    \[\leadsto \color{blue}{d1 \cdot d2} \]
  6. Add Preprocessing

Developer target: 100.0% accurate, 1.7× speedup?

\[\begin{array}{l} \\ d1 \cdot \left(\left(\left(d2 - d3\right) + d4\right) - d1\right) \end{array} \]
(FPCore (d1 d2 d3 d4) :precision binary64 (* d1 (- (+ (- d2 d3) d4) d1)))
double code(double d1, double d2, double d3, double d4) {
	return d1 * (((d2 - d3) + d4) - d1);
}
real(8) function code(d1, d2, d3, d4)
    real(8), intent (in) :: d1
    real(8), intent (in) :: d2
    real(8), intent (in) :: d3
    real(8), intent (in) :: d4
    code = d1 * (((d2 - d3) + d4) - d1)
end function
public static double code(double d1, double d2, double d3, double d4) {
	return d1 * (((d2 - d3) + d4) - d1);
}
def code(d1, d2, d3, d4):
	return d1 * (((d2 - d3) + d4) - d1)
function code(d1, d2, d3, d4)
	return Float64(d1 * Float64(Float64(Float64(d2 - d3) + d4) - d1))
end
function tmp = code(d1, d2, d3, d4)
	tmp = d1 * (((d2 - d3) + d4) - d1);
end
code[d1_, d2_, d3_, d4_] := N[(d1 * N[(N[(N[(d2 - d3), $MachinePrecision] + d4), $MachinePrecision] - d1), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
d1 \cdot \left(\left(\left(d2 - d3\right) + d4\right) - d1\right)
\end{array}

Reproduce

?
herbie shell --seed 2024096 
(FPCore (d1 d2 d3 d4)
  :name "FastMath dist4"
  :precision binary64

  :alt
  (* d1 (- (+ (- d2 d3) d4) d1))

  (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))