
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(+
(-
(+
(+
(-
(* (- (* x y) (* z t)) (- (* a b) (* c i)))
(* (- (* x j) (* z k)) (- (* y0 b) (* y1 i))))
(* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a))))
(* (- (* t j) (* y k)) (- (* y4 b) (* y5 i))))
(* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a))))
(* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)));
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
code = (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)));
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): return (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)))
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) - Float64(z * t)) * Float64(Float64(a * b) - Float64(c * i))) - Float64(Float64(Float64(x * j) - Float64(z * k)) * Float64(Float64(y0 * b) - Float64(y1 * i)))) + Float64(Float64(Float64(x * y2) - Float64(z * y3)) * Float64(Float64(y0 * c) - Float64(y1 * a)))) + Float64(Float64(Float64(t * j) - Float64(y * k)) * Float64(Float64(y4 * b) - Float64(y5 * i)))) - Float64(Float64(Float64(t * y2) - Float64(y * y3)) * Float64(Float64(y4 * c) - Float64(y5 * a)))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0)))) end
function tmp = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] - N[(z * t), $MachinePrecision]), $MachinePrecision] * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(x * j), $MachinePrecision] - N[(z * k), $MachinePrecision]), $MachinePrecision] * N[(N[(y0 * b), $MachinePrecision] - N[(y1 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(x * y2), $MachinePrecision] - N[(z * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y0 * c), $MachinePrecision] - N[(y1 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t * j), $MachinePrecision] - N[(y * k), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * b), $MachinePrecision] - N[(y5 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)
\end{array}
Herbie found 34 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(+
(-
(+
(+
(-
(* (- (* x y) (* z t)) (- (* a b) (* c i)))
(* (- (* x j) (* z k)) (- (* y0 b) (* y1 i))))
(* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a))))
(* (- (* t j) (* y k)) (- (* y4 b) (* y5 i))))
(* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a))))
(* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)));
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
code = (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)));
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): return (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)))
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) - Float64(z * t)) * Float64(Float64(a * b) - Float64(c * i))) - Float64(Float64(Float64(x * j) - Float64(z * k)) * Float64(Float64(y0 * b) - Float64(y1 * i)))) + Float64(Float64(Float64(x * y2) - Float64(z * y3)) * Float64(Float64(y0 * c) - Float64(y1 * a)))) + Float64(Float64(Float64(t * j) - Float64(y * k)) * Float64(Float64(y4 * b) - Float64(y5 * i)))) - Float64(Float64(Float64(t * y2) - Float64(y * y3)) * Float64(Float64(y4 * c) - Float64(y5 * a)))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0)))) end
function tmp = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = (((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] - N[(z * t), $MachinePrecision]), $MachinePrecision] * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(x * j), $MachinePrecision] - N[(z * k), $MachinePrecision]), $MachinePrecision] * N[(N[(y0 * b), $MachinePrecision] - N[(y1 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(x * y2), $MachinePrecision] - N[(z * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y0 * c), $MachinePrecision] - N[(y1 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t * j), $MachinePrecision] - N[(y * k), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * b), $MachinePrecision] - N[(y5 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)
\end{array}
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* a b) (* c i)))
(t_2 (- (* k y2) (* j y3)))
(t_3 (- (* c y0) (* a y1)))
(t_4 (- (* j t) (* k y)))
(t_5
(*
-1.0
(* z (- (fma t t_1 (* y3 t_3)) (* k (- (* b y0) (* i y1))))))))
(if (<= y5 -1.65e+94)
(* -1.0 (* y5 (- (fma i t_4 (* y0 t_2)) (* a (- (* t y2) (* y y3))))))
(if (<= y5 -5.2e-29)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -3e-143)
(+ (* b (* y4 t_4)) (* t_2 (- (* y4 y1) (* y5 y0))))
(if (<= y5 -2.2e-298)
t_5
(if (<= y5 8.6e-147)
(* x (fma y t_1 (* y2 t_3)))
(if (<= y5 6e-42)
t_5
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3)))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (a * b) - (c * i);
double t_2 = (k * y2) - (j * y3);
double t_3 = (c * y0) - (a * y1);
double t_4 = (j * t) - (k * y);
double t_5 = -1.0 * (z * (fma(t, t_1, (y3 * t_3)) - (k * ((b * y0) - (i * y1)))));
double tmp;
if (y5 <= -1.65e+94) {
tmp = -1.0 * (y5 * (fma(i, t_4, (y0 * t_2)) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -5.2e-29) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -3e-143) {
tmp = (b * (y4 * t_4)) + (t_2 * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= -2.2e-298) {
tmp = t_5;
} else if (y5 <= 8.6e-147) {
tmp = x * fma(y, t_1, (y2 * t_3));
} else if (y5 <= 6e-42) {
tmp = t_5;
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(a * b) - Float64(c * i)) t_2 = Float64(Float64(k * y2) - Float64(j * y3)) t_3 = Float64(Float64(c * y0) - Float64(a * y1)) t_4 = Float64(Float64(j * t) - Float64(k * y)) t_5 = Float64(-1.0 * Float64(z * Float64(fma(t, t_1, Float64(y3 * t_3)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))) tmp = 0.0 if (y5 <= -1.65e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_4, Float64(y0 * t_2)) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -5.2e-29) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -3e-143) tmp = Float64(Float64(b * Float64(y4 * t_4)) + Float64(t_2 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= -2.2e-298) tmp = t_5; elseif (y5 <= 8.6e-147) tmp = Float64(x * fma(y, t_1, Float64(y2 * t_3))); elseif (y5 <= 6e-42) tmp = t_5; elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(-1.0 * N[(z * N[(N[(t * t$95$1 + N[(y3 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -1.65e+94], N[(-1.0 * N[(y5 * N[(N[(i * t$95$4 + N[(y0 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.2e-29], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3e-143], N[(N[(b * N[(y4 * t$95$4), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.2e-298], t$95$5, If[LessEqual[y5, 8.6e-147], N[(x * N[(y * t$95$1 + N[(y2 * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 6e-42], t$95$5, If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot b - c \cdot i\\
t_2 := k \cdot y2 - j \cdot y3\\
t_3 := c \cdot y0 - a \cdot y1\\
t_4 := j \cdot t - k \cdot y\\
t_5 := -1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, t\_1, y3 \cdot t\_3\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{if}\;y5 \leq -1.65 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_4, y0 \cdot t\_2\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -5.2 \cdot 10^{-29}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{-143}:\\
\;\;\;\;b \cdot \left(y4 \cdot t\_4\right) + t\_2 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq -2.2 \cdot 10^{-298}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y5 \leq 8.6 \cdot 10^{-147}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, t\_1, y2 \cdot t\_3\right)\\
\mathbf{elif}\;y5 \leq 6 \cdot 10^{-42}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -1.65e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -1.65e94 < y5 < -5.2000000000000004e-29Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -5.2000000000000004e-29 < y5 < -2.99999999999999985e-143Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in b around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if -2.99999999999999985e-143 < y5 < -2.2e-298 or 8.6000000000000002e-147 < y5 < 6.00000000000000054e-42Initial program 30.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
if -2.2e-298 < y5 < 8.6000000000000002e-147Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in j around 0
lower-*.f64N/A
lower-fma.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if 6.00000000000000054e-42 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* c y0) (* a y1)))
(t_2 (- (* k y2) (* j y3)))
(t_3 (- (* a b) (* c i)))
(t_4 (- (* j t) (* k y)))
(t_5 (- (* t y2) (* y y3))))
(if (<= y5 -9.5e+43)
(* -1.0 (* y5 (- (fma i t_4 (* y0 t_2)) (* a t_5))))
(if (<= y5 -2.6e-11)
(* k (* y5 (fma -1.0 (* y0 y2) (* i y))))
(if (<= y5 -2.8e-96)
(+ (* y4 (- (* b t_4) (* c t_5))) (* t_2 (- (* y4 y1) (* y5 y0))))
(if (<= y5 -1.82e-298)
(*
-1.0
(* z (- (fma t t_3 (* y3 t_1)) (* k (- (* b y0) (* i y1))))))
(if (<= y5 2.7e-25)
(*
x
(-
(fma y t_3 (* y2 t_1))
(fma -1.0 (* i (* j y1)) (* b (* j y0)))))
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (c * y0) - (a * y1);
double t_2 = (k * y2) - (j * y3);
double t_3 = (a * b) - (c * i);
double t_4 = (j * t) - (k * y);
double t_5 = (t * y2) - (y * y3);
double tmp;
if (y5 <= -9.5e+43) {
tmp = -1.0 * (y5 * (fma(i, t_4, (y0 * t_2)) - (a * t_5)));
} else if (y5 <= -2.6e-11) {
tmp = k * (y5 * fma(-1.0, (y0 * y2), (i * y)));
} else if (y5 <= -2.8e-96) {
tmp = (y4 * ((b * t_4) - (c * t_5))) + (t_2 * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= -1.82e-298) {
tmp = -1.0 * (z * (fma(t, t_3, (y3 * t_1)) - (k * ((b * y0) - (i * y1)))));
} else if (y5 <= 2.7e-25) {
tmp = x * (fma(y, t_3, (y2 * t_1)) - fma(-1.0, (i * (j * y1)), (b * (j * y0))));
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(c * y0) - Float64(a * y1)) t_2 = Float64(Float64(k * y2) - Float64(j * y3)) t_3 = Float64(Float64(a * b) - Float64(c * i)) t_4 = Float64(Float64(j * t) - Float64(k * y)) t_5 = Float64(Float64(t * y2) - Float64(y * y3)) tmp = 0.0 if (y5 <= -9.5e+43) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_4, Float64(y0 * t_2)) - Float64(a * t_5)))); elseif (y5 <= -2.6e-11) tmp = Float64(k * Float64(y5 * fma(-1.0, Float64(y0 * y2), Float64(i * y)))); elseif (y5 <= -2.8e-96) tmp = Float64(Float64(y4 * Float64(Float64(b * t_4) - Float64(c * t_5))) + Float64(t_2 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= -1.82e-298) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, t_3, Float64(y3 * t_1)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))); elseif (y5 <= 2.7e-25) tmp = Float64(x * Float64(fma(y, t_3, Float64(y2 * t_1)) - fma(-1.0, Float64(i * Float64(j * y1)), Float64(b * Float64(j * y0))))); elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -9.5e+43], N[(-1.0 * N[(y5 * N[(N[(i * t$95$4 + N[(y0 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(a * t$95$5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.6e-11], N[(k * N[(y5 * N[(-1.0 * N[(y0 * y2), $MachinePrecision] + N[(i * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.8e-96], N[(N[(y4 * N[(N[(b * t$95$4), $MachinePrecision] - N[(c * t$95$5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.82e-298], N[(-1.0 * N[(z * N[(N[(t * t$95$3 + N[(y3 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.7e-25], N[(x * N[(N[(y * t$95$3 + N[(y2 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(i * N[(j * y1), $MachinePrecision]), $MachinePrecision] + N[(b * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot y0 - a \cdot y1\\
t_2 := k \cdot y2 - j \cdot y3\\
t_3 := a \cdot b - c \cdot i\\
t_4 := j \cdot t - k \cdot y\\
t_5 := t \cdot y2 - y \cdot y3\\
\mathbf{if}\;y5 \leq -9.5 \cdot 10^{+43}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_4, y0 \cdot t\_2\right) - a \cdot t\_5\right)\right)\\
\mathbf{elif}\;y5 \leq -2.6 \cdot 10^{-11}:\\
\;\;\;\;k \cdot \left(y5 \cdot \mathsf{fma}\left(-1, y0 \cdot y2, i \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -2.8 \cdot 10^{-96}:\\
\;\;\;\;y4 \cdot \left(b \cdot t\_4 - c \cdot t\_5\right) + t\_2 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq -1.82 \cdot 10^{-298}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, t\_3, y3 \cdot t\_1\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.7 \cdot 10^{-25}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, t\_3, y2 \cdot t\_1\right) - \mathsf{fma}\left(-1, i \cdot \left(j \cdot y1\right), b \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -9.5000000000000004e43Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -9.5000000000000004e43 < y5 < -2.6000000000000001e-11Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
if -2.6000000000000001e-11 < y5 < -2.80000000000000015e-96Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
if -2.80000000000000015e-96 < y5 < -1.8199999999999999e-298Initial program 30.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
if -1.8199999999999999e-298 < y5 < 2.70000000000000016e-25Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in b around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6436.9
Applied rewrites36.9%
if 2.70000000000000016e-25 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* a b) (* c i)))
(t_2 (- (* k y2) (* j y3)))
(t_3 (- (* c y0) (* a y1)))
(t_4 (- (* j t) (* k y))))
(if (<= y5 -1.65e+94)
(* -1.0 (* y5 (- (fma i t_4 (* y0 t_2)) (* a (- (* t y2) (* y y3))))))
(if (<= y5 -5.2e-29)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -3e-143)
(+ (* b (* y4 t_4)) (* t_2 (- (* y4 y1) (* y5 y0))))
(if (<= y5 -1.82e-298)
(*
-1.0
(* z (- (fma t t_1 (* y3 t_3)) (* k (- (* b y0) (* i y1))))))
(if (<= y5 2.7e-25)
(*
x
(-
(fma y t_1 (* y2 t_3))
(fma -1.0 (* i (* j y1)) (* b (* j y0)))))
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (a * b) - (c * i);
double t_2 = (k * y2) - (j * y3);
double t_3 = (c * y0) - (a * y1);
double t_4 = (j * t) - (k * y);
double tmp;
if (y5 <= -1.65e+94) {
tmp = -1.0 * (y5 * (fma(i, t_4, (y0 * t_2)) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -5.2e-29) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -3e-143) {
tmp = (b * (y4 * t_4)) + (t_2 * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= -1.82e-298) {
tmp = -1.0 * (z * (fma(t, t_1, (y3 * t_3)) - (k * ((b * y0) - (i * y1)))));
} else if (y5 <= 2.7e-25) {
tmp = x * (fma(y, t_1, (y2 * t_3)) - fma(-1.0, (i * (j * y1)), (b * (j * y0))));
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(a * b) - Float64(c * i)) t_2 = Float64(Float64(k * y2) - Float64(j * y3)) t_3 = Float64(Float64(c * y0) - Float64(a * y1)) t_4 = Float64(Float64(j * t) - Float64(k * y)) tmp = 0.0 if (y5 <= -1.65e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_4, Float64(y0 * t_2)) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -5.2e-29) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -3e-143) tmp = Float64(Float64(b * Float64(y4 * t_4)) + Float64(t_2 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= -1.82e-298) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, t_1, Float64(y3 * t_3)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))); elseif (y5 <= 2.7e-25) tmp = Float64(x * Float64(fma(y, t_1, Float64(y2 * t_3)) - fma(-1.0, Float64(i * Float64(j * y1)), Float64(b * Float64(j * y0))))); elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -1.65e+94], N[(-1.0 * N[(y5 * N[(N[(i * t$95$4 + N[(y0 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.2e-29], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3e-143], N[(N[(b * N[(y4 * t$95$4), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.82e-298], N[(-1.0 * N[(z * N[(N[(t * t$95$1 + N[(y3 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.7e-25], N[(x * N[(N[(y * t$95$1 + N[(y2 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(i * N[(j * y1), $MachinePrecision]), $MachinePrecision] + N[(b * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot b - c \cdot i\\
t_2 := k \cdot y2 - j \cdot y3\\
t_3 := c \cdot y0 - a \cdot y1\\
t_4 := j \cdot t - k \cdot y\\
\mathbf{if}\;y5 \leq -1.65 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_4, y0 \cdot t\_2\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -5.2 \cdot 10^{-29}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{-143}:\\
\;\;\;\;b \cdot \left(y4 \cdot t\_4\right) + t\_2 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq -1.82 \cdot 10^{-298}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, t\_1, y3 \cdot t\_3\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.7 \cdot 10^{-25}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, t\_1, y2 \cdot t\_3\right) - \mathsf{fma}\left(-1, i \cdot \left(j \cdot y1\right), b \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -1.65e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -1.65e94 < y5 < -5.2000000000000004e-29Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -5.2000000000000004e-29 < y5 < -2.99999999999999985e-143Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in b around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if -2.99999999999999985e-143 < y5 < -1.8199999999999999e-298Initial program 30.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
if -1.8199999999999999e-298 < y5 < 2.70000000000000016e-25Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in b around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6436.9
Applied rewrites36.9%
if 2.70000000000000016e-25 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* j t) (* k y))))
(if (<= y5 -1.65e+94)
(*
-1.0
(*
y5
(-
(fma i t_1 (* y0 (- (* k y2) (* j y3))))
(* a (- (* t y2) (* y y3))))))
(if (<= y5 -1.45e-29)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -7.2e-162)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 t_1))
(* y0 (- (* j x) (* k z)))))
(if (<= y5 8.5e-88)
(* x (fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1)))))
(if (<= y5 3.8e-42)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (j * t) - (k * y);
double tmp;
if (y5 <= -1.65e+94) {
tmp = -1.0 * (y5 * (fma(i, t_1, (y0 * ((k * y2) - (j * y3)))) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -1.45e-29) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -7.2e-162) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * t_1)) - (y0 * ((j * x) - (k * z))));
} else if (y5 <= 8.5e-88) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1))));
} else if (y5 <= 3.8e-42) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(j * t) - Float64(k * y)) tmp = 0.0 if (y5 <= -1.65e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_1, Float64(y0 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -1.45e-29) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -7.2e-162) tmp = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * t_1)) - Float64(y0 * Float64(Float64(j * x) - Float64(k * z))))); elseif (y5 <= 8.5e-88) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); elseif (y5 <= 3.8e-42) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -1.65e+94], N[(-1.0 * N[(y5 * N[(N[(i * t$95$1 + N[(y0 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.45e-29], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -7.2e-162], N[(b * N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(y0 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.5e-88], N[(x * N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 3.8e-42], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := j \cdot t - k \cdot y\\
\mathbf{if}\;y5 \leq -1.65 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_1, y0 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.45 \cdot 10^{-29}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -7.2 \cdot 10^{-162}:\\
\;\;\;\;b \cdot \left(\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot t\_1\right) - y0 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 8.5 \cdot 10^{-88}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\mathbf{elif}\;y5 \leq 3.8 \cdot 10^{-42}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -1.65e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -1.65e94 < y5 < -1.45000000000000012e-29Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -1.45000000000000012e-29 < y5 < -7.1999999999999996e-162Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if -7.1999999999999996e-162 < y5 < 8.4999999999999996e-88Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in j around 0
lower-*.f64N/A
lower-fma.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if 8.4999999999999996e-88 < y5 < 3.80000000000000017e-42Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 3.80000000000000017e-42 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -1.65e+94)
(*
-1.0
(*
y5
(-
(fma i (- (* j t) (* k y)) (* y0 (- (* k y2) (* j y3))))
(* a (- (* t y2) (* y y3))))))
(if (<= y5 -1.65e-24)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -3.8e-184)
(*
k
(-
(fma -1.0 (* y (- (* b y4) (* i y5))) (* y2 (- (* y1 y4) (* y0 y5))))
(* -1.0 (* z (- (* b y0) (* i y1))))))
(if (<= y5 2.7e-25)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1))))
(fma -1.0 (* i (* j y1)) (* b (* j y0)))))
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -1.65e+94) {
tmp = -1.0 * (y5 * (fma(i, ((j * t) - (k * y)), (y0 * ((k * y2) - (j * y3)))) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -1.65e-24) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -3.8e-184) {
tmp = k * (fma(-1.0, (y * ((b * y4) - (i * y5))), (y2 * ((y1 * y4) - (y0 * y5)))) - (-1.0 * (z * ((b * y0) - (i * y1)))));
} else if (y5 <= 2.7e-25) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1)))) - fma(-1.0, (i * (j * y1)), (b * (j * y0))));
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -1.65e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, Float64(Float64(j * t) - Float64(k * y)), Float64(y0 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -1.65e-24) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -3.8e-184) tmp = Float64(k * Float64(fma(-1.0, Float64(y * Float64(Float64(b * y4) - Float64(i * y5))), Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))) - Float64(-1.0 * Float64(z * Float64(Float64(b * y0) - Float64(i * y1)))))); elseif (y5 <= 2.7e-25) tmp = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1)))) - fma(-1.0, Float64(i * Float64(j * y1)), Float64(b * Float64(j * y0))))); elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -1.65e+94], N[(-1.0 * N[(y5 * N[(N[(i * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision] + N[(y0 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.65e-24], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3.8e-184], N[(k * N[(N[(-1.0 * N[(y * N[(N[(b * y4), $MachinePrecision] - N[(i * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(z * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.7e-25], N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(i * N[(j * y1), $MachinePrecision]), $MachinePrecision] + N[(b * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -1.65 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, j \cdot t - k \cdot y, y0 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.65 \cdot 10^{-24}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -3.8 \cdot 10^{-184}:\\
\;\;\;\;k \cdot \left(\mathsf{fma}\left(-1, y \cdot \left(b \cdot y4 - i \cdot y5\right), y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right) - -1 \cdot \left(z \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.7 \cdot 10^{-25}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - \mathsf{fma}\left(-1, i \cdot \left(j \cdot y1\right), b \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -1.65e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -1.65e94 < y5 < -1.64999999999999992e-24Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -1.64999999999999992e-24 < y5 < -3.80000000000000017e-184Initial program 30.1%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if -3.80000000000000017e-184 < y5 < 2.70000000000000016e-25Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in b around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6436.9
Applied rewrites36.9%
if 2.70000000000000016e-25 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -3.2e+60)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -5.2e-29)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -2e-151)
(+
(* b (* y4 (- (* j t) (* k y))))
(* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))
(if (<= y5 8.5e-88)
(* x (fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1)))))
(if (<= y5 3.8e-42)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -3.2e+60) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -5.2e-29) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -2e-151) {
tmp = (b * (y4 * ((j * t) - (k * y)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= 8.5e-88) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1))));
} else if (y5 <= 3.8e-42) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -3.2e+60) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -5.2e-29) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -2e-151) tmp = Float64(Float64(b * Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= 8.5e-88) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); elseif (y5 <= 3.8e-42) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -3.2e+60], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.2e-29], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2e-151], N[(N[(b * N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.5e-88], N[(x * N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 3.8e-42], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -3.2 \cdot 10^{+60}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -5.2 \cdot 10^{-29}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -2 \cdot 10^{-151}:\\
\;\;\;\;b \cdot \left(y4 \cdot \left(j \cdot t - k \cdot y\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq 8.5 \cdot 10^{-88}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\mathbf{elif}\;y5 \leq 3.8 \cdot 10^{-42}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -3.19999999999999991e60Initial program 30.1%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -3.19999999999999991e60 < y5 < -5.2000000000000004e-29Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -5.2000000000000004e-29 < y5 < -1.9999999999999999e-151Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in b around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if -1.9999999999999999e-151 < y5 < 8.4999999999999996e-88Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in j around 0
lower-*.f64N/A
lower-fma.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if 8.4999999999999996e-88 < y5 < 3.80000000000000017e-42Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 3.80000000000000017e-42 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -3.2e+60)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -4.8e-34)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -1.05e-78)
(+ (* y4 (* c (* y y3))) (* (- (* k y2) (* j y3)) (* y1 y4)))
(if (<= y5 8.5e-88)
(* x (fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1)))))
(if (<= y5 3.8e-42)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y5 5.9e+239)
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2)
(* y (* y5 (- (* i k) (* a y3)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -3.2e+60) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -4.8e-34) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -1.05e-78) {
tmp = (y4 * (c * (y * y3))) + (((k * y2) - (j * y3)) * (y1 * y4));
} else if (y5 <= 8.5e-88) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1))));
} else if (y5 <= 3.8e-42) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y5 <= 5.9e+239) {
tmp = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -3.2e+60) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -4.8e-34) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -1.05e-78) tmp = Float64(Float64(y4 * Float64(c * Float64(y * y3))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(y1 * y4))); elseif (y5 <= 8.5e-88) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); elseif (y5 <= 3.8e-42) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y5 <= 5.9e+239) tmp = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -3.2e+60], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.8e-34], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.05e-78], N[(N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(y1 * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.5e-88], N[(x * N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 3.8e-42], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.9e+239], N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -3.2 \cdot 10^{+60}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -4.8 \cdot 10^{-34}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -1.05 \cdot 10^{-78}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y1 \cdot y4\right)\\
\mathbf{elif}\;y5 \leq 8.5 \cdot 10^{-88}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\mathbf{elif}\;y5 \leq 3.8 \cdot 10^{-42}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.9 \cdot 10^{+239}:\\
\;\;\;\;\mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -3.19999999999999991e60Initial program 30.1%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -3.19999999999999991e60 < y5 < -4.79999999999999982e-34Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -4.79999999999999982e-34 < y5 < -1.05e-78Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in y3 around inf
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in y0 around 0
lower-*.f6427.8
Applied rewrites27.8%
if -1.05e-78 < y5 < 8.4999999999999996e-88Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in j around 0
lower-*.f64N/A
lower-fma.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if 8.4999999999999996e-88 < y5 < 3.80000000000000017e-42Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 3.80000000000000017e-42 < y5 < 5.90000000000000003e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if 5.90000000000000003e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1
(*
(fma
(- (* y5 a) (* y4 c))
t
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k)))
y2))
(t_2 (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
(if (<= y2 -2.25e-63)
t_1
(if (<= y2 1.9e-189)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 (- (* j x) (* k z)))))
(if (<= y2 2.3e-134)
(+ (* y4 (* -1.0 (* y (- (* b k) (* c y3))))) t_2)
(if (<= y2 7.8e-10)
(* x (- (fma c (* y0 y2) (* y (- (* a b) (* c i)))) (* b (* j y0))))
(if (<= y2 9.5e+154)
(+ (* c (* y4 (- (* y y3) (* t y2)))) t_2)
t_1)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = fma(((y5 * a) - (y4 * c)), t, ((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k))) * y2;
double t_2 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0));
double tmp;
if (y2 <= -2.25e-63) {
tmp = t_1;
} else if (y2 <= 1.9e-189) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * ((j * x) - (k * z))));
} else if (y2 <= 2.3e-134) {
tmp = (y4 * (-1.0 * (y * ((b * k) - (c * y3))))) + t_2;
} else if (y2 <= 7.8e-10) {
tmp = x * (fma(c, (y0 * y2), (y * ((a * b) - (c * i)))) - (b * (j * y0)));
} else if (y2 <= 9.5e+154) {
tmp = (c * (y4 * ((y * y3) - (t * y2)))) + t_2;
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(fma(Float64(Float64(y5 * a) - Float64(y4 * c)), t, Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k))) * y2) t_2 = Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0))) tmp = 0.0 if (y2 <= -2.25e-63) tmp = t_1; elseif (y2 <= 1.9e-189) tmp = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) - Float64(y0 * Float64(Float64(j * x) - Float64(k * z))))); elseif (y2 <= 2.3e-134) tmp = Float64(Float64(y4 * Float64(-1.0 * Float64(y * Float64(Float64(b * k) - Float64(c * y3))))) + t_2); elseif (y2 <= 7.8e-10) tmp = Float64(x * Float64(fma(c, Float64(y0 * y2), Float64(y * Float64(Float64(a * b) - Float64(c * i)))) - Float64(b * Float64(j * y0)))); elseif (y2 <= 9.5e+154) tmp = Float64(Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))) + t_2); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision] * t + N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y2, -2.25e-63], t$95$1, If[LessEqual[y2, 1.9e-189], N[(b * N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y0 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 2.3e-134], N[(N[(y4 * N[(-1.0 * N[(y * N[(N[(b * k), $MachinePrecision] - N[(c * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision], If[LessEqual[y2, 7.8e-10], N[(x * N[(N[(c * N[(y0 * y2), $MachinePrecision] + N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(b * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 9.5e+154], N[(N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision], t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(y5 \cdot a - y4 \cdot c, t, \left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) \cdot y2\\
t_2 := \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{if}\;y2 \leq -2.25 \cdot 10^{-63}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y2 \leq 1.9 \cdot 10^{-189}:\\
\;\;\;\;b \cdot \left(\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot \left(j \cdot t - k \cdot y\right)\right) - y0 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y2 \leq 2.3 \cdot 10^{-134}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y \cdot \left(b \cdot k - c \cdot y3\right)\right)\right) + t\_2\\
\mathbf{elif}\;y2 \leq 7.8 \cdot 10^{-10}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(c, y0 \cdot y2, y \cdot \left(a \cdot b - c \cdot i\right)\right) - b \cdot \left(j \cdot y0\right)\right)\\
\mathbf{elif}\;y2 \leq 9.5 \cdot 10^{+154}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right) + t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y2 < -2.25e-63 or 9.5000000000000001e154 < y2 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in c around 0
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
Applied rewrites38.0%
if -2.25e-63 < y2 < 1.90000000000000011e-189Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if 1.90000000000000011e-189 < y2 < 2.3e-134Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
if 2.3e-134 < y2 < 7.7999999999999999e-10Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in y1 around 0
lower--.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6434.9
Applied rewrites34.9%
if 7.7999999999999999e-10 < y2 < 9.5000000000000001e154Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.3
Applied rewrites36.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -3.2e+60)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -4.8e-34)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -1.05e-78)
(+ (* y4 (* c (* y y3))) (* (- (* k y2) (* j y3)) (* y1 y4)))
(if (<= y5 5e-81)
(* x (fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1)))))
(if (<= y5 2.45e+82)
(* a (* b (- (* x y) (* t z))))
(* y2 (* y4 (- (* k y1) (* c t))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -3.2e+60) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -4.8e-34) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -1.05e-78) {
tmp = (y4 * (c * (y * y3))) + (((k * y2) - (j * y3)) * (y1 * y4));
} else if (y5 <= 5e-81) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1))));
} else if (y5 <= 2.45e+82) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -3.2e+60) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -4.8e-34) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -1.05e-78) tmp = Float64(Float64(y4 * Float64(c * Float64(y * y3))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(y1 * y4))); elseif (y5 <= 5e-81) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); elseif (y5 <= 2.45e+82) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); else tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -3.2e+60], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.8e-34], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.05e-78], N[(N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(y1 * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5e-81], N[(x * N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.45e+82], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -3.2 \cdot 10^{+60}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -4.8 \cdot 10^{-34}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -1.05 \cdot 10^{-78}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y1 \cdot y4\right)\\
\mathbf{elif}\;y5 \leq 5 \cdot 10^{-81}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\mathbf{elif}\;y5 \leq 2.45 \cdot 10^{+82}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\end{array}
\end{array}
if y5 < -3.19999999999999991e60Initial program 30.1%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -3.19999999999999991e60 < y5 < -4.79999999999999982e-34Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -4.79999999999999982e-34 < y5 < -1.05e-78Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in y3 around inf
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in y0 around 0
lower-*.f6427.8
Applied rewrites27.8%
if -1.05e-78 < y5 < 4.99999999999999981e-81Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in j around 0
lower-*.f64N/A
lower-fma.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.0
Applied rewrites36.0%
if 4.99999999999999981e-81 < y5 < 2.45e82Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 2.45e82 < y5 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* x y) (* t z))))
(if (<= x -7.2e+119)
(* a (* b t_1))
(if (<= x -57000.0)
(* c (* y2 (- (* x y0) (* t y4))))
(if (<= x -6e-104)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= x 6.6e-291)
(* -1.0 (* i (* y5 (- (* j t) (* k y)))))
(if (<= x 3.05e-31)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= x 4e+61)
(* b (* a t_1))
(* y2 (* x (- (* c y0) (* a y1))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (x * y) - (t * z);
double tmp;
if (x <= -7.2e+119) {
tmp = a * (b * t_1);
} else if (x <= -57000.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -6e-104) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 6.6e-291) {
tmp = -1.0 * (i * (y5 * ((j * t) - (k * y))));
} else if (x <= 3.05e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 4e+61) {
tmp = b * (a * t_1);
} else {
tmp = y2 * (x * ((c * y0) - (a * y1)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = (x * y) - (t * z)
if (x <= (-7.2d+119)) then
tmp = a * (b * t_1)
else if (x <= (-57000.0d0)) then
tmp = c * (y2 * ((x * y0) - (t * y4)))
else if (x <= (-6d-104)) then
tmp = y2 * (t * ((a * y5) - (c * y4)))
else if (x <= 6.6d-291) then
tmp = (-1.0d0) * (i * (y5 * ((j * t) - (k * y))))
else if (x <= 3.05d-31) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (x <= 4d+61) then
tmp = b * (a * t_1)
else
tmp = y2 * (x * ((c * y0) - (a * y1)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (x * y) - (t * z);
double tmp;
if (x <= -7.2e+119) {
tmp = a * (b * t_1);
} else if (x <= -57000.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -6e-104) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 6.6e-291) {
tmp = -1.0 * (i * (y5 * ((j * t) - (k * y))));
} else if (x <= 3.05e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 4e+61) {
tmp = b * (a * t_1);
} else {
tmp = y2 * (x * ((c * y0) - (a * y1)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = (x * y) - (t * z) tmp = 0 if x <= -7.2e+119: tmp = a * (b * t_1) elif x <= -57000.0: tmp = c * (y2 * ((x * y0) - (t * y4))) elif x <= -6e-104: tmp = y2 * (t * ((a * y5) - (c * y4))) elif x <= 6.6e-291: tmp = -1.0 * (i * (y5 * ((j * t) - (k * y)))) elif x <= 3.05e-31: tmp = a * (y5 * ((t * y2) - (y * y3))) elif x <= 4e+61: tmp = b * (a * t_1) else: tmp = y2 * (x * ((c * y0) - (a * y1))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(x * y) - Float64(t * z)) tmp = 0.0 if (x <= -7.2e+119) tmp = Float64(a * Float64(b * t_1)); elseif (x <= -57000.0) tmp = Float64(c * Float64(y2 * Float64(Float64(x * y0) - Float64(t * y4)))); elseif (x <= -6e-104) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (x <= 6.6e-291) tmp = Float64(-1.0 * Float64(i * Float64(y5 * Float64(Float64(j * t) - Float64(k * y))))); elseif (x <= 3.05e-31) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (x <= 4e+61) tmp = Float64(b * Float64(a * t_1)); else tmp = Float64(y2 * Float64(x * Float64(Float64(c * y0) - Float64(a * y1)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = (x * y) - (t * z); tmp = 0.0; if (x <= -7.2e+119) tmp = a * (b * t_1); elseif (x <= -57000.0) tmp = c * (y2 * ((x * y0) - (t * y4))); elseif (x <= -6e-104) tmp = y2 * (t * ((a * y5) - (c * y4))); elseif (x <= 6.6e-291) tmp = -1.0 * (i * (y5 * ((j * t) - (k * y)))); elseif (x <= 3.05e-31) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (x <= 4e+61) tmp = b * (a * t_1); else tmp = y2 * (x * ((c * y0) - (a * y1))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -7.2e+119], N[(a * N[(b * t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -57000.0], N[(c * N[(y2 * N[(N[(x * y0), $MachinePrecision] - N[(t * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -6e-104], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 6.6e-291], N[(-1.0 * N[(i * N[(y5 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 3.05e-31], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 4e+61], N[(b * N[(a * t$95$1), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(x * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot y - t \cdot z\\
\mathbf{if}\;x \leq -7.2 \cdot 10^{+119}:\\
\;\;\;\;a \cdot \left(b \cdot t\_1\right)\\
\mathbf{elif}\;x \leq -57000:\\
\;\;\;\;c \cdot \left(y2 \cdot \left(x \cdot y0 - t \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq -6 \cdot 10^{-104}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq 6.6 \cdot 10^{-291}:\\
\;\;\;\;-1 \cdot \left(i \cdot \left(y5 \cdot \left(j \cdot t - k \cdot y\right)\right)\right)\\
\mathbf{elif}\;x \leq 3.05 \cdot 10^{-31}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;x \leq 4 \cdot 10^{+61}:\\
\;\;\;\;b \cdot \left(a \cdot t\_1\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(x \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\end{array}
\end{array}
if x < -7.20000000000000003e119Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if -7.20000000000000003e119 < x < -57000Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if -57000 < x < -6.0000000000000005e-104Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -6.0000000000000005e-104 < x < 6.5999999999999997e-291Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.0
Applied rewrites26.0%
if 6.5999999999999997e-291 < x < 3.0499999999999999e-31Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 3.0499999999999999e-31 < x < 3.9999999999999998e61Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.9
Applied rewrites26.9%
if 3.9999999999999998e61 < x Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* x y) (* t z))))
(if (<= x -7.2e+119)
(* a (* b t_1))
(if (<= x -57000.0)
(* c (* y2 (- (* x y0) (* t y4))))
(if (<= x -1.5e-98)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= x 4.2e-268)
(* y (* y5 (- (* i k) (* a y3))))
(if (<= x 3.05e-31)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= x 4e+61)
(* b (* a t_1))
(* y2 (* x (- (* c y0) (* a y1))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (x * y) - (t * z);
double tmp;
if (x <= -7.2e+119) {
tmp = a * (b * t_1);
} else if (x <= -57000.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -1.5e-98) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 4.2e-268) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (x <= 3.05e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 4e+61) {
tmp = b * (a * t_1);
} else {
tmp = y2 * (x * ((c * y0) - (a * y1)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = (x * y) - (t * z)
if (x <= (-7.2d+119)) then
tmp = a * (b * t_1)
else if (x <= (-57000.0d0)) then
tmp = c * (y2 * ((x * y0) - (t * y4)))
else if (x <= (-1.5d-98)) then
tmp = y2 * (t * ((a * y5) - (c * y4)))
else if (x <= 4.2d-268) then
tmp = y * (y5 * ((i * k) - (a * y3)))
else if (x <= 3.05d-31) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (x <= 4d+61) then
tmp = b * (a * t_1)
else
tmp = y2 * (x * ((c * y0) - (a * y1)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (x * y) - (t * z);
double tmp;
if (x <= -7.2e+119) {
tmp = a * (b * t_1);
} else if (x <= -57000.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -1.5e-98) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 4.2e-268) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (x <= 3.05e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 4e+61) {
tmp = b * (a * t_1);
} else {
tmp = y2 * (x * ((c * y0) - (a * y1)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = (x * y) - (t * z) tmp = 0 if x <= -7.2e+119: tmp = a * (b * t_1) elif x <= -57000.0: tmp = c * (y2 * ((x * y0) - (t * y4))) elif x <= -1.5e-98: tmp = y2 * (t * ((a * y5) - (c * y4))) elif x <= 4.2e-268: tmp = y * (y5 * ((i * k) - (a * y3))) elif x <= 3.05e-31: tmp = a * (y5 * ((t * y2) - (y * y3))) elif x <= 4e+61: tmp = b * (a * t_1) else: tmp = y2 * (x * ((c * y0) - (a * y1))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(x * y) - Float64(t * z)) tmp = 0.0 if (x <= -7.2e+119) tmp = Float64(a * Float64(b * t_1)); elseif (x <= -57000.0) tmp = Float64(c * Float64(y2 * Float64(Float64(x * y0) - Float64(t * y4)))); elseif (x <= -1.5e-98) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (x <= 4.2e-268) tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); elseif (x <= 3.05e-31) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (x <= 4e+61) tmp = Float64(b * Float64(a * t_1)); else tmp = Float64(y2 * Float64(x * Float64(Float64(c * y0) - Float64(a * y1)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = (x * y) - (t * z); tmp = 0.0; if (x <= -7.2e+119) tmp = a * (b * t_1); elseif (x <= -57000.0) tmp = c * (y2 * ((x * y0) - (t * y4))); elseif (x <= -1.5e-98) tmp = y2 * (t * ((a * y5) - (c * y4))); elseif (x <= 4.2e-268) tmp = y * (y5 * ((i * k) - (a * y3))); elseif (x <= 3.05e-31) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (x <= 4e+61) tmp = b * (a * t_1); else tmp = y2 * (x * ((c * y0) - (a * y1))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -7.2e+119], N[(a * N[(b * t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -57000.0], N[(c * N[(y2 * N[(N[(x * y0), $MachinePrecision] - N[(t * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -1.5e-98], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 4.2e-268], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 3.05e-31], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 4e+61], N[(b * N[(a * t$95$1), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(x * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot y - t \cdot z\\
\mathbf{if}\;x \leq -7.2 \cdot 10^{+119}:\\
\;\;\;\;a \cdot \left(b \cdot t\_1\right)\\
\mathbf{elif}\;x \leq -57000:\\
\;\;\;\;c \cdot \left(y2 \cdot \left(x \cdot y0 - t \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq -1.5 \cdot 10^{-98}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq 4.2 \cdot 10^{-268}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\mathbf{elif}\;x \leq 3.05 \cdot 10^{-31}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;x \leq 4 \cdot 10^{+61}:\\
\;\;\;\;b \cdot \left(a \cdot t\_1\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(x \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\end{array}
\end{array}
if x < -7.20000000000000003e119Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if -7.20000000000000003e119 < x < -57000Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if -57000 < x < -1.5e-98Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -1.5e-98 < x < 4.19999999999999996e-268Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
if 4.19999999999999996e-268 < x < 3.0499999999999999e-31Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 3.0499999999999999e-31 < x < 3.9999999999999998e61Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.9
Applied rewrites26.9%
if 3.9999999999999998e61 < x Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -9.4e+52)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -1.8e-24)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= y5 -2.4e-175)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y5 4.5e-29)
(* b (* x (- (* a y) (* j y0))))
(if (<= y5 2.9e+119)
(* x (* a (fma -1.0 (* y1 y2) (* b y))))
(* y2 (* y4 (- (* k y1) (* c t))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -9.4e+52) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.8e-24) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (y5 <= -2.4e-175) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y5 <= 4.5e-29) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y5 <= 2.9e+119) {
tmp = x * (a * fma(-1.0, (y1 * y2), (b * y)));
} else {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -9.4e+52) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -1.8e-24) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (y5 <= -2.4e-175) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y5 <= 4.5e-29) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y5 <= 2.9e+119) tmp = Float64(x * Float64(a * fma(-1.0, Float64(y1 * y2), Float64(b * y)))); else tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -9.4e+52], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.8e-24], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.4e-175], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.5e-29], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.9e+119], N[(x * N[(a * N[(-1.0 * N[(y1 * y2), $MachinePrecision] + N[(b * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -9.4 \cdot 10^{+52}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.8 \cdot 10^{-24}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;y5 \leq -2.4 \cdot 10^{-175}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 4.5 \cdot 10^{-29}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y5 \leq 2.9 \cdot 10^{+119}:\\
\;\;\;\;x \cdot \left(a \cdot \mathsf{fma}\left(-1, y1 \cdot y2, b \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\end{array}
\end{array}
if y5 < -9.3999999999999999e52Initial program 30.1%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -9.3999999999999999e52 < y5 < -1.8e-24Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -1.8e-24 < y5 < -2.4e-175Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if -2.4e-175 < y5 < 4.4999999999999998e-29Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 4.4999999999999998e-29 < y5 < 2.90000000000000007e119Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in a around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 2.90000000000000007e119 < y5 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y2 -1.38e-55)
(* y1 (* y2 (fma -1.0 (* a x) (* k y4))))
(if (<= y2 -6e-259)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y2 2.05e-184)
(* x (* j (- (* i y1) (* b y0))))
(if (<= y2 1.55e-110)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y2 3.65)
(* b (* x (- (* a y) (* j y0))))
(* k (* y2 (- (* y1 y4) (* y0 y5))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y2 <= -1.38e-55) {
tmp = y1 * (y2 * fma(-1.0, (a * x), (k * y4)));
} else if (y2 <= -6e-259) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y2 <= 2.05e-184) {
tmp = x * (j * ((i * y1) - (b * y0)));
} else if (y2 <= 1.55e-110) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y2 <= 3.65) {
tmp = b * (x * ((a * y) - (j * y0)));
} else {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y2 <= -1.38e-55) tmp = Float64(y1 * Float64(y2 * fma(-1.0, Float64(a * x), Float64(k * y4)))); elseif (y2 <= -6e-259) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y2 <= 2.05e-184) tmp = Float64(x * Float64(j * Float64(Float64(i * y1) - Float64(b * y0)))); elseif (y2 <= 1.55e-110) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y2 <= 3.65) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); else tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y2, -1.38e-55], N[(y1 * N[(y2 * N[(-1.0 * N[(a * x), $MachinePrecision] + N[(k * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, -6e-259], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 2.05e-184], N[(x * N[(j * N[(N[(i * y1), $MachinePrecision] - N[(b * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 1.55e-110], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 3.65], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y2 \leq -1.38 \cdot 10^{-55}:\\
\;\;\;\;y1 \cdot \left(y2 \cdot \mathsf{fma}\left(-1, a \cdot x, k \cdot y4\right)\right)\\
\mathbf{elif}\;y2 \leq -6 \cdot 10^{-259}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y2 \leq 2.05 \cdot 10^{-184}:\\
\;\;\;\;x \cdot \left(j \cdot \left(i \cdot y1 - b \cdot y0\right)\right)\\
\mathbf{elif}\;y2 \leq 1.55 \cdot 10^{-110}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y2 \leq 3.65:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\end{array}
\end{array}
if y2 < -1.3799999999999999e-55Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6426.9
Applied rewrites26.9%
if -1.3799999999999999e-55 < y2 < -6.0000000000000004e-259Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if -6.0000000000000004e-259 < y2 < 2.05e-184Initial program 30.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.1
Applied rewrites26.1%
if 2.05e-184 < y2 < 1.55000000000000004e-110Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 1.55000000000000004e-110 < y2 < 3.64999999999999991Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 3.64999999999999991 < y2 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -3.2e+60)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -1.7e-29)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 1.45e-84)
(* b (* y0 (* j (- (/ (* k z) j) x))))
(if (<= y5 2.45e+82)
(* a (* b (- (* x y) (* t z))))
(* y2 (* y4 (- (* k y1) (* c t)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -3.2e+60) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.7e-29) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= 1.45e-84) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 2.45e+82) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-3.2d+60)) then
tmp = t * ((-1.0d0) * (y5 * ((i * j) - (a * y2))))
else if (y5 <= (-1.7d-29)) then
tmp = y2 * (((-1.0d0) * (a * (x * y1))) - (t * ((c * y4) - (a * y5))))
else if (y5 <= 1.45d-84) then
tmp = b * (y0 * (j * (((k * z) / j) - x)))
else if (y5 <= 2.45d+82) then
tmp = a * (b * ((x * y) - (t * z)))
else
tmp = y2 * (y4 * ((k * y1) - (c * t)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -3.2e+60) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.7e-29) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= 1.45e-84) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 2.45e+82) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -3.2e+60: tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))) elif y5 <= -1.7e-29: tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5)))) elif y5 <= 1.45e-84: tmp = b * (y0 * (j * (((k * z) / j) - x))) elif y5 <= 2.45e+82: tmp = a * (b * ((x * y) - (t * z))) else: tmp = y2 * (y4 * ((k * y1) - (c * t))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -3.2e+60) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -1.7e-29) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= 1.45e-84) tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(k * z) / j) - x)))); elseif (y5 <= 2.45e+82) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); else tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -3.2e+60) tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))); elseif (y5 <= -1.7e-29) tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5)))); elseif (y5 <= 1.45e-84) tmp = b * (y0 * (j * (((k * z) / j) - x))); elseif (y5 <= 2.45e+82) tmp = a * (b * ((x * y) - (t * z))); else tmp = y2 * (y4 * ((k * y1) - (c * t))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -3.2e+60], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.7e-29], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.45e-84], N[(b * N[(y0 * N[(j * N[(N[(N[(k * z), $MachinePrecision] / j), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.45e+82], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -3.2 \cdot 10^{+60}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.7 \cdot 10^{-29}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq 1.45 \cdot 10^{-84}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{k \cdot z}{j} - x\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.45 \cdot 10^{+82}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\end{array}
\end{array}
if y5 < -3.19999999999999991e60Initial program 30.1%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -3.19999999999999991e60 < y5 < -1.69999999999999986e-29Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
if -1.69999999999999986e-29 < y5 < 1.4500000000000001e-84Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 1.4500000000000001e-84 < y5 < 2.45e82Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 2.45e82 < y5 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -9.4e+52)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -1.8e-24)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= y5 1.45e-84)
(* b (* y0 (* j (- (/ (* k z) j) x))))
(if (<= y5 2.45e+82)
(* a (* b (- (* x y) (* t z))))
(* y2 (* y4 (- (* k y1) (* c t)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -9.4e+52) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.8e-24) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (y5 <= 1.45e-84) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 2.45e+82) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-9.4d+52)) then
tmp = t * ((-1.0d0) * (y5 * ((i * j) - (a * y2))))
else if (y5 <= (-1.8d-24)) then
tmp = y2 * (t * ((a * y5) - (c * y4)))
else if (y5 <= 1.45d-84) then
tmp = b * (y0 * (j * (((k * z) / j) - x)))
else if (y5 <= 2.45d+82) then
tmp = a * (b * ((x * y) - (t * z)))
else
tmp = y2 * (y4 * ((k * y1) - (c * t)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -9.4e+52) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.8e-24) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (y5 <= 1.45e-84) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 2.45e+82) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -9.4e+52: tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))) elif y5 <= -1.8e-24: tmp = y2 * (t * ((a * y5) - (c * y4))) elif y5 <= 1.45e-84: tmp = b * (y0 * (j * (((k * z) / j) - x))) elif y5 <= 2.45e+82: tmp = a * (b * ((x * y) - (t * z))) else: tmp = y2 * (y4 * ((k * y1) - (c * t))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -9.4e+52) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -1.8e-24) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (y5 <= 1.45e-84) tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(k * z) / j) - x)))); elseif (y5 <= 2.45e+82) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); else tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -9.4e+52) tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))); elseif (y5 <= -1.8e-24) tmp = y2 * (t * ((a * y5) - (c * y4))); elseif (y5 <= 1.45e-84) tmp = b * (y0 * (j * (((k * z) / j) - x))); elseif (y5 <= 2.45e+82) tmp = a * (b * ((x * y) - (t * z))); else tmp = y2 * (y4 * ((k * y1) - (c * t))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -9.4e+52], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.8e-24], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.45e-84], N[(b * N[(y0 * N[(j * N[(N[(N[(k * z), $MachinePrecision] / j), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.45e+82], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -9.4 \cdot 10^{+52}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.8 \cdot 10^{-24}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;y5 \leq 1.45 \cdot 10^{-84}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{k \cdot z}{j} - x\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.45 \cdot 10^{+82}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\end{array}
\end{array}
if y5 < -9.3999999999999999e52Initial program 30.1%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -9.3999999999999999e52 < y5 < -1.8e-24Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -1.8e-24 < y5 < 1.4500000000000001e-84Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 1.4500000000000001e-84 < y5 < 2.45e82Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 2.45e82 < y5 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= b -1e+119)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b -6.2e-208)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= b 2.05e-165)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= b 3.9e+149)
(* a (* y5 (- (* t y2) (* y y3))))
(* b (* y (fma -1.0 (* k y4) (* a x)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (b <= -1e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -6.2e-208) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 2.05e-165) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (b <= 3.9e+149) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = b * (y * fma(-1.0, (k * y4), (a * x)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (b <= -1e+119) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= -6.2e-208) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (b <= 2.05e-165) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (b <= 3.9e+149) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); else tmp = Float64(b * Float64(y * fma(-1.0, Float64(k * y4), Float64(a * x)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[b, -1e+119], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -6.2e-208], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 2.05e-165], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 3.9e+149], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y * N[(-1.0 * N[(k * y4), $MachinePrecision] + N[(a * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1 \cdot 10^{+119}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq -6.2 \cdot 10^{-208}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;b \leq 2.05 \cdot 10^{-165}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;b \leq 3.9 \cdot 10^{+149}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y \cdot \mathsf{fma}\left(-1, k \cdot y4, a \cdot x\right)\right)\\
\end{array}
\end{array}
if b < -9.99999999999999944e118Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
if -9.99999999999999944e118 < b < -6.1999999999999996e-208Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if -6.1999999999999996e-208 < b < 2.0500000000000001e-165Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
if 2.0500000000000001e-165 < b < 3.8999999999999999e149Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 3.8999999999999999e149 < b Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= b -1e+119)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b -6.2e-208)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= b 2.05e-165)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= b 7.5e+141)
(* a (* y5 (- (* t y2) (* y y3))))
(* a (* b (- (* x y) (* t z)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (b <= -1e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -6.2e-208) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 2.05e-165) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (b <= 7.5e+141) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = a * (b * ((x * y) - (t * z)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (b <= (-1d+119)) then
tmp = b * (y0 * ((k * z) - (j * x)))
else if (b <= (-6.2d-208)) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else if (b <= 2.05d-165) then
tmp = y2 * (y4 * ((k * y1) - (c * t)))
else if (b <= 7.5d+141) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else
tmp = a * (b * ((x * y) - (t * z)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (b <= -1e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -6.2e-208) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 2.05e-165) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (b <= 7.5e+141) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = a * (b * ((x * y) - (t * z)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if b <= -1e+119: tmp = b * (y0 * ((k * z) - (j * x))) elif b <= -6.2e-208: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) elif b <= 2.05e-165: tmp = y2 * (y4 * ((k * y1) - (c * t))) elif b <= 7.5e+141: tmp = a * (y5 * ((t * y2) - (y * y3))) else: tmp = a * (b * ((x * y) - (t * z))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (b <= -1e+119) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= -6.2e-208) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (b <= 2.05e-165) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (b <= 7.5e+141) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); else tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (b <= -1e+119) tmp = b * (y0 * ((k * z) - (j * x))); elseif (b <= -6.2e-208) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); elseif (b <= 2.05e-165) tmp = y2 * (y4 * ((k * y1) - (c * t))); elseif (b <= 7.5e+141) tmp = a * (y5 * ((t * y2) - (y * y3))); else tmp = a * (b * ((x * y) - (t * z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[b, -1e+119], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -6.2e-208], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 2.05e-165], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 7.5e+141], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1 \cdot 10^{+119}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq -6.2 \cdot 10^{-208}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;b \leq 2.05 \cdot 10^{-165}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;b \leq 7.5 \cdot 10^{+141}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\end{array}
\end{array}
if b < -9.99999999999999944e118Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
if -9.99999999999999944e118 < b < -6.1999999999999996e-208Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if -6.1999999999999996e-208 < b < 2.0500000000000001e-165Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
if 2.0500000000000001e-165 < b < 7.49999999999999937e141Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 7.49999999999999937e141 < b Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= b -1e+119)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b 4.2e-204)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= b 6.4e-100)
(* y (* y5 (- (* i k) (* a y3))))
(if (<= b 7.5e+141)
(* a (* y5 (- (* t y2) (* y y3))))
(* a (* b (- (* x y) (* t z)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (b <= -1e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= 4.2e-204) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 6.4e-100) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (b <= 7.5e+141) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = a * (b * ((x * y) - (t * z)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (b <= (-1d+119)) then
tmp = b * (y0 * ((k * z) - (j * x)))
else if (b <= 4.2d-204) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else if (b <= 6.4d-100) then
tmp = y * (y5 * ((i * k) - (a * y3)))
else if (b <= 7.5d+141) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else
tmp = a * (b * ((x * y) - (t * z)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (b <= -1e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= 4.2e-204) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 6.4e-100) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (b <= 7.5e+141) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = a * (b * ((x * y) - (t * z)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if b <= -1e+119: tmp = b * (y0 * ((k * z) - (j * x))) elif b <= 4.2e-204: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) elif b <= 6.4e-100: tmp = y * (y5 * ((i * k) - (a * y3))) elif b <= 7.5e+141: tmp = a * (y5 * ((t * y2) - (y * y3))) else: tmp = a * (b * ((x * y) - (t * z))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (b <= -1e+119) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= 4.2e-204) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (b <= 6.4e-100) tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); elseif (b <= 7.5e+141) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); else tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (b <= -1e+119) tmp = b * (y0 * ((k * z) - (j * x))); elseif (b <= 4.2e-204) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); elseif (b <= 6.4e-100) tmp = y * (y5 * ((i * k) - (a * y3))); elseif (b <= 7.5e+141) tmp = a * (y5 * ((t * y2) - (y * y3))); else tmp = a * (b * ((x * y) - (t * z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[b, -1e+119], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 4.2e-204], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 6.4e-100], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 7.5e+141], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq -1 \cdot 10^{+119}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq 4.2 \cdot 10^{-204}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;b \leq 6.4 \cdot 10^{-100}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\mathbf{elif}\;b \leq 7.5 \cdot 10^{+141}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\end{array}
\end{array}
if b < -9.99999999999999944e118Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
if -9.99999999999999944e118 < b < 4.20000000000000018e-204Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if 4.20000000000000018e-204 < b < 6.40000000000000033e-100Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
if 6.40000000000000033e-100 < b < 7.49999999999999937e141Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 7.49999999999999937e141 < b Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -2.1e-161)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 4.2e-58)
(* b (* x (- (* a y) (* j y0))))
(if (<= y5 2.45e+238)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(* y (* y5 (- (* i k) (* a y3))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -2.1e-161) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 4.2e-58) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y5 <= 2.45e+238) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-2.1d-161)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 4.2d-58) then
tmp = b * (x * ((a * y) - (j * y0)))
else if (y5 <= 2.45d+238) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else
tmp = y * (y5 * ((i * k) - (a * y3)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -2.1e-161) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 4.2e-58) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y5 <= 2.45e+238) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -2.1e-161: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 4.2e-58: tmp = b * (x * ((a * y) - (j * y0))) elif y5 <= 2.45e+238: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) else: tmp = y * (y5 * ((i * k) - (a * y3))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -2.1e-161) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 4.2e-58) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y5 <= 2.45e+238) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -2.1e-161) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 4.2e-58) tmp = b * (x * ((a * y) - (j * y0))); elseif (y5 <= 2.45e+238) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); else tmp = y * (y5 * ((i * k) - (a * y3))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -2.1e-161], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.2e-58], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.45e+238], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -2.1 \cdot 10^{-161}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 4.2 \cdot 10^{-58}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y5 \leq 2.45 \cdot 10^{+238}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -2.1e-161Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if -2.1e-161 < y5 < 4.19999999999999975e-58Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 4.19999999999999975e-58 < y5 < 2.45000000000000013e238Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if 2.45000000000000013e238 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -6e-117)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 1.25e+104)
(* a (* b (- (* x y) (* t z))))
(if (<= y5 2.45e+238)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(* y (* y5 (- (* i k) (* a y3))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -6e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 1.25e+104) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 2.45e+238) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-6d-117)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 1.25d+104) then
tmp = a * (b * ((x * y) - (t * z)))
else if (y5 <= 2.45d+238) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else
tmp = y * (y5 * ((i * k) - (a * y3)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -6e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 1.25e+104) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 2.45e+238) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -6e-117: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 1.25e+104: tmp = a * (b * ((x * y) - (t * z))) elif y5 <= 2.45e+238: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) else: tmp = y * (y5 * ((i * k) - (a * y3))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -6e-117) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 1.25e+104) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); elseif (y5 <= 2.45e+238) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -6e-117) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 1.25e+104) tmp = a * (b * ((x * y) - (t * z))); elseif (y5 <= 2.45e+238) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); else tmp = y * (y5 * ((i * k) - (a * y3))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -6e-117], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.25e+104], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.45e+238], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -6 \cdot 10^{-117}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 1.25 \cdot 10^{+104}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 2.45 \cdot 10^{+238}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -5.99999999999999982e-117Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if -5.99999999999999982e-117 < y5 < 1.2499999999999999e104Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 1.2499999999999999e104 < y5 < 2.45000000000000013e238Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if 2.45000000000000013e238 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -6e-117)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 4.7e+151)
(* a (* b (- (* x y) (* t z))))
(if (<= y5 5e+239)
(* c (* y2 (- (* x y0) (* t y4))))
(* y (* y5 (- (* i k) (* a y3))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -6e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 4.7e+151) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 5e+239) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-6d-117)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 4.7d+151) then
tmp = a * (b * ((x * y) - (t * z)))
else if (y5 <= 5d+239) then
tmp = c * (y2 * ((x * y0) - (t * y4)))
else
tmp = y * (y5 * ((i * k) - (a * y3)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -6e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 4.7e+151) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 5e+239) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -6e-117: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 4.7e+151: tmp = a * (b * ((x * y) - (t * z))) elif y5 <= 5e+239: tmp = c * (y2 * ((x * y0) - (t * y4))) else: tmp = y * (y5 * ((i * k) - (a * y3))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -6e-117) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 4.7e+151) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); elseif (y5 <= 5e+239) tmp = Float64(c * Float64(y2 * Float64(Float64(x * y0) - Float64(t * y4)))); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -6e-117) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 4.7e+151) tmp = a * (b * ((x * y) - (t * z))); elseif (y5 <= 5e+239) tmp = c * (y2 * ((x * y0) - (t * y4))); else tmp = y * (y5 * ((i * k) - (a * y3))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -6e-117], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.7e+151], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5e+239], N[(c * N[(y2 * N[(N[(x * y0), $MachinePrecision] - N[(t * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -6 \cdot 10^{-117}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 4.7 \cdot 10^{+151}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 5 \cdot 10^{+239}:\\
\;\;\;\;c \cdot \left(y2 \cdot \left(x \cdot y0 - t \cdot y4\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -5.99999999999999982e-117Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if -5.99999999999999982e-117 < y5 < 4.69999999999999989e151Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 4.69999999999999989e151 < y5 < 5.00000000000000007e239Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 5.00000000000000007e239 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -6e-117)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 1.4e+170)
(* a (* b (- (* x y) (* t z))))
(* y (* y5 (- (* i k) (* a y3)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -6e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 1.4e+170) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-6d-117)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 1.4d+170) then
tmp = a * (b * ((x * y) - (t * z)))
else
tmp = y * (y5 * ((i * k) - (a * y3)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -6e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 1.4e+170) {
tmp = a * (b * ((x * y) - (t * z)));
} else {
tmp = y * (y5 * ((i * k) - (a * y3)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -6e-117: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 1.4e+170: tmp = a * (b * ((x * y) - (t * z))) else: tmp = y * (y5 * ((i * k) - (a * y3))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -6e-117) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 1.4e+170) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); else tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -6e-117) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 1.4e+170) tmp = a * (b * ((x * y) - (t * z))); else tmp = y * (y5 * ((i * k) - (a * y3))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -6e-117], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.4e+170], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -6 \cdot 10^{-117}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 1.4 \cdot 10^{+170}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -5.99999999999999982e-117Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if -5.99999999999999982e-117 < y5 < 1.40000000000000008e170Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
if 1.40000000000000008e170 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= z 6.4e-287)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= z 1.9e+158)
(* y (* y5 (- (* i k) (* a y3))))
(* b (* y0 (* k z))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (z <= 6.4e-287) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (z <= 1.9e+158) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else {
tmp = b * (y0 * (k * z));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (z <= 6.4d-287) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (z <= 1.9d+158) then
tmp = y * (y5 * ((i * k) - (a * y3)))
else
tmp = b * (y0 * (k * z))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (z <= 6.4e-287) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (z <= 1.9e+158) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else {
tmp = b * (y0 * (k * z));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if z <= 6.4e-287: tmp = a * (y5 * ((t * y2) - (y * y3))) elif z <= 1.9e+158: tmp = y * (y5 * ((i * k) - (a * y3))) else: tmp = b * (y0 * (k * z)) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (z <= 6.4e-287) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (z <= 1.9e+158) tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); else tmp = Float64(b * Float64(y0 * Float64(k * z))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (z <= 6.4e-287) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (z <= 1.9e+158) tmp = y * (y5 * ((i * k) - (a * y3))); else tmp = b * (y0 * (k * z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[z, 6.4e-287], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.9e+158], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq 6.4 \cdot 10^{-287}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;z \leq 1.9 \cdot 10^{+158}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\end{array}
\end{array}
if z < 6.40000000000000037e-287Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 6.40000000000000037e-287 < z < 1.8999999999999999e158Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
if 1.8999999999999999e158 < z Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* y2 (* y1 (* k y4)))))
(if (<= k -1.02e+191)
(* b (* y0 (* k z)))
(if (<= k -8.8e+111)
t_1
(if (<= k -2.35e-57)
(* a (* t (* y2 y5)))
(if (<= k -1.7e-298)
(* y2 (* x (* -1.0 (* a y1))))
(if (<= k 3e-86)
(* j (* y0 (* y3 y5)))
(if (<= k 4.5e+109) (* y3 (* y5 (* -1.0 (* a y)))) t_1))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = y2 * (y1 * (k * y4));
double tmp;
if (k <= -1.02e+191) {
tmp = b * (y0 * (k * z));
} else if (k <= -8.8e+111) {
tmp = t_1;
} else if (k <= -2.35e-57) {
tmp = a * (t * (y2 * y5));
} else if (k <= -1.7e-298) {
tmp = y2 * (x * (-1.0 * (a * y1)));
} else if (k <= 3e-86) {
tmp = j * (y0 * (y3 * y5));
} else if (k <= 4.5e+109) {
tmp = y3 * (y5 * (-1.0 * (a * y)));
} else {
tmp = t_1;
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = y2 * (y1 * (k * y4))
if (k <= (-1.02d+191)) then
tmp = b * (y0 * (k * z))
else if (k <= (-8.8d+111)) then
tmp = t_1
else if (k <= (-2.35d-57)) then
tmp = a * (t * (y2 * y5))
else if (k <= (-1.7d-298)) then
tmp = y2 * (x * ((-1.0d0) * (a * y1)))
else if (k <= 3d-86) then
tmp = j * (y0 * (y3 * y5))
else if (k <= 4.5d+109) then
tmp = y3 * (y5 * ((-1.0d0) * (a * y)))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = y2 * (y1 * (k * y4));
double tmp;
if (k <= -1.02e+191) {
tmp = b * (y0 * (k * z));
} else if (k <= -8.8e+111) {
tmp = t_1;
} else if (k <= -2.35e-57) {
tmp = a * (t * (y2 * y5));
} else if (k <= -1.7e-298) {
tmp = y2 * (x * (-1.0 * (a * y1)));
} else if (k <= 3e-86) {
tmp = j * (y0 * (y3 * y5));
} else if (k <= 4.5e+109) {
tmp = y3 * (y5 * (-1.0 * (a * y)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = y2 * (y1 * (k * y4)) tmp = 0 if k <= -1.02e+191: tmp = b * (y0 * (k * z)) elif k <= -8.8e+111: tmp = t_1 elif k <= -2.35e-57: tmp = a * (t * (y2 * y5)) elif k <= -1.7e-298: tmp = y2 * (x * (-1.0 * (a * y1))) elif k <= 3e-86: tmp = j * (y0 * (y3 * y5)) elif k <= 4.5e+109: tmp = y3 * (y5 * (-1.0 * (a * y))) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(y2 * Float64(y1 * Float64(k * y4))) tmp = 0.0 if (k <= -1.02e+191) tmp = Float64(b * Float64(y0 * Float64(k * z))); elseif (k <= -8.8e+111) tmp = t_1; elseif (k <= -2.35e-57) tmp = Float64(a * Float64(t * Float64(y2 * y5))); elseif (k <= -1.7e-298) tmp = Float64(y2 * Float64(x * Float64(-1.0 * Float64(a * y1)))); elseif (k <= 3e-86) tmp = Float64(j * Float64(y0 * Float64(y3 * y5))); elseif (k <= 4.5e+109) tmp = Float64(y3 * Float64(y5 * Float64(-1.0 * Float64(a * y)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = y2 * (y1 * (k * y4)); tmp = 0.0; if (k <= -1.02e+191) tmp = b * (y0 * (k * z)); elseif (k <= -8.8e+111) tmp = t_1; elseif (k <= -2.35e-57) tmp = a * (t * (y2 * y5)); elseif (k <= -1.7e-298) tmp = y2 * (x * (-1.0 * (a * y1))); elseif (k <= 3e-86) tmp = j * (y0 * (y3 * y5)); elseif (k <= 4.5e+109) tmp = y3 * (y5 * (-1.0 * (a * y))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(y2 * N[(y1 * N[(k * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k, -1.02e+191], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, -8.8e+111], t$95$1, If[LessEqual[k, -2.35e-57], N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, -1.7e-298], N[(y2 * N[(x * N[(-1.0 * N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 3e-86], N[(j * N[(y0 * N[(y3 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 4.5e+109], N[(y3 * N[(y5 * N[(-1.0 * N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y2 \cdot \left(y1 \cdot \left(k \cdot y4\right)\right)\\
\mathbf{if}\;k \leq -1.02 \cdot 10^{+191}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{elif}\;k \leq -8.8 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;k \leq -2.35 \cdot 10^{-57}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{elif}\;k \leq -1.7 \cdot 10^{-298}:\\
\;\;\;\;y2 \cdot \left(x \cdot \left(-1 \cdot \left(a \cdot y1\right)\right)\right)\\
\mathbf{elif}\;k \leq 3 \cdot 10^{-86}:\\
\;\;\;\;j \cdot \left(y0 \cdot \left(y3 \cdot y5\right)\right)\\
\mathbf{elif}\;k \leq 4.5 \cdot 10^{+109}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(-1 \cdot \left(a \cdot y\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if k < -1.02000000000000006e191Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
if -1.02000000000000006e191 < k < -8.79999999999999994e111 or 4.4999999999999996e109 < k Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
Taylor expanded in x around 0
lower-*.f6417.9
Applied rewrites17.9%
if -8.79999999999999994e111 < k < -2.3499999999999999e-57Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if -2.3499999999999999e-57 < k < -1.7e-298Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around 0
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6436.5
Applied rewrites36.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f6417.6
Applied rewrites17.6%
if -1.7e-298 < k < 3.0000000000000001e-86Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if 3.0000000000000001e-86 < k < 4.4999999999999996e109Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6417.4
Applied rewrites17.4%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= z 1.5e+118) (* a (* y5 (- (* t y2) (* y y3)))) (* b (* y0 (* k z)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (z <= 1.5e+118) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = b * (y0 * (k * z));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (z <= 1.5d+118) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else
tmp = b * (y0 * (k * z))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (z <= 1.5e+118) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else {
tmp = b * (y0 * (k * z));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if z <= 1.5e+118: tmp = a * (y5 * ((t * y2) - (y * y3))) else: tmp = b * (y0 * (k * z)) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (z <= 1.5e+118) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); else tmp = Float64(b * Float64(y0 * Float64(k * z))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (z <= 1.5e+118) tmp = a * (y5 * ((t * y2) - (y * y3))); else tmp = b * (y0 * (k * z)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[z, 1.5e+118], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq 1.5 \cdot 10^{+118}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\end{array}
\end{array}
if z < 1.5e118Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 1.5e118 < z Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= x -2.5e-23)
(* b (* y0 (* -1.0 (* j x))))
(if (<= x 5.6e-201)
(* b (* y0 (* k z)))
(if (<= x 5.1e+64)
(* a (* -1.0 (* y (* y3 y5))))
(* y2 (* y1 (* -1.0 (* a x))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (x <= -2.5e-23) {
tmp = b * (y0 * (-1.0 * (j * x)));
} else if (x <= 5.6e-201) {
tmp = b * (y0 * (k * z));
} else if (x <= 5.1e+64) {
tmp = a * (-1.0 * (y * (y3 * y5)));
} else {
tmp = y2 * (y1 * (-1.0 * (a * x)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (x <= (-2.5d-23)) then
tmp = b * (y0 * ((-1.0d0) * (j * x)))
else if (x <= 5.6d-201) then
tmp = b * (y0 * (k * z))
else if (x <= 5.1d+64) then
tmp = a * ((-1.0d0) * (y * (y3 * y5)))
else
tmp = y2 * (y1 * ((-1.0d0) * (a * x)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (x <= -2.5e-23) {
tmp = b * (y0 * (-1.0 * (j * x)));
} else if (x <= 5.6e-201) {
tmp = b * (y0 * (k * z));
} else if (x <= 5.1e+64) {
tmp = a * (-1.0 * (y * (y3 * y5)));
} else {
tmp = y2 * (y1 * (-1.0 * (a * x)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if x <= -2.5e-23: tmp = b * (y0 * (-1.0 * (j * x))) elif x <= 5.6e-201: tmp = b * (y0 * (k * z)) elif x <= 5.1e+64: tmp = a * (-1.0 * (y * (y3 * y5))) else: tmp = y2 * (y1 * (-1.0 * (a * x))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (x <= -2.5e-23) tmp = Float64(b * Float64(y0 * Float64(-1.0 * Float64(j * x)))); elseif (x <= 5.6e-201) tmp = Float64(b * Float64(y0 * Float64(k * z))); elseif (x <= 5.1e+64) tmp = Float64(a * Float64(-1.0 * Float64(y * Float64(y3 * y5)))); else tmp = Float64(y2 * Float64(y1 * Float64(-1.0 * Float64(a * x)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (x <= -2.5e-23) tmp = b * (y0 * (-1.0 * (j * x))); elseif (x <= 5.6e-201) tmp = b * (y0 * (k * z)); elseif (x <= 5.1e+64) tmp = a * (-1.0 * (y * (y3 * y5))); else tmp = y2 * (y1 * (-1.0 * (a * x))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[x, -2.5e-23], N[(b * N[(y0 * N[(-1.0 * N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 5.6e-201], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 5.1e+64], N[(a * N[(-1.0 * N[(y * N[(y3 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y1 * N[(-1.0 * N[(a * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -2.5 \cdot 10^{-23}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(-1 \cdot \left(j \cdot x\right)\right)\right)\\
\mathbf{elif}\;x \leq 5.6 \cdot 10^{-201}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{elif}\;x \leq 5.1 \cdot 10^{+64}:\\
\;\;\;\;a \cdot \left(-1 \cdot \left(y \cdot \left(y3 \cdot y5\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y1 \cdot \left(-1 \cdot \left(a \cdot x\right)\right)\right)\\
\end{array}
\end{array}
if x < -2.5000000000000001e-23Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower-*.f6416.8
Applied rewrites16.8%
if -2.5000000000000001e-23 < x < 5.5999999999999998e-201Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
if 5.5999999999999998e-201 < x < 5.10000000000000024e64Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.4
Applied rewrites17.4%
if 5.10000000000000024e64 < x Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y5 -2.55e-23) (* y3 (* -1.0 (* a (* y y5)))) (if (<= y5 1.05e+104) (* b (* y0 (* k z))) (* y2 (* y1 (* k y4))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -2.55e-23) {
tmp = y3 * (-1.0 * (a * (y * y5)));
} else if (y5 <= 1.05e+104) {
tmp = b * (y0 * (k * z));
} else {
tmp = y2 * (y1 * (k * y4));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-2.55d-23)) then
tmp = y3 * ((-1.0d0) * (a * (y * y5)))
else if (y5 <= 1.05d+104) then
tmp = b * (y0 * (k * z))
else
tmp = y2 * (y1 * (k * y4))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -2.55e-23) {
tmp = y3 * (-1.0 * (a * (y * y5)));
} else if (y5 <= 1.05e+104) {
tmp = b * (y0 * (k * z));
} else {
tmp = y2 * (y1 * (k * y4));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -2.55e-23: tmp = y3 * (-1.0 * (a * (y * y5))) elif y5 <= 1.05e+104: tmp = b * (y0 * (k * z)) else: tmp = y2 * (y1 * (k * y4)) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -2.55e-23) tmp = Float64(y3 * Float64(-1.0 * Float64(a * Float64(y * y5)))); elseif (y5 <= 1.05e+104) tmp = Float64(b * Float64(y0 * Float64(k * z))); else tmp = Float64(y2 * Float64(y1 * Float64(k * y4))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -2.55e-23) tmp = y3 * (-1.0 * (a * (y * y5))); elseif (y5 <= 1.05e+104) tmp = b * (y0 * (k * z)); else tmp = y2 * (y1 * (k * y4)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -2.55e-23], N[(y3 * N[(-1.0 * N[(a * N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.05e+104], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y1 * N[(k * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -2.55 \cdot 10^{-23}:\\
\;\;\;\;y3 \cdot \left(-1 \cdot \left(a \cdot \left(y \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 1.05 \cdot 10^{+104}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y1 \cdot \left(k \cdot y4\right)\right)\\
\end{array}
\end{array}
if y5 < -2.55000000000000005e-23Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.5
Applied rewrites17.5%
if -2.55000000000000005e-23 < y5 < 1.0499999999999999e104Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
if 1.0499999999999999e104 < y5 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
Taylor expanded in x around 0
lower-*.f6417.9
Applied rewrites17.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y5 -5.5e-24) (* a (* t (* y2 y5))) (if (<= y5 1.05e+104) (* b (* y0 (* k z))) (* y2 (* y1 (* k y4))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -5.5e-24) {
tmp = a * (t * (y2 * y5));
} else if (y5 <= 1.05e+104) {
tmp = b * (y0 * (k * z));
} else {
tmp = y2 * (y1 * (k * y4));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y5 <= (-5.5d-24)) then
tmp = a * (t * (y2 * y5))
else if (y5 <= 1.05d+104) then
tmp = b * (y0 * (k * z))
else
tmp = y2 * (y1 * (k * y4))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y5 <= -5.5e-24) {
tmp = a * (t * (y2 * y5));
} else if (y5 <= 1.05e+104) {
tmp = b * (y0 * (k * z));
} else {
tmp = y2 * (y1 * (k * y4));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -5.5e-24: tmp = a * (t * (y2 * y5)) elif y5 <= 1.05e+104: tmp = b * (y0 * (k * z)) else: tmp = y2 * (y1 * (k * y4)) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y5 <= -5.5e-24) tmp = Float64(a * Float64(t * Float64(y2 * y5))); elseif (y5 <= 1.05e+104) tmp = Float64(b * Float64(y0 * Float64(k * z))); else tmp = Float64(y2 * Float64(y1 * Float64(k * y4))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y5 <= -5.5e-24) tmp = a * (t * (y2 * y5)); elseif (y5 <= 1.05e+104) tmp = b * (y0 * (k * z)); else tmp = y2 * (y1 * (k * y4)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y5, -5.5e-24], N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.05e+104], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y2 * N[(y1 * N[(k * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -5.5 \cdot 10^{-24}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq 1.05 \cdot 10^{+104}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y2 \cdot \left(y1 \cdot \left(k \cdot y4\right)\right)\\
\end{array}
\end{array}
if y5 < -5.4999999999999999e-24Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if -5.4999999999999999e-24 < y5 < 1.0499999999999999e104Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
if 1.0499999999999999e104 < y5 Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
Taylor expanded in x around 0
lower-*.f6417.9
Applied rewrites17.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* a (* t (* y2 y5))))) (if (<= y5 -5.5e-24) t_1 (if (<= y5 1.5e+54) (* b (* y0 (* k z))) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = a * (t * (y2 * y5));
double tmp;
if (y5 <= -5.5e-24) {
tmp = t_1;
} else if (y5 <= 1.5e+54) {
tmp = b * (y0 * (k * z));
} else {
tmp = t_1;
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = a * (t * (y2 * y5))
if (y5 <= (-5.5d-24)) then
tmp = t_1
else if (y5 <= 1.5d+54) then
tmp = b * (y0 * (k * z))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = a * (t * (y2 * y5));
double tmp;
if (y5 <= -5.5e-24) {
tmp = t_1;
} else if (y5 <= 1.5e+54) {
tmp = b * (y0 * (k * z));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = a * (t * (y2 * y5)) tmp = 0 if y5 <= -5.5e-24: tmp = t_1 elif y5 <= 1.5e+54: tmp = b * (y0 * (k * z)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(a * Float64(t * Float64(y2 * y5))) tmp = 0.0 if (y5 <= -5.5e-24) tmp = t_1; elseif (y5 <= 1.5e+54) tmp = Float64(b * Float64(y0 * Float64(k * z))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = a * (t * (y2 * y5)); tmp = 0.0; if (y5 <= -5.5e-24) tmp = t_1; elseif (y5 <= 1.5e+54) tmp = b * (y0 * (k * z)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -5.5e-24], t$95$1, If[LessEqual[y5, 1.5e+54], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{if}\;y5 \leq -5.5 \cdot 10^{-24}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq 1.5 \cdot 10^{+54}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -5.4999999999999999e-24 or 1.4999999999999999e54 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if -5.4999999999999999e-24 < y5 < 1.4999999999999999e54Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f6416.9
Applied rewrites16.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* a (* t (* y2 y5))))) (if (<= y5 -5e-24) t_1 (if (<= y5 1.5e+54) (* b (* k (* y0 z))) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = a * (t * (y2 * y5));
double tmp;
if (y5 <= -5e-24) {
tmp = t_1;
} else if (y5 <= 1.5e+54) {
tmp = b * (k * (y0 * z));
} else {
tmp = t_1;
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = a * (t * (y2 * y5))
if (y5 <= (-5d-24)) then
tmp = t_1
else if (y5 <= 1.5d+54) then
tmp = b * (k * (y0 * z))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = a * (t * (y2 * y5));
double tmp;
if (y5 <= -5e-24) {
tmp = t_1;
} else if (y5 <= 1.5e+54) {
tmp = b * (k * (y0 * z));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = a * (t * (y2 * y5)) tmp = 0 if y5 <= -5e-24: tmp = t_1 elif y5 <= 1.5e+54: tmp = b * (k * (y0 * z)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(a * Float64(t * Float64(y2 * y5))) tmp = 0.0 if (y5 <= -5e-24) tmp = t_1; elseif (y5 <= 1.5e+54) tmp = Float64(b * Float64(k * Float64(y0 * z))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = a * (t * (y2 * y5)); tmp = 0.0; if (y5 <= -5e-24) tmp = t_1; elseif (y5 <= 1.5e+54) tmp = b * (k * (y0 * z)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -5e-24], t$95$1, If[LessEqual[y5, 1.5e+54], N[(b * N[(k * N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{if}\;y5 \leq -5 \cdot 10^{-24}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq 1.5 \cdot 10^{+54}:\\
\;\;\;\;b \cdot \left(k \cdot \left(y0 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -4.9999999999999998e-24 or 1.4999999999999999e54 < y5 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if -4.9999999999999998e-24 < y5 < 1.4999999999999999e54Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in x around 0
lower-*.f64N/A
lower-*.f6416.9
Applied rewrites16.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y2 -7.8e-73) (* a (* y5 (* t y2))) (if (<= y2 9.2e+27) (* y3 (* y5 (* j y0))) (* a (* t (* y2 y5))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y2 <= -7.8e-73) {
tmp = a * (y5 * (t * y2));
} else if (y2 <= 9.2e+27) {
tmp = y3 * (y5 * (j * y0));
} else {
tmp = a * (t * (y2 * y5));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y2 <= (-7.8d-73)) then
tmp = a * (y5 * (t * y2))
else if (y2 <= 9.2d+27) then
tmp = y3 * (y5 * (j * y0))
else
tmp = a * (t * (y2 * y5))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y2 <= -7.8e-73) {
tmp = a * (y5 * (t * y2));
} else if (y2 <= 9.2e+27) {
tmp = y3 * (y5 * (j * y0));
} else {
tmp = a * (t * (y2 * y5));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y2 <= -7.8e-73: tmp = a * (y5 * (t * y2)) elif y2 <= 9.2e+27: tmp = y3 * (y5 * (j * y0)) else: tmp = a * (t * (y2 * y5)) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y2 <= -7.8e-73) tmp = Float64(a * Float64(y5 * Float64(t * y2))); elseif (y2 <= 9.2e+27) tmp = Float64(y3 * Float64(y5 * Float64(j * y0))); else tmp = Float64(a * Float64(t * Float64(y2 * y5))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y2 <= -7.8e-73) tmp = a * (y5 * (t * y2)); elseif (y2 <= 9.2e+27) tmp = y3 * (y5 * (j * y0)); else tmp = a * (t * (y2 * y5)); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y2, -7.8e-73], N[(a * N[(y5 * N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 9.2e+27], N[(y3 * N[(y5 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y2 \leq -7.8 \cdot 10^{-73}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2\right)\right)\\
\mathbf{elif}\;y2 \leq 9.2 \cdot 10^{+27}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\end{array}
\end{array}
if y2 < -7.79999999999999963e-73Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f6417.4
Applied rewrites17.4%
if -7.79999999999999963e-73 < y2 < 9.2000000000000002e27Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around 0
lower-*.f6417.2
Applied rewrites17.2%
if 9.2000000000000002e27 < y2 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* j (* y0 (* y3 y5))))) (if (<= y3 -5.7e+146) t_1 (if (<= y3 1.45e-43) (* a (* y5 (* t y2))) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = j * (y0 * (y3 * y5));
double tmp;
if (y3 <= -5.7e+146) {
tmp = t_1;
} else if (y3 <= 1.45e-43) {
tmp = a * (y5 * (t * y2));
} else {
tmp = t_1;
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = j * (y0 * (y3 * y5))
if (y3 <= (-5.7d+146)) then
tmp = t_1
else if (y3 <= 1.45d-43) then
tmp = a * (y5 * (t * y2))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = j * (y0 * (y3 * y5));
double tmp;
if (y3 <= -5.7e+146) {
tmp = t_1;
} else if (y3 <= 1.45e-43) {
tmp = a * (y5 * (t * y2));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = j * (y0 * (y3 * y5)) tmp = 0 if y3 <= -5.7e+146: tmp = t_1 elif y3 <= 1.45e-43: tmp = a * (y5 * (t * y2)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(j * Float64(y0 * Float64(y3 * y5))) tmp = 0.0 if (y3 <= -5.7e+146) tmp = t_1; elseif (y3 <= 1.45e-43) tmp = Float64(a * Float64(y5 * Float64(t * y2))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = j * (y0 * (y3 * y5)); tmp = 0.0; if (y3 <= -5.7e+146) tmp = t_1; elseif (y3 <= 1.45e-43) tmp = a * (y5 * (t * y2)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(j * N[(y0 * N[(y3 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y3, -5.7e+146], t$95$1, If[LessEqual[y3, 1.45e-43], N[(a * N[(y5 * N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := j \cdot \left(y0 \cdot \left(y3 \cdot y5\right)\right)\\
\mathbf{if}\;y3 \leq -5.7 \cdot 10^{+146}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y3 \leq 1.45 \cdot 10^{-43}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y3 < -5.6999999999999999e146 or 1.4500000000000001e-43 < y3 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if -5.6999999999999999e146 < y3 < 1.4500000000000001e-43Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f6417.4
Applied rewrites17.4%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* j (* y0 (* y3 y5))))) (if (<= y3 -3.6e+169) t_1 (if (<= y3 1.45e-43) (* a (* t (* y2 y5))) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = j * (y0 * (y3 * y5));
double tmp;
if (y3 <= -3.6e+169) {
tmp = t_1;
} else if (y3 <= 1.45e-43) {
tmp = a * (t * (y2 * y5));
} else {
tmp = t_1;
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = j * (y0 * (y3 * y5))
if (y3 <= (-3.6d+169)) then
tmp = t_1
else if (y3 <= 1.45d-43) then
tmp = a * (t * (y2 * y5))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = j * (y0 * (y3 * y5));
double tmp;
if (y3 <= -3.6e+169) {
tmp = t_1;
} else if (y3 <= 1.45e-43) {
tmp = a * (t * (y2 * y5));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = j * (y0 * (y3 * y5)) tmp = 0 if y3 <= -3.6e+169: tmp = t_1 elif y3 <= 1.45e-43: tmp = a * (t * (y2 * y5)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(j * Float64(y0 * Float64(y3 * y5))) tmp = 0.0 if (y3 <= -3.6e+169) tmp = t_1; elseif (y3 <= 1.45e-43) tmp = Float64(a * Float64(t * Float64(y2 * y5))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = j * (y0 * (y3 * y5)); tmp = 0.0; if (y3 <= -3.6e+169) tmp = t_1; elseif (y3 <= 1.45e-43) tmp = a * (t * (y2 * y5)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(j * N[(y0 * N[(y3 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y3, -3.6e+169], t$95$1, If[LessEqual[y3, 1.45e-43], N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := j \cdot \left(y0 \cdot \left(y3 \cdot y5\right)\right)\\
\mathbf{if}\;y3 \leq -3.6 \cdot 10^{+169}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y3 \leq 1.45 \cdot 10^{-43}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y3 < -3.6000000000000001e169 or 1.4500000000000001e-43 < y3 Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if -3.6000000000000001e169 < y3 < 1.4500000000000001e-43Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (* j (* y0 (* y3 y5))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return j * (y0 * (y3 * y5));
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
code = j * (y0 * (y3 * y5))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return j * (y0 * (y3 * y5));
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): return j * (y0 * (y3 * y5))
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(j * Float64(y0 * Float64(y3 * y5))) end
function tmp = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = j * (y0 * (y3 * y5)); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(j * N[(y0 * N[(y3 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
j \cdot \left(y0 \cdot \left(y3 \cdot y5\right)\right)
\end{array}
Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.8
Applied rewrites26.8%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
herbie shell --seed 2025156
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:name "Linear.Matrix:det44 from linear-1.19.1.3"
:precision binary64
(+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))