
(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 37 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 (- (* c y0) (* a y1)))
(t_2 (- (* k y2) (* j y3)))
(t_3 (- (* a b) (* c i)))
(t_4
(* -1.0 (* z (- (fma t t_3 (* y3 t_1)) (* k (- (* b y0) (* i y1)))))))
(t_5 (- (* j t) (* k y)))
(t_6 (- (* t y2) (* y y3))))
(if (<= y5 -9.5e+43)
(* -1.0 (* y5 (- (fma i t_5 (* y0 t_2)) (* a t_6))))
(if (<= y5 -2.6e-11)
(* k (* y5 (fma -1.0 (* y0 y2) (* i y))))
(if (<= y5 -2.8e-96)
(+ (* y4 (- (* b t_5) (* c t_6))) (* t_2 (- (* y4 y1) (* y5 y0))))
(if (<= y5 -1.82e-298)
t_4
(if (<= y5 2.2e-134)
(*
x
(-
(fma y t_3 (* y2 t_1))
(fma -1.0 (* i (* j y1)) (* b (* j y0)))))
(if (<= y5 7.2e-65)
t_4
(if (<= y5 5.7e+246)
(*
y2
(-
(fma k (- (* y1 y4) (* y0 y5)) (* x t_1))
(* t (- (* c y4) (* a 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 t_1 = (c * y0) - (a * y1);
double t_2 = (k * y2) - (j * y3);
double t_3 = (a * b) - (c * i);
double t_4 = -1.0 * (z * (fma(t, t_3, (y3 * t_1)) - (k * ((b * y0) - (i * y1)))));
double t_5 = (j * t) - (k * y);
double t_6 = (t * y2) - (y * y3);
double tmp;
if (y5 <= -9.5e+43) {
tmp = -1.0 * (y5 * (fma(i, t_5, (y0 * t_2)) - (a * t_6)));
} 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_5) - (c * t_6))) + (t_2 * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= -1.82e-298) {
tmp = t_4;
} else if (y5 <= 2.2e-134) {
tmp = x * (fma(y, t_3, (y2 * t_1)) - fma(-1.0, (i * (j * y1)), (b * (j * y0))));
} else if (y5 <= 7.2e-65) {
tmp = t_4;
} else if (y5 <= 5.7e+246) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_1)) - (t * ((c * y4) - (a * 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) 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(-1.0 * Float64(z * Float64(fma(t, t_3, Float64(y3 * t_1)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))) t_5 = Float64(Float64(j * t) - Float64(k * y)) t_6 = 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_5, Float64(y0 * t_2)) - Float64(a * t_6)))); 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_5) - Float64(c * t_6))) + Float64(t_2 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= -1.82e-298) tmp = t_4; elseif (y5 <= 2.2e-134) 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 <= 7.2e-65) tmp = t_4; elseif (y5 <= 5.7e+246) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * t_1)) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); 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[(-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]}, Block[{t$95$5 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = 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$5 + N[(y0 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(a * t$95$6), $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$5), $MachinePrecision] - N[(c * t$95$6), $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], t$95$4, If[LessEqual[y5, 2.2e-134], 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, 7.2e-65], t$95$4, If[LessEqual[y5, 5.7e+246], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $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}
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 := -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)\\
t_5 := j \cdot t - k \cdot y\\
t_6 := 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\_5, y0 \cdot t\_2\right) - a \cdot t\_6\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\_5 - c \cdot t\_6\right) + t\_2 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq -1.82 \cdot 10^{-298}:\\
\;\;\;\;t\_4\\
\mathbf{elif}\;y5 \leq 2.2 \cdot 10^{-134}:\\
\;\;\;\;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 7.2 \cdot 10^{-65}:\\
\;\;\;\;t\_4\\
\mathbf{elif}\;y5 \leq 5.7 \cdot 10^{+246}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot t\_1\right) - t \cdot \left(c \cdot y4 - a \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 < -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-298 or 2.2e-134 < y5 < 7.1999999999999996e-65Initial 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.2e-134Initial 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 7.1999999999999996e-65 < y5 < 5.7e246Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if 5.7e246 < 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 (* t (- (* c y4) (* a y5))))
(t_5 (- (* j t) (* k y)))
(t_6
(*
-1.0
(* z (- (fma t t_1 (* y3 t_3)) (* k (- (* b y0) (* i y1))))))))
(if (<= y5 -6.2e+94)
(* -1.0 (* y5 (- (fma i t_5 (* y0 t_2)) (* a (- (* t y2) (* y y3))))))
(if (<= y5 -3.8e-28)
(* y2 (- (* -1.0 (* a (* x y1))) t_4))
(if (<= y5 -5.5e-139)
(+ (* b (* y4 t_5)) (* t_2 (- (* y4 y1) (* y5 y0))))
(if (<= y5 -1.82e-298)
t_6
(if (<= y5 2.2e-134)
(*
x
(-
(fma y t_1 (* y2 t_3))
(fma -1.0 (* i (* j y1)) (* b (* j y0)))))
(if (<= y5 7.2e-65)
t_6
(if (<= y5 5.7e+246)
(* y2 (- (fma k (- (* y1 y4) (* y0 y5)) (* x t_3)) t_4))
(* 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 = t * ((c * y4) - (a * y5));
double t_5 = (j * t) - (k * y);
double t_6 = -1.0 * (z * (fma(t, t_1, (y3 * t_3)) - (k * ((b * y0) - (i * y1)))));
double tmp;
if (y5 <= -6.2e+94) {
tmp = -1.0 * (y5 * (fma(i, t_5, (y0 * t_2)) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -3.8e-28) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - t_4);
} else if (y5 <= -5.5e-139) {
tmp = (b * (y4 * t_5)) + (t_2 * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= -1.82e-298) {
tmp = t_6;
} else if (y5 <= 2.2e-134) {
tmp = x * (fma(y, t_1, (y2 * t_3)) - fma(-1.0, (i * (j * y1)), (b * (j * y0))));
} else if (y5 <= 7.2e-65) {
tmp = t_6;
} else if (y5 <= 5.7e+246) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_3)) - t_4);
} 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(t * Float64(Float64(c * y4) - Float64(a * y5))) t_5 = Float64(Float64(j * t) - Float64(k * y)) t_6 = 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 <= -6.2e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_5, Float64(y0 * t_2)) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -3.8e-28) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - t_4)); elseif (y5 <= -5.5e-139) tmp = Float64(Float64(b * Float64(y4 * t_5)) + Float64(t_2 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= -1.82e-298) tmp = t_6; elseif (y5 <= 2.2e-134) 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 <= 7.2e-65) tmp = t_6; elseif (y5 <= 5.7e+246) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * t_3)) - t_4)); 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[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = 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, -6.2e+94], N[(-1.0 * N[(y5 * N[(N[(i * t$95$5 + 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, -3.8e-28], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$4), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.5e-139], N[(N[(b * N[(y4 * t$95$5), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.82e-298], t$95$6, If[LessEqual[y5, 2.2e-134], 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, 7.2e-65], t$95$6, If[LessEqual[y5, 5.7e+246], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$3), $MachinePrecision]), $MachinePrecision] - t$95$4), $MachinePrecision]), $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 := t \cdot \left(c \cdot y4 - a \cdot y5\right)\\
t_5 := j \cdot t - k \cdot y\\
t_6 := -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 -6.2 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_5, y0 \cdot t\_2\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -3.8 \cdot 10^{-28}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t\_4\right)\\
\mathbf{elif}\;y5 \leq -5.5 \cdot 10^{-139}:\\
\;\;\;\;b \cdot \left(y4 \cdot t\_5\right) + t\_2 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq -1.82 \cdot 10^{-298}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y5 \leq 2.2 \cdot 10^{-134}:\\
\;\;\;\;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 7.2 \cdot 10^{-65}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y5 \leq 5.7 \cdot 10^{+246}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot t\_3\right) - t\_4\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -6.19999999999999983e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -6.19999999999999983e94 < y5 < -3.80000000000000009e-28Initial 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 -3.80000000000000009e-28 < y5 < -5.4999999999999997e-139Initial 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 -5.4999999999999997e-139 < y5 < -1.8199999999999999e-298 or 2.2e-134 < y5 < 7.1999999999999996e-65Initial 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.2e-134Initial 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 7.1999999999999996e-65 < y5 < 5.7e246Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if 5.7e246 < 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 (* t (- (* c y4) (* a y5))))
(t_5 (- (* j t) (* k y)))
(t_6
(*
-1.0
(* z (- (fma t t_1 (* y3 t_3)) (* k (- (* b y0) (* i y1))))))))
(if (<= y5 -6.2e+94)
(* -1.0 (* y5 (- (fma i t_5 (* y0 t_2)) (* a (- (* t y2) (* y y3))))))
(if (<= y5 -3.8e-28)
(* y2 (- (* -1.0 (* a (* x y1))) t_4))
(if (<= y5 -5.5e-139)
(+ (* b (* y4 t_5)) (* t_2 (- (* y4 y1) (* y5 y0))))
(if (<= y5 -2.1e-298)
t_6
(if (<= y5 5.6e-147)
(* x (fma y t_1 (* y2 t_3)))
(if (<= y5 7.2e-65)
t_6
(if (<= y5 5.7e+246)
(* y2 (- (fma k (- (* y1 y4) (* y0 y5)) (* x t_3)) t_4))
(* 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 = t * ((c * y4) - (a * y5));
double t_5 = (j * t) - (k * y);
double t_6 = -1.0 * (z * (fma(t, t_1, (y3 * t_3)) - (k * ((b * y0) - (i * y1)))));
double tmp;
if (y5 <= -6.2e+94) {
tmp = -1.0 * (y5 * (fma(i, t_5, (y0 * t_2)) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -3.8e-28) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - t_4);
} else if (y5 <= -5.5e-139) {
tmp = (b * (y4 * t_5)) + (t_2 * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= -2.1e-298) {
tmp = t_6;
} else if (y5 <= 5.6e-147) {
tmp = x * fma(y, t_1, (y2 * t_3));
} else if (y5 <= 7.2e-65) {
tmp = t_6;
} else if (y5 <= 5.7e+246) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_3)) - t_4);
} 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(t * Float64(Float64(c * y4) - Float64(a * y5))) t_5 = Float64(Float64(j * t) - Float64(k * y)) t_6 = 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 <= -6.2e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_5, Float64(y0 * t_2)) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -3.8e-28) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - t_4)); elseif (y5 <= -5.5e-139) tmp = Float64(Float64(b * Float64(y4 * t_5)) + Float64(t_2 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (y5 <= -2.1e-298) tmp = t_6; elseif (y5 <= 5.6e-147) tmp = Float64(x * fma(y, t_1, Float64(y2 * t_3))); elseif (y5 <= 7.2e-65) tmp = t_6; elseif (y5 <= 5.7e+246) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * t_3)) - t_4)); 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[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = 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, -6.2e+94], N[(-1.0 * N[(y5 * N[(N[(i * t$95$5 + 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, -3.8e-28], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$4), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.5e-139], N[(N[(b * N[(y4 * t$95$5), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.1e-298], t$95$6, If[LessEqual[y5, 5.6e-147], N[(x * N[(y * t$95$1 + N[(y2 * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 7.2e-65], t$95$6, If[LessEqual[y5, 5.7e+246], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$3), $MachinePrecision]), $MachinePrecision] - t$95$4), $MachinePrecision]), $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 := t \cdot \left(c \cdot y4 - a \cdot y5\right)\\
t_5 := j \cdot t - k \cdot y\\
t_6 := -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 -6.2 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_5, y0 \cdot t\_2\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -3.8 \cdot 10^{-28}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t\_4\right)\\
\mathbf{elif}\;y5 \leq -5.5 \cdot 10^{-139}:\\
\;\;\;\;b \cdot \left(y4 \cdot t\_5\right) + t\_2 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \leq -2.1 \cdot 10^{-298}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y5 \leq 5.6 \cdot 10^{-147}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, t\_1, y2 \cdot t\_3\right)\\
\mathbf{elif}\;y5 \leq 7.2 \cdot 10^{-65}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y5 \leq 5.7 \cdot 10^{+246}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot t\_3\right) - t\_4\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -6.19999999999999983e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -6.19999999999999983e94 < y5 < -3.80000000000000009e-28Initial 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 -3.80000000000000009e-28 < y5 < -5.4999999999999997e-139Initial 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 -5.4999999999999997e-139 < y5 < -2.10000000000000005e-298 or 5.6000000000000001e-147 < y5 < 7.1999999999999996e-65Initial program 30.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
if -2.10000000000000005e-298 < y5 < 5.6000000000000001e-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 7.1999999999999996e-65 < y5 < 5.7e246Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if 5.7e246 < 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 x) (* k z)))
(t_2
(*
y2
(-
(fma k (- (* y1 y4) (* y0 y5)) (* x (- (* c y0) (* a y1))))
(* t (- (* c y4) (* a y5))))))
(t_3
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 t_1))))
(t_4 (- (* k y2) (* j y3))))
(if (<= b -4.2e+184)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b -3.8e+116)
t_3
(if (<= b -3.5e-209)
t_2
(if (<= b 2.9e-168)
(+
(* c (* y4 (- (* y y3) (* t y2))))
(* t_4 (- (* y4 y1) (* y5 y0))))
(if (<= b 8.4e+68)
(*
y1
(-
(fma -1.0 (* a (- (* x y2) (* y3 z))) (* y4 t_4))
(* -1.0 (* i t_1))))
(if (<= b 1.6e+149) t_2 t_3))))))))
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 * x) - (k * z);
double t_2 = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * ((c * y0) - (a * y1)))) - (t * ((c * y4) - (a * y5))));
double t_3 = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * t_1));
double t_4 = (k * y2) - (j * y3);
double tmp;
if (b <= -4.2e+184) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -3.8e+116) {
tmp = t_3;
} else if (b <= -3.5e-209) {
tmp = t_2;
} else if (b <= 2.9e-168) {
tmp = (c * (y4 * ((y * y3) - (t * y2)))) + (t_4 * ((y4 * y1) - (y5 * y0)));
} else if (b <= 8.4e+68) {
tmp = y1 * (fma(-1.0, (a * ((x * y2) - (y3 * z))), (y4 * t_4)) - (-1.0 * (i * t_1)));
} else if (b <= 1.6e+149) {
tmp = t_2;
} else {
tmp = t_3;
}
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 * x) - Float64(k * z)) t_2 = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))) t_3 = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) - Float64(y0 * t_1))) t_4 = Float64(Float64(k * y2) - Float64(j * y3)) tmp = 0.0 if (b <= -4.2e+184) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= -3.8e+116) tmp = t_3; elseif (b <= -3.5e-209) tmp = t_2; elseif (b <= 2.9e-168) tmp = Float64(Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))) + Float64(t_4 * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (b <= 8.4e+68) tmp = Float64(y1 * Float64(fma(-1.0, Float64(a * Float64(Float64(x * y2) - Float64(y3 * z))), Float64(y4 * t_4)) - Float64(-1.0 * Float64(i * t_1)))); elseif (b <= 1.6e+149) tmp = t_2; else tmp = t_3; 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 * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = 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 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -4.2e+184], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -3.8e+116], t$95$3, If[LessEqual[b, -3.5e-209], t$95$2, If[LessEqual[b, 2.9e-168], N[(N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$4 * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 8.4e+68], N[(y1 * N[(N[(-1.0 * N[(a * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(y4 * t$95$4), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(i * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.6e+149], t$95$2, t$95$3]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := j \cdot x - k \cdot z\\
t_2 := y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
t_3 := 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 t\_1\right)\\
t_4 := k \cdot y2 - j \cdot y3\\
\mathbf{if}\;b \leq -4.2 \cdot 10^{+184}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq -3.8 \cdot 10^{+116}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;b \leq -3.5 \cdot 10^{-209}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;b \leq 2.9 \cdot 10^{-168}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right) + t\_4 \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;b \leq 8.4 \cdot 10^{+68}:\\
\;\;\;\;y1 \cdot \left(\mathsf{fma}\left(-1, a \cdot \left(x \cdot y2 - y3 \cdot z\right), y4 \cdot t\_4\right) - -1 \cdot \left(i \cdot t\_1\right)\right)\\
\mathbf{elif}\;b \leq 1.6 \cdot 10^{+149}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if b < -4.2e184Initial 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 -4.2e184 < b < -3.7999999999999999e116 or 1.6000000000000001e149 < b Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if -3.7999999999999999e116 < b < -3.50000000000000002e-209 or 8.40000000000000003e68 < b < 1.6000000000000001e149Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if -3.50000000000000002e-209 < b < 2.8999999999999998e-168Initial 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%
if 2.8999999999999998e-168 < b < 8.40000000000000003e68Initial 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
Applied rewrites36.4%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* t (- (* c y4) (* a y5))))
(t_2 (- (* a b) (* c i)))
(t_3 (- (* y1 y4) (* y0 y5)))
(t_4 (- (* c y0) (* a y1)))
(t_5 (- (* b y0) (* i y1))))
(if (<= y5 -6.2e+94)
(*
-1.0
(*
y5
(-
(fma i (- (* j t) (* k y)) (* y0 (- (* k y2) (* j y3))))
(* a (- (* t y2) (* y y3))))))
(if (<= y5 -3.1e-27)
(* y2 (- (* -1.0 (* a (* x y1))) t_1))
(if (<= y5 -6.8e-183)
(*
k
(-
(fma -1.0 (* y (- (* b y4) (* i y5))) (* y2 t_3))
(* -1.0 (* z t_5))))
(if (<= y5 2.2e-134)
(*
x
(-
(fma y t_2 (* y2 t_4))
(fma -1.0 (* i (* j y1)) (* b (* j y0)))))
(if (<= y5 7.2e-65)
(* -1.0 (* z (- (fma t t_2 (* y3 t_4)) (* k t_5))))
(if (<= y5 5.7e+246)
(* y2 (- (fma k t_3 (* x t_4)) t_1))
(* 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 = t * ((c * y4) - (a * y5));
double t_2 = (a * b) - (c * i);
double t_3 = (y1 * y4) - (y0 * y5);
double t_4 = (c * y0) - (a * y1);
double t_5 = (b * y0) - (i * y1);
double tmp;
if (y5 <= -6.2e+94) {
tmp = -1.0 * (y5 * (fma(i, ((j * t) - (k * y)), (y0 * ((k * y2) - (j * y3)))) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -3.1e-27) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - t_1);
} else if (y5 <= -6.8e-183) {
tmp = k * (fma(-1.0, (y * ((b * y4) - (i * y5))), (y2 * t_3)) - (-1.0 * (z * t_5)));
} else if (y5 <= 2.2e-134) {
tmp = x * (fma(y, t_2, (y2 * t_4)) - fma(-1.0, (i * (j * y1)), (b * (j * y0))));
} else if (y5 <= 7.2e-65) {
tmp = -1.0 * (z * (fma(t, t_2, (y3 * t_4)) - (k * t_5)));
} else if (y5 <= 5.7e+246) {
tmp = y2 * (fma(k, t_3, (x * t_4)) - t_1);
} 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(t * Float64(Float64(c * y4) - Float64(a * y5))) t_2 = Float64(Float64(a * b) - Float64(c * i)) t_3 = Float64(Float64(y1 * y4) - Float64(y0 * y5)) t_4 = Float64(Float64(c * y0) - Float64(a * y1)) t_5 = Float64(Float64(b * y0) - Float64(i * y1)) tmp = 0.0 if (y5 <= -6.2e+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 <= -3.1e-27) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - t_1)); elseif (y5 <= -6.8e-183) tmp = Float64(k * Float64(fma(-1.0, Float64(y * Float64(Float64(b * y4) - Float64(i * y5))), Float64(y2 * t_3)) - Float64(-1.0 * Float64(z * t_5)))); elseif (y5 <= 2.2e-134) tmp = Float64(x * Float64(fma(y, t_2, Float64(y2 * t_4)) - fma(-1.0, Float64(i * Float64(j * y1)), Float64(b * Float64(j * y0))))); elseif (y5 <= 7.2e-65) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, t_2, Float64(y3 * t_4)) - Float64(k * t_5)))); elseif (y5 <= 5.7e+246) tmp = Float64(y2 * Float64(fma(k, t_3, Float64(x * t_4)) - t_1)); 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[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -6.2e+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, -3.1e-27], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -6.8e-183], N[(k * N[(N[(-1.0 * N[(y * N[(N[(b * y4), $MachinePrecision] - N[(i * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(y2 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(z * t$95$5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.2e-134], N[(x * N[(N[(y * t$95$2 + N[(y2 * t$95$4), $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, 7.2e-65], N[(-1.0 * N[(z * N[(N[(t * t$95$2 + N[(y3 * t$95$4), $MachinePrecision]), $MachinePrecision] - N[(k * t$95$5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.7e+246], N[(y2 * N[(N[(k * t$95$3 + N[(x * t$95$4), $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision]), $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 := t \cdot \left(c \cdot y4 - a \cdot y5\right)\\
t_2 := a \cdot b - c \cdot i\\
t_3 := y1 \cdot y4 - y0 \cdot y5\\
t_4 := c \cdot y0 - a \cdot y1\\
t_5 := b \cdot y0 - i \cdot y1\\
\mathbf{if}\;y5 \leq -6.2 \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 -3.1 \cdot 10^{-27}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t\_1\right)\\
\mathbf{elif}\;y5 \leq -6.8 \cdot 10^{-183}:\\
\;\;\;\;k \cdot \left(\mathsf{fma}\left(-1, y \cdot \left(b \cdot y4 - i \cdot y5\right), y2 \cdot t\_3\right) - -1 \cdot \left(z \cdot t\_5\right)\right)\\
\mathbf{elif}\;y5 \leq 2.2 \cdot 10^{-134}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, t\_2, y2 \cdot t\_4\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 7.2 \cdot 10^{-65}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, t\_2, y3 \cdot t\_4\right) - k \cdot t\_5\right)\right)\\
\mathbf{elif}\;y5 \leq 5.7 \cdot 10^{+246}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, t\_3, x \cdot t\_4\right) - t\_1\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -6.19999999999999983e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -6.19999999999999983e94 < y5 < -3.0999999999999998e-27Initial 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 -3.0999999999999998e-27 < y5 < -6.80000000000000029e-183Initial program 30.1%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if -6.80000000000000029e-183 < y5 < 2.2e-134Initial 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.2e-134 < y5 < 7.1999999999999996e-65Initial program 30.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
if 7.1999999999999996e-65 < y5 < 5.7e246Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if 5.7e246 < 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 -8e+61)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -3.8e-28)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -1.95e-153)
(+
(* b (* y4 (- (* j t) (* k y))))
(* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))
(if (<= y5 2.05e-88)
(* x (fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1)))))
(if (<= y5 2.8e-43)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y5 6.4e+246)
(*
(-
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k))
(* (- (* y4 c) (* y5 a)) t))
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 <= -8e+61) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -3.8e-28) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -1.95e-153) {
tmp = (b * (y4 * ((j * t) - (k * y)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)));
} else if (y5 <= 2.05e-88) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1))));
} else if (y5 <= 2.8e-43) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y5 <= 6.4e+246) {
tmp = (((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k)) - (((y4 * c) - (y5 * a)) * t)) * 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 <= -8e+61) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -3.8e-28) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -1.95e-153) 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 <= 2.05e-88) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); elseif (y5 <= 2.8e-43) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y5 <= 6.4e+246) tmp = Float64(Float64(Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k)) - Float64(Float64(Float64(y4 * c) - Float64(y5 * a)) * t)) * 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, -8e+61], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3.8e-28], 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.95e-153], 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, 2.05e-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, 2.8e-43], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 6.4e+246], N[(N[(N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision] * t), $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 -8 \cdot 10^{+61}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -3.8 \cdot 10^{-28}:\\
\;\;\;\;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.95 \cdot 10^{-153}:\\
\;\;\;\;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 2.05 \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 2.8 \cdot 10^{-43}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 6.4 \cdot 10^{+246}:\\
\;\;\;\;\left(\left(\left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) - \left(y4 \cdot c - y5 \cdot a\right) \cdot t\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 < -7.9999999999999996e61Initial 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 -7.9999999999999996e61 < y5 < -3.80000000000000009e-28Initial 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 -3.80000000000000009e-28 < y5 < -1.9500000000000001e-153Initial 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.9500000000000001e-153 < y5 < 2.0500000000000001e-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 2.0500000000000001e-88 < y5 < 2.7999999999999998e-43Initial 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.7999999999999998e-43 < y5 < 6.40000000000000028e246Initial 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%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6436.4
Applied rewrites36.4%
if 6.40000000000000028e246 < 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 (* t (- (* c y4) (* a y5))))
(t_3 (- (* j t) (* k y))))
(if (<= y5 -6.2e+94)
(*
-1.0
(*
y5
(-
(fma i t_3 (* y0 (- (* k y2) (* j y3))))
(* a (- (* t y2) (* y y3))))))
(if (<= y5 -2e-27)
(* y2 (- (* -1.0 (* a (* x y1))) t_2))
(if (<= y5 -2.5e-164)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 t_3))
(* y0 (- (* j x) (* k z)))))
(if (<= y5 5.8e-68)
(* x (fma y (- (* a b) (* c i)) (* y2 t_1)))
(if (<= y5 5.7e+246)
(* y2 (- (fma k (- (* y1 y4) (* y0 y5)) (* x t_1)) t_2))
(* 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 = t * ((c * y4) - (a * y5));
double t_3 = (j * t) - (k * y);
double tmp;
if (y5 <= -6.2e+94) {
tmp = -1.0 * (y5 * (fma(i, t_3, (y0 * ((k * y2) - (j * y3)))) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -2e-27) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - t_2);
} else if (y5 <= -2.5e-164) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * t_3)) - (y0 * ((j * x) - (k * z))));
} else if (y5 <= 5.8e-68) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * t_1));
} else if (y5 <= 5.7e+246) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_1)) - t_2);
} 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(t * Float64(Float64(c * y4) - Float64(a * y5))) t_3 = Float64(Float64(j * t) - Float64(k * y)) tmp = 0.0 if (y5 <= -6.2e+94) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_3, Float64(y0 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -2e-27) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - t_2)); elseif (y5 <= -2.5e-164) tmp = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * t_3)) - Float64(y0 * Float64(Float64(j * x) - Float64(k * z))))); elseif (y5 <= 5.8e-68) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * t_1))); elseif (y5 <= 5.7e+246) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * t_1)) - t_2)); 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[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -6.2e+94], N[(-1.0 * N[(y5 * N[(N[(i * t$95$3 + 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, -2e-27], N[(y2 * N[(N[(-1.0 * N[(a * N[(x * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$2), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.5e-164], N[(b * N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(y0 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.8e-68], N[(x * N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.7e+246], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$1), $MachinePrecision]), $MachinePrecision] - t$95$2), $MachinePrecision]), $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 := t \cdot \left(c \cdot y4 - a \cdot y5\right)\\
t_3 := j \cdot t - k \cdot y\\
\mathbf{if}\;y5 \leq -6.2 \cdot 10^{+94}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_3, 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 -2 \cdot 10^{-27}:\\
\;\;\;\;y2 \cdot \left(-1 \cdot \left(a \cdot \left(x \cdot y1\right)\right) - t\_2\right)\\
\mathbf{elif}\;y5 \leq -2.5 \cdot 10^{-164}:\\
\;\;\;\;b \cdot \left(\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot t\_3\right) - y0 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 5.8 \cdot 10^{-68}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot t\_1\right)\\
\mathbf{elif}\;y5 \leq 5.7 \cdot 10^{+246}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot t\_1\right) - t\_2\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -6.19999999999999983e94Initial program 30.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if -6.19999999999999983e94 < y5 < -2.0000000000000001e-27Initial 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 -2.0000000000000001e-27 < y5 < -2.49999999999999981e-164Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if -2.49999999999999981e-164 < y5 < 5.8000000000000001e-68Initial 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 5.8000000000000001e-68 < y5 < 5.7e246Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if 5.7e246 < 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 (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
(if (<= y2 -2.9e+100)
(*
y2
(-
(fma k (- (* y1 y4) (* y0 y5)) (* x (- (* c y0) (* a y1))))
(* t (- (* c y4) (* a y5)))))
(if (<= y2 2.8e-186)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 (- (* j x) (* k z)))))
(if (<= y2 1.3e-135)
(+ (* y4 (* -1.0 (* y (- (* b k) (* c y3))))) t_1)
(if (<= y2 7.1e-10)
(* x (- (fma c (* y0 y2) (* y (- (* a b) (* c i)))) (* b (* j y0))))
(if (<= y2 3.5e+155)
(+ (* c (* y4 (- (* y y3) (* t y2)))) t_1)
(*
(-
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k))
(* (- (* y4 c) (* y5 a)) t))
y2))))))))
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 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0));
double tmp;
if (y2 <= -2.9e+100) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * ((c * y0) - (a * y1)))) - (t * ((c * y4) - (a * y5))));
} else if (y2 <= 2.8e-186) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * ((j * x) - (k * z))));
} else if (y2 <= 1.3e-135) {
tmp = (y4 * (-1.0 * (y * ((b * k) - (c * y3))))) + t_1;
} else if (y2 <= 7.1e-10) {
tmp = x * (fma(c, (y0 * y2), (y * ((a * b) - (c * i)))) - (b * (j * y0)));
} else if (y2 <= 3.5e+155) {
tmp = (c * (y4 * ((y * y3) - (t * y2)))) + t_1;
} else {
tmp = (((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k)) - (((y4 * c) - (y5 * a)) * t)) * y2;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0))) tmp = 0.0 if (y2 <= -2.9e+100) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y2 <= 2.8e-186) 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 <= 1.3e-135) tmp = Float64(Float64(y4 * Float64(-1.0 * Float64(y * Float64(Float64(b * k) - Float64(c * y3))))) + t_1); elseif (y2 <= 7.1e-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 <= 3.5e+155) tmp = Float64(Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))) + t_1); else tmp = Float64(Float64(Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k)) - Float64(Float64(Float64(y4 * c) - Float64(y5 * a)) * t)) * y2); 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[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y2, -2.9e+100], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 2.8e-186], 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, 1.3e-135], N[(N[(y4 * N[(-1.0 * N[(y * N[(N[(b * k), $MachinePrecision] - N[(c * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], If[LessEqual[y2, 7.1e-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, 3.5e+155], N[(N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], N[(N[(N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{if}\;y2 \leq -2.9 \cdot 10^{+100}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y2 \leq 2.8 \cdot 10^{-186}:\\
\;\;\;\;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 1.3 \cdot 10^{-135}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y \cdot \left(b \cdot k - c \cdot y3\right)\right)\right) + t\_1\\
\mathbf{elif}\;y2 \leq 7.1 \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 3.5 \cdot 10^{+155}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) - \left(y4 \cdot c - y5 \cdot a\right) \cdot t\right) \cdot y2\\
\end{array}
\end{array}
if y2 < -2.9e100Initial program 30.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
if -2.9e100 < y2 < 2.79999999999999983e-186Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if 2.79999999999999983e-186 < y2 < 1.30000000000000002e-135Initial 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 1.30000000000000002e-135 < y2 < 7.1000000000000003e-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.1000000000000003e-10 < y2 < 3.49999999999999985e155Initial 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%
if 3.49999999999999985e155 < 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%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6436.4
Applied rewrites36.4%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1
(*
(-
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k))
(* (- (* y4 c) (* y5 a)) t))
y2))
(t_2 (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))
(if (<= y2 -1.08e-63)
t_1
(if (<= y2 2.8e-186)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 (- (* j x) (* k z)))))
(if (<= y2 1.3e-135)
(+ (* y4 (* -1.0 (* y (- (* b k) (* c y3))))) t_2)
(if (<= y2 7.1e-10)
(* x (- (fma c (* y0 y2) (* y (- (* a b) (* c i)))) (* b (* j y0))))
(if (<= y2 3.5e+155)
(+ (* 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 = (((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k)) - (((y4 * c) - (y5 * a)) * t)) * y2;
double t_2 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0));
double tmp;
if (y2 <= -1.08e-63) {
tmp = t_1;
} else if (y2 <= 2.8e-186) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * ((j * x) - (k * z))));
} else if (y2 <= 1.3e-135) {
tmp = (y4 * (-1.0 * (y * ((b * k) - (c * y3))))) + t_2;
} else if (y2 <= 7.1e-10) {
tmp = x * (fma(c, (y0 * y2), (y * ((a * b) - (c * i)))) - (b * (j * y0)));
} else if (y2 <= 3.5e+155) {
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(Float64(Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k)) - Float64(Float64(Float64(y4 * c) - Float64(y5 * a)) * t)) * y2) t_2 = Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0))) tmp = 0.0 if (y2 <= -1.08e-63) tmp = t_1; elseif (y2 <= 2.8e-186) 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 <= 1.3e-135) tmp = Float64(Float64(y4 * Float64(-1.0 * Float64(y * Float64(Float64(b * k) - Float64(c * y3))))) + t_2); elseif (y2 <= 7.1e-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 <= 3.5e+155) 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[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision] * t), $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, -1.08e-63], t$95$1, If[LessEqual[y2, 2.8e-186], 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, 1.3e-135], 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.1e-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, 3.5e+155], 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 := \left(\left(\left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) - \left(y4 \cdot c - y5 \cdot a\right) \cdot t\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 -1.08 \cdot 10^{-63}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y2 \leq 2.8 \cdot 10^{-186}:\\
\;\;\;\;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 1.3 \cdot 10^{-135}:\\
\;\;\;\;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.1 \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 3.5 \cdot 10^{+155}:\\
\;\;\;\;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 < -1.07999999999999994e-63 or 3.49999999999999985e155 < 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%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6436.4
Applied rewrites36.4%
if -1.07999999999999994e-63 < y2 < 2.79999999999999983e-186Initial program 30.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if 2.79999999999999983e-186 < y2 < 1.30000000000000002e-135Initial 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 1.30000000000000002e-135 < y2 < 7.1000000000000003e-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.1000000000000003e-10 < y2 < 3.49999999999999985e155Initial 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
(let* ((t_1 (- (* a b) (* c i))))
(if (<= x -4.2e+81)
(* x (- (fma c (* y0 y2) (* y t_1)) (* b (* j y0))))
(if (<= x -3.7e+19)
(*
(-
(- (* (- (* y4 k) (* a x)) y1) (* (* y5 y0) k))
(* (- (* y4 c) (* y5 a)) t))
y2)
(if (<= x 1.65e-22)
(+
(* y4 (* c (* y y3)))
(* (* y3 (- (/ (* k y2) y3) j)) (- (* y4 y1) (* y5 y0))))
(if (<= x 2.1e+63)
(* b (* a (- (* x y) (* t z))))
(if (<= x 2.9e+200)
(* x (fma y t_1 (* y2 (- (* c y0) (* a y1)))))
(* b (* x (- (* a y) (* j 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) {
double t_1 = (a * b) - (c * i);
double tmp;
if (x <= -4.2e+81) {
tmp = x * (fma(c, (y0 * y2), (y * t_1)) - (b * (j * y0)));
} else if (x <= -3.7e+19) {
tmp = (((((y4 * k) - (a * x)) * y1) - ((y5 * y0) * k)) - (((y4 * c) - (y5 * a)) * t)) * y2;
} else if (x <= 1.65e-22) {
tmp = (y4 * (c * (y * y3))) + ((y3 * (((k * y2) / y3) - j)) * ((y4 * y1) - (y5 * y0)));
} else if (x <= 2.1e+63) {
tmp = b * (a * ((x * y) - (t * z)));
} else if (x <= 2.9e+200) {
tmp = x * fma(y, t_1, (y2 * ((c * y0) - (a * y1))));
} else {
tmp = b * (x * ((a * y) - (j * y0)));
}
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)) tmp = 0.0 if (x <= -4.2e+81) tmp = Float64(x * Float64(fma(c, Float64(y0 * y2), Float64(y * t_1)) - Float64(b * Float64(j * y0)))); elseif (x <= -3.7e+19) tmp = Float64(Float64(Float64(Float64(Float64(Float64(y4 * k) - Float64(a * x)) * y1) - Float64(Float64(y5 * y0) * k)) - Float64(Float64(Float64(y4 * c) - Float64(y5 * a)) * t)) * y2); elseif (x <= 1.65e-22) tmp = Float64(Float64(y4 * Float64(c * Float64(y * y3))) + Float64(Float64(y3 * Float64(Float64(Float64(k * y2) / y3) - j)) * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (x <= 2.1e+63) tmp = Float64(b * Float64(a * Float64(Float64(x * y) - Float64(t * z)))); elseif (x <= 2.9e+200) tmp = Float64(x * fma(y, t_1, Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); else tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); 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]}, If[LessEqual[x, -4.2e+81], N[(x * N[(N[(c * N[(y0 * y2), $MachinePrecision] + N[(y * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(b * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -3.7e+19], N[(N[(N[(N[(N[(N[(y4 * k), $MachinePrecision] - N[(a * x), $MachinePrecision]), $MachinePrecision] * y1), $MachinePrecision] - N[(N[(y5 * y0), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision] * y2), $MachinePrecision], If[LessEqual[x, 1.65e-22], N[(N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(y3 * N[(N[(N[(k * y2), $MachinePrecision] / y3), $MachinePrecision] - j), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.1e+63], N[(b * N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.9e+200], N[(x * N[(y * t$95$1 + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot b - c \cdot i\\
\mathbf{if}\;x \leq -4.2 \cdot 10^{+81}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(c, y0 \cdot y2, y \cdot t\_1\right) - b \cdot \left(j \cdot y0\right)\right)\\
\mathbf{elif}\;x \leq -3.7 \cdot 10^{+19}:\\
\;\;\;\;\left(\left(\left(y4 \cdot k - a \cdot x\right) \cdot y1 - \left(y5 \cdot y0\right) \cdot k\right) - \left(y4 \cdot c - y5 \cdot a\right) \cdot t\right) \cdot y2\\
\mathbf{elif}\;x \leq 1.65 \cdot 10^{-22}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right) + \left(y3 \cdot \left(\frac{k \cdot y2}{y3} - j\right)\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;x \leq 2.1 \cdot 10^{+63}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;x \leq 2.9 \cdot 10^{+200}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, t\_1, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\end{array}
\end{array}
if x < -4.1999999999999997e81Initial 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 -4.1999999999999997e81 < x < -3.7e19Initial 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%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6436.4
Applied rewrites36.4%
if -3.7e19 < x < 1.65e-22Initial 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 y3 around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6437.8
Applied rewrites37.8%
if 1.65e-22 < x < 2.1000000000000002e63Initial 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 2.1000000000000002e63 < x < 2.8999999999999999e200Initial 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 2.8999999999999999e200 < x Initial 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%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -8e+61)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -2.9e-35)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 -5.2e-78)
(+ (* y4 (* c (* y y3))) (* (- (* k y2) (* j y3)) (* y1 y4)))
(if (<= y5 1.3e-81)
(* x (fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1)))))
(if (<= y5 1.95e+85)
(* 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 <= -8e+61) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -2.9e-35) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= -5.2e-78) {
tmp = (y4 * (c * (y * y3))) + (((k * y2) - (j * y3)) * (y1 * y4));
} else if (y5 <= 1.3e-81) {
tmp = x * fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1))));
} else if (y5 <= 1.95e+85) {
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 <= -8e+61) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -2.9e-35) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= -5.2e-78) tmp = Float64(Float64(y4 * Float64(c * Float64(y * y3))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(y1 * y4))); elseif (y5 <= 1.3e-81) tmp = Float64(x * fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); elseif (y5 <= 1.95e+85) 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, -8e+61], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.9e-35], 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, -5.2e-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, 1.3e-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, 1.95e+85], 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 -8 \cdot 10^{+61}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.9 \cdot 10^{-35}:\\
\;\;\;\;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 -5.2 \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 1.3 \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 1.95 \cdot 10^{+85}:\\
\;\;\;\;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 < -7.9999999999999996e61Initial 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 -7.9999999999999996e61 < y5 < -2.9000000000000002e-35Initial 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 -2.9000000000000002e-35 < y5 < -5.2000000000000002e-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 -5.2000000000000002e-78 < y5 < 1.2999999999999999e-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 1.2999999999999999e-81 < y5 < 1.95000000000000017e85Initial 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.95000000000000017e85 < 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 (- (* a b) (* c i))))
(if (<= x -6.6e+112)
(* x (- (fma c (* y0 y2) (* y t_1)) (* b (* j y0))))
(if (<= x 1.65e-22)
(+
(* y4 (* c (* y y3)))
(* (* y3 (- (/ (* k y2) y3) j)) (- (* y4 y1) (* y5 y0))))
(if (<= x 2.1e+63)
(* b (* a (- (* x y) (* t z))))
(if (<= x 2.9e+200)
(* x (fma y t_1 (* y2 (- (* c y0) (* a y1)))))
(* b (* x (- (* a y) (* j 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) {
double t_1 = (a * b) - (c * i);
double tmp;
if (x <= -6.6e+112) {
tmp = x * (fma(c, (y0 * y2), (y * t_1)) - (b * (j * y0)));
} else if (x <= 1.65e-22) {
tmp = (y4 * (c * (y * y3))) + ((y3 * (((k * y2) / y3) - j)) * ((y4 * y1) - (y5 * y0)));
} else if (x <= 2.1e+63) {
tmp = b * (a * ((x * y) - (t * z)));
} else if (x <= 2.9e+200) {
tmp = x * fma(y, t_1, (y2 * ((c * y0) - (a * y1))));
} else {
tmp = b * (x * ((a * y) - (j * y0)));
}
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)) tmp = 0.0 if (x <= -6.6e+112) tmp = Float64(x * Float64(fma(c, Float64(y0 * y2), Float64(y * t_1)) - Float64(b * Float64(j * y0)))); elseif (x <= 1.65e-22) tmp = Float64(Float64(y4 * Float64(c * Float64(y * y3))) + Float64(Float64(y3 * Float64(Float64(Float64(k * y2) / y3) - j)) * Float64(Float64(y4 * y1) - Float64(y5 * y0)))); elseif (x <= 2.1e+63) tmp = Float64(b * Float64(a * Float64(Float64(x * y) - Float64(t * z)))); elseif (x <= 2.9e+200) tmp = Float64(x * fma(y, t_1, Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1))))); else tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); 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]}, If[LessEqual[x, -6.6e+112], N[(x * N[(N[(c * N[(y0 * y2), $MachinePrecision] + N[(y * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(b * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.65e-22], N[(N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(y3 * N[(N[(N[(k * y2), $MachinePrecision] / y3), $MachinePrecision] - j), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.1e+63], N[(b * N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.9e+200], N[(x * N[(y * t$95$1 + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := a \cdot b - c \cdot i\\
\mathbf{if}\;x \leq -6.6 \cdot 10^{+112}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(c, y0 \cdot y2, y \cdot t\_1\right) - b \cdot \left(j \cdot y0\right)\right)\\
\mathbf{elif}\;x \leq 1.65 \cdot 10^{-22}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right) + \left(y3 \cdot \left(\frac{k \cdot y2}{y3} - j\right)\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;x \leq 2.1 \cdot 10^{+63}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;x \leq 2.9 \cdot 10^{+200}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, t\_1, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\end{array}
\end{array}
if x < -6.5999999999999998e112Initial 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 -6.5999999999999998e112 < x < 1.65e-22Initial 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 y3 around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6437.8
Applied rewrites37.8%
if 1.65e-22 < x < 2.1000000000000002e63Initial 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 2.1000000000000002e63 < x < 2.8999999999999999e200Initial 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 2.8999999999999999e200 < x Initial 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%
(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 -2.6e+117)
(* a (* b t_1))
(if (<= x -6800.0)
(* c (* y2 (- (* x y0) (* t y4))))
(if (<= x -1.3e-104)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= x 4.8e-291)
(* -1.0 (* i (* y5 (- (* j t) (* k y)))))
(if (<= x 1.8e-31)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= x 2.9e+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 <= -2.6e+117) {
tmp = a * (b * t_1);
} else if (x <= -6800.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -1.3e-104) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 4.8e-291) {
tmp = -1.0 * (i * (y5 * ((j * t) - (k * y))));
} else if (x <= 1.8e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 2.9e+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 <= (-2.6d+117)) then
tmp = a * (b * t_1)
else if (x <= (-6800.0d0)) then
tmp = c * (y2 * ((x * y0) - (t * y4)))
else if (x <= (-1.3d-104)) then
tmp = y2 * (t * ((a * y5) - (c * y4)))
else if (x <= 4.8d-291) then
tmp = (-1.0d0) * (i * (y5 * ((j * t) - (k * y))))
else if (x <= 1.8d-31) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (x <= 2.9d+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 <= -2.6e+117) {
tmp = a * (b * t_1);
} else if (x <= -6800.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -1.3e-104) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 4.8e-291) {
tmp = -1.0 * (i * (y5 * ((j * t) - (k * y))));
} else if (x <= 1.8e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 2.9e+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 <= -2.6e+117: tmp = a * (b * t_1) elif x <= -6800.0: tmp = c * (y2 * ((x * y0) - (t * y4))) elif x <= -1.3e-104: tmp = y2 * (t * ((a * y5) - (c * y4))) elif x <= 4.8e-291: tmp = -1.0 * (i * (y5 * ((j * t) - (k * y)))) elif x <= 1.8e-31: tmp = a * (y5 * ((t * y2) - (y * y3))) elif x <= 2.9e+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 <= -2.6e+117) tmp = Float64(a * Float64(b * t_1)); elseif (x <= -6800.0) tmp = Float64(c * Float64(y2 * Float64(Float64(x * y0) - Float64(t * y4)))); elseif (x <= -1.3e-104) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (x <= 4.8e-291) tmp = Float64(-1.0 * Float64(i * Float64(y5 * Float64(Float64(j * t) - Float64(k * y))))); elseif (x <= 1.8e-31) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (x <= 2.9e+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 <= -2.6e+117) tmp = a * (b * t_1); elseif (x <= -6800.0) tmp = c * (y2 * ((x * y0) - (t * y4))); elseif (x <= -1.3e-104) tmp = y2 * (t * ((a * y5) - (c * y4))); elseif (x <= 4.8e-291) tmp = -1.0 * (i * (y5 * ((j * t) - (k * y)))); elseif (x <= 1.8e-31) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (x <= 2.9e+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, -2.6e+117], N[(a * N[(b * t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -6800.0], N[(c * N[(y2 * N[(N[(x * y0), $MachinePrecision] - N[(t * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -1.3e-104], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 4.8e-291], N[(-1.0 * N[(i * N[(y5 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.8e-31], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.9e+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 -2.6 \cdot 10^{+117}:\\
\;\;\;\;a \cdot \left(b \cdot t\_1\right)\\
\mathbf{elif}\;x \leq -6800:\\
\;\;\;\;c \cdot \left(y2 \cdot \left(x \cdot y0 - t \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq -1.3 \cdot 10^{-104}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq 4.8 \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 1.8 \cdot 10^{-31}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;x \leq 2.9 \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 < -2.5999999999999999e117Initial 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.5999999999999999e117 < x < -6800Initial 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 -6800 < x < -1.30000000000000001e-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 -1.30000000000000001e-104 < x < 4.80000000000000025e-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 4.80000000000000025e-291 < x < 1.80000000000000002e-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 1.80000000000000002e-31 < x < 2.9000000000000001e61Initial 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 2.9000000000000001e61 < 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 -2.6e+117)
(* a (* b t_1))
(if (<= x -6800.0)
(* c (* y2 (- (* x y0) (* t y4))))
(if (<= x -1.4e-100)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= x 1.52e-266)
(* y (* y5 (- (* i k) (* a y3))))
(if (<= x 1.8e-31)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= x 2.9e+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 <= -2.6e+117) {
tmp = a * (b * t_1);
} else if (x <= -6800.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -1.4e-100) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 1.52e-266) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (x <= 1.8e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 2.9e+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 <= (-2.6d+117)) then
tmp = a * (b * t_1)
else if (x <= (-6800.0d0)) then
tmp = c * (y2 * ((x * y0) - (t * y4)))
else if (x <= (-1.4d-100)) then
tmp = y2 * (t * ((a * y5) - (c * y4)))
else if (x <= 1.52d-266) then
tmp = y * (y5 * ((i * k) - (a * y3)))
else if (x <= 1.8d-31) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (x <= 2.9d+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 <= -2.6e+117) {
tmp = a * (b * t_1);
} else if (x <= -6800.0) {
tmp = c * (y2 * ((x * y0) - (t * y4)));
} else if (x <= -1.4e-100) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (x <= 1.52e-266) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (x <= 1.8e-31) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (x <= 2.9e+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 <= -2.6e+117: tmp = a * (b * t_1) elif x <= -6800.0: tmp = c * (y2 * ((x * y0) - (t * y4))) elif x <= -1.4e-100: tmp = y2 * (t * ((a * y5) - (c * y4))) elif x <= 1.52e-266: tmp = y * (y5 * ((i * k) - (a * y3))) elif x <= 1.8e-31: tmp = a * (y5 * ((t * y2) - (y * y3))) elif x <= 2.9e+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 <= -2.6e+117) tmp = Float64(a * Float64(b * t_1)); elseif (x <= -6800.0) tmp = Float64(c * Float64(y2 * Float64(Float64(x * y0) - Float64(t * y4)))); elseif (x <= -1.4e-100) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (x <= 1.52e-266) tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); elseif (x <= 1.8e-31) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (x <= 2.9e+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 <= -2.6e+117) tmp = a * (b * t_1); elseif (x <= -6800.0) tmp = c * (y2 * ((x * y0) - (t * y4))); elseif (x <= -1.4e-100) tmp = y2 * (t * ((a * y5) - (c * y4))); elseif (x <= 1.52e-266) tmp = y * (y5 * ((i * k) - (a * y3))); elseif (x <= 1.8e-31) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (x <= 2.9e+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, -2.6e+117], N[(a * N[(b * t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -6800.0], N[(c * N[(y2 * N[(N[(x * y0), $MachinePrecision] - N[(t * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -1.4e-100], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.52e-266], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.8e-31], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.9e+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 -2.6 \cdot 10^{+117}:\\
\;\;\;\;a \cdot \left(b \cdot t\_1\right)\\
\mathbf{elif}\;x \leq -6800:\\
\;\;\;\;c \cdot \left(y2 \cdot \left(x \cdot y0 - t \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq -1.4 \cdot 10^{-100}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;x \leq 1.52 \cdot 10^{-266}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\mathbf{elif}\;x \leq 1.8 \cdot 10^{-31}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;x \leq 2.9 \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 < -2.5999999999999999e117Initial 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.5999999999999999e117 < x < -6800Initial 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 -6800 < x < -1.39999999999999998e-100Initial 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.39999999999999998e-100 < x < 1.52000000000000001e-266Initial 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.52000000000000001e-266 < x < 1.80000000000000002e-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 1.80000000000000002e-31 < x < 2.9000000000000001e61Initial 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 2.9000000000000001e61 < 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 -5.5e+51)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -2.2e-24)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= y5 -8.2e-179)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y5 4.45e-32)
(* b (* x (- (* a y) (* j y0))))
(if (<= y5 1e+123)
(* 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 <= -5.5e+51) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -2.2e-24) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (y5 <= -8.2e-179) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y5 <= 4.45e-32) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y5 <= 1e+123) {
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 <= -5.5e+51) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -2.2e-24) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (y5 <= -8.2e-179) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y5 <= 4.45e-32) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y5 <= 1e+123) 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, -5.5e+51], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.2e-24], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -8.2e-179], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.45e-32], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1e+123], 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 -5.5 \cdot 10^{+51}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.2 \cdot 10^{-24}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;y5 \leq -8.2 \cdot 10^{-179}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 4.45 \cdot 10^{-32}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y5 \leq 10^{+123}:\\
\;\;\;\;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 < -5.5e51Initial 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 -5.5e51 < y5 < -2.20000000000000002e-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 -2.20000000000000002e-24 < y5 < -8.2e-179Initial 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 -8.2e-179 < y5 < 4.44999999999999974e-32Initial 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.44999999999999974e-32 < y5 < 9.99999999999999978e122Initial 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 9.99999999999999978e122 < 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.32e-55)
(* y1 (* y2 (fma -1.0 (* a x) (* k y4))))
(if (<= y2 -1.65e-258)
(* b (* -1.0 (* k (- (* y y4) (* y0 z)))))
(if (<= y2 6.5e-182)
(* x (* j (- (* i y1) (* b y0))))
(if (<= y2 5.5e-111)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y2 3.7)
(* 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.32e-55) {
tmp = y1 * (y2 * fma(-1.0, (a * x), (k * y4)));
} else if (y2 <= -1.65e-258) {
tmp = b * (-1.0 * (k * ((y * y4) - (y0 * z))));
} else if (y2 <= 6.5e-182) {
tmp = x * (j * ((i * y1) - (b * y0)));
} else if (y2 <= 5.5e-111) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y2 <= 3.7) {
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.32e-55) tmp = Float64(y1 * Float64(y2 * fma(-1.0, Float64(a * x), Float64(k * y4)))); elseif (y2 <= -1.65e-258) tmp = Float64(b * Float64(-1.0 * Float64(k * Float64(Float64(y * y4) - Float64(y0 * z))))); elseif (y2 <= 6.5e-182) tmp = Float64(x * Float64(j * Float64(Float64(i * y1) - Float64(b * y0)))); elseif (y2 <= 5.5e-111) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y2 <= 3.7) 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.32e-55], N[(y1 * N[(y2 * N[(-1.0 * N[(a * x), $MachinePrecision] + N[(k * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, -1.65e-258], N[(b * N[(-1.0 * N[(k * N[(N[(y * y4), $MachinePrecision] - N[(y0 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 6.5e-182], N[(x * N[(j * N[(N[(i * y1), $MachinePrecision] - N[(b * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 5.5e-111], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 3.7], 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.32 \cdot 10^{-55}:\\
\;\;\;\;y1 \cdot \left(y2 \cdot \mathsf{fma}\left(-1, a \cdot x, k \cdot y4\right)\right)\\
\mathbf{elif}\;y2 \leq -1.65 \cdot 10^{-258}:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(k \cdot \left(y \cdot y4 - y0 \cdot z\right)\right)\right)\\
\mathbf{elif}\;y2 \leq 6.5 \cdot 10^{-182}:\\
\;\;\;\;x \cdot \left(j \cdot \left(i \cdot y1 - b \cdot y0\right)\right)\\
\mathbf{elif}\;y2 \leq 5.5 \cdot 10^{-111}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y2 \leq 3.7:\\
\;\;\;\;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.31999999999999993e-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.31999999999999993e-55 < y2 < -1.65e-258Initial 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 -1.65e-258 < y2 < 6.49999999999999997e-182Initial 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 6.49999999999999997e-182 < y2 < 5.4999999999999998e-111Initial 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 5.4999999999999998e-111 < y2 < 3.7000000000000002Initial 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.7000000000000002 < 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 -8e+61)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -6.8e-28)
(* y2 (- (* -1.0 (* a (* x y1))) (* t (- (* c y4) (* a y5)))))
(if (<= y5 1.46e-81)
(* b (* y0 (* j (- (/ (* k z) j) x))))
(if (<= y5 1.95e+85)
(* 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 <= -8e+61) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -6.8e-28) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= 1.46e-81) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 1.95e+85) {
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 <= (-8d+61)) then
tmp = t * ((-1.0d0) * (y5 * ((i * j) - (a * y2))))
else if (y5 <= (-6.8d-28)) then
tmp = y2 * (((-1.0d0) * (a * (x * y1))) - (t * ((c * y4) - (a * y5))))
else if (y5 <= 1.46d-81) then
tmp = b * (y0 * (j * (((k * z) / j) - x)))
else if (y5 <= 1.95d+85) 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 <= -8e+61) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -6.8e-28) {
tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5))));
} else if (y5 <= 1.46e-81) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 1.95e+85) {
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 <= -8e+61: tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))) elif y5 <= -6.8e-28: tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5)))) elif y5 <= 1.46e-81: tmp = b * (y0 * (j * (((k * z) / j) - x))) elif y5 <= 1.95e+85: 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 <= -8e+61) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -6.8e-28) tmp = Float64(y2 * Float64(Float64(-1.0 * Float64(a * Float64(x * y1))) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y5 <= 1.46e-81) tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(k * z) / j) - x)))); elseif (y5 <= 1.95e+85) 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 <= -8e+61) tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))); elseif (y5 <= -6.8e-28) tmp = y2 * ((-1.0 * (a * (x * y1))) - (t * ((c * y4) - (a * y5)))); elseif (y5 <= 1.46e-81) tmp = b * (y0 * (j * (((k * z) / j) - x))); elseif (y5 <= 1.95e+85) 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, -8e+61], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -6.8e-28], 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.46e-81], N[(b * N[(y0 * N[(j * N[(N[(N[(k * z), $MachinePrecision] / j), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.95e+85], 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 -8 \cdot 10^{+61}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -6.8 \cdot 10^{-28}:\\
\;\;\;\;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.46 \cdot 10^{-81}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{k \cdot z}{j} - x\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 1.95 \cdot 10^{+85}:\\
\;\;\;\;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 < -7.9999999999999996e61Initial 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 -7.9999999999999996e61 < y5 < -6.8000000000000001e-28Initial 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 -6.8000000000000001e-28 < y5 < 1.4599999999999999e-81Initial 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.4599999999999999e-81 < y5 < 1.95000000000000017e85Initial 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.95000000000000017e85 < 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 -5.5e+51)
(* t (* -1.0 (* y5 (- (* i j) (* a y2)))))
(if (<= y5 -1.35e-24)
(* y2 (* t (- (* a y5) (* c y4))))
(if (<= y5 1.46e-81)
(* b (* y0 (* j (- (/ (* k z) j) x))))
(if (<= y5 1.95e+85)
(* 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 <= -5.5e+51) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.35e-24) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (y5 <= 1.46e-81) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 1.95e+85) {
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 <= (-5.5d+51)) then
tmp = t * ((-1.0d0) * (y5 * ((i * j) - (a * y2))))
else if (y5 <= (-1.35d-24)) then
tmp = y2 * (t * ((a * y5) - (c * y4)))
else if (y5 <= 1.46d-81) then
tmp = b * (y0 * (j * (((k * z) / j) - x)))
else if (y5 <= 1.95d+85) 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 <= -5.5e+51) {
tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2))));
} else if (y5 <= -1.35e-24) {
tmp = y2 * (t * ((a * y5) - (c * y4)));
} else if (y5 <= 1.46e-81) {
tmp = b * (y0 * (j * (((k * z) / j) - x)));
} else if (y5 <= 1.95e+85) {
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 <= -5.5e+51: tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))) elif y5 <= -1.35e-24: tmp = y2 * (t * ((a * y5) - (c * y4))) elif y5 <= 1.46e-81: tmp = b * (y0 * (j * (((k * z) / j) - x))) elif y5 <= 1.95e+85: 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 <= -5.5e+51) tmp = Float64(t * Float64(-1.0 * Float64(y5 * Float64(Float64(i * j) - Float64(a * y2))))); elseif (y5 <= -1.35e-24) tmp = Float64(y2 * Float64(t * Float64(Float64(a * y5) - Float64(c * y4)))); elseif (y5 <= 1.46e-81) tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(k * z) / j) - x)))); elseif (y5 <= 1.95e+85) 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 <= -5.5e+51) tmp = t * (-1.0 * (y5 * ((i * j) - (a * y2)))); elseif (y5 <= -1.35e-24) tmp = y2 * (t * ((a * y5) - (c * y4))); elseif (y5 <= 1.46e-81) tmp = b * (y0 * (j * (((k * z) / j) - x))); elseif (y5 <= 1.95e+85) 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, -5.5e+51], N[(t * N[(-1.0 * N[(y5 * N[(N[(i * j), $MachinePrecision] - N[(a * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.35e-24], N[(y2 * N[(t * N[(N[(a * y5), $MachinePrecision] - N[(c * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.46e-81], N[(b * N[(y0 * N[(j * N[(N[(N[(k * z), $MachinePrecision] / j), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.95e+85], 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 -5.5 \cdot 10^{+51}:\\
\;\;\;\;t \cdot \left(-1 \cdot \left(y5 \cdot \left(i \cdot j - a \cdot y2\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.35 \cdot 10^{-24}:\\
\;\;\;\;y2 \cdot \left(t \cdot \left(a \cdot y5 - c \cdot y4\right)\right)\\
\mathbf{elif}\;y5 \leq 1.46 \cdot 10^{-81}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{k \cdot z}{j} - x\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 1.95 \cdot 10^{+85}:\\
\;\;\;\;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 < -5.5e51Initial 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 -5.5e51 < y5 < -1.35000000000000003e-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.35000000000000003e-24 < y5 < 1.4599999999999999e-81Initial 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.4599999999999999e-81 < y5 < 1.95000000000000017e85Initial 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.95000000000000017e85 < 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 -5.6e+119)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b -8e-210)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= b 3.2e-164)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= b 3.1e+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 <= -5.6e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -8e-210) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 3.2e-164) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (b <= 3.1e+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 <= -5.6e+119) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= -8e-210) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (b <= 3.2e-164) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (b <= 3.1e+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, -5.6e+119], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -8e-210], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 3.2e-164], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 3.1e+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 -5.6 \cdot 10^{+119}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq -8 \cdot 10^{-210}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;b \leq 3.2 \cdot 10^{-164}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;b \leq 3.1 \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 < -5.60000000000000026e119Initial 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 -5.60000000000000026e119 < b < -8.0000000000000004e-210Initial 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 -8.0000000000000004e-210 < b < 3.2e-164Initial 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 3.2e-164 < b < 3.09999999999999987e149Initial 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.09999999999999987e149 < 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 -5.6e+119)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b -8e-210)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= b 3.2e-164)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= b 4.9e+137)
(* 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 <= -5.6e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -8e-210) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 3.2e-164) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (b <= 4.9e+137) {
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 <= (-5.6d+119)) then
tmp = b * (y0 * ((k * z) - (j * x)))
else if (b <= (-8d-210)) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else if (b <= 3.2d-164) then
tmp = y2 * (y4 * ((k * y1) - (c * t)))
else if (b <= 4.9d+137) 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 <= -5.6e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= -8e-210) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 3.2e-164) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (b <= 4.9e+137) {
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 <= -5.6e+119: tmp = b * (y0 * ((k * z) - (j * x))) elif b <= -8e-210: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) elif b <= 3.2e-164: tmp = y2 * (y4 * ((k * y1) - (c * t))) elif b <= 4.9e+137: 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 <= -5.6e+119) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= -8e-210) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (b <= 3.2e-164) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (b <= 4.9e+137) 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 <= -5.6e+119) tmp = b * (y0 * ((k * z) - (j * x))); elseif (b <= -8e-210) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); elseif (b <= 3.2e-164) tmp = y2 * (y4 * ((k * y1) - (c * t))); elseif (b <= 4.9e+137) 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, -5.6e+119], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -8e-210], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 3.2e-164], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 4.9e+137], 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 -5.6 \cdot 10^{+119}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq -8 \cdot 10^{-210}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;b \leq 3.2 \cdot 10^{-164}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;b \leq 4.9 \cdot 10^{+137}:\\
\;\;\;\;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 < -5.60000000000000026e119Initial 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 -5.60000000000000026e119 < b < -8.0000000000000004e-210Initial 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 -8.0000000000000004e-210 < b < 3.2e-164Initial 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 3.2e-164 < b < 4.90000000000000033e137Initial 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 4.90000000000000033e137 < 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 -5.6e+119)
(* b (* y0 (- (* k z) (* j x))))
(if (<= b 5.2e-204)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= b 2.4e-99)
(* y (* y5 (- (* i k) (* a y3))))
(if (<= b 4.9e+137)
(* 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 <= -5.6e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= 5.2e-204) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 2.4e-99) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (b <= 4.9e+137) {
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 <= (-5.6d+119)) then
tmp = b * (y0 * ((k * z) - (j * x)))
else if (b <= 5.2d-204) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else if (b <= 2.4d-99) then
tmp = y * (y5 * ((i * k) - (a * y3)))
else if (b <= 4.9d+137) 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 <= -5.6e+119) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (b <= 5.2e-204) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (b <= 2.4e-99) {
tmp = y * (y5 * ((i * k) - (a * y3)));
} else if (b <= 4.9e+137) {
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 <= -5.6e+119: tmp = b * (y0 * ((k * z) - (j * x))) elif b <= 5.2e-204: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) elif b <= 2.4e-99: tmp = y * (y5 * ((i * k) - (a * y3))) elif b <= 4.9e+137: 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 <= -5.6e+119) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (b <= 5.2e-204) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (b <= 2.4e-99) tmp = Float64(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))); elseif (b <= 4.9e+137) 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 <= -5.6e+119) tmp = b * (y0 * ((k * z) - (j * x))); elseif (b <= 5.2e-204) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); elseif (b <= 2.4e-99) tmp = y * (y5 * ((i * k) - (a * y3))); elseif (b <= 4.9e+137) 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, -5.6e+119], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 5.2e-204], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 2.4e-99], N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 4.9e+137], 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 -5.6 \cdot 10^{+119}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;b \leq 5.2 \cdot 10^{-204}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;b \leq 2.4 \cdot 10^{-99}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\mathbf{elif}\;b \leq 4.9 \cdot 10^{+137}:\\
\;\;\;\;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 < -5.60000000000000026e119Initial 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 -5.60000000000000026e119 < b < 5.19999999999999965e-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 5.19999999999999965e-204 < b < 2.4e-99Initial 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 2.4e-99 < b < 4.90000000000000033e137Initial 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 4.90000000000000033e137 < 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 -4.5e-155)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 9.5e-58)
(* b (* x (- (* a y) (* j y0))))
(if (<= y5 1.4e+236)
(* 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 <= -4.5e-155) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 9.5e-58) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y5 <= 1.4e+236) {
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 <= (-4.5d-155)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 9.5d-58) then
tmp = b * (x * ((a * y) - (j * y0)))
else if (y5 <= 1.4d+236) 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 <= -4.5e-155) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 9.5e-58) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y5 <= 1.4e+236) {
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 <= -4.5e-155: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 9.5e-58: tmp = b * (x * ((a * y) - (j * y0))) elif y5 <= 1.4e+236: 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 <= -4.5e-155) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 9.5e-58) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y5 <= 1.4e+236) 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 <= -4.5e-155) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 9.5e-58) tmp = b * (x * ((a * y) - (j * y0))); elseif (y5 <= 1.4e+236) 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, -4.5e-155], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 9.5e-58], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.4e+236], 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 -4.5 \cdot 10^{-155}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 9.5 \cdot 10^{-58}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y5 \leq 1.4 \cdot 10^{+236}:\\
\;\;\;\;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 < -4.5000000000000004e-155Initial 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 -4.5000000000000004e-155 < y5 < 9.4999999999999994e-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 9.4999999999999994e-58 < y5 < 1.39999999999999996e236Initial 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 1.39999999999999996e236 < 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.15e-117)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 2.4e+101)
(* a (* b (- (* x y) (* t z))))
(if (<= y5 1.4e+236)
(* 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 <= -1.15e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 2.4e+101) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 1.4e+236) {
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 <= (-1.15d-117)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 2.4d+101) then
tmp = a * (b * ((x * y) - (t * z)))
else if (y5 <= 1.4d+236) 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 <= -1.15e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 2.4e+101) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 1.4e+236) {
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 <= -1.15e-117: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 2.4e+101: tmp = a * (b * ((x * y) - (t * z))) elif y5 <= 1.4e+236: 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 <= -1.15e-117) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 2.4e+101) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); elseif (y5 <= 1.4e+236) 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 <= -1.15e-117) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 2.4e+101) tmp = a * (b * ((x * y) - (t * z))); elseif (y5 <= 1.4e+236) 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, -1.15e-117], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.4e+101], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.4e+236], 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 -1.15 \cdot 10^{-117}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 2.4 \cdot 10^{+101}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 1.4 \cdot 10^{+236}:\\
\;\;\;\;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 < -1.14999999999999997e-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 -1.14999999999999997e-117 < y5 < 2.39999999999999988e101Initial 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.39999999999999988e101 < y5 < 1.39999999999999996e236Initial 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 1.39999999999999996e236 < 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.15e-117)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 4.9e+152)
(* a (* b (- (* x y) (* t z))))
(if (<= y5 1.42e+240)
(* 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 <= -1.15e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 4.9e+152) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 1.42e+240) {
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 <= (-1.15d-117)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 4.9d+152) then
tmp = a * (b * ((x * y) - (t * z)))
else if (y5 <= 1.42d+240) 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 <= -1.15e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 4.9e+152) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 1.42e+240) {
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 <= -1.15e-117: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 4.9e+152: tmp = a * (b * ((x * y) - (t * z))) elif y5 <= 1.42e+240: 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 <= -1.15e-117) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 4.9e+152) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); elseif (y5 <= 1.42e+240) 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 <= -1.15e-117) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 4.9e+152) tmp = a * (b * ((x * y) - (t * z))); elseif (y5 <= 1.42e+240) 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, -1.15e-117], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.9e+152], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.42e+240], 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 -1.15 \cdot 10^{-117}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 4.9 \cdot 10^{+152}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 1.42 \cdot 10^{+240}:\\
\;\;\;\;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 < -1.14999999999999997e-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 -1.14999999999999997e-117 < y5 < 4.9000000000000004e152Initial 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.9000000000000004e152 < y5 < 1.41999999999999999e240Initial 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 1.41999999999999999e240 < 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.15e-117)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= y5 3.1e+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 <= -1.15e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 3.1e+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 <= (-1.15d-117)) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (y5 <= 3.1d+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 <= -1.15e-117) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (y5 <= 3.1e+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 <= -1.15e-117: tmp = a * (y5 * ((t * y2) - (y * y3))) elif y5 <= 3.1e+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 <= -1.15e-117) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (y5 <= 3.1e+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 <= -1.15e-117) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (y5 <= 3.1e+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, -1.15e-117], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 3.1e+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 -1.15 \cdot 10^{-117}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq 3.1 \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 < -1.14999999999999997e-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 -1.14999999999999997e-117 < y5 < 3.1e170Initial 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 3.1e170 < 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 1.1e-288)
(* a (* y5 (- (* t y2) (* y y3))))
(if (<= z 3.3e+159)
(* 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 <= 1.1e-288) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (z <= 3.3e+159) {
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 <= 1.1d-288) then
tmp = a * (y5 * ((t * y2) - (y * y3)))
else if (z <= 3.3d+159) 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 <= 1.1e-288) {
tmp = a * (y5 * ((t * y2) - (y * y3)));
} else if (z <= 3.3e+159) {
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 <= 1.1e-288: tmp = a * (y5 * ((t * y2) - (y * y3))) elif z <= 3.3e+159: 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 <= 1.1e-288) tmp = Float64(a * Float64(y5 * Float64(Float64(t * y2) - Float64(y * y3)))); elseif (z <= 3.3e+159) 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 <= 1.1e-288) tmp = a * (y5 * ((t * y2) - (y * y3))); elseif (z <= 3.3e+159) 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, 1.1e-288], N[(a * N[(y5 * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 3.3e+159], 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 1.1 \cdot 10^{-288}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;z \leq 3.3 \cdot 10^{+159}:\\
\;\;\;\;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 < 1.1000000000000001e-288Initial 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.1000000000000001e-288 < z < 3.2999999999999999e159Initial 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 3.2999999999999999e159 < 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 -6.4e+190)
(* b (* y0 (* k z)))
(if (<= k -1.45e+112)
t_1
(if (<= k -3.15e-57)
(* a (* t (* y2 y5)))
(if (<= k -1.75e-297)
(* y2 (* x (* -1.0 (* a y1))))
(if (<= k 1.05e-85)
(* j (* y0 (* y3 y5)))
(if (<= k 6.5e+108) (* 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 <= -6.4e+190) {
tmp = b * (y0 * (k * z));
} else if (k <= -1.45e+112) {
tmp = t_1;
} else if (k <= -3.15e-57) {
tmp = a * (t * (y2 * y5));
} else if (k <= -1.75e-297) {
tmp = y2 * (x * (-1.0 * (a * y1)));
} else if (k <= 1.05e-85) {
tmp = j * (y0 * (y3 * y5));
} else if (k <= 6.5e+108) {
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 <= (-6.4d+190)) then
tmp = b * (y0 * (k * z))
else if (k <= (-1.45d+112)) then
tmp = t_1
else if (k <= (-3.15d-57)) then
tmp = a * (t * (y2 * y5))
else if (k <= (-1.75d-297)) then
tmp = y2 * (x * ((-1.0d0) * (a * y1)))
else if (k <= 1.05d-85) then
tmp = j * (y0 * (y3 * y5))
else if (k <= 6.5d+108) 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 <= -6.4e+190) {
tmp = b * (y0 * (k * z));
} else if (k <= -1.45e+112) {
tmp = t_1;
} else if (k <= -3.15e-57) {
tmp = a * (t * (y2 * y5));
} else if (k <= -1.75e-297) {
tmp = y2 * (x * (-1.0 * (a * y1)));
} else if (k <= 1.05e-85) {
tmp = j * (y0 * (y3 * y5));
} else if (k <= 6.5e+108) {
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 <= -6.4e+190: tmp = b * (y0 * (k * z)) elif k <= -1.45e+112: tmp = t_1 elif k <= -3.15e-57: tmp = a * (t * (y2 * y5)) elif k <= -1.75e-297: tmp = y2 * (x * (-1.0 * (a * y1))) elif k <= 1.05e-85: tmp = j * (y0 * (y3 * y5)) elif k <= 6.5e+108: 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 <= -6.4e+190) tmp = Float64(b * Float64(y0 * Float64(k * z))); elseif (k <= -1.45e+112) tmp = t_1; elseif (k <= -3.15e-57) tmp = Float64(a * Float64(t * Float64(y2 * y5))); elseif (k <= -1.75e-297) tmp = Float64(y2 * Float64(x * Float64(-1.0 * Float64(a * y1)))); elseif (k <= 1.05e-85) tmp = Float64(j * Float64(y0 * Float64(y3 * y5))); elseif (k <= 6.5e+108) 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 <= -6.4e+190) tmp = b * (y0 * (k * z)); elseif (k <= -1.45e+112) tmp = t_1; elseif (k <= -3.15e-57) tmp = a * (t * (y2 * y5)); elseif (k <= -1.75e-297) tmp = y2 * (x * (-1.0 * (a * y1))); elseif (k <= 1.05e-85) tmp = j * (y0 * (y3 * y5)); elseif (k <= 6.5e+108) 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, -6.4e+190], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, -1.45e+112], t$95$1, If[LessEqual[k, -3.15e-57], N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, -1.75e-297], N[(y2 * N[(x * N[(-1.0 * N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.05e-85], N[(j * N[(y0 * N[(y3 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 6.5e+108], 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 -6.4 \cdot 10^{+190}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{elif}\;k \leq -1.45 \cdot 10^{+112}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;k \leq -3.15 \cdot 10^{-57}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{elif}\;k \leq -1.75 \cdot 10^{-297}:\\
\;\;\;\;y2 \cdot \left(x \cdot \left(-1 \cdot \left(a \cdot y1\right)\right)\right)\\
\mathbf{elif}\;k \leq 1.05 \cdot 10^{-85}:\\
\;\;\;\;j \cdot \left(y0 \cdot \left(y3 \cdot y5\right)\right)\\
\mathbf{elif}\;k \leq 6.5 \cdot 10^{+108}:\\
\;\;\;\;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 < -6.4000000000000001e190Initial 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 -6.4000000000000001e190 < k < -1.4500000000000001e112 or 6.4999999999999996e108 < 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 -1.4500000000000001e112 < k < -3.1500000000000002e-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 -3.1500000000000002e-57 < k < -1.7499999999999999e-297Initial 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.7499999999999999e-297 < k < 1.05e-85Initial 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 1.05e-85 < k < 6.4999999999999996e108Initial 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 2.4e+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 <= 2.4e+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 <= 2.4d+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 <= 2.4e+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 <= 2.4e+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 <= 2.4e+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 <= 2.4e+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, 2.4e+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 2.4 \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 < 2.4e118Initial 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.4e118 < 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 -3.2e-23)
(* b (* y0 (* -1.0 (* j x))))
(if (<= x 1.42e-201)
(* b (* y0 (* k z)))
(if (<= x 1.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 <= -3.2e-23) {
tmp = b * (y0 * (-1.0 * (j * x)));
} else if (x <= 1.42e-201) {
tmp = b * (y0 * (k * z));
} else if (x <= 1.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 <= (-3.2d-23)) then
tmp = b * (y0 * ((-1.0d0) * (j * x)))
else if (x <= 1.42d-201) then
tmp = b * (y0 * (k * z))
else if (x <= 1.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 <= -3.2e-23) {
tmp = b * (y0 * (-1.0 * (j * x)));
} else if (x <= 1.42e-201) {
tmp = b * (y0 * (k * z));
} else if (x <= 1.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 <= -3.2e-23: tmp = b * (y0 * (-1.0 * (j * x))) elif x <= 1.42e-201: tmp = b * (y0 * (k * z)) elif x <= 1.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 <= -3.2e-23) tmp = Float64(b * Float64(y0 * Float64(-1.0 * Float64(j * x)))); elseif (x <= 1.42e-201) tmp = Float64(b * Float64(y0 * Float64(k * z))); elseif (x <= 1.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 <= -3.2e-23) tmp = b * (y0 * (-1.0 * (j * x))); elseif (x <= 1.42e-201) tmp = b * (y0 * (k * z)); elseif (x <= 1.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, -3.2e-23], N[(b * N[(y0 * N[(-1.0 * N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.42e-201], N[(b * N[(y0 * N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.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 -3.2 \cdot 10^{-23}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(-1 \cdot \left(j \cdot x\right)\right)\right)\\
\mathbf{elif}\;x \leq 1.42 \cdot 10^{-201}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{elif}\;x \leq 1.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 < -3.19999999999999976e-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 -3.19999999999999976e-23 < x < 1.42e-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 1.42e-201 < x < 1.10000000000000001e64Initial 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 1.10000000000000001e64 < 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 -1.3e-23) (* y3 (* -1.0 (* a (* y y5)))) (if (<= y5 6.8e+102) (* 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 <= -1.3e-23) {
tmp = y3 * (-1.0 * (a * (y * y5)));
} else if (y5 <= 6.8e+102) {
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 <= (-1.3d-23)) then
tmp = y3 * ((-1.0d0) * (a * (y * y5)))
else if (y5 <= 6.8d+102) 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 <= -1.3e-23) {
tmp = y3 * (-1.0 * (a * (y * y5)));
} else if (y5 <= 6.8e+102) {
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 <= -1.3e-23: tmp = y3 * (-1.0 * (a * (y * y5))) elif y5 <= 6.8e+102: 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 <= -1.3e-23) tmp = Float64(y3 * Float64(-1.0 * Float64(a * Float64(y * y5)))); elseif (y5 <= 6.8e+102) 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 <= -1.3e-23) tmp = y3 * (-1.0 * (a * (y * y5))); elseif (y5 <= 6.8e+102) 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, -1.3e-23], N[(y3 * N[(-1.0 * N[(a * N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 6.8e+102], 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 -1.3 \cdot 10^{-23}:\\
\;\;\;\;y3 \cdot \left(-1 \cdot \left(a \cdot \left(y \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 6.8 \cdot 10^{+102}:\\
\;\;\;\;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 < -1.3e-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 -1.3e-23 < y5 < 6.8000000000000001e102Initial 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 6.8000000000000001e102 < 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 -4.6e-24) (* a (* t (* y2 y5))) (if (<= y5 6.8e+102) (* 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 <= -4.6e-24) {
tmp = a * (t * (y2 * y5));
} else if (y5 <= 6.8e+102) {
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 <= (-4.6d-24)) then
tmp = a * (t * (y2 * y5))
else if (y5 <= 6.8d+102) 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 <= -4.6e-24) {
tmp = a * (t * (y2 * y5));
} else if (y5 <= 6.8e+102) {
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 <= -4.6e-24: tmp = a * (t * (y2 * y5)) elif y5 <= 6.8e+102: 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 <= -4.6e-24) tmp = Float64(a * Float64(t * Float64(y2 * y5))); elseif (y5 <= 6.8e+102) 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 <= -4.6e-24) tmp = a * (t * (y2 * y5)); elseif (y5 <= 6.8e+102) 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, -4.6e-24], N[(a * N[(t * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 6.8e+102], 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 -4.6 \cdot 10^{-24}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq 6.8 \cdot 10^{+102}:\\
\;\;\;\;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 < -4.6000000000000002e-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 -4.6000000000000002e-24 < y5 < 6.8000000000000001e102Initial 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 6.8000000000000001e102 < 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 -4.6e-24) t_1 (if (<= y5 2.35e+51) (* 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 <= -4.6e-24) {
tmp = t_1;
} else if (y5 <= 2.35e+51) {
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 <= (-4.6d-24)) then
tmp = t_1
else if (y5 <= 2.35d+51) 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 <= -4.6e-24) {
tmp = t_1;
} else if (y5 <= 2.35e+51) {
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 <= -4.6e-24: tmp = t_1 elif y5 <= 2.35e+51: 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 <= -4.6e-24) tmp = t_1; elseif (y5 <= 2.35e+51) 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 <= -4.6e-24) tmp = t_1; elseif (y5 <= 2.35e+51) 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, -4.6e-24], t$95$1, If[LessEqual[y5, 2.35e+51], 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 -4.6 \cdot 10^{-24}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq 2.35 \cdot 10^{+51}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -4.6000000000000002e-24 or 2.3500000000000001e51 < 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.6000000000000002e-24 < y5 < 2.3500000000000001e51Initial 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 -4.6e-24) t_1 (if (<= y5 2.35e+51) (* 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 <= -4.6e-24) {
tmp = t_1;
} else if (y5 <= 2.35e+51) {
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 <= (-4.6d-24)) then
tmp = t_1
else if (y5 <= 2.35d+51) 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 <= -4.6e-24) {
tmp = t_1;
} else if (y5 <= 2.35e+51) {
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 <= -4.6e-24: tmp = t_1 elif y5 <= 2.35e+51: 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 <= -4.6e-24) tmp = t_1; elseif (y5 <= 2.35e+51) 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 <= -4.6e-24) tmp = t_1; elseif (y5 <= 2.35e+51) 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, -4.6e-24], t$95$1, If[LessEqual[y5, 2.35e+51], 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 -4.6 \cdot 10^{-24}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq 2.35 \cdot 10^{+51}:\\
\;\;\;\;b \cdot \left(k \cdot \left(y0 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -4.6000000000000002e-24 or 2.3500000000000001e51 < 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.6000000000000002e-24 < y5 < 2.3500000000000001e51Initial 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 -7e-73) (* a (* y5 (* t y2))) (if (<= y2 1.15e+29) (* 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 <= -7e-73) {
tmp = a * (y5 * (t * y2));
} else if (y2 <= 1.15e+29) {
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 <= (-7d-73)) then
tmp = a * (y5 * (t * y2))
else if (y2 <= 1.15d+29) 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 <= -7e-73) {
tmp = a * (y5 * (t * y2));
} else if (y2 <= 1.15e+29) {
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 <= -7e-73: tmp = a * (y5 * (t * y2)) elif y2 <= 1.15e+29: 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 <= -7e-73) tmp = Float64(a * Float64(y5 * Float64(t * y2))); elseif (y2 <= 1.15e+29) 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 <= -7e-73) tmp = a * (y5 * (t * y2)); elseif (y2 <= 1.15e+29) 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, -7e-73], N[(a * N[(y5 * N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 1.15e+29], 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 \cdot 10^{-73}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2\right)\right)\\
\mathbf{elif}\;y2 \leq 1.15 \cdot 10^{+29}:\\
\;\;\;\;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 < -6.9999999999999995e-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 -6.9999999999999995e-73 < y2 < 1.1500000000000001e29Initial 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 1.1500000000000001e29 < 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 -7e+146) t_1 (if (<= y3 8.6e-44) (* 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 <= -7e+146) {
tmp = t_1;
} else if (y3 <= 8.6e-44) {
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 <= (-7d+146)) then
tmp = t_1
else if (y3 <= 8.6d-44) 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 <= -7e+146) {
tmp = t_1;
} else if (y3 <= 8.6e-44) {
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 <= -7e+146: tmp = t_1 elif y3 <= 8.6e-44: 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 <= -7e+146) tmp = t_1; elseif (y3 <= 8.6e-44) 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 <= -7e+146) tmp = t_1; elseif (y3 <= 8.6e-44) 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, -7e+146], t$95$1, If[LessEqual[y3, 8.6e-44], 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 -7 \cdot 10^{+146}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y3 \leq 8.6 \cdot 10^{-44}:\\
\;\;\;\;a \cdot \left(y5 \cdot \left(t \cdot y2\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y3 < -7.0000000000000002e146 or 8.60000000000000027e-44 < 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 -7.0000000000000002e146 < y3 < 8.60000000000000027e-44Initial 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 2.65e-42) (* 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 <= 2.65e-42) {
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 <= 2.65d-42) 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 <= 2.65e-42) {
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 <= 2.65e-42: 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 <= 2.65e-42) 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 <= 2.65e-42) 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, 2.65e-42], 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 2.65 \cdot 10^{-42}:\\
\;\;\;\;a \cdot \left(t \cdot \left(y2 \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y3 < -3.6000000000000001e169 or 2.65e-42 < 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 < 2.65e-42Initial 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)))))