
(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 27 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 (- (* j t) (* k y)))
(t_2
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1))))
(* j (- (* b y0) (* i y1)))))))
(if (<= y5 -4.6e+282)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -5.4e+90)
(* -1.0 (* y2 (* y5 (- (* k y0) (* a t)))))
(if (<= y5 -2.05e-74)
(*
y4
(-
(fma b t_1 (* y1 (- (* k y2) (* j y3))))
(* c (- (* t y2) (* y y3)))))
(if (<= y5 -2.7e-258)
t_2
(if (<= y5 1.45e-96)
(* y4 (- (fma b t_1 (* k (* y1 y2))) (* c (* t y2))))
(if (<= y5 1.15e+97)
(*
-1.0
(*
i
(-
(fma c (- (* x y) (* t z)) (* y5 t_1))
(* y1 (- (* j x) (* k z))))))
(if (<= y5 6.3e+149)
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 = (j * t) - (k * y);
double t_2 = x * (fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1)))) - (j * ((b * y0) - (i * y1))));
double tmp;
if (y5 <= -4.6e+282) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -5.4e+90) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y5 <= -2.05e-74) {
tmp = y4 * (fma(b, t_1, (y1 * ((k * y2) - (j * y3)))) - (c * ((t * y2) - (y * y3))));
} else if (y5 <= -2.7e-258) {
tmp = t_2;
} else if (y5 <= 1.45e-96) {
tmp = y4 * (fma(b, t_1, (k * (y1 * y2))) - (c * (t * y2)));
} else if (y5 <= 1.15e+97) {
tmp = -1.0 * (i * (fma(c, ((x * y) - (t * z)), (y5 * t_1)) - (y1 * ((j * x) - (k * z)))));
} else if (y5 <= 6.3e+149) {
tmp = 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(j * t) - Float64(k * y)) t_2 = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(j * Float64(Float64(b * y0) - Float64(i * y1))))) tmp = 0.0 if (y5 <= -4.6e+282) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -5.4e+90) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(Float64(k * y0) - Float64(a * t))))); elseif (y5 <= -2.05e-74) tmp = Float64(y4 * Float64(fma(b, t_1, Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(c * Float64(Float64(t * y2) - Float64(y * y3))))); elseif (y5 <= -2.7e-258) tmp = t_2; elseif (y5 <= 1.45e-96) tmp = Float64(y4 * Float64(fma(b, t_1, Float64(k * Float64(y1 * y2))) - Float64(c * Float64(t * y2)))); elseif (y5 <= 1.15e+97) tmp = Float64(-1.0 * Float64(i * Float64(fma(c, Float64(Float64(x * y) - Float64(t * z)), Float64(y5 * t_1)) - Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))))); elseif (y5 <= 6.3e+149) tmp = 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[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(j * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -4.6e+282], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.4e+90], N[(-1.0 * N[(y2 * N[(y5 * N[(N[(k * y0), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.05e-74], N[(y4 * N[(N[(b * t$95$1 + N[(y1 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(c * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.7e-258], t$95$2, If[LessEqual[y5, 1.45e-96], N[(y4 * N[(N[(b * t$95$1 + N[(k * N[(y1 * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(c * N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.15e+97], N[(-1.0 * N[(i * N[(N[(c * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y5 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 6.3e+149], t$95$2, N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := j \cdot t - k \cdot y\\
t_2 := x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - j \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{if}\;y5 \leq -4.6 \cdot 10^{+282}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -5.4 \cdot 10^{+90}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0 - a \cdot t\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.05 \cdot 10^{-74}:\\
\;\;\;\;y4 \cdot \left(\mathsf{fma}\left(b, t\_1, y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - c \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{elif}\;y5 \leq -2.7 \cdot 10^{-258}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y5 \leq 1.45 \cdot 10^{-96}:\\
\;\;\;\;y4 \cdot \left(\mathsf{fma}\left(b, t\_1, k \cdot \left(y1 \cdot y2\right)\right) - c \cdot \left(t \cdot y2\right)\right)\\
\mathbf{elif}\;y5 \leq 1.15 \cdot 10^{+97}:\\
\;\;\;\;-1 \cdot \left(i \cdot \left(\mathsf{fma}\left(c, x \cdot y - t \cdot z, y5 \cdot t\_1\right) - y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 6.3 \cdot 10^{+149}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -4.60000000000000002e282Initial program 24.4%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites62.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6450.1
Applied rewrites50.1%
if -4.60000000000000002e282 < y5 < -5.4e90Initial program 25.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.6%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.8
Applied rewrites37.8%
if -5.4e90 < y5 < -2.05000000000000016e-74Initial program 31.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.1%
if -2.05000000000000016e-74 < y5 < -2.69999999999999996e-258 or 1.15000000000000003e97 < y5 < 6.3e149Initial program 31.7%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.5%
if -2.69999999999999996e-258 < y5 < 1.44999999999999997e-96Initial program 35.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.4%
Taylor expanded in y3 around 0
lower--.f64N/A
lower-fma.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f6435.1
Applied rewrites35.1%
if 1.44999999999999997e-96 < y5 < 1.15000000000000003e97Initial program 31.5%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
if 6.3e149 < y5 Initial program 23.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites56.6%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6444.0
Applied rewrites44.0%
(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))))
(if (<= y2 -6.4e+93)
(* -1.0 (* y2 (* y5 (- (* k y0) (* a t)))))
(if (<= y2 8.5e-223)
(*
-1.0
(*
z
(-
(fma t (- (* a b) (* c i)) (* y3 t_1))
(* k (- (* b y0) (* i y1))))))
(if (<= y2 2e+54)
(*
y4
(-
(fma b (- (* j t) (* k y)) (* y1 (- (* k y2) (* j y3))))
(* c (- (* t y2) (* y y3)))))
(*
y2
(-
(fma k (- (* y1 y4) (* y0 y5)) (* x t_1))
(* t (- (* c y4) (* a 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 t_1 = (c * y0) - (a * y1);
double tmp;
if (y2 <= -6.4e+93) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y2 <= 8.5e-223) {
tmp = -1.0 * (z * (fma(t, ((a * b) - (c * i)), (y3 * t_1)) - (k * ((b * y0) - (i * y1)))));
} else if (y2 <= 2e+54) {
tmp = y4 * (fma(b, ((j * t) - (k * y)), (y1 * ((k * y2) - (j * y3)))) - (c * ((t * y2) - (y * y3))));
} else {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_1)) - (t * ((c * y4) - (a * y5))));
}
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)) tmp = 0.0 if (y2 <= -6.4e+93) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(Float64(k * y0) - Float64(a * t))))); elseif (y2 <= 8.5e-223) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, Float64(Float64(a * b) - Float64(c * i)), Float64(y3 * t_1)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))); elseif (y2 <= 2e+54) tmp = Float64(y4 * Float64(fma(b, Float64(Float64(j * t) - Float64(k * y)), Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(c * Float64(Float64(t * y2) - Float64(y * y3))))); else 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))))); 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]}, If[LessEqual[y2, -6.4e+93], N[(-1.0 * N[(y2 * N[(y5 * N[(N[(k * y0), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 8.5e-223], N[(-1.0 * N[(z * N[(N[(t * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y3 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y2, 2e+54], N[(y4 * N[(N[(b * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision] + N[(y1 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(c * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 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]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot y0 - a \cdot y1\\
\mathbf{if}\;y2 \leq -6.4 \cdot 10^{+93}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0 - a \cdot t\right)\right)\right)\\
\mathbf{elif}\;y2 \leq 8.5 \cdot 10^{-223}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, a \cdot b - c \cdot i, y3 \cdot t\_1\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{elif}\;y2 \leq 2 \cdot 10^{+54}:\\
\;\;\;\;y4 \cdot \left(\mathsf{fma}\left(b, j \cdot t - k \cdot y, y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - c \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;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)\\
\end{array}
\end{array}
if y2 < -6.4000000000000003e93Initial program 24.0%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.5%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.3
Applied rewrites35.3%
if -6.4000000000000003e93 < y2 < 8.5000000000000003e-223Initial program 34.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.2%
if 8.5000000000000003e-223 < y2 < 2.0000000000000002e54Initial program 33.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
if 2.0000000000000002e54 < y2 Initial program 25.0%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.0%
(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))))
(t_2
(+
(-
(+
(+
(-
(* (- (* 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))))
t_1)))
(if (<= t_2 INFINITY)
t_2
(+
(* j (- (* t (- (* b y4) (* i y5))) (* x (- (* b y0) (* i y1)))))
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 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0));
double t_2 = (((((((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)))) + t_1;
double tmp;
if (t_2 <= ((double) INFINITY)) {
tmp = t_2;
} else {
tmp = (j * ((t * ((b * y4) - (i * y5))) - (x * ((b * y0) - (i * y1))))) + t_1;
}
return tmp;
}
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 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0));
double t_2 = (((((((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)))) + t_1;
double tmp;
if (t_2 <= Double.POSITIVE_INFINITY) {
tmp = t_2;
} else {
tmp = (j * ((t * ((b * y4) - (i * y5))) - (x * ((b * y0) - (i * y1))))) + t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)) t_2 = (((((((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)))) + t_1 tmp = 0 if t_2 <= math.inf: tmp = t_2 else: tmp = (j * ((t * ((b * y4) - (i * y5))) - (x * ((b * y0) - (i * y1))))) + 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(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0))) t_2 = 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)))) + t_1) tmp = 0.0 if (t_2 <= Inf) tmp = t_2; else tmp = Float64(Float64(j * Float64(Float64(t * Float64(Float64(b * y4) - Float64(i * y5))) - Float64(x * Float64(Float64(b * y0) - Float64(i * y1))))) + 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 = ((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0)); t_2 = (((((((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)))) + t_1; tmp = 0.0; if (t_2 <= Inf) tmp = t_2; else tmp = (j * ((t * ((b * y4) - (i * y5))) - (x * ((b * y0) - (i * y1))))) + 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[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = 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] + t$95$1), $MachinePrecision]}, If[LessEqual[t$95$2, Infinity], t$95$2, N[(N[(j * N[(N[(t * N[(N[(b * y4), $MachinePrecision] - N[(i * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(x * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$1), $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)\\
t_2 := \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) + t\_1\\
\mathbf{if}\;t\_2 \leq \infty:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;j \cdot \left(t \cdot \left(b \cdot y4 - i \cdot y5\right) - x \cdot \left(b \cdot y0 - i \cdot y1\right)\right) + t\_1\\
\end{array}
\end{array}
if (+.f64 (-.f64 (+.f64 (+.f64 (-.f64 (*.f64 (-.f64 (*.f64 x y) (*.f64 z t)) (-.f64 (*.f64 a b) (*.f64 c i))) (*.f64 (-.f64 (*.f64 x j) (*.f64 z k)) (-.f64 (*.f64 y0 b) (*.f64 y1 i)))) (*.f64 (-.f64 (*.f64 x y2) (*.f64 z y3)) (-.f64 (*.f64 y0 c) (*.f64 y1 a)))) (*.f64 (-.f64 (*.f64 t j) (*.f64 y k)) (-.f64 (*.f64 y4 b) (*.f64 y5 i)))) (*.f64 (-.f64 (*.f64 t y2) (*.f64 y y3)) (-.f64 (*.f64 y4 c) (*.f64 y5 a)))) (*.f64 (-.f64 (*.f64 k y2) (*.f64 j y3)) (-.f64 (*.f64 y4 y1) (*.f64 y5 y0)))) < +inf.0Initial program 91.4%
if +inf.0 < (+.f64 (-.f64 (+.f64 (+.f64 (-.f64 (*.f64 (-.f64 (*.f64 x y) (*.f64 z t)) (-.f64 (*.f64 a b) (*.f64 c i))) (*.f64 (-.f64 (*.f64 x j) (*.f64 z k)) (-.f64 (*.f64 y0 b) (*.f64 y1 i)))) (*.f64 (-.f64 (*.f64 x y2) (*.f64 z y3)) (-.f64 (*.f64 y0 c) (*.f64 y1 a)))) (*.f64 (-.f64 (*.f64 t j) (*.f64 y k)) (-.f64 (*.f64 y4 b) (*.f64 y5 i)))) (*.f64 (-.f64 (*.f64 t y2) (*.f64 y y3)) (-.f64 (*.f64 y4 c) (*.f64 y5 a)))) (*.f64 (-.f64 (*.f64 k y2) (*.f64 j y3)) (-.f64 (*.f64 y4 y1) (*.f64 y5 y0)))) Initial program 0.0%
Taylor expanded in j 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-*.f6430.1
Applied rewrites30.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -4.6e+282)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -3e+90)
(* -1.0 (* y2 (* y5 (- (* k y0) (* a t)))))
(if (<= y5 -2.7e-258)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1))))
(* j (- (* b y0) (* i y1)))))
(if (<= y5 7.5e-90)
(* y4 (- (fma b (- (* j t) (* k y)) (* k (* y1 y2))) (* c (* t y2))))
(if (<= y5 1.6e-12)
(* b (* y0 (- (* k z) (* j x))))
(if (<= y5 2.35e+40)
(* y2 (* y4 (- (* k y1) (* c t))))
(* 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.6e+282) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -3e+90) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y5 <= -2.7e-258) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1)))) - (j * ((b * y0) - (i * y1))));
} else if (y5 <= 7.5e-90) {
tmp = y4 * (fma(b, ((j * t) - (k * y)), (k * (y1 * y2))) - (c * (t * y2)));
} else if (y5 <= 1.6e-12) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (y5 <= 2.35e+40) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} 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.6e+282) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -3e+90) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(Float64(k * y0) - Float64(a * t))))); elseif (y5 <= -2.7e-258) tmp = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(j * Float64(Float64(b * y0) - Float64(i * y1))))); elseif (y5 <= 7.5e-90) tmp = Float64(y4 * Float64(fma(b, Float64(Float64(j * t) - Float64(k * y)), Float64(k * Float64(y1 * y2))) - Float64(c * Float64(t * y2)))); elseif (y5 <= 1.6e-12) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (y5 <= 2.35e+40) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); 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, -4.6e+282], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3e+90], N[(-1.0 * N[(y2 * N[(y5 * N[(N[(k * y0), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.7e-258], N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(j * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 7.5e-90], N[(y4 * N[(N[(b * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision] + N[(k * N[(y1 * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(c * N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.6e-12], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.35e+40], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $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.6 \cdot 10^{+282}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{+90}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0 - a \cdot t\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.7 \cdot 10^{-258}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - j \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;y5 \leq 7.5 \cdot 10^{-90}:\\
\;\;\;\;y4 \cdot \left(\mathsf{fma}\left(b, j \cdot t - k \cdot y, k \cdot \left(y1 \cdot y2\right)\right) - c \cdot \left(t \cdot y2\right)\right)\\
\mathbf{elif}\;y5 \leq 1.6 \cdot 10^{-12}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;y5 \leq 2.35 \cdot 10^{+40}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\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.60000000000000002e282Initial program 24.4%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites62.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6450.1
Applied rewrites50.1%
if -4.60000000000000002e282 < y5 < -2.99999999999999979e90Initial program 25.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.5%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.7
Applied rewrites37.7%
if -2.99999999999999979e90 < y5 < -2.69999999999999996e-258Initial program 32.0%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.3%
if -2.69999999999999996e-258 < y5 < 7.4999999999999999e-90Initial program 35.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.2%
Taylor expanded in y3 around 0
lower--.f64N/A
lower-fma.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f6435.1
Applied rewrites35.1%
if 7.4999999999999999e-90 < y5 < 1.6e-12Initial program 34.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.9%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6428.6
Applied rewrites28.6%
if 1.6e-12 < y5 < 2.3500000000000002e40Initial program 32.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6425.9
Applied rewrites25.9%
if 2.3500000000000002e40 < y5 Initial program 25.2%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites51.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.6
Applied rewrites39.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -4.6e+282)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -4.75e+86)
(* -1.0 (* y2 (* y5 (- (* k y0) (* a t)))))
(if (<= y5 -1.05e+16)
(* j (* t (- (* b y4) (* i y5))))
(if (<= y5 -6.7e-289)
(* a (* b (- (* x y) (* t z))))
(if (<= y5 7.5e-90)
(*
y4
(- (fma b (- (* j t) (* k y)) (* k (* y1 y2))) (* c (* t y2))))
(if (<= y5 1.6e-12)
(* b (* y0 (- (* k z) (* j x))))
(if (<= y5 2.35e+40)
(* y2 (* y4 (- (* k y1) (* c t))))
(* 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.6e+282) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -4.75e+86) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y5 <= -1.05e+16) {
tmp = j * (t * ((b * y4) - (i * y5)));
} else if (y5 <= -6.7e-289) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 7.5e-90) {
tmp = y4 * (fma(b, ((j * t) - (k * y)), (k * (y1 * y2))) - (c * (t * y2)));
} else if (y5 <= 1.6e-12) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (y5 <= 2.35e+40) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} 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.6e+282) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -4.75e+86) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(Float64(k * y0) - Float64(a * t))))); elseif (y5 <= -1.05e+16) tmp = Float64(j * Float64(t * Float64(Float64(b * y4) - Float64(i * y5)))); elseif (y5 <= -6.7e-289) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); elseif (y5 <= 7.5e-90) tmp = Float64(y4 * Float64(fma(b, Float64(Float64(j * t) - Float64(k * y)), Float64(k * Float64(y1 * y2))) - Float64(c * Float64(t * y2)))); elseif (y5 <= 1.6e-12) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (y5 <= 2.35e+40) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); 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, -4.6e+282], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.75e+86], N[(-1.0 * N[(y2 * N[(y5 * N[(N[(k * y0), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.05e+16], N[(j * N[(t * N[(N[(b * y4), $MachinePrecision] - N[(i * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -6.7e-289], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 7.5e-90], N[(y4 * N[(N[(b * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision] + N[(k * N[(y1 * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(c * N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.6e-12], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.35e+40], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $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.6 \cdot 10^{+282}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -4.75 \cdot 10^{+86}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0 - a \cdot t\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.05 \cdot 10^{+16}:\\
\;\;\;\;j \cdot \left(t \cdot \left(b \cdot y4 - i \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -6.7 \cdot 10^{-289}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 7.5 \cdot 10^{-90}:\\
\;\;\;\;y4 \cdot \left(\mathsf{fma}\left(b, j \cdot t - k \cdot y, k \cdot \left(y1 \cdot y2\right)\right) - c \cdot \left(t \cdot y2\right)\right)\\
\mathbf{elif}\;y5 \leq 1.6 \cdot 10^{-12}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;y5 \leq 2.35 \cdot 10^{+40}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\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.60000000000000002e282Initial program 24.4%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites62.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6450.1
Applied rewrites50.1%
if -4.60000000000000002e282 < y5 < -4.75000000000000014e86Initial program 25.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.3%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.6
Applied rewrites37.6%
if -4.75000000000000014e86 < y5 < -1.05e16Initial program 30.5%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.9%
Taylor expanded in j around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.3
Applied rewrites27.3%
if -1.05e16 < y5 < -6.70000000000000015e-289Initial program 32.7%
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
lift--.f64N/A
lift-*.f64N/A
lift-*.f6428.0
Applied rewrites28.0%
if -6.70000000000000015e-289 < y5 < 7.4999999999999999e-90Initial program 35.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.8%
Taylor expanded in y3 around 0
lower--.f64N/A
lower-fma.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f6435.8
Applied rewrites35.8%
if 7.4999999999999999e-90 < y5 < 1.6e-12Initial program 34.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.9%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6428.6
Applied rewrites28.6%
if 1.6e-12 < y5 < 2.3500000000000002e40Initial program 32.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6425.9
Applied rewrites25.9%
if 2.3500000000000002e40 < y5 Initial program 25.2%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites51.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.6
Applied rewrites39.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1
(*
y4
(-
(fma b (- (* j t) (* k y)) (* y1 (- (* k y2) (* j y3))))
(* c (- (* t y2) (* y y3)))))))
(if (<= y5 -4.6e+282)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -5.4e+90)
(* -1.0 (* y2 (* y5 (- (* k y0) (* a t)))))
(if (<= y5 -2.05e-74)
t_1
(if (<= y5 -2.75e-258)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1))))
(* j (- (* b y0) (* i y1)))))
(if (<= y5 2.15e+136) 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 = y4 * (fma(b, ((j * t) - (k * y)), (y1 * ((k * y2) - (j * y3)))) - (c * ((t * y2) - (y * y3))));
double tmp;
if (y5 <= -4.6e+282) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -5.4e+90) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y5 <= -2.05e-74) {
tmp = t_1;
} else if (y5 <= -2.75e-258) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1)))) - (j * ((b * y0) - (i * y1))));
} else if (y5 <= 2.15e+136) {
tmp = 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(y4 * Float64(fma(b, Float64(Float64(j * t) - Float64(k * y)), Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(c * Float64(Float64(t * y2) - Float64(y * y3))))) tmp = 0.0 if (y5 <= -4.6e+282) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -5.4e+90) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(Float64(k * y0) - Float64(a * t))))); elseif (y5 <= -2.05e-74) tmp = t_1; elseif (y5 <= -2.75e-258) tmp = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(j * Float64(Float64(b * y0) - Float64(i * y1))))); elseif (y5 <= 2.15e+136) tmp = 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[(y4 * N[(N[(b * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision] + N[(y1 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(c * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -4.6e+282], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -5.4e+90], N[(-1.0 * N[(y2 * N[(y5 * N[(N[(k * y0), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.05e-74], t$95$1, If[LessEqual[y5, -2.75e-258], N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(j * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.15e+136], t$95$1, N[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y4 \cdot \left(\mathsf{fma}\left(b, j \cdot t - k \cdot y, y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - c \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{if}\;y5 \leq -4.6 \cdot 10^{+282}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -5.4 \cdot 10^{+90}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0 - a \cdot t\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.05 \cdot 10^{-74}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq -2.75 \cdot 10^{-258}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - j \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;y5 \leq 2.15 \cdot 10^{+136}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -4.60000000000000002e282Initial program 24.4%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites62.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6450.1
Applied rewrites50.1%
if -4.60000000000000002e282 < y5 < -5.4e90Initial program 25.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.6%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.8
Applied rewrites37.8%
if -5.4e90 < y5 < -2.05000000000000016e-74 or -2.74999999999999985e-258 < y5 < 2.1499999999999999e136Initial program 32.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.4%
if -2.05000000000000016e-74 < y5 < -2.74999999999999985e-258Initial program 32.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.0%
if 2.1499999999999999e136 < y5 Initial program 24.0%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites56.2%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6443.5
Applied rewrites43.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -4.6e+282)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -4.75e+86)
(* -1.0 (* y2 (* y5 (- (* k y0) (* a t)))))
(if (<= y5 -1.05e+16)
(* j (* t (- (* b y4) (* i y5))))
(if (<= y5 -3.7e-296)
(* a (* b (- (* x y) (* t z))))
(if (<= y5 1.72e-22)
(* y4 (* b (- (* j t) (* k y))))
(if (<= y5 2.35e+40)
(* y4 (* y2 (- (* k y1) (* c t))))
(* 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.6e+282) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -4.75e+86) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y5 <= -1.05e+16) {
tmp = j * (t * ((b * y4) - (i * y5)));
} else if (y5 <= -3.7e-296) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 1.72e-22) {
tmp = y4 * (b * ((j * t) - (k * y)));
} else if (y5 <= 2.35e+40) {
tmp = y4 * (y2 * ((k * y1) - (c * t)));
} 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.6d+282)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y5 <= (-4.75d+86)) then
tmp = (-1.0d0) * (y2 * (y5 * ((k * y0) - (a * t))))
else if (y5 <= (-1.05d+16)) then
tmp = j * (t * ((b * y4) - (i * y5)))
else if (y5 <= (-3.7d-296)) then
tmp = a * (b * ((x * y) - (t * z)))
else if (y5 <= 1.72d-22) then
tmp = y4 * (b * ((j * t) - (k * y)))
else if (y5 <= 2.35d+40) then
tmp = y4 * (y2 * ((k * y1) - (c * t)))
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.6e+282) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -4.75e+86) {
tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t))));
} else if (y5 <= -1.05e+16) {
tmp = j * (t * ((b * y4) - (i * y5)));
} else if (y5 <= -3.7e-296) {
tmp = a * (b * ((x * y) - (t * z)));
} else if (y5 <= 1.72e-22) {
tmp = y4 * (b * ((j * t) - (k * y)));
} else if (y5 <= 2.35e+40) {
tmp = y4 * (y2 * ((k * y1) - (c * t)));
} 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.6e+282: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y5 <= -4.75e+86: tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t)))) elif y5 <= -1.05e+16: tmp = j * (t * ((b * y4) - (i * y5))) elif y5 <= -3.7e-296: tmp = a * (b * ((x * y) - (t * z))) elif y5 <= 1.72e-22: tmp = y4 * (b * ((j * t) - (k * y))) elif y5 <= 2.35e+40: tmp = y4 * (y2 * ((k * y1) - (c * t))) 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.6e+282) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -4.75e+86) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(Float64(k * y0) - Float64(a * t))))); elseif (y5 <= -1.05e+16) tmp = Float64(j * Float64(t * Float64(Float64(b * y4) - Float64(i * y5)))); elseif (y5 <= -3.7e-296) tmp = Float64(a * Float64(b * Float64(Float64(x * y) - Float64(t * z)))); elseif (y5 <= 1.72e-22) tmp = Float64(y4 * Float64(b * Float64(Float64(j * t) - Float64(k * y)))); elseif (y5 <= 2.35e+40) tmp = Float64(y4 * Float64(y2 * Float64(Float64(k * y1) - Float64(c * t)))); 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.6e+282) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y5 <= -4.75e+86) tmp = -1.0 * (y2 * (y5 * ((k * y0) - (a * t)))); elseif (y5 <= -1.05e+16) tmp = j * (t * ((b * y4) - (i * y5))); elseif (y5 <= -3.7e-296) tmp = a * (b * ((x * y) - (t * z))); elseif (y5 <= 1.72e-22) tmp = y4 * (b * ((j * t) - (k * y))); elseif (y5 <= 2.35e+40) tmp = y4 * (y2 * ((k * y1) - (c * t))); 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.6e+282], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.75e+86], N[(-1.0 * N[(y2 * N[(y5 * N[(N[(k * y0), $MachinePrecision] - N[(a * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -1.05e+16], N[(j * N[(t * N[(N[(b * y4), $MachinePrecision] - N[(i * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3.7e-296], N[(a * N[(b * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.72e-22], N[(y4 * N[(b * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.35e+40], N[(y4 * N[(y2 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $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.6 \cdot 10^{+282}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -4.75 \cdot 10^{+86}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0 - a \cdot t\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -1.05 \cdot 10^{+16}:\\
\;\;\;\;j \cdot \left(t \cdot \left(b \cdot y4 - i \cdot y5\right)\right)\\
\mathbf{elif}\;y5 \leq -3.7 \cdot 10^{-296}:\\
\;\;\;\;a \cdot \left(b \cdot \left(x \cdot y - t \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 1.72 \cdot 10^{-22}:\\
\;\;\;\;y4 \cdot \left(b \cdot \left(j \cdot t - k \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq 2.35 \cdot 10^{+40}:\\
\;\;\;\;y4 \cdot \left(y2 \cdot \left(k \cdot y1 - c \cdot t\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.60000000000000002e282Initial program 24.4%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites62.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6450.1
Applied rewrites50.1%
if -4.60000000000000002e282 < y5 < -4.75000000000000014e86Initial program 25.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.3%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.6
Applied rewrites37.6%
if -4.75000000000000014e86 < y5 < -1.05e16Initial program 30.5%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.9%
Taylor expanded in j around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.3
Applied rewrites27.3%
if -1.05e16 < y5 < -3.70000000000000027e-296Initial program 32.5%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.0%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6428.1
Applied rewrites28.1%
if -3.70000000000000027e-296 < y5 < 1.72000000000000001e-22Initial program 35.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.9%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6428.4
Applied rewrites28.4%
if 1.72000000000000001e-22 < y5 < 2.3500000000000002e40Initial program 33.0%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.2%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6424.5
Applied rewrites24.5%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.7
Applied rewrites27.7%
if 2.3500000000000002e40 < y5 Initial program 25.2%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites51.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.6
Applied rewrites39.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y4 -5.8e+107)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= y4 -1.12e-38)
(* x (* y (- (* a b) (* c i))))
(if (<= y4 -3e-194)
(* b (* y0 (- (* k z) (* j x))))
(if (<= y4 2.05e+33)
(* i (* k (- (* y y5) (* y1 z))))
(* c (* y4 (- (* y y3) (* 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 tmp;
if (y4 <= -5.8e+107) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (y4 <= -1.12e-38) {
tmp = x * (y * ((a * b) - (c * i)));
} else if (y4 <= -3e-194) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (y4 <= 2.05e+33) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else {
tmp = c * (y4 * ((y * y3) - (t * y2)));
}
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 (y4 <= (-5.8d+107)) then
tmp = y2 * (y4 * ((k * y1) - (c * t)))
else if (y4 <= (-1.12d-38)) then
tmp = x * (y * ((a * b) - (c * i)))
else if (y4 <= (-3d-194)) then
tmp = b * (y0 * ((k * z) - (j * x)))
else if (y4 <= 2.05d+33) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else
tmp = c * (y4 * ((y * y3) - (t * y2)))
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 (y4 <= -5.8e+107) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (y4 <= -1.12e-38) {
tmp = x * (y * ((a * b) - (c * i)));
} else if (y4 <= -3e-194) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (y4 <= 2.05e+33) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else {
tmp = c * (y4 * ((y * y3) - (t * y2)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y4 <= -5.8e+107: tmp = y2 * (y4 * ((k * y1) - (c * t))) elif y4 <= -1.12e-38: tmp = x * (y * ((a * b) - (c * i))) elif y4 <= -3e-194: tmp = b * (y0 * ((k * z) - (j * x))) elif y4 <= 2.05e+33: tmp = i * (k * ((y * y5) - (y1 * z))) else: tmp = c * (y4 * ((y * y3) - (t * y2))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y4 <= -5.8e+107) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (y4 <= -1.12e-38) tmp = Float64(x * Float64(y * Float64(Float64(a * b) - Float64(c * i)))); elseif (y4 <= -3e-194) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (y4 <= 2.05e+33) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); else tmp = Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))); 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 (y4 <= -5.8e+107) tmp = y2 * (y4 * ((k * y1) - (c * t))); elseif (y4 <= -1.12e-38) tmp = x * (y * ((a * b) - (c * i))); elseif (y4 <= -3e-194) tmp = b * (y0 * ((k * z) - (j * x))); elseif (y4 <= 2.05e+33) tmp = i * (k * ((y * y5) - (y1 * z))); else tmp = c * (y4 * ((y * y3) - (t * y2))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y4, -5.8e+107], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -1.12e-38], N[(x * N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -3e-194], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, 2.05e+33], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y4 \leq -5.8 \cdot 10^{+107}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;y4 \leq -1.12 \cdot 10^{-38}:\\
\;\;\;\;x \cdot \left(y \cdot \left(a \cdot b - c \cdot i\right)\right)\\
\mathbf{elif}\;y4 \leq -3 \cdot 10^{-194}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;y4 \leq 2.05 \cdot 10^{+33}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\end{array}
\end{array}
if y4 < -5.79999999999999975e107Initial program 21.3%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites56.5%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6443.1
Applied rewrites43.1%
if -5.79999999999999975e107 < y4 < -1.1200000000000001e-38Initial program 32.4%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.8%
Taylor expanded in y around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.7
Applied rewrites27.7%
if -1.1200000000000001e-38 < y4 < -3e-194Initial program 34.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites34.5%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6427.3
Applied rewrites27.3%
if -3e-194 < y4 < 2.04999999999999997e33Initial program 35.4%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.6%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6429.2
Applied rewrites29.2%
if 2.04999999999999997e33 < y4 Initial program 25.0%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.3%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6440.1
Applied rewrites40.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y4 -1.95e-23)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= y4 -3e-194)
(* b (* y0 (- (* k z) (* j x))))
(if (<= y4 2.05e+33)
(* i (* k (- (* y y5) (* y1 z))))
(* c (* y4 (- (* y y3) (* 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 tmp;
if (y4 <= -1.95e-23) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (y4 <= -3e-194) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (y4 <= 2.05e+33) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else {
tmp = c * (y4 * ((y * y3) - (t * y2)));
}
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 (y4 <= (-1.95d-23)) then
tmp = y2 * (y4 * ((k * y1) - (c * t)))
else if (y4 <= (-3d-194)) then
tmp = b * (y0 * ((k * z) - (j * x)))
else if (y4 <= 2.05d+33) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else
tmp = c * (y4 * ((y * y3) - (t * y2)))
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 (y4 <= -1.95e-23) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (y4 <= -3e-194) {
tmp = b * (y0 * ((k * z) - (j * x)));
} else if (y4 <= 2.05e+33) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else {
tmp = c * (y4 * ((y * y3) - (t * y2)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y4 <= -1.95e-23: tmp = y2 * (y4 * ((k * y1) - (c * t))) elif y4 <= -3e-194: tmp = b * (y0 * ((k * z) - (j * x))) elif y4 <= 2.05e+33: tmp = i * (k * ((y * y5) - (y1 * z))) else: tmp = c * (y4 * ((y * y3) - (t * y2))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y4 <= -1.95e-23) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (y4 <= -3e-194) tmp = Float64(b * Float64(y0 * Float64(Float64(k * z) - Float64(j * x)))); elseif (y4 <= 2.05e+33) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); else tmp = Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))); 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 (y4 <= -1.95e-23) tmp = y2 * (y4 * ((k * y1) - (c * t))); elseif (y4 <= -3e-194) tmp = b * (y0 * ((k * z) - (j * x))); elseif (y4 <= 2.05e+33) tmp = i * (k * ((y * y5) - (y1 * z))); else tmp = c * (y4 * ((y * y3) - (t * y2))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y4, -1.95e-23], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -3e-194], N[(b * N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, 2.05e+33], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y4 \leq -1.95 \cdot 10^{-23}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;y4 \leq -3 \cdot 10^{-194}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\\
\mathbf{elif}\;y4 \leq 2.05 \cdot 10^{+33}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\end{array}
\end{array}
if y4 < -1.95e-23Initial program 25.3%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites49.0%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.2
Applied rewrites36.2%
if -1.95e-23 < y4 < -3e-194Initial program 34.5%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.5%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6427.4
Applied rewrites27.4%
if -3e-194 < y4 < 2.04999999999999997e33Initial program 35.4%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.6%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6429.2
Applied rewrites29.2%
if 2.04999999999999997e33 < y4 Initial program 25.0%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.3%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6440.1
Applied rewrites40.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y3 -2.5e+18)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y3 3.4e-232)
(* i (* k (- (* y y5) (* y1 z))))
(if (<= y3 2200.0)
(* i (* z (- (* c t) (* k y1))))
(if (<= y3 2.6e+215)
(* c (* y4 (- (* y y3) (* 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 (y3 <= -2.5e+18) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 3.4e-232) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y3 <= 2200.0) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (y3 <= 2.6e+215) {
tmp = c * (y4 * ((y * y3) - (t * y2)));
} 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 (y3 <= (-2.5d+18)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y3 <= 3.4d-232) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else if (y3 <= 2200.0d0) then
tmp = i * (z * ((c * t) - (k * y1)))
else if (y3 <= 2.6d+215) then
tmp = c * (y4 * ((y * y3) - (t * y2)))
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 (y3 <= -2.5e+18) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 3.4e-232) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y3 <= 2200.0) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (y3 <= 2.6e+215) {
tmp = c * (y4 * ((y * y3) - (t * y2)));
} 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 y3 <= -2.5e+18: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y3 <= 3.4e-232: tmp = i * (k * ((y * y5) - (y1 * z))) elif y3 <= 2200.0: tmp = i * (z * ((c * t) - (k * y1))) elif y3 <= 2.6e+215: tmp = c * (y4 * ((y * y3) - (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 (y3 <= -2.5e+18) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y3 <= 3.4e-232) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); elseif (y3 <= 2200.0) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); elseif (y3 <= 2.6e+215) tmp = Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))); 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 (y3 <= -2.5e+18) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y3 <= 3.4e-232) tmp = i * (k * ((y * y5) - (y1 * z))); elseif (y3 <= 2200.0) tmp = i * (z * ((c * t) - (k * y1))); elseif (y3 <= 2.6e+215) tmp = c * (y4 * ((y * y3) - (t * y2))); 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[y3, -2.5e+18], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 3.4e-232], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 2200.0], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 2.6e+215], N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $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}\;y3 \leq -2.5 \cdot 10^{+18}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y3 \leq 3.4 \cdot 10^{-232}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{elif}\;y3 \leq 2200:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{elif}\;y3 \leq 2.6 \cdot 10^{+215}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y3 < -2.5e18Initial program 25.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.8
Applied rewrites36.8%
if -2.5e18 < y3 < 3.4000000000000002e-232Initial program 33.3%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if 3.4000000000000002e-232 < y3 < 2200Initial program 35.9%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.4
Applied rewrites26.4%
if 2200 < y3 < 2.6e215Initial program 28.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6430.3
Applied rewrites30.3%
if 2.6e215 < y3 Initial program 22.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites43.6%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6441.4
Applied rewrites41.4%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y3 -2.5e+18)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y3 3.4e-232)
(* i (* k (- (* y y5) (* y1 z))))
(if (<= y3 4.5e-16)
(* i (* z (- (* c t) (* k y1))))
(if (<= y3 1.1e+211)
(* 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 (y3 <= -2.5e+18) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 3.4e-232) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y3 <= 4.5e-16) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (y3 <= 1.1e+211) {
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 (y3 <= (-2.5d+18)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y3 <= 3.4d-232) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else if (y3 <= 4.5d-16) then
tmp = i * (z * ((c * t) - (k * y1)))
else if (y3 <= 1.1d+211) 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 (y3 <= -2.5e+18) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 3.4e-232) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y3 <= 4.5e-16) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (y3 <= 1.1e+211) {
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 y3 <= -2.5e+18: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y3 <= 3.4e-232: tmp = i * (k * ((y * y5) - (y1 * z))) elif y3 <= 4.5e-16: tmp = i * (z * ((c * t) - (k * y1))) elif y3 <= 1.1e+211: 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 (y3 <= -2.5e+18) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y3 <= 3.4e-232) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); elseif (y3 <= 4.5e-16) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); elseif (y3 <= 1.1e+211) 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 (y3 <= -2.5e+18) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y3 <= 3.4e-232) tmp = i * (k * ((y * y5) - (y1 * z))); elseif (y3 <= 4.5e-16) tmp = i * (z * ((c * t) - (k * y1))); elseif (y3 <= 1.1e+211) 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[y3, -2.5e+18], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 3.4e-232], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 4.5e-16], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.1e+211], 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}\;y3 \leq -2.5 \cdot 10^{+18}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y3 \leq 3.4 \cdot 10^{-232}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{elif}\;y3 \leq 4.5 \cdot 10^{-16}:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{elif}\;y3 \leq 1.1 \cdot 10^{+211}:\\
\;\;\;\;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 y3 < -2.5e18Initial program 25.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.8
Applied rewrites36.8%
if -2.5e18 < y3 < 3.4000000000000002e-232Initial program 33.3%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if 3.4000000000000002e-232 < y3 < 4.5000000000000002e-16Initial program 36.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.4%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
if 4.5000000000000002e-16 < y3 < 1.10000000000000002e211Initial program 28.6%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.4%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6426.8
Applied rewrites26.8%
if 1.10000000000000002e211 < y3 Initial program 22.0%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites43.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6440.9
Applied rewrites40.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y4 -1.15e-8)
(* y2 (* y4 (- (* k y1) (* c t))))
(if (<= y4 2.05e+33)
(* i (* k (- (* y y5) (* y1 z))))
(* c (* y4 (- (* y y3) (* 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 tmp;
if (y4 <= -1.15e-8) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (y4 <= 2.05e+33) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else {
tmp = c * (y4 * ((y * y3) - (t * y2)));
}
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 (y4 <= (-1.15d-8)) then
tmp = y2 * (y4 * ((k * y1) - (c * t)))
else if (y4 <= 2.05d+33) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else
tmp = c * (y4 * ((y * y3) - (t * y2)))
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 (y4 <= -1.15e-8) {
tmp = y2 * (y4 * ((k * y1) - (c * t)));
} else if (y4 <= 2.05e+33) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else {
tmp = c * (y4 * ((y * y3) - (t * y2)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y4 <= -1.15e-8: tmp = y2 * (y4 * ((k * y1) - (c * t))) elif y4 <= 2.05e+33: tmp = i * (k * ((y * y5) - (y1 * z))) else: tmp = c * (y4 * ((y * y3) - (t * y2))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y4 <= -1.15e-8) tmp = Float64(y2 * Float64(y4 * Float64(Float64(k * y1) - Float64(c * t)))); elseif (y4 <= 2.05e+33) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); else tmp = Float64(c * Float64(y4 * Float64(Float64(y * y3) - Float64(t * y2)))); 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 (y4 <= -1.15e-8) tmp = y2 * (y4 * ((k * y1) - (c * t))); elseif (y4 <= 2.05e+33) tmp = i * (k * ((y * y5) - (y1 * z))); else tmp = c * (y4 * ((y * y3) - (t * y2))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y4, -1.15e-8], N[(y2 * N[(y4 * N[(N[(k * y1), $MachinePrecision] - N[(c * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, 2.05e+33], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(c * N[(y4 * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y4 \leq -1.15 \cdot 10^{-8}:\\
\;\;\;\;y2 \cdot \left(y4 \cdot \left(k \cdot y1 - c \cdot t\right)\right)\\
\mathbf{elif}\;y4 \leq 2.05 \cdot 10^{+33}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\end{array}
\end{array}
if y4 < -1.15e-8Initial program 24.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites50.3%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.1
Applied rewrites37.1%
if -1.15e-8 < y4 < 2.04999999999999997e33Initial program 35.2%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6429.3
Applied rewrites29.3%
if 2.04999999999999997e33 < y4 Initial program 25.0%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.3%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6440.1
Applied rewrites40.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y3 -2.5e+18)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y3 1.05e-251)
(* i (* k (- (* y y5) (* y1 z))))
(if (<= y3 5.4e+163)
(* j (* t (- (* b y4) (* i 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 (y3 <= -2.5e+18) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 1.05e-251) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y3 <= 5.4e+163) {
tmp = j * (t * ((b * y4) - (i * 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 (y3 <= (-2.5d+18)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y3 <= 1.05d-251) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else if (y3 <= 5.4d+163) then
tmp = j * (t * ((b * y4) - (i * 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 (y3 <= -2.5e+18) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 1.05e-251) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y3 <= 5.4e+163) {
tmp = j * (t * ((b * y4) - (i * 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 y3 <= -2.5e+18: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y3 <= 1.05e-251: tmp = i * (k * ((y * y5) - (y1 * z))) elif y3 <= 5.4e+163: tmp = j * (t * ((b * y4) - (i * 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 (y3 <= -2.5e+18) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y3 <= 1.05e-251) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); elseif (y3 <= 5.4e+163) tmp = Float64(j * Float64(t * Float64(Float64(b * y4) - Float64(i * 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 (y3 <= -2.5e+18) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y3 <= 1.05e-251) tmp = i * (k * ((y * y5) - (y1 * z))); elseif (y3 <= 5.4e+163) tmp = j * (t * ((b * y4) - (i * 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[y3, -2.5e+18], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.05e-251], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 5.4e+163], N[(j * N[(t * N[(N[(b * y4), $MachinePrecision] - N[(i * 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}\;y3 \leq -2.5 \cdot 10^{+18}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y3 \leq 1.05 \cdot 10^{-251}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{elif}\;y3 \leq 5.4 \cdot 10^{+163}:\\
\;\;\;\;j \cdot \left(t \cdot \left(b \cdot y4 - i \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 y3 < -2.5e18Initial program 25.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.8
Applied rewrites36.8%
if -2.5e18 < y3 < 1.04999999999999991e-251Initial program 32.8%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.2%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 1.04999999999999991e-251 < y3 < 5.39999999999999998e163Initial program 33.8%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.0%
Taylor expanded in j around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.6
Applied rewrites27.6%
if 5.39999999999999998e163 < y3 Initial program 22.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites43.3%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.3
Applied rewrites38.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -8.8e+274)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -2.4e+104)
(* -1.0 (* k (* y0 (* y2 y5))))
(if (<= y5 3.1e-33)
(* 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 <= -8.8e+274) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -2.4e+104) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 3.1e-33) {
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 <= (-8.8d+274)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y5 <= (-2.4d+104)) then
tmp = (-1.0d0) * (k * (y0 * (y2 * y5)))
else if (y5 <= 3.1d-33) 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 <= -8.8e+274) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -2.4e+104) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 3.1e-33) {
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 <= -8.8e+274: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y5 <= -2.4e+104: tmp = -1.0 * (k * (y0 * (y2 * y5))) elif y5 <= 3.1e-33: 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 <= -8.8e+274) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -2.4e+104) tmp = Float64(-1.0 * Float64(k * Float64(y0 * Float64(y2 * y5)))); elseif (y5 <= 3.1e-33) 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 <= -8.8e+274) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y5 <= -2.4e+104) tmp = -1.0 * (k * (y0 * (y2 * y5))); elseif (y5 <= 3.1e-33) 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, -8.8e+274], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.4e+104], N[(-1.0 * N[(k * N[(y0 * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 3.1e-33], 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 -8.8 \cdot 10^{+274}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -2.4 \cdot 10^{+104}:\\
\;\;\;\;-1 \cdot \left(k \cdot \left(y0 \cdot \left(y2 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 3.1 \cdot 10^{-33}:\\
\;\;\;\;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 < -8.8000000000000004e274Initial program 24.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites63.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6451.7
Applied rewrites51.7%
if -8.8000000000000004e274 < y5 < -2.4e104Initial program 25.6%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.8%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.9
Applied rewrites37.9%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6430.0
Applied rewrites30.0%
if -2.4e104 < y5 < 3.09999999999999997e-33Initial program 33.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.4%
Taylor expanded in a around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6428.7
Applied rewrites28.7%
if 3.09999999999999997e-33 < y5 Initial program 26.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites48.0%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.7
Applied rewrites36.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -8.8e+274)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y5 -4.5e+97)
(* -1.0 (* k (* y0 (* y2 y5))))
(if (<= y5 8.5e-229)
(* i (* y1 (- (* j x) (* k z))))
(if (<= y5 480000000000.0)
(* i (* z (- (* c t) (* k y1))))
(* 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 <= -8.8e+274) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 8.5e-229) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else if (y5 <= 480000000000.0) {
tmp = i * (z * ((c * t) - (k * y1)));
} 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 <= (-8.8d+274)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y5 <= (-4.5d+97)) then
tmp = (-1.0d0) * (k * (y0 * (y2 * y5)))
else if (y5 <= 8.5d-229) then
tmp = i * (y1 * ((j * x) - (k * z)))
else if (y5 <= 480000000000.0d0) then
tmp = i * (z * ((c * t) - (k * y1)))
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 <= -8.8e+274) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 8.5e-229) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else if (y5 <= 480000000000.0) {
tmp = i * (z * ((c * t) - (k * y1)));
} 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 <= -8.8e+274: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y5 <= -4.5e+97: tmp = -1.0 * (k * (y0 * (y2 * y5))) elif y5 <= 8.5e-229: tmp = i * (y1 * ((j * x) - (k * z))) elif y5 <= 480000000000.0: tmp = i * (z * ((c * t) - (k * y1))) 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 <= -8.8e+274) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y5 <= -4.5e+97) tmp = Float64(-1.0 * Float64(k * Float64(y0 * Float64(y2 * y5)))); elseif (y5 <= 8.5e-229) tmp = Float64(i * Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))); elseif (y5 <= 480000000000.0) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); 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 <= -8.8e+274) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y5 <= -4.5e+97) tmp = -1.0 * (k * (y0 * (y2 * y5))); elseif (y5 <= 8.5e-229) tmp = i * (y1 * ((j * x) - (k * z))); elseif (y5 <= 480000000000.0) tmp = i * (z * ((c * t) - (k * y1))); 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, -8.8e+274], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.5e+97], N[(-1.0 * N[(k * N[(y0 * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.5e-229], N[(i * N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 480000000000.0], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $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 -8.8 \cdot 10^{+274}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y5 \leq -4.5 \cdot 10^{+97}:\\
\;\;\;\;-1 \cdot \left(k \cdot \left(y0 \cdot \left(y2 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 8.5 \cdot 10^{-229}:\\
\;\;\;\;i \cdot \left(y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 480000000000:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\end{array}
\end{array}
if y5 < -8.8000000000000004e274Initial program 24.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites63.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6451.7
Applied rewrites51.7%
if -8.8000000000000004e274 < y5 < -4.49999999999999976e97Initial program 25.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.6
Applied rewrites37.6%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6430.0
Applied rewrites30.0%
if -4.49999999999999976e97 < y5 < 8.49999999999999977e-229Initial program 32.5%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.8%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6428.2
Applied rewrites28.2%
if 8.49999999999999977e-229 < y5 < 4.8e11Initial program 35.1%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.2%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 4.8e11 < y5 Initial program 25.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites50.4%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8
Applied rewrites38.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* y (* y5 (- (* i k) (* a y3))))))
(if (<= y5 -7.2e+274)
t_1
(if (<= y5 -4.5e+97)
(* -1.0 (* k (* y0 (* y2 y5))))
(if (<= y5 8.5e-229)
(* i (* y1 (- (* j x) (* k z))))
(if (<= y5 480000000000.0) (* i (* z (- (* c t) (* k y1)))) 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 = y * (y5 * ((i * k) - (a * y3)));
double tmp;
if (y5 <= -7.2e+274) {
tmp = t_1;
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 8.5e-229) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else if (y5 <= 480000000000.0) {
tmp = i * (z * ((c * t) - (k * y1)));
} 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 = y * (y5 * ((i * k) - (a * y3)))
if (y5 <= (-7.2d+274)) then
tmp = t_1
else if (y5 <= (-4.5d+97)) then
tmp = (-1.0d0) * (k * (y0 * (y2 * y5)))
else if (y5 <= 8.5d-229) then
tmp = i * (y1 * ((j * x) - (k * z)))
else if (y5 <= 480000000000.0d0) then
tmp = i * (z * ((c * t) - (k * y1)))
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 = y * (y5 * ((i * k) - (a * y3)));
double tmp;
if (y5 <= -7.2e+274) {
tmp = t_1;
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 8.5e-229) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else if (y5 <= 480000000000.0) {
tmp = i * (z * ((c * t) - (k * y1)));
} 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 = y * (y5 * ((i * k) - (a * y3))) tmp = 0 if y5 <= -7.2e+274: tmp = t_1 elif y5 <= -4.5e+97: tmp = -1.0 * (k * (y0 * (y2 * y5))) elif y5 <= 8.5e-229: tmp = i * (y1 * ((j * x) - (k * z))) elif y5 <= 480000000000.0: tmp = i * (z * ((c * t) - (k * y1))) 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(y * Float64(y5 * Float64(Float64(i * k) - Float64(a * y3)))) tmp = 0.0 if (y5 <= -7.2e+274) tmp = t_1; elseif (y5 <= -4.5e+97) tmp = Float64(-1.0 * Float64(k * Float64(y0 * Float64(y2 * y5)))); elseif (y5 <= 8.5e-229) tmp = Float64(i * Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))); elseif (y5 <= 480000000000.0) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); 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 = y * (y5 * ((i * k) - (a * y3))); tmp = 0.0; if (y5 <= -7.2e+274) tmp = t_1; elseif (y5 <= -4.5e+97) tmp = -1.0 * (k * (y0 * (y2 * y5))); elseif (y5 <= 8.5e-229) tmp = i * (y1 * ((j * x) - (k * z))); elseif (y5 <= 480000000000.0) tmp = i * (z * ((c * t) - (k * y1))); 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[(y * N[(y5 * N[(N[(i * k), $MachinePrecision] - N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -7.2e+274], t$95$1, If[LessEqual[y5, -4.5e+97], N[(-1.0 * N[(k * N[(y0 * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.5e-229], N[(i * N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 480000000000.0], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(y5 \cdot \left(i \cdot k - a \cdot y3\right)\right)\\
\mathbf{if}\;y5 \leq -7.2 \cdot 10^{+274}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq -4.5 \cdot 10^{+97}:\\
\;\;\;\;-1 \cdot \left(k \cdot \left(y0 \cdot \left(y2 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 8.5 \cdot 10^{-229}:\\
\;\;\;\;i \cdot \left(y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 480000000000:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -7.1999999999999999e274 or 4.8e11 < y5 Initial program 25.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites51.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6440.4
Applied rewrites40.4%
if -7.1999999999999999e274 < y5 < -4.49999999999999976e97Initial program 25.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.6
Applied rewrites37.6%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6430.0
Applied rewrites30.0%
if -4.49999999999999976e97 < y5 < 8.49999999999999977e-229Initial program 32.5%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.8%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6428.2
Applied rewrites28.2%
if 8.49999999999999977e-229 < y5 < 4.8e11Initial program 35.1%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.2%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -8.8e+274)
(* y (* y5 (* -1.0 (* a y3))))
(if (<= y5 -4.5e+97)
(* -1.0 (* k (* y0 (* y2 y5))))
(if (<= y5 8.5e-229)
(* i (* y1 (- (* j x) (* k z))))
(if (<= y5 8.2e+83)
(* i (* z (- (* c t) (* k y1))))
(* y (* i (* k 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 (y5 <= -8.8e+274) {
tmp = y * (y5 * (-1.0 * (a * y3)));
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 8.5e-229) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else if (y5 <= 8.2e+83) {
tmp = i * (z * ((c * t) - (k * y1)));
} else {
tmp = y * (i * (k * 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 (y5 <= (-8.8d+274)) then
tmp = y * (y5 * ((-1.0d0) * (a * y3)))
else if (y5 <= (-4.5d+97)) then
tmp = (-1.0d0) * (k * (y0 * (y2 * y5)))
else if (y5 <= 8.5d-229) then
tmp = i * (y1 * ((j * x) - (k * z)))
else if (y5 <= 8.2d+83) then
tmp = i * (z * ((c * t) - (k * y1)))
else
tmp = y * (i * (k * 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 (y5 <= -8.8e+274) {
tmp = y * (y5 * (-1.0 * (a * y3)));
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 8.5e-229) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else if (y5 <= 8.2e+83) {
tmp = i * (z * ((c * t) - (k * y1)));
} else {
tmp = y * (i * (k * y5));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -8.8e+274: tmp = y * (y5 * (-1.0 * (a * y3))) elif y5 <= -4.5e+97: tmp = -1.0 * (k * (y0 * (y2 * y5))) elif y5 <= 8.5e-229: tmp = i * (y1 * ((j * x) - (k * z))) elif y5 <= 8.2e+83: tmp = i * (z * ((c * t) - (k * y1))) else: tmp = y * (i * (k * 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 (y5 <= -8.8e+274) tmp = Float64(y * Float64(y5 * Float64(-1.0 * Float64(a * y3)))); elseif (y5 <= -4.5e+97) tmp = Float64(-1.0 * Float64(k * Float64(y0 * Float64(y2 * y5)))); elseif (y5 <= 8.5e-229) tmp = Float64(i * Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))); elseif (y5 <= 8.2e+83) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); else tmp = Float64(y * Float64(i * Float64(k * 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 (y5 <= -8.8e+274) tmp = y * (y5 * (-1.0 * (a * y3))); elseif (y5 <= -4.5e+97) tmp = -1.0 * (k * (y0 * (y2 * y5))); elseif (y5 <= 8.5e-229) tmp = i * (y1 * ((j * x) - (k * z))); elseif (y5 <= 8.2e+83) tmp = i * (z * ((c * t) - (k * y1))); else tmp = y * (i * (k * 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[y5, -8.8e+274], N[(y * N[(y5 * N[(-1.0 * N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.5e+97], N[(-1.0 * N[(k * N[(y0 * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.5e-229], N[(i * N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 8.2e+83], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -8.8 \cdot 10^{+274}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(-1 \cdot \left(a \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -4.5 \cdot 10^{+97}:\\
\;\;\;\;-1 \cdot \left(k \cdot \left(y0 \cdot \left(y2 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 8.5 \cdot 10^{-229}:\\
\;\;\;\;i \cdot \left(y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq 8.2 \cdot 10^{+83}:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\end{array}
\end{array}
if y5 < -8.8000000000000004e274Initial program 24.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites63.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6454.6
Applied rewrites54.6%
Taylor expanded in a around inf
lower-*.f64N/A
lift-*.f6438.5
Applied rewrites38.5%
if -8.8000000000000004e274 < y5 < -4.49999999999999976e97Initial program 25.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.6
Applied rewrites37.6%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6430.0
Applied rewrites30.0%
if -4.49999999999999976e97 < y5 < 8.49999999999999977e-229Initial program 32.5%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.8%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6428.2
Applied rewrites28.2%
if 8.49999999999999977e-229 < y5 < 8.2000000000000002e83Initial program 33.5%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
if 8.2000000000000002e83 < y5 Initial program 25.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites54.0%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6441.5
Applied rewrites41.5%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6430.5
Applied rewrites30.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -8.8e+274)
(* y (* y5 (* -1.0 (* a y3))))
(if (<= y5 -4.5e+97)
(* -1.0 (* k (* y0 (* y2 y5))))
(if (<= y5 5.5e+49)
(* i (* y1 (- (* j x) (* k z))))
(* y (* i (* k 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 (y5 <= -8.8e+274) {
tmp = y * (y5 * (-1.0 * (a * y3)));
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 5.5e+49) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else {
tmp = y * (i * (k * 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 (y5 <= (-8.8d+274)) then
tmp = y * (y5 * ((-1.0d0) * (a * y3)))
else if (y5 <= (-4.5d+97)) then
tmp = (-1.0d0) * (k * (y0 * (y2 * y5)))
else if (y5 <= 5.5d+49) then
tmp = i * (y1 * ((j * x) - (k * z)))
else
tmp = y * (i * (k * 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 (y5 <= -8.8e+274) {
tmp = y * (y5 * (-1.0 * (a * y3)));
} else if (y5 <= -4.5e+97) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 5.5e+49) {
tmp = i * (y1 * ((j * x) - (k * z)));
} else {
tmp = y * (i * (k * y5));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -8.8e+274: tmp = y * (y5 * (-1.0 * (a * y3))) elif y5 <= -4.5e+97: tmp = -1.0 * (k * (y0 * (y2 * y5))) elif y5 <= 5.5e+49: tmp = i * (y1 * ((j * x) - (k * z))) else: tmp = y * (i * (k * 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 (y5 <= -8.8e+274) tmp = Float64(y * Float64(y5 * Float64(-1.0 * Float64(a * y3)))); elseif (y5 <= -4.5e+97) tmp = Float64(-1.0 * Float64(k * Float64(y0 * Float64(y2 * y5)))); elseif (y5 <= 5.5e+49) tmp = Float64(i * Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))); else tmp = Float64(y * Float64(i * Float64(k * 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 (y5 <= -8.8e+274) tmp = y * (y5 * (-1.0 * (a * y3))); elseif (y5 <= -4.5e+97) tmp = -1.0 * (k * (y0 * (y2 * y5))); elseif (y5 <= 5.5e+49) tmp = i * (y1 * ((j * x) - (k * z))); else tmp = y * (i * (k * 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[y5, -8.8e+274], N[(y * N[(y5 * N[(-1.0 * N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -4.5e+97], N[(-1.0 * N[(k * N[(y0 * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 5.5e+49], N[(i * N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -8.8 \cdot 10^{+274}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(-1 \cdot \left(a \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -4.5 \cdot 10^{+97}:\\
\;\;\;\;-1 \cdot \left(k \cdot \left(y0 \cdot \left(y2 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 5.5 \cdot 10^{+49}:\\
\;\;\;\;i \cdot \left(y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\end{array}
\end{array}
if y5 < -8.8000000000000004e274Initial program 24.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites63.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6454.6
Applied rewrites54.6%
Taylor expanded in a around inf
lower-*.f64N/A
lift-*.f6438.5
Applied rewrites38.5%
if -8.8000000000000004e274 < y5 < -4.49999999999999976e97Initial program 25.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.6
Applied rewrites37.6%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6430.0
Applied rewrites30.0%
if -4.49999999999999976e97 < y5 < 5.50000000000000042e49Initial program 33.1%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.7%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6428.2
Applied rewrites28.2%
if 5.50000000000000042e49 < y5 Initial program 25.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.3%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.9
Applied rewrites39.9%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6429.0
Applied rewrites29.0%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= i -2.7e+175)
(* y (* y5 (* i k)))
(if (<= i 1.12e-306)
(* -1.0 (* y2 (* y5 (* k y0))))
(if (<= i 1.95e+104)
(* y4 (* b (* j t)))
(* t (* i (* -1.0 (* j 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 (i <= -2.7e+175) {
tmp = y * (y5 * (i * k));
} else if (i <= 1.12e-306) {
tmp = -1.0 * (y2 * (y5 * (k * y0)));
} else if (i <= 1.95e+104) {
tmp = y4 * (b * (j * t));
} else {
tmp = t * (i * (-1.0 * (j * 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 (i <= (-2.7d+175)) then
tmp = y * (y5 * (i * k))
else if (i <= 1.12d-306) then
tmp = (-1.0d0) * (y2 * (y5 * (k * y0)))
else if (i <= 1.95d+104) then
tmp = y4 * (b * (j * t))
else
tmp = t * (i * ((-1.0d0) * (j * 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 (i <= -2.7e+175) {
tmp = y * (y5 * (i * k));
} else if (i <= 1.12e-306) {
tmp = -1.0 * (y2 * (y5 * (k * y0)));
} else if (i <= 1.95e+104) {
tmp = y4 * (b * (j * t));
} else {
tmp = t * (i * (-1.0 * (j * y5)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if i <= -2.7e+175: tmp = y * (y5 * (i * k)) elif i <= 1.12e-306: tmp = -1.0 * (y2 * (y5 * (k * y0))) elif i <= 1.95e+104: tmp = y4 * (b * (j * t)) else: tmp = t * (i * (-1.0 * (j * 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 (i <= -2.7e+175) tmp = Float64(y * Float64(y5 * Float64(i * k))); elseif (i <= 1.12e-306) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(k * y0)))); elseif (i <= 1.95e+104) tmp = Float64(y4 * Float64(b * Float64(j * t))); else tmp = Float64(t * Float64(i * Float64(-1.0 * Float64(j * 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 (i <= -2.7e+175) tmp = y * (y5 * (i * k)); elseif (i <= 1.12e-306) tmp = -1.0 * (y2 * (y5 * (k * y0))); elseif (i <= 1.95e+104) tmp = y4 * (b * (j * t)); else tmp = t * (i * (-1.0 * (j * 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[i, -2.7e+175], N[(y * N[(y5 * N[(i * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[i, 1.12e-306], N[(-1.0 * N[(y2 * N[(y5 * N[(k * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[i, 1.95e+104], N[(y4 * N[(b * N[(j * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t * N[(i * N[(-1.0 * N[(j * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;i \leq -2.7 \cdot 10^{+175}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(i \cdot k\right)\right)\\
\mathbf{elif}\;i \leq 1.12 \cdot 10^{-306}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0\right)\right)\right)\\
\mathbf{elif}\;i \leq 1.95 \cdot 10^{+104}:\\
\;\;\;\;y4 \cdot \left(b \cdot \left(j \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(i \cdot \left(-1 \cdot \left(j \cdot y5\right)\right)\right)\\
\end{array}
\end{array}
if i < -2.7000000000000001e175Initial program 21.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites41.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.8
Applied rewrites37.8%
Taylor expanded in a around 0
lift-*.f6435.0
Applied rewrites35.0%
if -2.7000000000000001e175 < i < 1.12e-306Initial program 33.3%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.4%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.1
Applied rewrites26.1%
Taylor expanded in t around 0
lift-*.f6417.7
Applied rewrites17.7%
if 1.12e-306 < i < 1.95000000000000008e104Initial program 33.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.3%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6425.7
Applied rewrites25.7%
Taylor expanded in y around 0
lift-*.f6416.8
Applied rewrites16.8%
if 1.95000000000000008e104 < i Initial program 21.4%
Taylor expanded in t around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.4%
Taylor expanded in i around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6444.6
Applied rewrites44.6%
Taylor expanded in z around 0
lower-*.f64N/A
lift-*.f6429.1
Applied rewrites29.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* y (* y5 (* i k)))))
(if (<= i -2.7e+175)
t_1
(if (<= i 1.12e-306)
(* -1.0 (* y2 (* y5 (* k y0))))
(if (<= i 6.2e+104) (* y4 (* b (* j t))) 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 = y * (y5 * (i * k));
double tmp;
if (i <= -2.7e+175) {
tmp = t_1;
} else if (i <= 1.12e-306) {
tmp = -1.0 * (y2 * (y5 * (k * y0)));
} else if (i <= 6.2e+104) {
tmp = y4 * (b * (j * t));
} 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 = y * (y5 * (i * k))
if (i <= (-2.7d+175)) then
tmp = t_1
else if (i <= 1.12d-306) then
tmp = (-1.0d0) * (y2 * (y5 * (k * y0)))
else if (i <= 6.2d+104) then
tmp = y4 * (b * (j * t))
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 = y * (y5 * (i * k));
double tmp;
if (i <= -2.7e+175) {
tmp = t_1;
} else if (i <= 1.12e-306) {
tmp = -1.0 * (y2 * (y5 * (k * y0)));
} else if (i <= 6.2e+104) {
tmp = y4 * (b * (j * t));
} 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 = y * (y5 * (i * k)) tmp = 0 if i <= -2.7e+175: tmp = t_1 elif i <= 1.12e-306: tmp = -1.0 * (y2 * (y5 * (k * y0))) elif i <= 6.2e+104: tmp = y4 * (b * (j * t)) 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(y * Float64(y5 * Float64(i * k))) tmp = 0.0 if (i <= -2.7e+175) tmp = t_1; elseif (i <= 1.12e-306) tmp = Float64(-1.0 * Float64(y2 * Float64(y5 * Float64(k * y0)))); elseif (i <= 6.2e+104) tmp = Float64(y4 * Float64(b * Float64(j * t))); 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 = y * (y5 * (i * k)); tmp = 0.0; if (i <= -2.7e+175) tmp = t_1; elseif (i <= 1.12e-306) tmp = -1.0 * (y2 * (y5 * (k * y0))); elseif (i <= 6.2e+104) tmp = y4 * (b * (j * t)); 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[(y * N[(y5 * N[(i * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[i, -2.7e+175], t$95$1, If[LessEqual[i, 1.12e-306], N[(-1.0 * N[(y2 * N[(y5 * N[(k * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[i, 6.2e+104], N[(y4 * N[(b * N[(j * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(y5 \cdot \left(i \cdot k\right)\right)\\
\mathbf{if}\;i \leq -2.7 \cdot 10^{+175}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;i \leq 1.12 \cdot 10^{-306}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(y5 \cdot \left(k \cdot y0\right)\right)\right)\\
\mathbf{elif}\;i \leq 6.2 \cdot 10^{+104}:\\
\;\;\;\;y4 \cdot \left(b \cdot \left(j \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if i < -2.7000000000000001e175 or 6.20000000000000033e104 < i Initial program 21.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites41.7%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.3
Applied rewrites36.3%
Taylor expanded in a around 0
lift-*.f6432.9
Applied rewrites32.9%
if -2.7000000000000001e175 < i < 1.12e-306Initial program 33.3%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.4%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.1
Applied rewrites26.1%
Taylor expanded in t around 0
lift-*.f6417.7
Applied rewrites17.7%
if 1.12e-306 < i < 6.20000000000000033e104Initial program 33.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.3%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6425.8
Applied rewrites25.8%
Taylor expanded in y around 0
lift-*.f6416.8
Applied rewrites16.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y5 -8.8e+274)
(* y (* y5 (* -1.0 (* a y3))))
(if (<= y5 -2.1e+54)
(* -1.0 (* k (* y0 (* y2 y5))))
(if (<= y5 7.2e-28) (* y4 (* b (* j t))) (* y (* i (* k 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 (y5 <= -8.8e+274) {
tmp = y * (y5 * (-1.0 * (a * y3)));
} else if (y5 <= -2.1e+54) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 7.2e-28) {
tmp = y4 * (b * (j * t));
} else {
tmp = y * (i * (k * 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 (y5 <= (-8.8d+274)) then
tmp = y * (y5 * ((-1.0d0) * (a * y3)))
else if (y5 <= (-2.1d+54)) then
tmp = (-1.0d0) * (k * (y0 * (y2 * y5)))
else if (y5 <= 7.2d-28) then
tmp = y4 * (b * (j * t))
else
tmp = y * (i * (k * 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 (y5 <= -8.8e+274) {
tmp = y * (y5 * (-1.0 * (a * y3)));
} else if (y5 <= -2.1e+54) {
tmp = -1.0 * (k * (y0 * (y2 * y5)));
} else if (y5 <= 7.2e-28) {
tmp = y4 * (b * (j * t));
} else {
tmp = y * (i * (k * y5));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y5 <= -8.8e+274: tmp = y * (y5 * (-1.0 * (a * y3))) elif y5 <= -2.1e+54: tmp = -1.0 * (k * (y0 * (y2 * y5))) elif y5 <= 7.2e-28: tmp = y4 * (b * (j * t)) else: tmp = y * (i * (k * 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 (y5 <= -8.8e+274) tmp = Float64(y * Float64(y5 * Float64(-1.0 * Float64(a * y3)))); elseif (y5 <= -2.1e+54) tmp = Float64(-1.0 * Float64(k * Float64(y0 * Float64(y2 * y5)))); elseif (y5 <= 7.2e-28) tmp = Float64(y4 * Float64(b * Float64(j * t))); else tmp = Float64(y * Float64(i * Float64(k * 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 (y5 <= -8.8e+274) tmp = y * (y5 * (-1.0 * (a * y3))); elseif (y5 <= -2.1e+54) tmp = -1.0 * (k * (y0 * (y2 * y5))); elseif (y5 <= 7.2e-28) tmp = y4 * (b * (j * t)); else tmp = y * (i * (k * 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[y5, -8.8e+274], N[(y * N[(y5 * N[(-1.0 * N[(a * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.1e+54], N[(-1.0 * N[(k * N[(y0 * N[(y2 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 7.2e-28], N[(y4 * N[(b * N[(j * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -8.8 \cdot 10^{+274}:\\
\;\;\;\;y \cdot \left(y5 \cdot \left(-1 \cdot \left(a \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.1 \cdot 10^{+54}:\\
\;\;\;\;-1 \cdot \left(k \cdot \left(y0 \cdot \left(y2 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 7.2 \cdot 10^{-28}:\\
\;\;\;\;y4 \cdot \left(b \cdot \left(j \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\end{array}
\end{array}
if y5 < -8.8000000000000004e274Initial program 24.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites63.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6454.6
Applied rewrites54.6%
Taylor expanded in a around inf
lower-*.f64N/A
lift-*.f6438.5
Applied rewrites38.5%
if -8.8000000000000004e274 < y5 < -2.09999999999999986e54Initial program 25.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites49.9%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.6
Applied rewrites36.6%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
if -2.09999999999999986e54 < y5 < 7.1999999999999997e-28Initial program 33.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.4%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.5
Applied rewrites27.5%
Taylor expanded in y around 0
lift-*.f6417.2
Applied rewrites17.2%
if 7.1999999999999997e-28 < y5 Initial program 26.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites48.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.9
Applied rewrites36.9%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y5 -1.65e+26) (* -1.0 (* y2 (* k (* y0 y5)))) (if (<= y5 7.2e-28) (* y4 (* b (* j t))) (* y (* i (* k 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 (y5 <= -1.65e+26) {
tmp = -1.0 * (y2 * (k * (y0 * y5)));
} else if (y5 <= 7.2e-28) {
tmp = y4 * (b * (j * t));
} else {
tmp = y * (i * (k * 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 (y5 <= (-1.65d+26)) then
tmp = (-1.0d0) * (y2 * (k * (y0 * y5)))
else if (y5 <= 7.2d-28) then
tmp = y4 * (b * (j * t))
else
tmp = y * (i * (k * 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 (y5 <= -1.65e+26) {
tmp = -1.0 * (y2 * (k * (y0 * y5)));
} else if (y5 <= 7.2e-28) {
tmp = y4 * (b * (j * t));
} else {
tmp = y * (i * (k * y5));
}
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.65e+26: tmp = -1.0 * (y2 * (k * (y0 * y5))) elif y5 <= 7.2e-28: tmp = y4 * (b * (j * t)) else: tmp = y * (i * (k * 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 (y5 <= -1.65e+26) tmp = Float64(-1.0 * Float64(y2 * Float64(k * Float64(y0 * y5)))); elseif (y5 <= 7.2e-28) tmp = Float64(y4 * Float64(b * Float64(j * t))); else tmp = Float64(y * Float64(i * Float64(k * 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 (y5 <= -1.65e+26) tmp = -1.0 * (y2 * (k * (y0 * y5))); elseif (y5 <= 7.2e-28) tmp = y4 * (b * (j * t)); else tmp = y * (i * (k * 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[y5, -1.65e+26], N[(-1.0 * N[(y2 * N[(k * N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 7.2e-28], N[(y4 * N[(b * N[(j * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y5 \leq -1.65 \cdot 10^{+26}:\\
\;\;\;\;-1 \cdot \left(y2 \cdot \left(k \cdot \left(y0 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 7.2 \cdot 10^{-28}:\\
\;\;\;\;y4 \cdot \left(b \cdot \left(j \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\end{array}
\end{array}
if y5 < -1.64999999999999997e26Initial program 26.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites50.1%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.7
Applied rewrites36.7%
Taylor expanded in t around 0
lower-*.f64N/A
lower-*.f6428.2
Applied rewrites28.2%
if -1.64999999999999997e26 < y5 < 7.1999999999999997e-28Initial program 33.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.8%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.7
Applied rewrites27.7%
Taylor expanded in y around 0
lift-*.f6417.3
Applied rewrites17.3%
if 7.1999999999999997e-28 < y5 Initial program 26.7%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites48.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.9
Applied rewrites36.9%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* y4 (* b (* j t))))) (if (<= j -7e+32) t_1 (if (<= j 1.5e-22) (* i (* k (* y 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 = y4 * (b * (j * t));
double tmp;
if (j <= -7e+32) {
tmp = t_1;
} else if (j <= 1.5e-22) {
tmp = i * (k * (y * 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 = y4 * (b * (j * t))
if (j <= (-7d+32)) then
tmp = t_1
else if (j <= 1.5d-22) then
tmp = i * (k * (y * 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 = y4 * (b * (j * t));
double tmp;
if (j <= -7e+32) {
tmp = t_1;
} else if (j <= 1.5e-22) {
tmp = i * (k * (y * 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 = y4 * (b * (j * t)) tmp = 0 if j <= -7e+32: tmp = t_1 elif j <= 1.5e-22: tmp = i * (k * (y * 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(y4 * Float64(b * Float64(j * t))) tmp = 0.0 if (j <= -7e+32) tmp = t_1; elseif (j <= 1.5e-22) tmp = Float64(i * Float64(k * Float64(y * 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 = y4 * (b * (j * t)); tmp = 0.0; if (j <= -7e+32) tmp = t_1; elseif (j <= 1.5e-22) tmp = i * (k * (y * 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[(y4 * N[(b * N[(j * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -7e+32], t$95$1, If[LessEqual[j, 1.5e-22], N[(i * N[(k * N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y4 \cdot \left(b \cdot \left(j \cdot t\right)\right)\\
\mathbf{if}\;j \leq -7 \cdot 10^{+32}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq 1.5 \cdot 10^{-22}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -7.0000000000000002e32 or 1.5e-22 < j Initial program 25.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.6%
Taylor expanded in b around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6433.0
Applied rewrites33.0%
Taylor expanded in y around 0
lift-*.f6426.6
Applied rewrites26.6%
if -7.0000000000000002e32 < j < 1.5e-22Initial program 34.3%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.3
Applied rewrites17.3%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* y (* i (* k y5))))) (if (<= y5 -1.15e+26) t_1 (if (<= y5 1.45e-34) (* b (* x (* 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 = y * (i * (k * y5));
double tmp;
if (y5 <= -1.15e+26) {
tmp = t_1;
} else if (y5 <= 1.45e-34) {
tmp = b * (x * (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 = y * (i * (k * y5))
if (y5 <= (-1.15d+26)) then
tmp = t_1
else if (y5 <= 1.45d-34) then
tmp = b * (x * (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 = y * (i * (k * y5));
double tmp;
if (y5 <= -1.15e+26) {
tmp = t_1;
} else if (y5 <= 1.45e-34) {
tmp = b * (x * (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 = y * (i * (k * y5)) tmp = 0 if y5 <= -1.15e+26: tmp = t_1 elif y5 <= 1.45e-34: tmp = b * (x * (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(y * Float64(i * Float64(k * y5))) tmp = 0.0 if (y5 <= -1.15e+26) tmp = t_1; elseif (y5 <= 1.45e-34) tmp = Float64(b * Float64(x * 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 = y * (i * (k * y5)); tmp = 0.0; if (y5 <= -1.15e+26) tmp = t_1; elseif (y5 <= 1.45e-34) tmp = b * (x * (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[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -1.15e+26], t$95$1, If[LessEqual[y5, 1.45e-34], N[(b * N[(x * N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\mathbf{if}\;y5 \leq -1.15 \cdot 10^{+26}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq 1.45 \cdot 10^{-34}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -1.15e26 or 1.4500000000000001e-34 < y5 Initial program 26.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites48.9%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.2
Applied rewrites37.2%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6427.4
Applied rewrites27.4%
if -1.15e26 < y5 < 1.4500000000000001e-34Initial program 33.7%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.4
Applied rewrites27.4%
Taylor expanded in y around inf
lift-*.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 (* y (* i (* k y5))))) (if (<= y5 -1.15e+26) t_1 (if (<= y5 1.45e-34) (* b (* a (* x 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 = y * (i * (k * y5));
double tmp;
if (y5 <= -1.15e+26) {
tmp = t_1;
} else if (y5 <= 1.45e-34) {
tmp = b * (a * (x * 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 = y * (i * (k * y5))
if (y5 <= (-1.15d+26)) then
tmp = t_1
else if (y5 <= 1.45d-34) then
tmp = b * (a * (x * 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 = y * (i * (k * y5));
double tmp;
if (y5 <= -1.15e+26) {
tmp = t_1;
} else if (y5 <= 1.45e-34) {
tmp = b * (a * (x * 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 = y * (i * (k * y5)) tmp = 0 if y5 <= -1.15e+26: tmp = t_1 elif y5 <= 1.45e-34: tmp = b * (a * (x * 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(y * Float64(i * Float64(k * y5))) tmp = 0.0 if (y5 <= -1.15e+26) tmp = t_1; elseif (y5 <= 1.45e-34) tmp = Float64(b * Float64(a * Float64(x * 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 = y * (i * (k * y5)); tmp = 0.0; if (y5 <= -1.15e+26) tmp = t_1; elseif (y5 <= 1.45e-34) tmp = b * (a * (x * 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[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -1.15e+26], t$95$1, If[LessEqual[y5, 1.45e-34], N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\mathbf{if}\;y5 \leq -1.15 \cdot 10^{+26}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y5 \leq 1.45 \cdot 10^{-34}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y5 < -1.15e26 or 1.4500000000000001e-34 < y5 Initial program 26.8%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites48.9%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.2
Applied rewrites37.2%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6427.4
Applied rewrites27.4%
if -1.15e26 < y5 < 1.4500000000000001e-34Initial program 33.7%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in a around inf
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6429.0
Applied rewrites29.0%
Taylor expanded in x around inf
lift-*.f6417.8
Applied rewrites17.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y 1.5e+153) (* y (* i (* k y5))) (* i (* k (* y 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 (y <= 1.5e+153) {
tmp = y * (i * (k * y5));
} else {
tmp = i * (k * (y * 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 (y <= 1.5d+153) then
tmp = y * (i * (k * y5))
else
tmp = i * (k * (y * 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 (y <= 1.5e+153) {
tmp = y * (i * (k * y5));
} else {
tmp = i * (k * (y * y5));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y <= 1.5e+153: tmp = y * (i * (k * y5)) else: tmp = i * (k * (y * 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 (y <= 1.5e+153) tmp = Float64(y * Float64(i * Float64(k * y5))); else tmp = Float64(i * Float64(k * Float64(y * 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 (y <= 1.5e+153) tmp = y * (i * (k * y5)); else tmp = i * (k * (y * 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[y, 1.5e+153], N[(y * N[(i * N[(k * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(i * N[(k * N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 1.5 \cdot 10^{+153}:\\
\;\;\;\;y \cdot \left(i \cdot \left(k \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5\right)\right)\\
\end{array}
\end{array}
if y < 1.50000000000000009e153Initial program 31.2%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.3%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6424.6
Applied rewrites24.6%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f6416.1
Applied rewrites16.1%
if 1.50000000000000009e153 < y Initial program 23.6%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.6
Applied rewrites38.6%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6432.8
Applied rewrites32.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (* i (* k (* y 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 i * (k * (y * 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 = i * (k * (y * 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 i * (k * (y * y5));
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): return i * (k * (y * y5))
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(i * Float64(k * Float64(y * y5))) end
function tmp = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = i * (k * (y * y5)); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(i * N[(k * N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
i \cdot \left(k \cdot \left(y \cdot y5\right)\right)
\end{array}
Initial program 30.2%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.0%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in a around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.3
Applied rewrites17.3%
herbie shell --seed 2025112
(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)))))