
(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 38 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 (- (* k y2) (* j y3)))
(t_2 (- (* a b) (* c i)))
(t_3 (- (* c y4) (* a y5)))
(t_4 (- (* j t) (* k y)))
(t_5
(*
-1.0
(* y5 (- (fma i t_4 (* y0 t_1)) (* a (- (* t y2) (* y y3)))))))
(t_6 (- (* c y0) (* a y1))))
(if (<= y5 -4.8e+205)
t_5
(if (<= y5 -2.5e+27)
(*
y0
(-
(fma -1.0 (* y5 t_1) (* c (- (* x y2) (* y3 z))))
(* b (- (* j x) (* k z)))))
(if (<= y5 -3e-161)
(*
b
(*
y0
(-
(fma k z (/ (fma a (- (* x y) (* t z)) (* y4 t_4)) y0))
(* j x))))
(if (<= y5 4.6e-144)
(*
-1.0
(* y3 (- (fma j (- (* y1 y4) (* y0 y5)) (* z t_6)) (* y t_3))))
(if (<= y5 4.5e-34)
(*
-1.0
(* z (- (fma t t_2 (* y3 t_6)) (* k (- (* b y0) (* i y1))))))
(if (<= y5 1.52e+60)
(*
y
(-
(fma -1.0 (* k (- (* b y4) (* i y5))) (* x t_2))
(* -1.0 (* y3 t_3))))
t_5))))))))
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);
double t_2 = (a * b) - (c * i);
double t_3 = (c * y4) - (a * y5);
double t_4 = (j * t) - (k * y);
double t_5 = -1.0 * (y5 * (fma(i, t_4, (y0 * t_1)) - (a * ((t * y2) - (y * y3)))));
double t_6 = (c * y0) - (a * y1);
double tmp;
if (y5 <= -4.8e+205) {
tmp = t_5;
} else if (y5 <= -2.5e+27) {
tmp = y0 * (fma(-1.0, (y5 * t_1), (c * ((x * y2) - (y3 * z)))) - (b * ((j * x) - (k * z))));
} else if (y5 <= -3e-161) {
tmp = b * (y0 * (fma(k, z, (fma(a, ((x * y) - (t * z)), (y4 * t_4)) / y0)) - (j * x)));
} else if (y5 <= 4.6e-144) {
tmp = -1.0 * (y3 * (fma(j, ((y1 * y4) - (y0 * y5)), (z * t_6)) - (y * t_3)));
} else if (y5 <= 4.5e-34) {
tmp = -1.0 * (z * (fma(t, t_2, (y3 * t_6)) - (k * ((b * y0) - (i * y1)))));
} else if (y5 <= 1.52e+60) {
tmp = y * (fma(-1.0, (k * ((b * y4) - (i * y5))), (x * t_2)) - (-1.0 * (y3 * t_3)));
} else {
tmp = t_5;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(k * y2) - Float64(j * y3)) t_2 = Float64(Float64(a * b) - Float64(c * i)) t_3 = Float64(Float64(c * y4) - Float64(a * y5)) t_4 = Float64(Float64(j * t) - Float64(k * y)) t_5 = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_4, Float64(y0 * t_1)) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))) t_6 = Float64(Float64(c * y0) - Float64(a * y1)) tmp = 0.0 if (y5 <= -4.8e+205) tmp = t_5; elseif (y5 <= -2.5e+27) tmp = Float64(y0 * Float64(fma(-1.0, Float64(y5 * t_1), Float64(c * Float64(Float64(x * y2) - Float64(y3 * z)))) - Float64(b * Float64(Float64(j * x) - Float64(k * z))))); elseif (y5 <= -3e-161) tmp = Float64(b * Float64(y0 * Float64(fma(k, z, Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * t_4)) / y0)) - Float64(j * x)))); elseif (y5 <= 4.6e-144) tmp = Float64(-1.0 * Float64(y3 * Float64(fma(j, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(z * t_6)) - Float64(y * t_3)))); elseif (y5 <= 4.5e-34) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, t_2, Float64(y3 * t_6)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))); elseif (y5 <= 1.52e+60) tmp = Float64(y * Float64(fma(-1.0, Float64(k * Float64(Float64(b * y4) - Float64(i * y5))), Float64(x * t_2)) - Float64(-1.0 * Float64(y3 * t_3)))); else tmp = t_5; 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[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(-1.0 * N[(y5 * N[(N[(i * t$95$4 + N[(y0 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -4.8e+205], t$95$5, If[LessEqual[y5, -2.5e+27], N[(y0 * N[(N[(-1.0 * N[(y5 * t$95$1), $MachinePrecision] + N[(c * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(b * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3e-161], N[(b * N[(y0 * N[(N[(k * z + N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * t$95$4), $MachinePrecision]), $MachinePrecision] / y0), $MachinePrecision]), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.6e-144], N[(-1.0 * N[(y3 * N[(N[(j * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(z * t$95$6), $MachinePrecision]), $MachinePrecision] - N[(y * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.5e-34], N[(-1.0 * N[(z * N[(N[(t * t$95$2 + N[(y3 * t$95$6), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.52e+60], N[(y * N[(N[(-1.0 * N[(k * N[(N[(b * y4), $MachinePrecision] - N[(i * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(-1.0 * N[(y3 * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$5]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := k \cdot y2 - j \cdot y3\\
t_2 := a \cdot b - c \cdot i\\
t_3 := c \cdot y4 - a \cdot y5\\
t_4 := j \cdot t - k \cdot y\\
t_5 := -1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_4, y0 \cdot t\_1\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
t_6 := c \cdot y0 - a \cdot y1\\
\mathbf{if}\;y5 \leq -4.8 \cdot 10^{+205}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y5 \leq -2.5 \cdot 10^{+27}:\\
\;\;\;\;y0 \cdot \left(\mathsf{fma}\left(-1, y5 \cdot t\_1, c \cdot \left(x \cdot y2 - y3 \cdot z\right)\right) - b \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{-161}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(\mathsf{fma}\left(k, z, \frac{\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot t\_4\right)}{y0}\right) - j \cdot x\right)\right)\\
\mathbf{elif}\;y5 \leq 4.6 \cdot 10^{-144}:\\
\;\;\;\;-1 \cdot \left(y3 \cdot \left(\mathsf{fma}\left(j, y1 \cdot y4 - y0 \cdot y5, z \cdot t\_6\right) - y \cdot t\_3\right)\right)\\
\mathbf{elif}\;y5 \leq 4.5 \cdot 10^{-34}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, t\_2, y3 \cdot t\_6\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 1.52 \cdot 10^{+60}:\\
\;\;\;\;y \cdot \left(\mathsf{fma}\left(-1, k \cdot \left(b \cdot y4 - i \cdot y5\right), x \cdot t\_2\right) - -1 \cdot \left(y3 \cdot t\_3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_5\\
\end{array}
\end{array}
if y5 < -4.79999999999999972e205 or 1.52e60 < y5 Initial program 23.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites55.3%
if -4.79999999999999972e205 < y5 < -2.4999999999999999e27Initial program 25.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.1%
if -2.4999999999999999e27 < y5 < -2.99999999999999989e-161Initial program 33.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.5%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites44.9%
if -2.99999999999999989e-161 < y5 < 4.6e-144Initial program 36.3%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
if 4.6e-144 < y5 < 4.50000000000000042e-34Initial program 34.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.1%
if 4.50000000000000042e-34 < y5 < 1.52e60Initial program 29.5%
Taylor expanded in y around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.4%
(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)))
(t_2 (- (* x y) (* t z)))
(t_3 (- (* j x) (* k z)))
(t_4 (- (* j t) (* k y)))
(t_5 (- (* c y0) (* a y1))))
(if (<= y5 -4.8e+205)
(* -1.0 (* y5 (- (fma i t_4 (* y0 t_1)) (* a (- (* t y2) (* y y3))))))
(if (<= y5 -2.5e+27)
(* y0 (- (fma -1.0 (* y5 t_1) (* c (- (* x y2) (* y3 z)))) (* b t_3)))
(if (<= y5 -3e-161)
(* b (* y0 (- (fma k z (/ (fma a t_2 (* y4 t_4)) y0)) (* j x))))
(if (<= y5 4.6e-144)
(*
-1.0
(*
y3
(-
(fma j (- (* y1 y4) (* y0 y5)) (* z t_5))
(* y (- (* c y4) (* a y5))))))
(if (<= y5 2.4e-33)
(*
-1.0
(*
z
(-
(fma t (- (* a b) (* c i)) (* y3 t_5))
(* k (- (* b y0) (* i y1))))))
(* -1.0 (* i (- (fma c t_2 (* y5 t_4)) (* y1 t_3)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (k * y2) - (j * y3);
double t_2 = (x * y) - (t * z);
double t_3 = (j * x) - (k * z);
double t_4 = (j * t) - (k * y);
double t_5 = (c * y0) - (a * y1);
double tmp;
if (y5 <= -4.8e+205) {
tmp = -1.0 * (y5 * (fma(i, t_4, (y0 * t_1)) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -2.5e+27) {
tmp = y0 * (fma(-1.0, (y5 * t_1), (c * ((x * y2) - (y3 * z)))) - (b * t_3));
} else if (y5 <= -3e-161) {
tmp = b * (y0 * (fma(k, z, (fma(a, t_2, (y4 * t_4)) / y0)) - (j * x)));
} else if (y5 <= 4.6e-144) {
tmp = -1.0 * (y3 * (fma(j, ((y1 * y4) - (y0 * y5)), (z * t_5)) - (y * ((c * y4) - (a * y5)))));
} else if (y5 <= 2.4e-33) {
tmp = -1.0 * (z * (fma(t, ((a * b) - (c * i)), (y3 * t_5)) - (k * ((b * y0) - (i * y1)))));
} else {
tmp = -1.0 * (i * (fma(c, t_2, (y5 * t_4)) - (y1 * t_3)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(k * y2) - Float64(j * y3)) t_2 = Float64(Float64(x * y) - Float64(t * z)) t_3 = Float64(Float64(j * x) - Float64(k * z)) t_4 = Float64(Float64(j * t) - Float64(k * y)) t_5 = Float64(Float64(c * y0) - Float64(a * y1)) tmp = 0.0 if (y5 <= -4.8e+205) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_4, Float64(y0 * t_1)) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -2.5e+27) tmp = Float64(y0 * Float64(fma(-1.0, Float64(y5 * t_1), Float64(c * Float64(Float64(x * y2) - Float64(y3 * z)))) - Float64(b * t_3))); elseif (y5 <= -3e-161) tmp = Float64(b * Float64(y0 * Float64(fma(k, z, Float64(fma(a, t_2, Float64(y4 * t_4)) / y0)) - Float64(j * x)))); elseif (y5 <= 4.6e-144) tmp = Float64(-1.0 * Float64(y3 * Float64(fma(j, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(z * t_5)) - Float64(y * Float64(Float64(c * y4) - Float64(a * y5)))))); elseif (y5 <= 2.4e-33) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, Float64(Float64(a * b) - Float64(c * i)), Float64(y3 * t_5)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))); else tmp = Float64(-1.0 * Float64(i * Float64(fma(c, t_2, Float64(y5 * t_4)) - Float64(y1 * t_3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -4.8e+205], N[(-1.0 * N[(y5 * N[(N[(i * t$95$4 + N[(y0 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -2.5e+27], N[(y0 * N[(N[(-1.0 * N[(y5 * t$95$1), $MachinePrecision] + N[(c * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(b * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3e-161], N[(b * N[(y0 * N[(N[(k * z + N[(N[(a * t$95$2 + N[(y4 * t$95$4), $MachinePrecision]), $MachinePrecision] / y0), $MachinePrecision]), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.6e-144], N[(-1.0 * N[(y3 * N[(N[(j * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(z * t$95$5), $MachinePrecision]), $MachinePrecision] - N[(y * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.4e-33], N[(-1.0 * N[(z * N[(N[(t * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y3 * t$95$5), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 * N[(i * N[(N[(c * t$95$2 + N[(y5 * t$95$4), $MachinePrecision]), $MachinePrecision] - N[(y1 * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := k \cdot y2 - j \cdot y3\\
t_2 := x \cdot y - t \cdot z\\
t_3 := j \cdot x - k \cdot z\\
t_4 := j \cdot t - k \cdot y\\
t_5 := c \cdot y0 - a \cdot y1\\
\mathbf{if}\;y5 \leq -4.8 \cdot 10^{+205}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_4, y0 \cdot t\_1\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -2.5 \cdot 10^{+27}:\\
\;\;\;\;y0 \cdot \left(\mathsf{fma}\left(-1, y5 \cdot t\_1, c \cdot \left(x \cdot y2 - y3 \cdot z\right)\right) - b \cdot t\_3\right)\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{-161}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(\mathsf{fma}\left(k, z, \frac{\mathsf{fma}\left(a, t\_2, y4 \cdot t\_4\right)}{y0}\right) - j \cdot x\right)\right)\\
\mathbf{elif}\;y5 \leq 4.6 \cdot 10^{-144}:\\
\;\;\;\;-1 \cdot \left(y3 \cdot \left(\mathsf{fma}\left(j, y1 \cdot y4 - y0 \cdot y5, z \cdot t\_5\right) - y \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.4 \cdot 10^{-33}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, a \cdot b - c \cdot i, y3 \cdot t\_5\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \left(i \cdot \left(\mathsf{fma}\left(c, t\_2, y5 \cdot t\_4\right) - y1 \cdot t\_3\right)\right)\\
\end{array}
\end{array}
if y5 < -4.79999999999999972e205Initial program 23.5%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites59.9%
if -4.79999999999999972e205 < y5 < -2.4999999999999999e27Initial program 25.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.1%
if -2.4999999999999999e27 < y5 < -2.99999999999999989e-161Initial program 33.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.5%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites44.9%
if -2.99999999999999989e-161 < y5 < 4.6e-144Initial program 36.3%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
if 4.6e-144 < y5 < 2.4e-33Initial program 34.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.3%
if 2.4e-33 < y5 Initial program 25.6%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* c (* z (fma -1.0 (* y0 y3) (* i t)))))
(t_2 (- (* j t) (* k y)))
(t_3
(*
y4
(-
(fma b t_2 (* y1 (- (* k y2) (* j y3))))
(* c (- (* t y2) (* y y3)))))))
(if (<= y4 -5.8e+59)
t_3
(if (<= y4 -5.5e-82)
(*
-1.0
(*
i
(-
(fma c (- (* x y) (* t z)) (* y5 t_2))
(* y1 (- (* j x) (* k z))))))
(if (<= y4 -1.6e-286)
t_1
(if (<= y4 2.7e-56)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1))))
(* j (- (* b y0) (* i y1)))))
(if (<= y4 6.5e+80)
t_1
(if (<= y4 1.15e+202)
(* b (* y (fma -1.0 (* k y4) (* a x))))
t_3))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = c * (z * fma(-1.0, (y0 * y3), (i * t)));
double t_2 = (j * t) - (k * y);
double t_3 = y4 * (fma(b, t_2, (y1 * ((k * y2) - (j * y3)))) - (c * ((t * y2) - (y * y3))));
double tmp;
if (y4 <= -5.8e+59) {
tmp = t_3;
} else if (y4 <= -5.5e-82) {
tmp = -1.0 * (i * (fma(c, ((x * y) - (t * z)), (y5 * t_2)) - (y1 * ((j * x) - (k * z)))));
} else if (y4 <= -1.6e-286) {
tmp = t_1;
} else if (y4 <= 2.7e-56) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1)))) - (j * ((b * y0) - (i * y1))));
} else if (y4 <= 6.5e+80) {
tmp = t_1;
} else if (y4 <= 1.15e+202) {
tmp = b * (y * fma(-1.0, (k * y4), (a * x)));
} else {
tmp = t_3;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))) t_2 = Float64(Float64(j * t) - Float64(k * y)) t_3 = Float64(y4 * Float64(fma(b, t_2, Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(c * Float64(Float64(t * y2) - Float64(y * y3))))) tmp = 0.0 if (y4 <= -5.8e+59) tmp = t_3; elseif (y4 <= -5.5e-82) tmp = Float64(-1.0 * Float64(i * Float64(fma(c, Float64(Float64(x * y) - Float64(t * z)), Float64(y5 * t_2)) - Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))))); elseif (y4 <= -1.6e-286) tmp = t_1; elseif (y4 <= 2.7e-56) 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 (y4 <= 6.5e+80) tmp = t_1; elseif (y4 <= 1.15e+202) tmp = Float64(b * Float64(y * fma(-1.0, Float64(k * y4), Float64(a * x)))); else tmp = t_3; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y4 * N[(N[(b * t$95$2 + 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[y4, -5.8e+59], t$95$3, If[LessEqual[y4, -5.5e-82], N[(-1.0 * N[(i * N[(N[(c * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y5 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -1.6e-286], t$95$1, If[LessEqual[y4, 2.7e-56], 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[y4, 6.5e+80], t$95$1, If[LessEqual[y4, 1.15e+202], N[(b * N[(y * N[(-1.0 * N[(k * y4), $MachinePrecision] + N[(a * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$3]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
t_2 := j \cdot t - k \cdot y\\
t_3 := y4 \cdot \left(\mathsf{fma}\left(b, t\_2, y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - c \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\\
\mathbf{if}\;y4 \leq -5.8 \cdot 10^{+59}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y4 \leq -5.5 \cdot 10^{-82}:\\
\;\;\;\;-1 \cdot \left(i \cdot \left(\mathsf{fma}\left(c, x \cdot y - t \cdot z, y5 \cdot t\_2\right) - y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\right)\\
\mathbf{elif}\;y4 \leq -1.6 \cdot 10^{-286}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y4 \leq 2.7 \cdot 10^{-56}:\\
\;\;\;\;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}\;y4 \leq 6.5 \cdot 10^{+80}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y4 \leq 1.15 \cdot 10^{+202}:\\
\;\;\;\;b \cdot \left(y \cdot \mathsf{fma}\left(-1, k \cdot y4, a \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if y4 < -5.79999999999999981e59 or 1.15e202 < y4 Initial program 22.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites55.6%
if -5.79999999999999981e59 < y4 < -5.4999999999999998e-82Initial program 33.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.8%
if -5.4999999999999998e-82 < y4 < -1.60000000000000003e-286 or 2.69999999999999995e-56 < y4 < 6.4999999999999998e80Initial program 33.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.9%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.2
Applied rewrites28.2%
if -1.60000000000000003e-286 < y4 < 2.69999999999999995e-56Initial program 36.0%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.4%
if 6.4999999999999998e80 < y4 < 1.15e202Initial program 24.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.6%
Taylor expanded in y around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* x y) (* t z)))
(t_2 (- (* j t) (* k y)))
(t_3 (- (* c y0) (* a y1))))
(if (<= y5 -5e+48)
(*
-1.0
(*
y5
(-
(fma i t_2 (* y0 (- (* k y2) (* j y3))))
(* a (- (* t y2) (* y y3))))))
(if (<= y5 -3e-161)
(* b (* y0 (- (fma k z (/ (fma a t_1 (* y4 t_2)) y0)) (* j x))))
(if (<= y5 4.6e-144)
(*
-1.0
(*
y3
(-
(fma j (- (* y1 y4) (* y0 y5)) (* z t_3))
(* y (- (* c y4) (* a y5))))))
(if (<= y5 2.4e-33)
(*
-1.0
(*
z
(-
(fma t (- (* a b) (* c i)) (* y3 t_3))
(* k (- (* b y0) (* i y1))))))
(*
-1.0
(* i (- (fma c t_1 (* y5 t_2)) (* y1 (- (* j x) (* k z))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (x * y) - (t * z);
double t_2 = (j * t) - (k * y);
double t_3 = (c * y0) - (a * y1);
double tmp;
if (y5 <= -5e+48) {
tmp = -1.0 * (y5 * (fma(i, t_2, (y0 * ((k * y2) - (j * y3)))) - (a * ((t * y2) - (y * y3)))));
} else if (y5 <= -3e-161) {
tmp = b * (y0 * (fma(k, z, (fma(a, t_1, (y4 * t_2)) / y0)) - (j * x)));
} else if (y5 <= 4.6e-144) {
tmp = -1.0 * (y3 * (fma(j, ((y1 * y4) - (y0 * y5)), (z * t_3)) - (y * ((c * y4) - (a * y5)))));
} else if (y5 <= 2.4e-33) {
tmp = -1.0 * (z * (fma(t, ((a * b) - (c * i)), (y3 * t_3)) - (k * ((b * y0) - (i * y1)))));
} else {
tmp = -1.0 * (i * (fma(c, t_1, (y5 * t_2)) - (y1 * ((j * x) - (k * z)))));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(x * y) - Float64(t * z)) t_2 = Float64(Float64(j * t) - Float64(k * y)) t_3 = Float64(Float64(c * y0) - Float64(a * y1)) tmp = 0.0 if (y5 <= -5e+48) tmp = Float64(-1.0 * Float64(y5 * Float64(fma(i, t_2, Float64(y0 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))); elseif (y5 <= -3e-161) tmp = Float64(b * Float64(y0 * Float64(fma(k, z, Float64(fma(a, t_1, Float64(y4 * t_2)) / y0)) - Float64(j * x)))); elseif (y5 <= 4.6e-144) tmp = Float64(-1.0 * Float64(y3 * Float64(fma(j, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(z * t_3)) - Float64(y * Float64(Float64(c * y4) - Float64(a * y5)))))); elseif (y5 <= 2.4e-33) tmp = Float64(-1.0 * Float64(z * Float64(fma(t, Float64(Float64(a * b) - Float64(c * i)), Float64(y3 * t_3)) - Float64(k * Float64(Float64(b * y0) - Float64(i * y1)))))); else tmp = Float64(-1.0 * Float64(i * Float64(fma(c, t_1, Float64(y5 * t_2)) - Float64(y1 * Float64(Float64(j * x) - Float64(k * z)))))); 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[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -5e+48], N[(-1.0 * N[(y5 * N[(N[(i * t$95$2 + N[(y0 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -3e-161], N[(b * N[(y0 * N[(N[(k * z + N[(N[(a * t$95$1 + N[(y4 * t$95$2), $MachinePrecision]), $MachinePrecision] / y0), $MachinePrecision]), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.6e-144], N[(-1.0 * N[(y3 * N[(N[(j * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(z * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(y * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 2.4e-33], N[(-1.0 * N[(z * N[(N[(t * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y3 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(k * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 * N[(i * N[(N[(c * t$95$1 + N[(y5 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(y1 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := x \cdot y - t \cdot z\\
t_2 := j \cdot t - k \cdot y\\
t_3 := c \cdot y0 - a \cdot y1\\
\mathbf{if}\;y5 \leq -5 \cdot 10^{+48}:\\
\;\;\;\;-1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_2, y0 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{-161}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(\mathsf{fma}\left(k, z, \frac{\mathsf{fma}\left(a, t\_1, y4 \cdot t\_2\right)}{y0}\right) - j \cdot x\right)\right)\\
\mathbf{elif}\;y5 \leq 4.6 \cdot 10^{-144}:\\
\;\;\;\;-1 \cdot \left(y3 \cdot \left(\mathsf{fma}\left(j, y1 \cdot y4 - y0 \cdot y5, z \cdot t\_3\right) - y \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 2.4 \cdot 10^{-33}:\\
\;\;\;\;-1 \cdot \left(z \cdot \left(\mathsf{fma}\left(t, a \cdot b - c \cdot i, y3 \cdot t\_3\right) - k \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \left(i \cdot \left(\mathsf{fma}\left(c, t\_1, y5 \cdot t\_2\right) - y1 \cdot \left(j \cdot x - k \cdot z\right)\right)\right)\\
\end{array}
\end{array}
if y5 < -4.99999999999999973e48Initial program 24.6%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites51.2%
if -4.99999999999999973e48 < y5 < -2.99999999999999989e-161Initial program 32.7%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.8%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites45.3%
if -2.99999999999999989e-161 < y5 < 4.6e-144Initial program 36.3%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
if 4.6e-144 < y5 < 2.4e-33Initial program 34.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.3%
if 2.4e-33 < y5 Initial program 25.6%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* c (* z (fma -1.0 (* y0 y3) (* i t)))))
(t_2
(*
y4
(-
(fma b (- (* j t) (* k y)) (* y1 (- (* k y2) (* j y3))))
(* c (- (* t y2) (* y y3))))))
(t_3 (- (* c y0) (* a y1))))
(if (<= y4 -3e+18)
t_2
(if (<= y4 -1.1e-77)
(*
y2
(-
(fma k (- (* y1 y4) (* y0 y5)) (* x t_3))
(* t (- (* c y4) (* a y5)))))
(if (<= y4 -1.6e-286)
t_1
(if (<= y4 2.7e-56)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 t_3))
(* j (- (* b y0) (* i y1)))))
(if (<= y4 6.5e+80)
t_1
(if (<= y4 1.15e+202)
(* b (* y (fma -1.0 (* k y4) (* a x))))
t_2))))))))
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 * (z * fma(-1.0, (y0 * y3), (i * t)));
double t_2 = y4 * (fma(b, ((j * t) - (k * y)), (y1 * ((k * y2) - (j * y3)))) - (c * ((t * y2) - (y * y3))));
double t_3 = (c * y0) - (a * y1);
double tmp;
if (y4 <= -3e+18) {
tmp = t_2;
} else if (y4 <= -1.1e-77) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_3)) - (t * ((c * y4) - (a * y5))));
} else if (y4 <= -1.6e-286) {
tmp = t_1;
} else if (y4 <= 2.7e-56) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * t_3)) - (j * ((b * y0) - (i * y1))));
} else if (y4 <= 6.5e+80) {
tmp = t_1;
} else if (y4 <= 1.15e+202) {
tmp = b * (y * fma(-1.0, (k * y4), (a * x)));
} else {
tmp = t_2;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))) t_2 = 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))))) t_3 = Float64(Float64(c * y0) - Float64(a * y1)) tmp = 0.0 if (y4 <= -3e+18) tmp = t_2; elseif (y4 <= -1.1e-77) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * t_3)) - Float64(t * Float64(Float64(c * y4) - Float64(a * y5))))); elseif (y4 <= -1.6e-286) tmp = t_1; elseif (y4 <= 2.7e-56) tmp = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * t_3)) - Float64(j * Float64(Float64(b * y0) - Float64(i * y1))))); elseif (y4 <= 6.5e+80) tmp = t_1; elseif (y4 <= 1.15e+202) tmp = Float64(b * Float64(y * fma(-1.0, Float64(k * y4), Float64(a * x)))); else tmp = t_2; 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[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = 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]}, Block[{t$95$3 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y4, -3e+18], t$95$2, If[LessEqual[y4, -1.1e-77], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(t * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -1.6e-286], t$95$1, If[LessEqual[y4, 2.7e-56], N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * t$95$3), $MachinePrecision]), $MachinePrecision] - N[(j * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, 6.5e+80], t$95$1, If[LessEqual[y4, 1.15e+202], N[(b * N[(y * N[(-1.0 * N[(k * y4), $MachinePrecision] + N[(a * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
t_2 := 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)\\
t_3 := c \cdot y0 - a \cdot y1\\
\mathbf{if}\;y4 \leq -3 \cdot 10^{+18}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y4 \leq -1.1 \cdot 10^{-77}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot t\_3\right) - t \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;y4 \leq -1.6 \cdot 10^{-286}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y4 \leq 2.7 \cdot 10^{-56}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot t\_3\right) - j \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;y4 \leq 6.5 \cdot 10^{+80}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y4 \leq 1.15 \cdot 10^{+202}:\\
\;\;\;\;b \cdot \left(y \cdot \mathsf{fma}\left(-1, k \cdot y4, a \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if y4 < -3e18 or 1.15e202 < y4 Initial program 23.6%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites53.2%
if -3e18 < y4 < -1.10000000000000003e-77Initial program 32.4%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.7%
if -1.10000000000000003e-77 < y4 < -1.60000000000000003e-286 or 2.69999999999999995e-56 < y4 < 6.4999999999999998e80Initial program 34.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.7%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.1
Applied rewrites28.1%
if -1.60000000000000003e-286 < y4 < 2.69999999999999995e-56Initial program 36.0%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.4%
if 6.4999999999999998e80 < y4 < 1.15e202Initial program 24.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.6%
Taylor expanded in y around inf
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6432.6
Applied rewrites32.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* c y0) (* a y1))) (t_2 (- (* c y4) (* a y5))))
(if (<= y3 -1.22e-49)
(* -1.0 (* y3 (- (fma j (- (* y1 y4) (* y0 y5)) (* z t_1)) (* y t_2))))
(if (<= y3 -3.35e-217)
(*
b
(*
y0
(-
(fma
k
z
(/ (fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y)))) y0))
(* j x))))
(if (<= y3 1.42e-40)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 t_1))
(* j (- (* b y0) (* i y1)))))
(if (<= y3 1.2e+168)
(* c (* z (fma -1.0 (* y0 y3) (* i t))))
(* y (* y3 t_2))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = (c * y0) - (a * y1);
double t_2 = (c * y4) - (a * y5);
double tmp;
if (y3 <= -1.22e-49) {
tmp = -1.0 * (y3 * (fma(j, ((y1 * y4) - (y0 * y5)), (z * t_1)) - (y * t_2)));
} else if (y3 <= -3.35e-217) {
tmp = b * (y0 * (fma(k, z, (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) / y0)) - (j * x)));
} else if (y3 <= 1.42e-40) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * t_1)) - (j * ((b * y0) - (i * y1))));
} else if (y3 <= 1.2e+168) {
tmp = c * (z * fma(-1.0, (y0 * y3), (i * t)));
} else {
tmp = y * (y3 * t_2);
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(c * y0) - Float64(a * y1)) t_2 = Float64(Float64(c * y4) - Float64(a * y5)) tmp = 0.0 if (y3 <= -1.22e-49) tmp = Float64(-1.0 * Float64(y3 * Float64(fma(j, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(z * t_1)) - Float64(y * t_2)))); elseif (y3 <= -3.35e-217) tmp = Float64(b * Float64(y0 * Float64(fma(k, z, Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) / y0)) - Float64(j * x)))); elseif (y3 <= 1.42e-40) tmp = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * t_1)) - Float64(j * Float64(Float64(b * y0) - Float64(i * y1))))); elseif (y3 <= 1.2e+168) tmp = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))); else tmp = Float64(y * Float64(y3 * t_2)); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y3, -1.22e-49], N[(-1.0 * N[(y3 * N[(N[(j * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(z * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(y * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, -3.35e-217], N[(b * N[(y0 * N[(N[(k * z + N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y0), $MachinePrecision]), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.42e-40], N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(j * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.2e+168], N[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y3 * t$95$2), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot y0 - a \cdot y1\\
t_2 := c \cdot y4 - a \cdot y5\\
\mathbf{if}\;y3 \leq -1.22 \cdot 10^{-49}:\\
\;\;\;\;-1 \cdot \left(y3 \cdot \left(\mathsf{fma}\left(j, y1 \cdot y4 - y0 \cdot y5, z \cdot t\_1\right) - y \cdot t\_2\right)\right)\\
\mathbf{elif}\;y3 \leq -3.35 \cdot 10^{-217}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(\mathsf{fma}\left(k, z, \frac{\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot \left(j \cdot t - k \cdot y\right)\right)}{y0}\right) - j \cdot x\right)\right)\\
\mathbf{elif}\;y3 \leq 1.42 \cdot 10^{-40}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot t\_1\right) - j \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;y3 \leq 1.2 \cdot 10^{+168}:\\
\;\;\;\;c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y3 \cdot t\_2\right)\\
\end{array}
\end{array}
if y3 < -1.2199999999999999e-49Initial program 26.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites45.6%
if -1.2199999999999999e-49 < y3 < -3.35e-217Initial program 36.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.8%
if -3.35e-217 < y3 < 1.42000000000000001e-40Initial program 34.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.2%
if 1.42000000000000001e-40 < y3 < 1.20000000000000005e168Initial program 29.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.1%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
if 1.20000000000000005e168 < y3 Initial program 20.9%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites57.7%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6444.7
Applied rewrites44.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1
(+
(-
(+
(+
(-
(* (- (* 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))))))
(if (<= t_1 INFINITY)
t_1
(*
-1.0
(*
y3
(-
(fma j (- (* y1 y4) (* y0 y5)) (* z (- (* c y0) (* a y1))))
(* y (- (* 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 = (((((((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 tmp;
if (t_1 <= ((double) INFINITY)) {
tmp = t_1;
} else {
tmp = -1.0 * (y3 * (fma(j, ((y1 * y4) - (y0 * y5)), (z * ((c * y0) - (a * y1)))) - (y * ((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(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)))) tmp = 0.0 if (t_1 <= Inf) tmp = t_1; else tmp = Float64(-1.0 * Float64(y3 * Float64(fma(j, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(z * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(y * 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[(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]}, If[LessEqual[t$95$1, Infinity], t$95$1, N[(-1.0 * N[(y3 * N[(N[(j * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(z * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \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)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \left(y3 \cdot \left(\mathsf{fma}\left(j, y1 \cdot y4 - y0 \cdot y5, z \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - y \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\right)\\
\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.7%
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 y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.4%
(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
(*
-1.0
(*
y5
(-
(fma i t_1 (* y0 (- (* k y2) (* j y3))))
(* a (- (* t y2) (* y y3))))))))
(if (<= y5 -5e+48)
t_2
(if (<= y5 -3e-161)
(*
b
(*
y0
(- (fma k z (/ (fma a (- (* x y) (* t z)) (* y4 t_1)) y0)) (* j x))))
(if (<= y5 3e+76)
(*
-1.0
(*
y3
(-
(fma j (- (* y1 y4) (* y0 y5)) (* z (- (* c y0) (* a y1))))
(* y (- (* c y4) (* a y5))))))
t_2)))))
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 = -1.0 * (y5 * (fma(i, t_1, (y0 * ((k * y2) - (j * y3)))) - (a * ((t * y2) - (y * y3)))));
double tmp;
if (y5 <= -5e+48) {
tmp = t_2;
} else if (y5 <= -3e-161) {
tmp = b * (y0 * (fma(k, z, (fma(a, ((x * y) - (t * z)), (y4 * t_1)) / y0)) - (j * x)));
} else if (y5 <= 3e+76) {
tmp = -1.0 * (y3 * (fma(j, ((y1 * y4) - (y0 * y5)), (z * ((c * y0) - (a * y1)))) - (y * ((c * y4) - (a * y5)))));
} else {
tmp = t_2;
}
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(-1.0 * Float64(y5 * Float64(fma(i, t_1, Float64(y0 * Float64(Float64(k * y2) - Float64(j * y3)))) - Float64(a * Float64(Float64(t * y2) - Float64(y * y3)))))) tmp = 0.0 if (y5 <= -5e+48) tmp = t_2; elseif (y5 <= -3e-161) tmp = Float64(b * Float64(y0 * Float64(fma(k, z, Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * t_1)) / y0)) - Float64(j * x)))); elseif (y5 <= 3e+76) tmp = Float64(-1.0 * Float64(y3 * Float64(fma(j, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(z * Float64(Float64(c * y0) - Float64(a * y1)))) - Float64(y * Float64(Float64(c * y4) - Float64(a * y5)))))); else tmp = t_2; 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[(-1.0 * N[(y5 * N[(N[(i * t$95$1 + N[(y0 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(a * N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -5e+48], t$95$2, If[LessEqual[y5, -3e-161], N[(b * N[(y0 * N[(N[(k * z + N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * t$95$1), $MachinePrecision]), $MachinePrecision] / y0), $MachinePrecision]), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 3e+76], N[(-1.0 * N[(y3 * N[(N[(j * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(z * N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := j \cdot t - k \cdot y\\
t_2 := -1 \cdot \left(y5 \cdot \left(\mathsf{fma}\left(i, t\_1, y0 \cdot \left(k \cdot y2 - j \cdot y3\right)\right) - a \cdot \left(t \cdot y2 - y \cdot y3\right)\right)\right)\\
\mathbf{if}\;y5 \leq -5 \cdot 10^{+48}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y5 \leq -3 \cdot 10^{-161}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(\mathsf{fma}\left(k, z, \frac{\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot t\_1\right)}{y0}\right) - j \cdot x\right)\right)\\
\mathbf{elif}\;y5 \leq 3 \cdot 10^{+76}:\\
\;\;\;\;-1 \cdot \left(y3 \cdot \left(\mathsf{fma}\left(j, y1 \cdot y4 - y0 \cdot y5, z \cdot \left(c \cdot y0 - a \cdot y1\right)\right) - y \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if y5 < -4.99999999999999973e48 or 2.9999999999999998e76 < y5 Initial program 24.2%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites52.5%
if -4.99999999999999973e48 < y5 < -2.99999999999999989e-161Initial program 32.7%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.8%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites45.3%
if -2.99999999999999989e-161 < y5 < 2.9999999999999998e76Initial program 34.3%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* c y4) (* a y5))) (t_2 (- (* c y0) (* a y1))))
(if (<= y3 -5.8e+149)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y3 -1.52e+22)
(* y2 (- (fma k (- (* y1 y4) (* y0 y5)) (* x t_2)) (* t t_1)))
(if (<= y3 -5.4e-156)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 (- (* j x) (* k z)))))
(if (<= y3 1.42e-40)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 t_2))
(* j (- (* b y0) (* i y1)))))
(if (<= y3 1.2e+168)
(* c (* z (fma -1.0 (* y0 y3) (* i t))))
(* y (* y3 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 = (c * y4) - (a * y5);
double t_2 = (c * y0) - (a * y1);
double tmp;
if (y3 <= -5.8e+149) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= -1.52e+22) {
tmp = y2 * (fma(k, ((y1 * y4) - (y0 * y5)), (x * t_2)) - (t * t_1));
} else if (y3 <= -5.4e-156) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * ((j * x) - (k * z))));
} else if (y3 <= 1.42e-40) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * t_2)) - (j * ((b * y0) - (i * y1))));
} else if (y3 <= 1.2e+168) {
tmp = c * (z * fma(-1.0, (y0 * y3), (i * t)));
} else {
tmp = y * (y3 * 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(c * y4) - Float64(a * y5)) t_2 = Float64(Float64(c * y0) - Float64(a * y1)) tmp = 0.0 if (y3 <= -5.8e+149) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y3 <= -1.52e+22) tmp = Float64(y2 * Float64(fma(k, Float64(Float64(y1 * y4) - Float64(y0 * y5)), Float64(x * t_2)) - Float64(t * t_1))); elseif (y3 <= -5.4e-156) tmp = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) - Float64(y0 * Float64(Float64(j * x) - Float64(k * z))))); elseif (y3 <= 1.42e-40) tmp = Float64(x * Float64(fma(y, Float64(Float64(a * b) - Float64(c * i)), Float64(y2 * t_2)) - Float64(j * Float64(Float64(b * y0) - Float64(i * y1))))); elseif (y3 <= 1.2e+168) tmp = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))); else tmp = Float64(y * Float64(y3 * t_1)); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(c * y0), $MachinePrecision] - N[(a * y1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y3, -5.8e+149], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, -1.52e+22], N[(y2 * N[(N[(k * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision] + N[(x * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(t * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, -5.4e-156], N[(b * N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y0 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.42e-40], N[(x * N[(N[(y * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision] + N[(y2 * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(j * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.2e+168], N[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y3 * t$95$1), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot y4 - a \cdot y5\\
t_2 := c \cdot y0 - a \cdot y1\\
\mathbf{if}\;y3 \leq -5.8 \cdot 10^{+149}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y3 \leq -1.52 \cdot 10^{+22}:\\
\;\;\;\;y2 \cdot \left(\mathsf{fma}\left(k, y1 \cdot y4 - y0 \cdot y5, x \cdot t\_2\right) - t \cdot t\_1\right)\\
\mathbf{elif}\;y3 \leq -5.4 \cdot 10^{-156}:\\
\;\;\;\;b \cdot \left(\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot \left(j \cdot t - k \cdot y\right)\right) - y0 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;y3 \leq 1.42 \cdot 10^{-40}:\\
\;\;\;\;x \cdot \left(\mathsf{fma}\left(y, a \cdot b - c \cdot i, y2 \cdot t\_2\right) - j \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;y3 \leq 1.2 \cdot 10^{+168}:\\
\;\;\;\;c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y3 \cdot t\_1\right)\\
\end{array}
\end{array}
if y3 < -5.8000000000000004e149Initial program 21.7%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites57.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.8
Applied rewrites39.8%
if -5.8000000000000004e149 < y3 < -1.52e22Initial program 30.2%
Taylor expanded in y2 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.7%
if -1.52e22 < y3 < -5.40000000000000024e-156Initial program 33.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
if -5.40000000000000024e-156 < y3 < 1.42000000000000001e-40Initial program 35.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.5%
if 1.42000000000000001e-40 < y3 < 1.20000000000000005e168Initial program 29.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.1%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.6
Applied rewrites27.6%
if 1.20000000000000005e168 < y3 Initial program 20.9%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites57.7%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6444.7
Applied rewrites44.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -1.42e+156)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 2.9e+122)
(*
b
(*
y0
(-
(fma k z (/ (fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y)))) y0))
(* j x))))
(if (<= j 2.9e+231)
(* y4 (* -1.0 (* y3 (* y (- (/ (* j y1) y) c)))))
(* b (* y0 (* j (- (/ (* t y4) y0) x))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -1.42e+156) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 2.9e+122) {
tmp = b * (y0 * (fma(k, z, (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) / y0)) - (j * x)));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -1.42e+156) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 2.9e+122) tmp = Float64(b * Float64(y0 * Float64(fma(k, z, Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) / y0)) - Float64(j * x)))); elseif (j <= 2.9e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(y * Float64(Float64(Float64(j * y1) / y) - c))))); else tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(t * y4) / y0) - x)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -1.42e+156], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.9e+122], N[(b * N[(y0 * N[(N[(k * z + N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y0), $MachinePrecision]), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.9e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(y * N[(N[(N[(j * y1), $MachinePrecision] / y), $MachinePrecision] - c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(j * N[(N[(N[(t * y4), $MachinePrecision] / y0), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -1.42 \cdot 10^{+156}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 2.9 \cdot 10^{+122}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(\mathsf{fma}\left(k, z, \frac{\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot \left(j \cdot t - k \cdot y\right)\right)}{y0}\right) - j \cdot x\right)\right)\\
\mathbf{elif}\;j \leq 2.9 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(y \cdot \left(\frac{j \cdot y1}{y} - c\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{t \cdot y4}{y0} - x\right)\right)\right)\\
\end{array}
\end{array}
if j < -1.41999999999999998e156Initial program 22.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites43.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.5
Applied rewrites35.5%
if -1.41999999999999998e156 < j < 2.9000000000000001e122Initial program 32.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites41.2%
if 2.9000000000000001e122 < j < 2.9000000000000001e231Initial program 25.2%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.9
Applied rewrites33.9%
Taylor expanded in y around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lift-*.f6438.0
Applied rewrites38.0%
if 2.9000000000000001e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6451.5
Applied rewrites51.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -1.2e+60)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 7.5e-190)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 (- (* j x) (* k z)))))
(if (<= j 8.8e-85)
(* a (* z (fma -1.0 (* b t) (* y1 y3))))
(if (<= j 2.55e+119)
(*
x
(-
(fma y (- (* a b) (* c i)) (* y2 (- (* c y0) (* a y1))))
(* j (- (* b y0) (* i y1)))))
(if (<= j 2.9e+231)
(* y4 (* -1.0 (* y3 (* y (- (/ (* j y1) y) c)))))
(* b (* y0 (* j (- (/ (* t y4) y0) x))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -1.2e+60) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 7.5e-190) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * ((j * x) - (k * z))));
} else if (j <= 8.8e-85) {
tmp = a * (z * fma(-1.0, (b * t), (y1 * y3)));
} else if (j <= 2.55e+119) {
tmp = x * (fma(y, ((a * b) - (c * i)), (y2 * ((c * y0) - (a * y1)))) - (j * ((b * y0) - (i * y1))));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -1.2e+60) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 7.5e-190) tmp = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) - Float64(y0 * Float64(Float64(j * x) - Float64(k * z))))); elseif (j <= 8.8e-85) tmp = Float64(a * Float64(z * fma(-1.0, Float64(b * t), Float64(y1 * y3)))); elseif (j <= 2.55e+119) 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 (j <= 2.9e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(y * Float64(Float64(Float64(j * y1) / y) - c))))); else tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(t * y4) / y0) - x)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -1.2e+60], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 7.5e-190], N[(b * N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y0 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 8.8e-85], N[(a * N[(z * N[(-1.0 * N[(b * t), $MachinePrecision] + N[(y1 * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.55e+119], 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[j, 2.9e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(y * N[(N[(N[(j * y1), $MachinePrecision] / y), $MachinePrecision] - c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(j * N[(N[(N[(t * y4), $MachinePrecision] / y0), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -1.2 \cdot 10^{+60}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 7.5 \cdot 10^{-190}:\\
\;\;\;\;b \cdot \left(\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot \left(j \cdot t - k \cdot y\right)\right) - y0 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;j \leq 8.8 \cdot 10^{-85}:\\
\;\;\;\;a \cdot \left(z \cdot \mathsf{fma}\left(-1, b \cdot t, y1 \cdot y3\right)\right)\\
\mathbf{elif}\;j \leq 2.55 \cdot 10^{+119}:\\
\;\;\;\;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}\;j \leq 2.9 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(y \cdot \left(\frac{j \cdot y1}{y} - c\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{t \cdot y4}{y0} - x\right)\right)\right)\\
\end{array}
\end{array}
if j < -1.2e60Initial program 24.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites41.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.6
Applied rewrites33.6%
if -1.2e60 < j < 7.5e-190Initial program 34.0%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
if 7.5e-190 < j < 8.8e-85Initial program 35.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites42.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6430.1
Applied rewrites30.1%
if 8.8e-85 < j < 2.54999999999999992e119Initial program 31.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
if 2.54999999999999992e119 < j < 2.9000000000000001e231Initial program 25.3%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.9%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.7
Applied rewrites33.7%
Taylor expanded in y around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lift-*.f6437.7
Applied rewrites37.7%
if 2.9000000000000001e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6451.5
Applied rewrites51.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -6.2e+147)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j -3.6e-121)
(* -1.0 (* y (* y4 (- (* b k) (* c y3)))))
(if (<= j -6e-303)
(* k (* y2 (* y1 (+ y4 (* -1.0 (/ (* y0 y5) y1))))))
(if (<= j 7.8e-190)
(* k (* z (- (* b y0) (* i y1))))
(if (<= j 3.2e+65)
(* a (* y3 (* y1 (+ z (* -1.0 (/ (* y y5) y1))))))
(if (<= j 2.9e+231)
(* y4 (* -1.0 (* y3 (* y (- (/ (* j y1) y) c)))))
(* b (* y0 (* j (- (/ (* t y4) y0) x)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -6.2e+147) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= -3.6e-121) {
tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3))));
} else if (j <= -6e-303) {
tmp = k * (y2 * (y1 * (y4 + (-1.0 * ((y0 * y5) / y1)))));
} else if (j <= 7.8e-190) {
tmp = k * (z * ((b * y0) - (i * y1)));
} else if (j <= 3.2e+65) {
tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1)))));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (j <= (-6.2d+147)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (j <= (-3.6d-121)) then
tmp = (-1.0d0) * (y * (y4 * ((b * k) - (c * y3))))
else if (j <= (-6d-303)) then
tmp = k * (y2 * (y1 * (y4 + ((-1.0d0) * ((y0 * y5) / y1)))))
else if (j <= 7.8d-190) then
tmp = k * (z * ((b * y0) - (i * y1)))
else if (j <= 3.2d+65) then
tmp = a * (y3 * (y1 * (z + ((-1.0d0) * ((y * y5) / y1)))))
else if (j <= 2.9d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (y * (((j * y1) / y) - c))))
else
tmp = b * (y0 * (j * (((t * y4) / y0) - x)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -6.2e+147) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= -3.6e-121) {
tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3))));
} else if (j <= -6e-303) {
tmp = k * (y2 * (y1 * (y4 + (-1.0 * ((y0 * y5) / y1)))));
} else if (j <= 7.8e-190) {
tmp = k * (z * ((b * y0) - (i * y1)));
} else if (j <= 3.2e+65) {
tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1)))));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if j <= -6.2e+147: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif j <= -3.6e-121: tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3)))) elif j <= -6e-303: tmp = k * (y2 * (y1 * (y4 + (-1.0 * ((y0 * y5) / y1))))) elif j <= 7.8e-190: tmp = k * (z * ((b * y0) - (i * y1))) elif j <= 3.2e+65: tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1))))) elif j <= 2.9e+231: tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c)))) else: tmp = b * (y0 * (j * (((t * y4) / y0) - x))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -6.2e+147) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= -3.6e-121) tmp = Float64(-1.0 * Float64(y * Float64(y4 * Float64(Float64(b * k) - Float64(c * y3))))); elseif (j <= -6e-303) tmp = Float64(k * Float64(y2 * Float64(y1 * Float64(y4 + Float64(-1.0 * Float64(Float64(y0 * y5) / y1)))))); elseif (j <= 7.8e-190) tmp = Float64(k * Float64(z * Float64(Float64(b * y0) - Float64(i * y1)))); elseif (j <= 3.2e+65) tmp = Float64(a * Float64(y3 * Float64(y1 * Float64(z + Float64(-1.0 * Float64(Float64(y * y5) / y1)))))); elseif (j <= 2.9e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(y * Float64(Float64(Float64(j * y1) / y) - c))))); else tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(t * y4) / y0) - x)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (j <= -6.2e+147) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (j <= -3.6e-121) tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3)))); elseif (j <= -6e-303) tmp = k * (y2 * (y1 * (y4 + (-1.0 * ((y0 * y5) / y1))))); elseif (j <= 7.8e-190) tmp = k * (z * ((b * y0) - (i * y1))); elseif (j <= 3.2e+65) tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1))))); elseif (j <= 2.9e+231) tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c)))); else tmp = b * (y0 * (j * (((t * y4) / y0) - x))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -6.2e+147], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, -3.6e-121], N[(-1.0 * N[(y * N[(y4 * N[(N[(b * k), $MachinePrecision] - N[(c * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, -6e-303], N[(k * N[(y2 * N[(y1 * N[(y4 + N[(-1.0 * N[(N[(y0 * y5), $MachinePrecision] / y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 7.8e-190], N[(k * N[(z * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 3.2e+65], N[(a * N[(y3 * N[(y1 * N[(z + N[(-1.0 * N[(N[(y * y5), $MachinePrecision] / y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.9e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(y * N[(N[(N[(j * y1), $MachinePrecision] / y), $MachinePrecision] - c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(j * N[(N[(N[(t * y4), $MachinePrecision] / y0), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -6.2 \cdot 10^{+147}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq -3.6 \cdot 10^{-121}:\\
\;\;\;\;-1 \cdot \left(y \cdot \left(y4 \cdot \left(b \cdot k - c \cdot y3\right)\right)\right)\\
\mathbf{elif}\;j \leq -6 \cdot 10^{-303}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot \left(y4 + -1 \cdot \frac{y0 \cdot y5}{y1}\right)\right)\right)\\
\mathbf{elif}\;j \leq 7.8 \cdot 10^{-190}:\\
\;\;\;\;k \cdot \left(z \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;j \leq 3.2 \cdot 10^{+65}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot \left(z + -1 \cdot \frac{y \cdot y5}{y1}\right)\right)\right)\\
\mathbf{elif}\;j \leq 2.9 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(y \cdot \left(\frac{j \cdot y1}{y} - c\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{t \cdot y4}{y0} - x\right)\right)\right)\\
\end{array}
\end{array}
if j < -6.2000000000000001e147Initial program 22.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites42.6%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.3
Applied rewrites35.3%
if -6.2000000000000001e147 < j < -3.59999999999999984e-121Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.1%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
if -3.59999999999999984e-121 < j < -6.00000000000000055e-303Initial program 35.8%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.5%
Taylor expanded in y2 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6427.4
Applied rewrites27.4%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f6429.6
Applied rewrites29.6%
if -6.00000000000000055e-303 < j < 7.7999999999999999e-190Initial program 35.2%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.8%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.9
Applied rewrites26.9%
if 7.7999999999999999e-190 < j < 3.20000000000000007e65Initial program 33.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites33.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.2
Applied rewrites26.2%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f6428.6
Applied rewrites28.6%
if 3.20000000000000007e65 < j < 2.9000000000000001e231Initial program 27.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.5
Applied rewrites31.5%
Taylor expanded in y around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lift-*.f6435.6
Applied rewrites35.6%
if 2.9000000000000001e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6451.5
Applied rewrites51.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -6.2e+147)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j -3.6e-121)
(* -1.0 (* y (* y4 (- (* b k) (* c y3)))))
(if (<= j -6e-303)
(* k (* y2 (- (* y1 y4) (* y0 y5))))
(if (<= j 7.8e-190)
(* k (* z (- (* b y0) (* i y1))))
(if (<= j 3.2e+65)
(* a (* y3 (* y1 (+ z (* -1.0 (/ (* y y5) y1))))))
(if (<= j 2.9e+231)
(* y4 (* -1.0 (* y3 (* y (- (/ (* j y1) y) c)))))
(* b (* y0 (* j (- (/ (* t y4) y0) x)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -6.2e+147) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= -3.6e-121) {
tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3))));
} else if (j <= -6e-303) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (j <= 7.8e-190) {
tmp = k * (z * ((b * y0) - (i * y1)));
} else if (j <= 3.2e+65) {
tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1)))));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (j <= (-6.2d+147)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (j <= (-3.6d-121)) then
tmp = (-1.0d0) * (y * (y4 * ((b * k) - (c * y3))))
else if (j <= (-6d-303)) then
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)))
else if (j <= 7.8d-190) then
tmp = k * (z * ((b * y0) - (i * y1)))
else if (j <= 3.2d+65) then
tmp = a * (y3 * (y1 * (z + ((-1.0d0) * ((y * y5) / y1)))))
else if (j <= 2.9d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (y * (((j * y1) / y) - c))))
else
tmp = b * (y0 * (j * (((t * y4) / y0) - x)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -6.2e+147) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= -3.6e-121) {
tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3))));
} else if (j <= -6e-303) {
tmp = k * (y2 * ((y1 * y4) - (y0 * y5)));
} else if (j <= 7.8e-190) {
tmp = k * (z * ((b * y0) - (i * y1)));
} else if (j <= 3.2e+65) {
tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1)))));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if j <= -6.2e+147: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif j <= -3.6e-121: tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3)))) elif j <= -6e-303: tmp = k * (y2 * ((y1 * y4) - (y0 * y5))) elif j <= 7.8e-190: tmp = k * (z * ((b * y0) - (i * y1))) elif j <= 3.2e+65: tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1))))) elif j <= 2.9e+231: tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c)))) else: tmp = b * (y0 * (j * (((t * y4) / y0) - x))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -6.2e+147) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= -3.6e-121) tmp = Float64(-1.0 * Float64(y * Float64(y4 * Float64(Float64(b * k) - Float64(c * y3))))); elseif (j <= -6e-303) tmp = Float64(k * Float64(y2 * Float64(Float64(y1 * y4) - Float64(y0 * y5)))); elseif (j <= 7.8e-190) tmp = Float64(k * Float64(z * Float64(Float64(b * y0) - Float64(i * y1)))); elseif (j <= 3.2e+65) tmp = Float64(a * Float64(y3 * Float64(y1 * Float64(z + Float64(-1.0 * Float64(Float64(y * y5) / y1)))))); elseif (j <= 2.9e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(y * Float64(Float64(Float64(j * y1) / y) - c))))); else tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(t * y4) / y0) - x)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (j <= -6.2e+147) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (j <= -3.6e-121) tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3)))); elseif (j <= -6e-303) tmp = k * (y2 * ((y1 * y4) - (y0 * y5))); elseif (j <= 7.8e-190) tmp = k * (z * ((b * y0) - (i * y1))); elseif (j <= 3.2e+65) tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1))))); elseif (j <= 2.9e+231) tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c)))); else tmp = b * (y0 * (j * (((t * y4) / y0) - x))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -6.2e+147], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, -3.6e-121], N[(-1.0 * N[(y * N[(y4 * N[(N[(b * k), $MachinePrecision] - N[(c * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, -6e-303], N[(k * N[(y2 * N[(N[(y1 * y4), $MachinePrecision] - N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 7.8e-190], N[(k * N[(z * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 3.2e+65], N[(a * N[(y3 * N[(y1 * N[(z + N[(-1.0 * N[(N[(y * y5), $MachinePrecision] / y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.9e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(y * N[(N[(N[(j * y1), $MachinePrecision] / y), $MachinePrecision] - c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(j * N[(N[(N[(t * y4), $MachinePrecision] / y0), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -6.2 \cdot 10^{+147}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq -3.6 \cdot 10^{-121}:\\
\;\;\;\;-1 \cdot \left(y \cdot \left(y4 \cdot \left(b \cdot k - c \cdot y3\right)\right)\right)\\
\mathbf{elif}\;j \leq -6 \cdot 10^{-303}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4 - y0 \cdot y5\right)\right)\\
\mathbf{elif}\;j \leq 7.8 \cdot 10^{-190}:\\
\;\;\;\;k \cdot \left(z \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;j \leq 3.2 \cdot 10^{+65}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot \left(z + -1 \cdot \frac{y \cdot y5}{y1}\right)\right)\right)\\
\mathbf{elif}\;j \leq 2.9 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(y \cdot \left(\frac{j \cdot y1}{y} - c\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{t \cdot y4}{y0} - x\right)\right)\right)\\
\end{array}
\end{array}
if j < -6.2000000000000001e147Initial program 22.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites42.6%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.3
Applied rewrites35.3%
if -6.2000000000000001e147 < j < -3.59999999999999984e-121Initial program 30.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.1%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.3
Applied rewrites27.3%
if -3.59999999999999984e-121 < j < -6.00000000000000055e-303Initial program 35.8%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.5%
Taylor expanded in y2 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6427.4
Applied rewrites27.4%
if -6.00000000000000055e-303 < j < 7.7999999999999999e-190Initial program 35.2%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.8%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.3
Applied rewrites28.3%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.9
Applied rewrites26.9%
if 7.7999999999999999e-190 < j < 3.20000000000000007e65Initial program 33.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites33.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.2
Applied rewrites26.2%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f6428.6
Applied rewrites28.6%
if 3.20000000000000007e65 < j < 2.9000000000000001e231Initial program 27.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.5
Applied rewrites31.5%
Taylor expanded in y around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lift-*.f6435.6
Applied rewrites35.6%
if 2.9000000000000001e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6451.5
Applied rewrites51.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* c (* z (fma -1.0 (* y0 y3) (* i t))))))
(if (<= y4 -1.62e+193)
(* y1 (* y4 (- (* k y2) (* j y3))))
(if (<= y4 -1.1e+101)
(* c (* y0 (- (* x y2) (* y3 z))))
(if (<= y4 -5.4e+29)
(* y4 (* -1.0 (* y3 (- (* j y1) (* c y)))))
(if (<= y4 -3e-287)
t_1
(if (<= y4 2.7e-56)
(* b (* x (- (* a y) (* j y0))))
(if (<= y4 3e+98)
t_1
(* -1.0 (* y (* y4 (- (* b k) (* c y3)))))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = c * (z * fma(-1.0, (y0 * y3), (i * t)));
double tmp;
if (y4 <= -1.62e+193) {
tmp = y1 * (y4 * ((k * y2) - (j * y3)));
} else if (y4 <= -1.1e+101) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y4 <= -5.4e+29) {
tmp = y4 * (-1.0 * (y3 * ((j * y1) - (c * y))));
} else if (y4 <= -3e-287) {
tmp = t_1;
} else if (y4 <= 2.7e-56) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y4 <= 3e+98) {
tmp = t_1;
} else {
tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3))));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))) tmp = 0.0 if (y4 <= -1.62e+193) tmp = Float64(y1 * Float64(y4 * Float64(Float64(k * y2) - Float64(j * y3)))); elseif (y4 <= -1.1e+101) tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); elseif (y4 <= -5.4e+29) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(Float64(j * y1) - Float64(c * y))))); elseif (y4 <= -3e-287) tmp = t_1; elseif (y4 <= 2.7e-56) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y4 <= 3e+98) tmp = t_1; else tmp = Float64(-1.0 * Float64(y * Float64(y4 * Float64(Float64(b * k) - Float64(c * 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[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y4, -1.62e+193], N[(y1 * N[(y4 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -1.1e+101], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -5.4e+29], N[(y4 * N[(-1.0 * N[(y3 * N[(N[(j * y1), $MachinePrecision] - N[(c * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -3e-287], t$95$1, If[LessEqual[y4, 2.7e-56], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, 3e+98], t$95$1, N[(-1.0 * N[(y * N[(y4 * N[(N[(b * k), $MachinePrecision] - N[(c * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
\mathbf{if}\;y4 \leq -1.62 \cdot 10^{+193}:\\
\;\;\;\;y1 \cdot \left(y4 \cdot \left(k \cdot y2 - j \cdot y3\right)\right)\\
\mathbf{elif}\;y4 \leq -1.1 \cdot 10^{+101}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\mathbf{elif}\;y4 \leq -5.4 \cdot 10^{+29}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1 - c \cdot y\right)\right)\right)\\
\mathbf{elif}\;y4 \leq -3 \cdot 10^{-287}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y4 \leq 2.7 \cdot 10^{-56}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y4 \leq 3 \cdot 10^{+98}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \left(y \cdot \left(y4 \cdot \left(b \cdot k - c \cdot y3\right)\right)\right)\\
\end{array}
\end{array}
if y4 < -1.62000000000000004e193Initial program 20.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites59.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6441.2
Applied rewrites41.2%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6448.4
Applied rewrites48.4%
if -1.62000000000000004e193 < y4 < -1.1e101Initial program 27.4%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites32.9%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6426.6
Applied rewrites26.6%
if -1.1e101 < y4 < -5.4e29Initial program 28.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.2
Applied rewrites26.2%
if -5.4e29 < y4 < -2.99999999999999992e-287 or 2.69999999999999995e-56 < y4 < 3.0000000000000001e98Initial program 33.6%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.9%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -2.99999999999999992e-287 < y4 < 2.69999999999999995e-56Initial program 35.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites32.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.0
Applied rewrites26.0%
if 3.0000000000000001e98 < y4 Initial program 21.2%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites53.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6442.7
Applied rewrites42.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -1.2e+60)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 8e-196)
(*
b
(-
(fma a (- (* x y) (* t z)) (* y4 (- (* j t) (* k y))))
(* y0 (- (* j x) (* k z)))))
(if (<= j 3.2e+65)
(* a (* y3 (* y1 (+ z (* -1.0 (/ (* y y5) y1))))))
(if (<= j 2.9e+231)
(* y4 (* -1.0 (* y3 (* y (- (/ (* j y1) y) c)))))
(* b (* y0 (* j (- (/ (* t y4) y0) x)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -1.2e+60) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 8e-196) {
tmp = b * (fma(a, ((x * y) - (t * z)), (y4 * ((j * t) - (k * y)))) - (y0 * ((j * x) - (k * z))));
} else if (j <= 3.2e+65) {
tmp = a * (y3 * (y1 * (z + (-1.0 * ((y * y5) / y1)))));
} else if (j <= 2.9e+231) {
tmp = y4 * (-1.0 * (y3 * (y * (((j * y1) / y) - c))));
} else {
tmp = b * (y0 * (j * (((t * y4) / y0) - x)));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -1.2e+60) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 8e-196) tmp = Float64(b * Float64(fma(a, Float64(Float64(x * y) - Float64(t * z)), Float64(y4 * Float64(Float64(j * t) - Float64(k * y)))) - Float64(y0 * Float64(Float64(j * x) - Float64(k * z))))); elseif (j <= 3.2e+65) tmp = Float64(a * Float64(y3 * Float64(y1 * Float64(z + Float64(-1.0 * Float64(Float64(y * y5) / y1)))))); elseif (j <= 2.9e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(y * Float64(Float64(Float64(j * y1) / y) - c))))); else tmp = Float64(b * Float64(y0 * Float64(j * Float64(Float64(Float64(t * y4) / y0) - x)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -1.2e+60], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 8e-196], N[(b * N[(N[(a * N[(N[(x * y), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision] + N[(y4 * N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(y0 * N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 3.2e+65], N[(a * N[(y3 * N[(y1 * N[(z + N[(-1.0 * N[(N[(y * y5), $MachinePrecision] / y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.9e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(y * N[(N[(N[(j * y1), $MachinePrecision] / y), $MachinePrecision] - c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(y0 * N[(j * N[(N[(N[(t * y4), $MachinePrecision] / y0), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -1.2 \cdot 10^{+60}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 8 \cdot 10^{-196}:\\
\;\;\;\;b \cdot \left(\mathsf{fma}\left(a, x \cdot y - t \cdot z, y4 \cdot \left(j \cdot t - k \cdot y\right)\right) - y0 \cdot \left(j \cdot x - k \cdot z\right)\right)\\
\mathbf{elif}\;j \leq 3.2 \cdot 10^{+65}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot \left(z + -1 \cdot \frac{y \cdot y5}{y1}\right)\right)\right)\\
\mathbf{elif}\;j \leq 2.9 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(y \cdot \left(\frac{j \cdot y1}{y} - c\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(y0 \cdot \left(j \cdot \left(\frac{t \cdot y4}{y0} - x\right)\right)\right)\\
\end{array}
\end{array}
if j < -1.2e60Initial program 24.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites41.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.6
Applied rewrites33.6%
if -1.2e60 < j < 8.0000000000000004e-196Initial program 33.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
if 8.0000000000000004e-196 < j < 3.20000000000000007e65Initial program 33.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites33.1%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.3
Applied rewrites26.3%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f6428.7
Applied rewrites28.7%
if 3.20000000000000007e65 < j < 2.9000000000000001e231Initial program 27.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.5
Applied rewrites31.5%
Taylor expanded in y around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lift-*.f6435.6
Applied rewrites35.6%
if 2.9000000000000001e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.6%
Taylor expanded in j around inf
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-*.f6451.5
Applied rewrites51.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* y1 (* z (- (* a y3) (* i k))))))
(if (<= y1 -1.95e+273)
(* y4 (* c (- (* y y3) (* t y2))))
(if (<= y1 -1.55e+53)
(* y4 (* y1 (- (* k y2) (* j y3))))
(if (<= y1 -34000000000.0)
t_1
(if (<= y1 -3.8e-261)
(* c (* y0 (- (* x y2) (* y3 z))))
(if (<= y1 3.9e-116)
(* b (* x (- (* a y) (* j y0))))
(if (<= y1 1.08e+153)
(* c (* z (fma -1.0 (* y0 y3) (* i 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 = y1 * (z * ((a * y3) - (i * k)));
double tmp;
if (y1 <= -1.95e+273) {
tmp = y4 * (c * ((y * y3) - (t * y2)));
} else if (y1 <= -1.55e+53) {
tmp = y4 * (y1 * ((k * y2) - (j * y3)));
} else if (y1 <= -34000000000.0) {
tmp = t_1;
} else if (y1 <= -3.8e-261) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y1 <= 3.9e-116) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y1 <= 1.08e+153) {
tmp = c * (z * fma(-1.0, (y0 * y3), (i * 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(y1 * Float64(z * Float64(Float64(a * y3) - Float64(i * k)))) tmp = 0.0 if (y1 <= -1.95e+273) tmp = Float64(y4 * Float64(c * Float64(Float64(y * y3) - Float64(t * y2)))); elseif (y1 <= -1.55e+53) tmp = Float64(y4 * Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))); elseif (y1 <= -34000000000.0) tmp = t_1; elseif (y1 <= -3.8e-261) tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); elseif (y1 <= 3.9e-116) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y1 <= 1.08e+153) tmp = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(y1 * N[(z * N[(N[(a * y3), $MachinePrecision] - N[(i * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y1, -1.95e+273], N[(y4 * N[(c * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -1.55e+53], N[(y4 * N[(y1 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -34000000000.0], t$95$1, If[LessEqual[y1, -3.8e-261], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 3.9e-116], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.08e+153], N[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := y1 \cdot \left(z \cdot \left(a \cdot y3 - i \cdot k\right)\right)\\
\mathbf{if}\;y1 \leq -1.95 \cdot 10^{+273}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\mathbf{elif}\;y1 \leq -1.55 \cdot 10^{+53}:\\
\;\;\;\;y4 \cdot \left(y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right)\\
\mathbf{elif}\;y1 \leq -34000000000:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y1 \leq -3.8 \cdot 10^{-261}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\mathbf{elif}\;y1 \leq 3.9 \cdot 10^{-116}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y1 \leq 1.08 \cdot 10^{+153}:\\
\;\;\;\;c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y1 < -1.9500000000000001e273Initial program 23.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6422.6
Applied rewrites22.6%
if -1.9500000000000001e273 < y1 < -1.5500000000000001e53Initial program 25.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.7%
Taylor expanded in y1 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6440.5
Applied rewrites40.5%
if -1.5500000000000001e53 < y1 < -3.4e10 or 1.08000000000000006e153 < y1 Initial program 23.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6434.9
Applied rewrites34.9%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.4
Applied rewrites36.4%
if -3.4e10 < y1 < -3.8e-261Initial program 34.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6429.8
Applied rewrites29.8%
if -3.8e-261 < y1 < 3.9000000000000001e-116Initial program 34.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 3.9000000000000001e-116 < y1 < 1.08000000000000006e153Initial program 31.3%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.4%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6429.6
Applied rewrites29.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y1 -1.95e+273)
(* y4 (* c (- (* y y3) (* t y2))))
(if (<= y1 -1.55e+53)
(* y4 (* y1 (- (* k y2) (* j y3))))
(if (<= y1 -34000000000.0)
(* y1 (* z (- (* a y3) (* i k))))
(if (<= y1 -3.8e-261)
(* c (* y0 (- (* x y2) (* y3 z))))
(if (<= y1 1.3e-115)
(* b (* x (- (* a y) (* j y0))))
(if (<= y1 4.8e+38)
(* y (* y3 (- (* c y4) (* a y5))))
(* a (* z (fma -1.0 (* b t) (* y1 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 (y1 <= -1.95e+273) {
tmp = y4 * (c * ((y * y3) - (t * y2)));
} else if (y1 <= -1.55e+53) {
tmp = y4 * (y1 * ((k * y2) - (j * y3)));
} else if (y1 <= -34000000000.0) {
tmp = y1 * (z * ((a * y3) - (i * k)));
} else if (y1 <= -3.8e-261) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y1 <= 1.3e-115) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y1 <= 4.8e+38) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else {
tmp = a * (z * fma(-1.0, (b * t), (y1 * 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 (y1 <= -1.95e+273) tmp = Float64(y4 * Float64(c * Float64(Float64(y * y3) - Float64(t * y2)))); elseif (y1 <= -1.55e+53) tmp = Float64(y4 * Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))); elseif (y1 <= -34000000000.0) tmp = Float64(y1 * Float64(z * Float64(Float64(a * y3) - Float64(i * k)))); elseif (y1 <= -3.8e-261) tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); elseif (y1 <= 1.3e-115) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y1 <= 4.8e+38) tmp = Float64(y * Float64(y3 * Float64(Float64(c * y4) - Float64(a * y5)))); else tmp = Float64(a * Float64(z * fma(-1.0, Float64(b * t), Float64(y1 * y3)))); end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y1, -1.95e+273], N[(y4 * N[(c * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -1.55e+53], N[(y4 * N[(y1 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -34000000000.0], N[(y1 * N[(z * N[(N[(a * y3), $MachinePrecision] - N[(i * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -3.8e-261], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.3e-115], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 4.8e+38], N[(y * N[(y3 * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(z * N[(-1.0 * N[(b * t), $MachinePrecision] + N[(y1 * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y1 \leq -1.95 \cdot 10^{+273}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\mathbf{elif}\;y1 \leq -1.55 \cdot 10^{+53}:\\
\;\;\;\;y4 \cdot \left(y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right)\\
\mathbf{elif}\;y1 \leq -34000000000:\\
\;\;\;\;y1 \cdot \left(z \cdot \left(a \cdot y3 - i \cdot k\right)\right)\\
\mathbf{elif}\;y1 \leq -3.8 \cdot 10^{-261}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\mathbf{elif}\;y1 \leq 1.3 \cdot 10^{-115}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y1 \leq 4.8 \cdot 10^{+38}:\\
\;\;\;\;y \cdot \left(y3 \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(z \cdot \mathsf{fma}\left(-1, b \cdot t, y1 \cdot y3\right)\right)\\
\end{array}
\end{array}
if y1 < -1.9500000000000001e273Initial program 23.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6422.6
Applied rewrites22.6%
if -1.9500000000000001e273 < y1 < -1.5500000000000001e53Initial program 25.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.7%
Taylor expanded in y1 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6440.5
Applied rewrites40.5%
if -1.5500000000000001e53 < y1 < -3.4e10Initial program 29.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.1
Applied rewrites28.1%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6423.0
Applied rewrites23.0%
if -3.4e10 < y1 < -3.8e-261Initial program 34.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6429.8
Applied rewrites29.8%
if -3.8e-261 < y1 < 1.30000000000000002e-115Initial program 34.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 1.30000000000000002e-115 < y1 < 4.80000000000000035e38Initial program 33.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.2
Applied rewrites27.2%
if 4.80000000000000035e38 < y1 Initial program 24.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6435.2
Applied rewrites35.2%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y1 -1.95e+273)
(* y4 (* c (- (* y y3) (* t y2))))
(if (<= y1 -1.55e+53)
(* y4 (* y1 (- (* k y2) (* j y3))))
(if (<= y1 -34000000000.0)
(* y1 (* z (- (* a y3) (* i k))))
(if (<= y1 -3.8e-261)
(* c (* y0 (- (* x y2) (* y3 z))))
(if (<= y1 1.3e-115)
(* b (* x (- (* a y) (* j y0))))
(if (<= y1 1.22e+39)
(* y (* y3 (- (* c y4) (* a y5))))
(* a (* y3 (- (* y1 z) (* 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 (y1 <= -1.95e+273) {
tmp = y4 * (c * ((y * y3) - (t * y2)));
} else if (y1 <= -1.55e+53) {
tmp = y4 * (y1 * ((k * y2) - (j * y3)));
} else if (y1 <= -34000000000.0) {
tmp = y1 * (z * ((a * y3) - (i * k)));
} else if (y1 <= -3.8e-261) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y1 <= 1.3e-115) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y1 <= 1.22e+39) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else {
tmp = a * (y3 * ((y1 * z) - (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 (y1 <= (-1.95d+273)) then
tmp = y4 * (c * ((y * y3) - (t * y2)))
else if (y1 <= (-1.55d+53)) then
tmp = y4 * (y1 * ((k * y2) - (j * y3)))
else if (y1 <= (-34000000000.0d0)) then
tmp = y1 * (z * ((a * y3) - (i * k)))
else if (y1 <= (-3.8d-261)) then
tmp = c * (y0 * ((x * y2) - (y3 * z)))
else if (y1 <= 1.3d-115) then
tmp = b * (x * ((a * y) - (j * y0)))
else if (y1 <= 1.22d+39) then
tmp = y * (y3 * ((c * y4) - (a * y5)))
else
tmp = a * (y3 * ((y1 * z) - (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 (y1 <= -1.95e+273) {
tmp = y4 * (c * ((y * y3) - (t * y2)));
} else if (y1 <= -1.55e+53) {
tmp = y4 * (y1 * ((k * y2) - (j * y3)));
} else if (y1 <= -34000000000.0) {
tmp = y1 * (z * ((a * y3) - (i * k)));
} else if (y1 <= -3.8e-261) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y1 <= 1.3e-115) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y1 <= 1.22e+39) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else {
tmp = a * (y3 * ((y1 * z) - (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 y1 <= -1.95e+273: tmp = y4 * (c * ((y * y3) - (t * y2))) elif y1 <= -1.55e+53: tmp = y4 * (y1 * ((k * y2) - (j * y3))) elif y1 <= -34000000000.0: tmp = y1 * (z * ((a * y3) - (i * k))) elif y1 <= -3.8e-261: tmp = c * (y0 * ((x * y2) - (y3 * z))) elif y1 <= 1.3e-115: tmp = b * (x * ((a * y) - (j * y0))) elif y1 <= 1.22e+39: tmp = y * (y3 * ((c * y4) - (a * y5))) else: tmp = a * (y3 * ((y1 * z) - (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 (y1 <= -1.95e+273) tmp = Float64(y4 * Float64(c * Float64(Float64(y * y3) - Float64(t * y2)))); elseif (y1 <= -1.55e+53) tmp = Float64(y4 * Float64(y1 * Float64(Float64(k * y2) - Float64(j * y3)))); elseif (y1 <= -34000000000.0) tmp = Float64(y1 * Float64(z * Float64(Float64(a * y3) - Float64(i * k)))); elseif (y1 <= -3.8e-261) tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); elseif (y1 <= 1.3e-115) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y1 <= 1.22e+39) tmp = Float64(y * Float64(y3 * Float64(Float64(c * y4) - Float64(a * y5)))); else tmp = Float64(a * Float64(y3 * Float64(Float64(y1 * z) - 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 (y1 <= -1.95e+273) tmp = y4 * (c * ((y * y3) - (t * y2))); elseif (y1 <= -1.55e+53) tmp = y4 * (y1 * ((k * y2) - (j * y3))); elseif (y1 <= -34000000000.0) tmp = y1 * (z * ((a * y3) - (i * k))); elseif (y1 <= -3.8e-261) tmp = c * (y0 * ((x * y2) - (y3 * z))); elseif (y1 <= 1.3e-115) tmp = b * (x * ((a * y) - (j * y0))); elseif (y1 <= 1.22e+39) tmp = y * (y3 * ((c * y4) - (a * y5))); else tmp = a * (y3 * ((y1 * z) - (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[y1, -1.95e+273], N[(y4 * N[(c * N[(N[(y * y3), $MachinePrecision] - N[(t * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -1.55e+53], N[(y4 * N[(y1 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -34000000000.0], N[(y1 * N[(z * N[(N[(a * y3), $MachinePrecision] - N[(i * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -3.8e-261], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.3e-115], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.22e+39], N[(y * N[(y3 * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(y3 * N[(N[(y1 * z), $MachinePrecision] - N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y1 \leq -1.95 \cdot 10^{+273}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\\
\mathbf{elif}\;y1 \leq -1.55 \cdot 10^{+53}:\\
\;\;\;\;y4 \cdot \left(y1 \cdot \left(k \cdot y2 - j \cdot y3\right)\right)\\
\mathbf{elif}\;y1 \leq -34000000000:\\
\;\;\;\;y1 \cdot \left(z \cdot \left(a \cdot y3 - i \cdot k\right)\right)\\
\mathbf{elif}\;y1 \leq -3.8 \cdot 10^{-261}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\mathbf{elif}\;y1 \leq 1.3 \cdot 10^{-115}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y1 \leq 1.22 \cdot 10^{+39}:\\
\;\;\;\;y \cdot \left(y3 \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z - y \cdot y5\right)\right)\\
\end{array}
\end{array}
if y1 < -1.9500000000000001e273Initial program 23.8%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.3%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lift-*.f64N/A
lift-*.f6422.6
Applied rewrites22.6%
if -1.9500000000000001e273 < y1 < -1.5500000000000001e53Initial program 25.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.7%
Taylor expanded in y1 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6440.5
Applied rewrites40.5%
if -1.5500000000000001e53 < y1 < -3.4e10Initial program 29.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.1
Applied rewrites28.1%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6423.0
Applied rewrites23.0%
if -3.4e10 < y1 < -3.8e-261Initial program 34.6%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6429.8
Applied rewrites29.8%
if -3.8e-261 < y1 < 1.30000000000000002e-115Initial program 34.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
if 1.30000000000000002e-115 < y1 < 1.22e39Initial program 33.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.0
Applied rewrites27.0%
if 1.22e39 < y1 Initial program 24.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.7
Applied rewrites33.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* c (* z (fma -1.0 (* y0 y3) (* i t))))))
(if (<= y4 -6.1e+38)
(* y1 (* y4 (- (* k y2) (* j y3))))
(if (<= y4 -3e-287)
t_1
(if (<= y4 2.7e-56)
(* b (* x (- (* a y) (* j y0))))
(if (<= y4 3e+98) t_1 (* -1.0 (* y (* y4 (- (* b k) (* c y3)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = c * (z * fma(-1.0, (y0 * y3), (i * t)));
double tmp;
if (y4 <= -6.1e+38) {
tmp = y1 * (y4 * ((k * y2) - (j * y3)));
} else if (y4 <= -3e-287) {
tmp = t_1;
} else if (y4 <= 2.7e-56) {
tmp = b * (x * ((a * y) - (j * y0)));
} else if (y4 <= 3e+98) {
tmp = t_1;
} else {
tmp = -1.0 * (y * (y4 * ((b * k) - (c * y3))));
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(c * Float64(z * fma(-1.0, Float64(y0 * y3), Float64(i * t)))) tmp = 0.0 if (y4 <= -6.1e+38) tmp = Float64(y1 * Float64(y4 * Float64(Float64(k * y2) - Float64(j * y3)))); elseif (y4 <= -3e-287) tmp = t_1; elseif (y4 <= 2.7e-56) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); elseif (y4 <= 3e+98) tmp = t_1; else tmp = Float64(-1.0 * Float64(y * Float64(y4 * Float64(Float64(b * k) - Float64(c * 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[(c * N[(z * N[(-1.0 * N[(y0 * y3), $MachinePrecision] + N[(i * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y4, -6.1e+38], N[(y1 * N[(y4 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, -3e-287], t$95$1, If[LessEqual[y4, 2.7e-56], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y4, 3e+98], t$95$1, N[(-1.0 * N[(y * N[(y4 * N[(N[(b * k), $MachinePrecision] - N[(c * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := c \cdot \left(z \cdot \mathsf{fma}\left(-1, y0 \cdot y3, i \cdot t\right)\right)\\
\mathbf{if}\;y4 \leq -6.1 \cdot 10^{+38}:\\
\;\;\;\;y1 \cdot \left(y4 \cdot \left(k \cdot y2 - j \cdot y3\right)\right)\\
\mathbf{elif}\;y4 \leq -3 \cdot 10^{-287}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y4 \leq 2.7 \cdot 10^{-56}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{elif}\;y4 \leq 3 \cdot 10^{+98}:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \left(y \cdot \left(y4 \cdot \left(b \cdot k - c \cdot y3\right)\right)\right)\\
\end{array}
\end{array}
if y4 < -6.0999999999999999e38Initial program 24.6%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites51.7%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6434.9
Applied rewrites34.9%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.7
Applied rewrites39.7%
if -6.0999999999999999e38 < y4 < -2.99999999999999992e-287 or 2.69999999999999995e-56 < y4 < 3.0000000000000001e98Initial program 33.5%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.9%
Taylor expanded in c around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
if -2.99999999999999992e-287 < y4 < 2.69999999999999995e-56Initial program 35.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites32.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.0
Applied rewrites26.0%
if 3.0000000000000001e98 < y4 Initial program 21.2%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites53.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6442.7
Applied rewrites42.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y1 -3.3e+270)
(* i (* k (- (* y y5) (* y1 z))))
(if (<= y1 -2.4e+53)
(* y1 (* y4 (- (* k y2) (* j y3))))
(if (<= y1 -34000000000.0)
(* y1 (* z (- (* a y3) (* i k))))
(if (<= y1 -1.35e-265)
(* c (* y0 (- (* x y2) (* y3 z))))
(if (<= y1 1.35e-115)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y1 1.22e+39)
(* y (* y3 (- (* c y4) (* a y5))))
(* a (* y3 (- (* y1 z) (* 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 (y1 <= -3.3e+270) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y1 <= -2.4e+53) {
tmp = y1 * (y4 * ((k * y2) - (j * y3)));
} else if (y1 <= -34000000000.0) {
tmp = y1 * (z * ((a * y3) - (i * k)));
} else if (y1 <= -1.35e-265) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y1 <= 1.35e-115) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y1 <= 1.22e+39) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else {
tmp = a * (y3 * ((y1 * z) - (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 (y1 <= (-3.3d+270)) then
tmp = i * (k * ((y * y5) - (y1 * z)))
else if (y1 <= (-2.4d+53)) then
tmp = y1 * (y4 * ((k * y2) - (j * y3)))
else if (y1 <= (-34000000000.0d0)) then
tmp = y1 * (z * ((a * y3) - (i * k)))
else if (y1 <= (-1.35d-265)) then
tmp = c * (y0 * ((x * y2) - (y3 * z)))
else if (y1 <= 1.35d-115) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y1 <= 1.22d+39) then
tmp = y * (y3 * ((c * y4) - (a * y5)))
else
tmp = a * (y3 * ((y1 * z) - (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 (y1 <= -3.3e+270) {
tmp = i * (k * ((y * y5) - (y1 * z)));
} else if (y1 <= -2.4e+53) {
tmp = y1 * (y4 * ((k * y2) - (j * y3)));
} else if (y1 <= -34000000000.0) {
tmp = y1 * (z * ((a * y3) - (i * k)));
} else if (y1 <= -1.35e-265) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else if (y1 <= 1.35e-115) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y1 <= 1.22e+39) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else {
tmp = a * (y3 * ((y1 * z) - (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 y1 <= -3.3e+270: tmp = i * (k * ((y * y5) - (y1 * z))) elif y1 <= -2.4e+53: tmp = y1 * (y4 * ((k * y2) - (j * y3))) elif y1 <= -34000000000.0: tmp = y1 * (z * ((a * y3) - (i * k))) elif y1 <= -1.35e-265: tmp = c * (y0 * ((x * y2) - (y3 * z))) elif y1 <= 1.35e-115: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y1 <= 1.22e+39: tmp = y * (y3 * ((c * y4) - (a * y5))) else: tmp = a * (y3 * ((y1 * z) - (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 (y1 <= -3.3e+270) tmp = Float64(i * Float64(k * Float64(Float64(y * y5) - Float64(y1 * z)))); elseif (y1 <= -2.4e+53) tmp = Float64(y1 * Float64(y4 * Float64(Float64(k * y2) - Float64(j * y3)))); elseif (y1 <= -34000000000.0) tmp = Float64(y1 * Float64(z * Float64(Float64(a * y3) - Float64(i * k)))); elseif (y1 <= -1.35e-265) tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); elseif (y1 <= 1.35e-115) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y1 <= 1.22e+39) tmp = Float64(y * Float64(y3 * Float64(Float64(c * y4) - Float64(a * y5)))); else tmp = Float64(a * Float64(y3 * Float64(Float64(y1 * z) - 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 (y1 <= -3.3e+270) tmp = i * (k * ((y * y5) - (y1 * z))); elseif (y1 <= -2.4e+53) tmp = y1 * (y4 * ((k * y2) - (j * y3))); elseif (y1 <= -34000000000.0) tmp = y1 * (z * ((a * y3) - (i * k))); elseif (y1 <= -1.35e-265) tmp = c * (y0 * ((x * y2) - (y3 * z))); elseif (y1 <= 1.35e-115) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y1 <= 1.22e+39) tmp = y * (y3 * ((c * y4) - (a * y5))); else tmp = a * (y3 * ((y1 * z) - (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[y1, -3.3e+270], N[(i * N[(k * N[(N[(y * y5), $MachinePrecision] - N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -2.4e+53], N[(y1 * N[(y4 * N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -34000000000.0], N[(y1 * N[(z * N[(N[(a * y3), $MachinePrecision] - N[(i * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, -1.35e-265], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.35e-115], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.22e+39], N[(y * N[(y3 * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(y3 * N[(N[(y1 * z), $MachinePrecision] - N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y1 \leq -3.3 \cdot 10^{+270}:\\
\;\;\;\;i \cdot \left(k \cdot \left(y \cdot y5 - y1 \cdot z\right)\right)\\
\mathbf{elif}\;y1 \leq -2.4 \cdot 10^{+53}:\\
\;\;\;\;y1 \cdot \left(y4 \cdot \left(k \cdot y2 - j \cdot y3\right)\right)\\
\mathbf{elif}\;y1 \leq -34000000000:\\
\;\;\;\;y1 \cdot \left(z \cdot \left(a \cdot y3 - i \cdot k\right)\right)\\
\mathbf{elif}\;y1 \leq -1.35 \cdot 10^{-265}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\mathbf{elif}\;y1 \leq 1.35 \cdot 10^{-115}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y1 \leq 1.22 \cdot 10^{+39}:\\
\;\;\;\;y \cdot \left(y3 \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z - y \cdot y5\right)\right)\\
\end{array}
\end{array}
if y1 < -3.29999999999999992e270Initial program 24.1%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6441.7
Applied rewrites41.7%
if -3.29999999999999992e270 < y1 < -2.4e53Initial program 25.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.1
Applied rewrites35.1%
Taylor expanded in y1 around inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.3
Applied rewrites36.3%
if -2.4e53 < y1 < -3.4e10Initial program 29.6%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.6%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6428.6
Applied rewrites28.6%
Taylor expanded in y1 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6423.2
Applied rewrites23.2%
if -3.4e10 < y1 < -1.3500000000000001e-265Initial program 34.7%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.9%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6429.9
Applied rewrites29.9%
if -1.3500000000000001e-265 < y1 < 1.35e-115Initial program 34.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.4%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.4
Applied rewrites27.4%
if 1.35e-115 < y1 < 1.22e39Initial program 33.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.0
Applied rewrites27.0%
if 1.22e39 < y1 Initial program 24.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.7
Applied rewrites33.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -1.12e-30)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 7.8e-190)
(* k (* z (- (* b y0) (* i y1))))
(if (<= j 4e-108)
(* a (* y3 (- (* y1 z) (* y y5))))
(if (<= j 1.35e+124)
(* i (* z (- (* c t) (* k y1))))
(if (<= j 1.48e+231)
(* y4 (* -1.0 (* y3 (* j y1))))
(* b (* x (* -1.0 (* j y0))))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -1.12e-30) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 7.8e-190) {
tmp = k * (z * ((b * y0) - (i * y1)));
} else if (j <= 4e-108) {
tmp = a * (y3 * ((y1 * z) - (y * y5)));
} else if (j <= 1.35e+124) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * y1)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
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 (j <= (-1.12d-30)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (j <= 7.8d-190) then
tmp = k * (z * ((b * y0) - (i * y1)))
else if (j <= 4d-108) then
tmp = a * (y3 * ((y1 * z) - (y * y5)))
else if (j <= 1.35d+124) then
tmp = i * (z * ((c * t) - (k * y1)))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (j * y1)))
else
tmp = b * (x * ((-1.0d0) * (j * y0)))
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 (j <= -1.12e-30) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 7.8e-190) {
tmp = k * (z * ((b * y0) - (i * y1)));
} else if (j <= 4e-108) {
tmp = a * (y3 * ((y1 * z) - (y * y5)));
} else if (j <= 1.35e+124) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * y1)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if j <= -1.12e-30: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif j <= 7.8e-190: tmp = k * (z * ((b * y0) - (i * y1))) elif j <= 4e-108: tmp = a * (y3 * ((y1 * z) - (y * y5))) elif j <= 1.35e+124: tmp = i * (z * ((c * t) - (k * y1))) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (y3 * (j * y1))) else: tmp = b * (x * (-1.0 * (j * y0))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -1.12e-30) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 7.8e-190) tmp = Float64(k * Float64(z * Float64(Float64(b * y0) - Float64(i * y1)))); elseif (j <= 4e-108) tmp = Float64(a * Float64(y3 * Float64(Float64(y1 * z) - Float64(y * y5)))); elseif (j <= 1.35e+124) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(j * y1)))); else tmp = Float64(b * Float64(x * Float64(-1.0 * Float64(j * y0)))); 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 (j <= -1.12e-30) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (j <= 7.8e-190) tmp = k * (z * ((b * y0) - (i * y1))); elseif (j <= 4e-108) tmp = a * (y3 * ((y1 * z) - (y * y5))); elseif (j <= 1.35e+124) tmp = i * (z * ((c * t) - (k * y1))); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (y3 * (j * y1))); else tmp = b * (x * (-1.0 * (j * y0))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -1.12e-30], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 7.8e-190], N[(k * N[(z * N[(N[(b * y0), $MachinePrecision] - N[(i * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 4e-108], N[(a * N[(y3 * N[(N[(y1 * z), $MachinePrecision] - N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.35e+124], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(j * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -1.12 \cdot 10^{-30}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 7.8 \cdot 10^{-190}:\\
\;\;\;\;k \cdot \left(z \cdot \left(b \cdot y0 - i \cdot y1\right)\right)\\
\mathbf{elif}\;j \leq 4 \cdot 10^{-108}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z - y \cdot y5\right)\right)\\
\mathbf{elif}\;j \leq 1.35 \cdot 10^{+124}:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\end{array}
\end{array}
if j < -1.12e-30Initial program 25.7%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites40.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.2
Applied rewrites31.2%
if -1.12e-30 < j < 7.7999999999999999e-190Initial program 34.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites39.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.8
Applied rewrites27.8%
Taylor expanded in k around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.1
Applied rewrites27.1%
if 7.7999999999999999e-190 < j < 4.00000000000000016e-108Initial program 35.3%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites33.8%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6425.9
Applied rewrites25.9%
if 4.00000000000000016e-108 < j < 1.34999999999999989e124Initial program 31.9%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.0
Applied rewrites28.0%
if 1.34999999999999989e124 < j < 1.47999999999999997e231Initial program 25.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6434.1
Applied rewrites34.1%
Taylor expanded in y around 0
lift-*.f6428.5
Applied rewrites28.5%
if 1.47999999999999997e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6440.0
Applied rewrites40.0%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6437.0
Applied rewrites37.0%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y3 -5.4e+186)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= y3 1.45e+48)
(* b (* x (- (* a y) (* j y0))))
(* c (* y0 (- (* x y2) (* y3 z)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y3 <= -5.4e+186) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 1.45e+48) {
tmp = b * (x * ((a * y) - (j * y0)));
} else {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: tmp
if (y3 <= (-5.4d+186)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (y3 <= 1.45d+48) then
tmp = b * (x * ((a * y) - (j * y0)))
else
tmp = c * (y0 * ((x * y2) - (y3 * z)))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (y3 <= -5.4e+186) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (y3 <= 1.45e+48) {
tmp = b * (x * ((a * y) - (j * y0)));
} else {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y3 <= -5.4e+186: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif y3 <= 1.45e+48: tmp = b * (x * ((a * y) - (j * y0))) else: tmp = c * (y0 * ((x * y2) - (y3 * z))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (y3 <= -5.4e+186) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (y3 <= 1.45e+48) tmp = Float64(b * Float64(x * Float64(Float64(a * y) - Float64(j * y0)))); else tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0; if (y3 <= -5.4e+186) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (y3 <= 1.45e+48) tmp = b * (x * ((a * y) - (j * y0))); else tmp = c * (y0 * ((x * y2) - (y3 * z))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[y3, -5.4e+186], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y3, 1.45e+48], N[(b * N[(x * N[(N[(a * y), $MachinePrecision] - N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y3 \leq -5.4 \cdot 10^{+186}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;y3 \leq 1.45 \cdot 10^{+48}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y - j \cdot y0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\end{array}
\end{array}
if y3 < -5.3999999999999998e186Initial program 20.6%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites59.9%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6441.7
Applied rewrites41.7%
if -5.3999999999999998e186 < y3 < 1.4499999999999999e48Initial program 32.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.9%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.7
Applied rewrites27.7%
if 1.4499999999999999e48 < y3 Initial program 24.7%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites34.2%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6433.1
Applied rewrites33.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -3e+100)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 6.4e-108)
(* y (* y3 (- (* c y4) (* a y5))))
(if (<= j 1.35e+124)
(* i (* z (- (* c t) (* k y1))))
(if (<= j 1.48e+231)
(* y4 (* -1.0 (* y3 (* j y1))))
(* b (* x (* -1.0 (* j y0)))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -3e+100) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 6.4e-108) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else if (j <= 1.35e+124) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * y1)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
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 (j <= (-3d+100)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (j <= 6.4d-108) then
tmp = y * (y3 * ((c * y4) - (a * y5)))
else if (j <= 1.35d+124) then
tmp = i * (z * ((c * t) - (k * y1)))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (j * y1)))
else
tmp = b * (x * ((-1.0d0) * (j * y0)))
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 (j <= -3e+100) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 6.4e-108) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else if (j <= 1.35e+124) {
tmp = i * (z * ((c * t) - (k * y1)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * y1)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if j <= -3e+100: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif j <= 6.4e-108: tmp = y * (y3 * ((c * y4) - (a * y5))) elif j <= 1.35e+124: tmp = i * (z * ((c * t) - (k * y1))) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (y3 * (j * y1))) else: tmp = b * (x * (-1.0 * (j * y0))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -3e+100) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 6.4e-108) tmp = Float64(y * Float64(y3 * Float64(Float64(c * y4) - Float64(a * y5)))); elseif (j <= 1.35e+124) tmp = Float64(i * Float64(z * Float64(Float64(c * t) - Float64(k * y1)))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(j * y1)))); else tmp = Float64(b * Float64(x * Float64(-1.0 * Float64(j * y0)))); 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 (j <= -3e+100) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (j <= 6.4e-108) tmp = y * (y3 * ((c * y4) - (a * y5))); elseif (j <= 1.35e+124) tmp = i * (z * ((c * t) - (k * y1))); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (y3 * (j * y1))); else tmp = b * (x * (-1.0 * (j * y0))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -3e+100], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 6.4e-108], N[(y * N[(y3 * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.35e+124], N[(i * N[(z * N[(N[(c * t), $MachinePrecision] - N[(k * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(j * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -3 \cdot 10^{+100}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 6.4 \cdot 10^{-108}:\\
\;\;\;\;y \cdot \left(y3 \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;j \leq 1.35 \cdot 10^{+124}:\\
\;\;\;\;i \cdot \left(z \cdot \left(c \cdot t - k \cdot y1\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\end{array}
\end{array}
if j < -2.99999999999999985e100Initial program 23.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites42.0%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6434.1
Applied rewrites34.1%
if -2.99999999999999985e100 < j < 6.3999999999999999e-108Initial program 33.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites34.9%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6426.8
Applied rewrites26.8%
if 6.3999999999999999e-108 < j < 1.34999999999999989e124Initial program 31.9%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6428.0
Applied rewrites28.0%
if 1.34999999999999989e124 < j < 1.47999999999999997e231Initial program 25.1%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6434.1
Applied rewrites34.1%
Taylor expanded in y around 0
lift-*.f6428.5
Applied rewrites28.5%
if 1.47999999999999997e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6440.0
Applied rewrites40.0%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6437.0
Applied rewrites37.0%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -3e+100)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 1.02e+76)
(* y (* y3 (- (* c y4) (* a y5))))
(if (<= j 1.48e+231)
(* y4 (* -1.0 (* y3 (* j y1))))
(* b (* x (* -1.0 (* j y0))))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -3e+100) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 1.02e+76) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * y1)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
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 (j <= (-3d+100)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (j <= 1.02d+76) then
tmp = y * (y3 * ((c * y4) - (a * y5)))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (j * y1)))
else
tmp = b * (x * ((-1.0d0) * (j * y0)))
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 (j <= -3e+100) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 1.02e+76) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * y1)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if j <= -3e+100: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif j <= 1.02e+76: tmp = y * (y3 * ((c * y4) - (a * y5))) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (y3 * (j * y1))) else: tmp = b * (x * (-1.0 * (j * y0))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -3e+100) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 1.02e+76) tmp = Float64(y * Float64(y3 * Float64(Float64(c * y4) - Float64(a * y5)))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(j * y1)))); else tmp = Float64(b * Float64(x * Float64(-1.0 * Float64(j * y0)))); 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 (j <= -3e+100) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (j <= 1.02e+76) tmp = y * (y3 * ((c * y4) - (a * y5))); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (y3 * (j * y1))); else tmp = b * (x * (-1.0 * (j * y0))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -3e+100], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.02e+76], N[(y * N[(y3 * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(j * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -3 \cdot 10^{+100}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 1.02 \cdot 10^{+76}:\\
\;\;\;\;y \cdot \left(y3 \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\end{array}
\end{array}
if j < -2.99999999999999985e100Initial program 23.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites42.0%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6434.1
Applied rewrites34.1%
if -2.99999999999999985e100 < j < 1.02000000000000007e76Initial program 33.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites34.5%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6426.3
Applied rewrites26.3%
if 1.02000000000000007e76 < j < 1.47999999999999997e231Initial program 27.0%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6432.1
Applied rewrites32.1%
Taylor expanded in y around 0
lift-*.f6426.5
Applied rewrites26.5%
if 1.47999999999999997e231 < j Initial program 21.2%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6440.0
Applied rewrites40.0%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6437.0
Applied rewrites37.0%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= j -1.4e+64)
(* y3 (* y5 (- (* j y0) (* a y))))
(if (<= j 3.7e+231)
(* c (* y0 (- (* x y2) (* y3 z))))
(* b (* x (* -1.0 (* j y0)))))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double tmp;
if (j <= -1.4e+64) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 3.7e+231) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
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 (j <= (-1.4d+64)) then
tmp = y3 * (y5 * ((j * y0) - (a * y)))
else if (j <= 3.7d+231) then
tmp = c * (y0 * ((x * y2) - (y3 * z)))
else
tmp = b * (x * ((-1.0d0) * (j * y0)))
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 (j <= -1.4e+64) {
tmp = y3 * (y5 * ((j * y0) - (a * y)));
} else if (j <= 3.7e+231) {
tmp = c * (y0 * ((x * y2) - (y3 * z)));
} else {
tmp = b * (x * (-1.0 * (j * y0)));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if j <= -1.4e+64: tmp = y3 * (y5 * ((j * y0) - (a * y))) elif j <= 3.7e+231: tmp = c * (y0 * ((x * y2) - (y3 * z))) else: tmp = b * (x * (-1.0 * (j * y0))) return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = 0.0 if (j <= -1.4e+64) tmp = Float64(y3 * Float64(y5 * Float64(Float64(j * y0) - Float64(a * y)))); elseif (j <= 3.7e+231) tmp = Float64(c * Float64(y0 * Float64(Float64(x * y2) - Float64(y3 * z)))); else tmp = Float64(b * Float64(x * Float64(-1.0 * Float64(j * y0)))); 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 (j <= -1.4e+64) tmp = y3 * (y5 * ((j * y0) - (a * y))); elseif (j <= 3.7e+231) tmp = c * (y0 * ((x * y2) - (y3 * z))); else tmp = b * (x * (-1.0 * (j * y0))); end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := If[LessEqual[j, -1.4e+64], N[(y3 * N[(y5 * N[(N[(j * y0), $MachinePrecision] - N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 3.7e+231], N[(c * N[(y0 * N[(N[(x * y2), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;j \leq -1.4 \cdot 10^{+64}:\\
\;\;\;\;y3 \cdot \left(y5 \cdot \left(j \cdot y0 - a \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 3.7 \cdot 10^{+231}:\\
\;\;\;\;c \cdot \left(y0 \cdot \left(x \cdot y2 - y3 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\end{array}
\end{array}
if j < -1.40000000000000012e64Initial program 24.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites42.1%
Taylor expanded in y5 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.6
Applied rewrites33.6%
if -1.40000000000000012e64 < j < 3.7e231Initial program 32.4%
Taylor expanded in y0 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in c around inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6427.2
Applied rewrites27.2%
if 3.7e231 < j Initial program 21.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.9
Applied rewrites39.9%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6436.9
Applied rewrites36.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* b (* x (* -1.0 (* j y0))))))
(if (<= j -6.8e+217)
t_1
(if (<= j 1.02e+76)
(* y (* y3 (- (* c y4) (* a y5))))
(if (<= j 1.48e+231) (* y4 (* -1.0 (* y3 (* j 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -6.8e+217) {
tmp = t_1;
} else if (j <= 1.02e+76) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * 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 = b * (x * ((-1.0d0) * (j * y0)))
if (j <= (-6.8d+217)) then
tmp = t_1
else if (j <= 1.02d+76) then
tmp = y * (y3 * ((c * y4) - (a * y5)))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (j * 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -6.8e+217) {
tmp = t_1;
} else if (j <= 1.02e+76) {
tmp = y * (y3 * ((c * y4) - (a * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * 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 = b * (x * (-1.0 * (j * y0))) tmp = 0 if j <= -6.8e+217: tmp = t_1 elif j <= 1.02e+76: tmp = y * (y3 * ((c * y4) - (a * y5))) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (y3 * (j * 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(b * Float64(x * Float64(-1.0 * Float64(j * y0)))) tmp = 0.0 if (j <= -6.8e+217) tmp = t_1; elseif (j <= 1.02e+76) tmp = Float64(y * Float64(y3 * Float64(Float64(c * y4) - Float64(a * y5)))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(j * 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 = b * (x * (-1.0 * (j * y0))); tmp = 0.0; if (j <= -6.8e+217) tmp = t_1; elseif (j <= 1.02e+76) tmp = y * (y3 * ((c * y4) - (a * y5))); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (y3 * (j * 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[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -6.8e+217], t$95$1, If[LessEqual[j, 1.02e+76], N[(y * N[(y3 * N[(N[(c * y4), $MachinePrecision] - N[(a * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(j * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{if}\;j \leq -6.8 \cdot 10^{+217}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq 1.02 \cdot 10^{+76}:\\
\;\;\;\;y \cdot \left(y3 \cdot \left(c \cdot y4 - a \cdot y5\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -6.7999999999999998e217 or 1.47999999999999997e231 < j Initial program 20.8%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.6
Applied rewrites38.6%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6436.6
Applied rewrites36.6%
if -6.7999999999999998e217 < j < 1.02000000000000007e76Initial program 32.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y around -inf
lower-*.f64N/A
lower-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f6426.2
Applied rewrites26.2%
if 1.02000000000000007e76 < j < 1.47999999999999997e231Initial program 27.0%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6432.1
Applied rewrites32.1%
Taylor expanded in y around 0
lift-*.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 (* b (* x (* -1.0 (* j y0))))))
(if (<= j -6.5e+216)
t_1
(if (<= j 3.9e+66)
(* a (* y3 (- (* y1 z) (* y y5))))
(if (<= j 1.48e+231) (* y4 (* -1.0 (* y3 (* j 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -6.5e+216) {
tmp = t_1;
} else if (j <= 3.9e+66) {
tmp = a * (y3 * ((y1 * z) - (y * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * 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 = b * (x * ((-1.0d0) * (j * y0)))
if (j <= (-6.5d+216)) then
tmp = t_1
else if (j <= 3.9d+66) then
tmp = a * (y3 * ((y1 * z) - (y * y5)))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (j * 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -6.5e+216) {
tmp = t_1;
} else if (j <= 3.9e+66) {
tmp = a * (y3 * ((y1 * z) - (y * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * 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 = b * (x * (-1.0 * (j * y0))) tmp = 0 if j <= -6.5e+216: tmp = t_1 elif j <= 3.9e+66: tmp = a * (y3 * ((y1 * z) - (y * y5))) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (y3 * (j * 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(b * Float64(x * Float64(-1.0 * Float64(j * y0)))) tmp = 0.0 if (j <= -6.5e+216) tmp = t_1; elseif (j <= 3.9e+66) tmp = Float64(a * Float64(y3 * Float64(Float64(y1 * z) - Float64(y * y5)))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(j * 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 = b * (x * (-1.0 * (j * y0))); tmp = 0.0; if (j <= -6.5e+216) tmp = t_1; elseif (j <= 3.9e+66) tmp = a * (y3 * ((y1 * z) - (y * y5))); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (y3 * (j * 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[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -6.5e+216], t$95$1, If[LessEqual[j, 3.9e+66], N[(a * N[(y3 * N[(N[(y1 * z), $MachinePrecision] - N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(j * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{if}\;j \leq -6.5 \cdot 10^{+216}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq 3.9 \cdot 10^{+66}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z - y \cdot y5\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -6.50000000000000029e216 or 1.47999999999999997e231 < j Initial program 20.9%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.5%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.7
Applied rewrites38.7%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6436.7
Applied rewrites36.7%
if -6.50000000000000029e216 < j < 3.9000000000000004e66Initial program 32.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
if 3.9000000000000004e66 < j < 1.47999999999999997e231Initial program 27.2%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.6
Applied rewrites31.6%
Taylor expanded in y around 0
lift-*.f6426.1
Applied rewrites26.1%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* b (* x (* -1.0 (* j y0))))))
(if (<= j -8.4e+102)
t_1
(if (<= j -4.1e-189)
(* y4 (* c (* y y3)))
(if (<= j 8.4e-190)
(* k (* y2 (* -1.0 (* y0 y5))))
(if (<= j 2.55e-89)
(* a (* y3 (* y1 z)))
(if (<= j 1.4e+79)
(* b (* a (* x y)))
(if (<= j 1.48e+231) (* y4 (* -1.0 (* j (* y1 y3)))) 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= -4.1e-189) {
tmp = y4 * (c * (y * y3));
} else if (j <= 8.4e-190) {
tmp = k * (y2 * (-1.0 * (y0 * y5)));
} else if (j <= 2.55e-89) {
tmp = a * (y3 * (y1 * z));
} else if (j <= 1.4e+79) {
tmp = b * (a * (x * y));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (j * (y1 * y3)));
} 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 = b * (x * ((-1.0d0) * (j * y0)))
if (j <= (-8.4d+102)) then
tmp = t_1
else if (j <= (-4.1d-189)) then
tmp = y4 * (c * (y * y3))
else if (j <= 8.4d-190) then
tmp = k * (y2 * ((-1.0d0) * (y0 * y5)))
else if (j <= 2.55d-89) then
tmp = a * (y3 * (y1 * z))
else if (j <= 1.4d+79) then
tmp = b * (a * (x * y))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (j * (y1 * y3)))
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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= -4.1e-189) {
tmp = y4 * (c * (y * y3));
} else if (j <= 8.4e-190) {
tmp = k * (y2 * (-1.0 * (y0 * y5)));
} else if (j <= 2.55e-89) {
tmp = a * (y3 * (y1 * z));
} else if (j <= 1.4e+79) {
tmp = b * (a * (x * y));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (j * (y1 * y3)));
} 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 = b * (x * (-1.0 * (j * y0))) tmp = 0 if j <= -8.4e+102: tmp = t_1 elif j <= -4.1e-189: tmp = y4 * (c * (y * y3)) elif j <= 8.4e-190: tmp = k * (y2 * (-1.0 * (y0 * y5))) elif j <= 2.55e-89: tmp = a * (y3 * (y1 * z)) elif j <= 1.4e+79: tmp = b * (a * (x * y)) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (j * (y1 * y3))) 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(b * Float64(x * Float64(-1.0 * Float64(j * y0)))) tmp = 0.0 if (j <= -8.4e+102) tmp = t_1; elseif (j <= -4.1e-189) tmp = Float64(y4 * Float64(c * Float64(y * y3))); elseif (j <= 8.4e-190) tmp = Float64(k * Float64(y2 * Float64(-1.0 * Float64(y0 * y5)))); elseif (j <= 2.55e-89) tmp = Float64(a * Float64(y3 * Float64(y1 * z))); elseif (j <= 1.4e+79) tmp = Float64(b * Float64(a * Float64(x * y))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(j * Float64(y1 * y3)))); 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 = b * (x * (-1.0 * (j * y0))); tmp = 0.0; if (j <= -8.4e+102) tmp = t_1; elseif (j <= -4.1e-189) tmp = y4 * (c * (y * y3)); elseif (j <= 8.4e-190) tmp = k * (y2 * (-1.0 * (y0 * y5))); elseif (j <= 2.55e-89) tmp = a * (y3 * (y1 * z)); elseif (j <= 1.4e+79) tmp = b * (a * (x * y)); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (j * (y1 * y3))); 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[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -8.4e+102], t$95$1, If[LessEqual[j, -4.1e-189], N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 8.4e-190], N[(k * N[(y2 * N[(-1.0 * N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.55e-89], N[(a * N[(y3 * N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.4e+79], N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(j * N[(y1 * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{if}\;j \leq -8.4 \cdot 10^{+102}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq -4.1 \cdot 10^{-189}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right)\\
\mathbf{elif}\;j \leq 8.4 \cdot 10^{-190}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(-1 \cdot \left(y0 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;j \leq 2.55 \cdot 10^{-89}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right)\\
\mathbf{elif}\;j \leq 1.4 \cdot 10^{+79}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(j \cdot \left(y1 \cdot y3\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -8.40000000000000006e102 or 1.47999999999999997e231 < j Initial program 22.8%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.0%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.2
Applied rewrites36.2%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6432.8
Applied rewrites32.8%
if -8.40000000000000006e102 < j < -4.1000000000000003e-189Initial program 31.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6423.8
Applied rewrites23.8%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6417.4
Applied rewrites17.4%
if -4.1000000000000003e-189 < j < 8.39999999999999966e-190Initial program 35.6%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in y2 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6426.7
Applied rewrites26.7%
Taylor expanded in y0 around inf
lower-*.f64N/A
lift-*.f6417.1
Applied rewrites17.1%
if 8.39999999999999966e-190 < j < 2.55000000000000002e-89Initial program 35.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
Taylor expanded in y around 0
lift-*.f6418.3
Applied rewrites18.3%
if 2.55000000000000002e-89 < j < 1.4000000000000001e79Initial program 31.8%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.0%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6425.3
Applied rewrites25.3%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6418.4
Applied rewrites18.4%
if 1.4000000000000001e79 < j < 1.47999999999999997e231Initial program 26.6%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6432.0
Applied rewrites32.0%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6423.5
Applied rewrites23.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* b (* x (* -1.0 (* j y0))))))
(if (<= j -8.4e+102)
t_1
(if (<= j -4.1e-189)
(* y4 (* c (* y y3)))
(if (<= j 8.4e-190)
(* k (* y2 (* -1.0 (* y0 y5))))
(if (<= j 2.55e-89)
(* a (* y3 (* y1 z)))
(if (<= j 4.2e+101) (* 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= -4.1e-189) {
tmp = y4 * (c * (y * y3));
} else if (j <= 8.4e-190) {
tmp = k * (y2 * (-1.0 * (y0 * y5)));
} else if (j <= 2.55e-89) {
tmp = a * (y3 * (y1 * z));
} else if (j <= 4.2e+101) {
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 = b * (x * ((-1.0d0) * (j * y0)))
if (j <= (-8.4d+102)) then
tmp = t_1
else if (j <= (-4.1d-189)) then
tmp = y4 * (c * (y * y3))
else if (j <= 8.4d-190) then
tmp = k * (y2 * ((-1.0d0) * (y0 * y5)))
else if (j <= 2.55d-89) then
tmp = a * (y3 * (y1 * z))
else if (j <= 4.2d+101) 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= -4.1e-189) {
tmp = y4 * (c * (y * y3));
} else if (j <= 8.4e-190) {
tmp = k * (y2 * (-1.0 * (y0 * y5)));
} else if (j <= 2.55e-89) {
tmp = a * (y3 * (y1 * z));
} else if (j <= 4.2e+101) {
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 = b * (x * (-1.0 * (j * y0))) tmp = 0 if j <= -8.4e+102: tmp = t_1 elif j <= -4.1e-189: tmp = y4 * (c * (y * y3)) elif j <= 8.4e-190: tmp = k * (y2 * (-1.0 * (y0 * y5))) elif j <= 2.55e-89: tmp = a * (y3 * (y1 * z)) elif j <= 4.2e+101: 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(b * Float64(x * Float64(-1.0 * Float64(j * y0)))) tmp = 0.0 if (j <= -8.4e+102) tmp = t_1; elseif (j <= -4.1e-189) tmp = Float64(y4 * Float64(c * Float64(y * y3))); elseif (j <= 8.4e-190) tmp = Float64(k * Float64(y2 * Float64(-1.0 * Float64(y0 * y5)))); elseif (j <= 2.55e-89) tmp = Float64(a * Float64(y3 * Float64(y1 * z))); elseif (j <= 4.2e+101) 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 = b * (x * (-1.0 * (j * y0))); tmp = 0.0; if (j <= -8.4e+102) tmp = t_1; elseif (j <= -4.1e-189) tmp = y4 * (c * (y * y3)); elseif (j <= 8.4e-190) tmp = k * (y2 * (-1.0 * (y0 * y5))); elseif (j <= 2.55e-89) tmp = a * (y3 * (y1 * z)); elseif (j <= 4.2e+101) 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[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -8.4e+102], t$95$1, If[LessEqual[j, -4.1e-189], N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 8.4e-190], N[(k * N[(y2 * N[(-1.0 * N[(y0 * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.55e-89], N[(a * N[(y3 * N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 4.2e+101], N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{if}\;j \leq -8.4 \cdot 10^{+102}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq -4.1 \cdot 10^{-189}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right)\\
\mathbf{elif}\;j \leq 8.4 \cdot 10^{-190}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(-1 \cdot \left(y0 \cdot y5\right)\right)\right)\\
\mathbf{elif}\;j \leq 2.55 \cdot 10^{-89}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right)\\
\mathbf{elif}\;j \leq 4.2 \cdot 10^{+101}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -8.40000000000000006e102 or 4.2e101 < j Initial program 23.5%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.6
Applied rewrites35.6%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6431.1
Applied rewrites31.1%
if -8.40000000000000006e102 < j < -4.1000000000000003e-189Initial program 31.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.5%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6423.8
Applied rewrites23.8%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6417.4
Applied rewrites17.4%
if -4.1000000000000003e-189 < j < 8.39999999999999966e-190Initial program 35.6%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.8%
Taylor expanded in y2 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6426.7
Applied rewrites26.7%
Taylor expanded in y0 around inf
lower-*.f64N/A
lift-*.f6417.1
Applied rewrites17.1%
if 8.39999999999999966e-190 < j < 2.55000000000000002e-89Initial program 35.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.5
Applied rewrites26.5%
Taylor expanded in y around 0
lift-*.f6418.3
Applied rewrites18.3%
if 2.55000000000000002e-89 < j < 4.2e101Initial program 32.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.9%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6425.3
Applied rewrites25.3%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6417.9
Applied rewrites17.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* b (* x (* -1.0 (* j y0))))))
(if (<= j -8.4e+102)
t_1
(if (<= j -2.2e-251)
(* y4 (* c (* y y3)))
(if (<= j 3.5e+53)
(* a (* y3 (* -1.0 (* y y5))))
(if (<= j 1.48e+231) (* y4 (* -1.0 (* y3 (* j 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= -2.2e-251) {
tmp = y4 * (c * (y * y3));
} else if (j <= 3.5e+53) {
tmp = a * (y3 * (-1.0 * (y * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * 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 = b * (x * ((-1.0d0) * (j * y0)))
if (j <= (-8.4d+102)) then
tmp = t_1
else if (j <= (-2.2d-251)) then
tmp = y4 * (c * (y * y3))
else if (j <= 3.5d+53) then
tmp = a * (y3 * ((-1.0d0) * (y * y5)))
else if (j <= 1.48d+231) then
tmp = y4 * ((-1.0d0) * (y3 * (j * 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= -2.2e-251) {
tmp = y4 * (c * (y * y3));
} else if (j <= 3.5e+53) {
tmp = a * (y3 * (-1.0 * (y * y5)));
} else if (j <= 1.48e+231) {
tmp = y4 * (-1.0 * (y3 * (j * 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 = b * (x * (-1.0 * (j * y0))) tmp = 0 if j <= -8.4e+102: tmp = t_1 elif j <= -2.2e-251: tmp = y4 * (c * (y * y3)) elif j <= 3.5e+53: tmp = a * (y3 * (-1.0 * (y * y5))) elif j <= 1.48e+231: tmp = y4 * (-1.0 * (y3 * (j * 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(b * Float64(x * Float64(-1.0 * Float64(j * y0)))) tmp = 0.0 if (j <= -8.4e+102) tmp = t_1; elseif (j <= -2.2e-251) tmp = Float64(y4 * Float64(c * Float64(y * y3))); elseif (j <= 3.5e+53) tmp = Float64(a * Float64(y3 * Float64(-1.0 * Float64(y * y5)))); elseif (j <= 1.48e+231) tmp = Float64(y4 * Float64(-1.0 * Float64(y3 * Float64(j * 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 = b * (x * (-1.0 * (j * y0))); tmp = 0.0; if (j <= -8.4e+102) tmp = t_1; elseif (j <= -2.2e-251) tmp = y4 * (c * (y * y3)); elseif (j <= 3.5e+53) tmp = a * (y3 * (-1.0 * (y * y5))); elseif (j <= 1.48e+231) tmp = y4 * (-1.0 * (y3 * (j * 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[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -8.4e+102], t$95$1, If[LessEqual[j, -2.2e-251], N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 3.5e+53], N[(a * N[(y3 * N[(-1.0 * N[(y * y5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 1.48e+231], N[(y4 * N[(-1.0 * N[(y3 * N[(j * y1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{if}\;j \leq -8.4 \cdot 10^{+102}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq -2.2 \cdot 10^{-251}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right)\\
\mathbf{elif}\;j \leq 3.5 \cdot 10^{+53}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(-1 \cdot \left(y \cdot y5\right)\right)\right)\\
\mathbf{elif}\;j \leq 1.48 \cdot 10^{+231}:\\
\;\;\;\;y4 \cdot \left(-1 \cdot \left(y3 \cdot \left(j \cdot y1\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -8.40000000000000006e102 or 1.47999999999999997e231 < j Initial program 22.8%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.0%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6436.2
Applied rewrites36.2%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6432.8
Applied rewrites32.8%
if -8.40000000000000006e102 < j < -2.2e-251Initial program 32.6%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6422.7
Applied rewrites22.7%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6417.2
Applied rewrites17.2%
if -2.2e-251 < j < 3.50000000000000019e53Initial program 34.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites34.2%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.0
Applied rewrites26.0%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6415.7
Applied rewrites15.7%
if 3.50000000000000019e53 < j < 1.47999999999999997e231Initial program 27.4%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.4%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.4
Applied rewrites31.4%
Taylor expanded in y around 0
lift-*.f6425.5
Applied rewrites25.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (* b (* x (* -1.0 (* j y0))))))
(if (<= j -8.4e+102)
t_1
(if (<= j 2.5e-187)
(* y4 (* c (* y y3)))
(if (<= j 2.55e-89)
(* a (* y3 (* y1 z)))
(if (<= j 4.2e+101) (* 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= 2.5e-187) {
tmp = y4 * (c * (y * y3));
} else if (j <= 2.55e-89) {
tmp = a * (y3 * (y1 * z));
} else if (j <= 4.2e+101) {
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 = b * (x * ((-1.0d0) * (j * y0)))
if (j <= (-8.4d+102)) then
tmp = t_1
else if (j <= 2.5d-187) then
tmp = y4 * (c * (y * y3))
else if (j <= 2.55d-89) then
tmp = a * (y3 * (y1 * z))
else if (j <= 4.2d+101) 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 = b * (x * (-1.0 * (j * y0)));
double tmp;
if (j <= -8.4e+102) {
tmp = t_1;
} else if (j <= 2.5e-187) {
tmp = y4 * (c * (y * y3));
} else if (j <= 2.55e-89) {
tmp = a * (y3 * (y1 * z));
} else if (j <= 4.2e+101) {
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 = b * (x * (-1.0 * (j * y0))) tmp = 0 if j <= -8.4e+102: tmp = t_1 elif j <= 2.5e-187: tmp = y4 * (c * (y * y3)) elif j <= 2.55e-89: tmp = a * (y3 * (y1 * z)) elif j <= 4.2e+101: 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(b * Float64(x * Float64(-1.0 * Float64(j * y0)))) tmp = 0.0 if (j <= -8.4e+102) tmp = t_1; elseif (j <= 2.5e-187) tmp = Float64(y4 * Float64(c * Float64(y * y3))); elseif (j <= 2.55e-89) tmp = Float64(a * Float64(y3 * Float64(y1 * z))); elseif (j <= 4.2e+101) 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 = b * (x * (-1.0 * (j * y0))); tmp = 0.0; if (j <= -8.4e+102) tmp = t_1; elseif (j <= 2.5e-187) tmp = y4 * (c * (y * y3)); elseif (j <= 2.55e-89) tmp = a * (y3 * (y1 * z)); elseif (j <= 4.2e+101) 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[(b * N[(x * N[(-1.0 * N[(j * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[j, -8.4e+102], t$95$1, If[LessEqual[j, 2.5e-187], N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 2.55e-89], N[(a * N[(y3 * N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[j, 4.2e+101], N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(x \cdot \left(-1 \cdot \left(j \cdot y0\right)\right)\right)\\
\mathbf{if}\;j \leq -8.4 \cdot 10^{+102}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;j \leq 2.5 \cdot 10^{-187}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right)\\
\mathbf{elif}\;j \leq 2.55 \cdot 10^{-89}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right)\\
\mathbf{elif}\;j \leq 4.2 \cdot 10^{+101}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if j < -8.40000000000000006e102 or 4.2e101 < j Initial program 23.5%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.6
Applied rewrites35.6%
Taylor expanded in y around 0
lower-*.f64N/A
lift-*.f6431.1
Applied rewrites31.1%
if -8.40000000000000006e102 < j < 2.4999999999999998e-187Initial program 33.5%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6421.8
Applied rewrites21.8%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if 2.4999999999999998e-187 < j < 2.55000000000000002e-89Initial program 35.6%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6427.0
Applied rewrites27.0%
Taylor expanded in y around 0
lift-*.f6418.6
Applied rewrites18.6%
if 2.55000000000000002e-89 < j < 4.2e101Initial program 32.3%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.9%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6425.3
Applied rewrites25.3%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6417.9
Applied rewrites17.9%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(if (<= y -3.25e+67)
(* b (* x (* a y)))
(if (<= y 26500000000000.0)
(* b (* -1.0 (* j (* x y0))))
(* y4 (* c (* y 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 (y <= -3.25e+67) {
tmp = b * (x * (a * y));
} else if (y <= 26500000000000.0) {
tmp = b * (-1.0 * (j * (x * y0)));
} else {
tmp = y4 * (c * (y * 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 (y <= (-3.25d+67)) then
tmp = b * (x * (a * y))
else if (y <= 26500000000000.0d0) then
tmp = b * ((-1.0d0) * (j * (x * y0)))
else
tmp = y4 * (c * (y * 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 (y <= -3.25e+67) {
tmp = b * (x * (a * y));
} else if (y <= 26500000000000.0) {
tmp = b * (-1.0 * (j * (x * y0)));
} else {
tmp = y4 * (c * (y * y3));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y <= -3.25e+67: tmp = b * (x * (a * y)) elif y <= 26500000000000.0: tmp = b * (-1.0 * (j * (x * y0))) else: tmp = y4 * (c * (y * 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 (y <= -3.25e+67) tmp = Float64(b * Float64(x * Float64(a * y))); elseif (y <= 26500000000000.0) tmp = Float64(b * Float64(-1.0 * Float64(j * Float64(x * y0)))); else tmp = Float64(y4 * Float64(c * Float64(y * 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 (y <= -3.25e+67) tmp = b * (x * (a * y)); elseif (y <= 26500000000000.0) tmp = b * (-1.0 * (j * (x * y0))); else tmp = y4 * (c * (y * 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[y, -3.25e+67], N[(b * N[(x * N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 26500000000000.0], N[(b * N[(-1.0 * N[(j * N[(x * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -3.25 \cdot 10^{+67}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y\right)\right)\\
\mathbf{elif}\;y \leq 26500000000000:\\
\;\;\;\;b \cdot \left(-1 \cdot \left(j \cdot \left(x \cdot y0\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right)\\
\end{array}
\end{array}
if y < -3.2499999999999998e67Initial program 23.6%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6435.4
Applied rewrites35.4%
Taylor expanded in y around inf
lift-*.f6430.3
Applied rewrites30.3%
if -3.2499999999999998e67 < y < 2.65e13Initial program 34.8%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6421.1
Applied rewrites21.1%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6417.7
Applied rewrites17.7%
if 2.65e13 < y Initial program 23.9%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites37.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6432.4
Applied rewrites32.4%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6426.6
Applied rewrites26.6%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y1 -5e+74) (* k (* y2 (* y1 y4))) (if (<= y1 1.22e+39) (* y4 (* c (* y y3))) (* a (* z (* y1 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 (y1 <= -5e+74) {
tmp = k * (y2 * (y1 * y4));
} else if (y1 <= 1.22e+39) {
tmp = y4 * (c * (y * y3));
} else {
tmp = a * (z * (y1 * 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 (y1 <= (-5d+74)) then
tmp = k * (y2 * (y1 * y4))
else if (y1 <= 1.22d+39) then
tmp = y4 * (c * (y * y3))
else
tmp = a * (z * (y1 * 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 (y1 <= -5e+74) {
tmp = k * (y2 * (y1 * y4));
} else if (y1 <= 1.22e+39) {
tmp = y4 * (c * (y * y3));
} else {
tmp = a * (z * (y1 * y3));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y1 <= -5e+74: tmp = k * (y2 * (y1 * y4)) elif y1 <= 1.22e+39: tmp = y4 * (c * (y * y3)) else: tmp = a * (z * (y1 * 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 (y1 <= -5e+74) tmp = Float64(k * Float64(y2 * Float64(y1 * y4))); elseif (y1 <= 1.22e+39) tmp = Float64(y4 * Float64(c * Float64(y * y3))); else tmp = Float64(a * Float64(z * Float64(y1 * 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 (y1 <= -5e+74) tmp = k * (y2 * (y1 * y4)); elseif (y1 <= 1.22e+39) tmp = y4 * (c * (y * y3)); else tmp = a * (z * (y1 * 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[y1, -5e+74], N[(k * N[(y2 * N[(y1 * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.22e+39], N[(y4 * N[(c * N[(y * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(z * N[(y1 * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y1 \leq -5 \cdot 10^{+74}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4\right)\right)\\
\mathbf{elif}\;y1 \leq 1.22 \cdot 10^{+39}:\\
\;\;\;\;y4 \cdot \left(c \cdot \left(y \cdot y3\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(z \cdot \left(y1 \cdot y3\right)\right)\\
\end{array}
\end{array}
if y1 < -4.99999999999999963e74Initial program 25.2%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y2 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6433.9
Applied rewrites33.9%
Taylor expanded in y0 around 0
lift-*.f6429.7
Applied rewrites29.7%
if -4.99999999999999963e74 < y1 < 1.22e39Initial program 33.7%
Taylor expanded in y4 around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.2%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6421.2
Applied rewrites21.2%
Taylor expanded in y around inf
lower-*.f64N/A
lower-*.f6417.6
Applied rewrites17.6%
if 1.22e39 < y1 Initial program 24.1%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.0%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6435.2
Applied rewrites35.2%
Taylor expanded in t around 0
lift-*.f6429.4
Applied rewrites29.4%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y1 -3e+67) (* k (* y2 (* y1 y4))) (if (<= y1 1.15e-52) (* b (* a (* x y))) (* a (* z (* y1 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 (y1 <= -3e+67) {
tmp = k * (y2 * (y1 * y4));
} else if (y1 <= 1.15e-52) {
tmp = b * (a * (x * y));
} else {
tmp = a * (z * (y1 * 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 (y1 <= (-3d+67)) then
tmp = k * (y2 * (y1 * y4))
else if (y1 <= 1.15d-52) then
tmp = b * (a * (x * y))
else
tmp = a * (z * (y1 * 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 (y1 <= -3e+67) {
tmp = k * (y2 * (y1 * y4));
} else if (y1 <= 1.15e-52) {
tmp = b * (a * (x * y));
} else {
tmp = a * (z * (y1 * y3));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y1 <= -3e+67: tmp = k * (y2 * (y1 * y4)) elif y1 <= 1.15e-52: tmp = b * (a * (x * y)) else: tmp = a * (z * (y1 * 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 (y1 <= -3e+67) tmp = Float64(k * Float64(y2 * Float64(y1 * y4))); elseif (y1 <= 1.15e-52) tmp = Float64(b * Float64(a * Float64(x * y))); else tmp = Float64(a * Float64(z * Float64(y1 * 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 (y1 <= -3e+67) tmp = k * (y2 * (y1 * y4)); elseif (y1 <= 1.15e-52) tmp = b * (a * (x * y)); else tmp = a * (z * (y1 * 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[y1, -3e+67], N[(k * N[(y2 * N[(y1 * y4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y1, 1.15e-52], N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a * N[(z * N[(y1 * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y1 \leq -3 \cdot 10^{+67}:\\
\;\;\;\;k \cdot \left(y2 \cdot \left(y1 \cdot y4\right)\right)\\
\mathbf{elif}\;y1 \leq 1.15 \cdot 10^{-52}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(z \cdot \left(y1 \cdot y3\right)\right)\\
\end{array}
\end{array}
if y1 < -3.0000000000000001e67Initial program 25.5%
Taylor expanded in k around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.6%
Taylor expanded in y2 around inf
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f6433.7
Applied rewrites33.7%
Taylor expanded in y0 around 0
lift-*.f6429.4
Applied rewrites29.4%
if -3.0000000000000001e67 < y1 < 1.14999999999999997e-52Initial program 34.2%
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-*.f6428.7
Applied rewrites28.7%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6418.0
Applied rewrites18.0%
if 1.14999999999999997e-52 < y1 Initial program 25.8%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites38.1%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6432.2
Applied rewrites32.2%
Taylor expanded in t around 0
lift-*.f6425.5
Applied rewrites25.5%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (if (<= y -6.4e+159) (* b (* x (* a y))) (if (<= y 2e-25) (* a (* y3 (* y1 z))) (* b (* a (* x y))))))
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 <= -6.4e+159) {
tmp = b * (x * (a * y));
} else if (y <= 2e-25) {
tmp = a * (y3 * (y1 * z));
} else {
tmp = b * (a * (x * y));
}
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 <= (-6.4d+159)) then
tmp = b * (x * (a * y))
else if (y <= 2d-25) then
tmp = a * (y3 * (y1 * z))
else
tmp = b * (a * (x * y))
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 <= -6.4e+159) {
tmp = b * (x * (a * y));
} else if (y <= 2e-25) {
tmp = a * (y3 * (y1 * z));
} else {
tmp = b * (a * (x * y));
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): tmp = 0 if y <= -6.4e+159: tmp = b * (x * (a * y)) elif y <= 2e-25: tmp = a * (y3 * (y1 * z)) else: tmp = b * (a * (x * y)) 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 <= -6.4e+159) tmp = Float64(b * Float64(x * Float64(a * y))); elseif (y <= 2e-25) tmp = Float64(a * Float64(y3 * Float64(y1 * z))); else tmp = Float64(b * Float64(a * Float64(x * y))); 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 <= -6.4e+159) tmp = b * (x * (a * y)); elseif (y <= 2e-25) tmp = a * (y3 * (y1 * z)); else tmp = b * (a * (x * y)); 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, -6.4e+159], N[(b * N[(x * N[(a * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2e-25], N[(a * N[(y3 * N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq -6.4 \cdot 10^{+159}:\\
\;\;\;\;b \cdot \left(x \cdot \left(a \cdot y\right)\right)\\
\mathbf{elif}\;y \leq 2 \cdot 10^{-25}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\end{array}
\end{array}
if y < -6.3999999999999997e159Initial program 21.4%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.4%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6437.4
Applied rewrites37.4%
Taylor expanded in y around inf
lift-*.f6433.6
Applied rewrites33.6%
if -6.3999999999999997e159 < y < 2.00000000000000008e-25Initial program 34.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6422.3
Applied rewrites22.3%
Taylor expanded in y around 0
lift-*.f6417.8
Applied rewrites17.8%
if 2.00000000000000008e-25 < y Initial program 24.8%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.1%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6431.8
Applied rewrites31.8%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6426.8
Applied rewrites26.8%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (let* ((t_1 (* b (* a (* x y))))) (if (<= y -6.4e+159) t_1 (if (<= y 2e-25) (* a (* y3 (* y1 z))) t_1))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = b * (a * (x * y));
double tmp;
if (y <= -6.4e+159) {
tmp = t_1;
} else if (y <= 2e-25) {
tmp = a * (y3 * (y1 * z));
} else {
tmp = t_1;
}
return tmp;
}
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5)
use fmin_fmax_functions
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8), intent (in) :: i
real(8), intent (in) :: j
real(8), intent (in) :: k
real(8), intent (in) :: y0
real(8), intent (in) :: y1
real(8), intent (in) :: y2
real(8), intent (in) :: y3
real(8), intent (in) :: y4
real(8), intent (in) :: y5
real(8) :: t_1
real(8) :: tmp
t_1 = b * (a * (x * y))
if (y <= (-6.4d+159)) then
tmp = t_1
else if (y <= 2d-25) then
tmp = a * (y3 * (y1 * z))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double t_1 = b * (a * (x * y));
double tmp;
if (y <= -6.4e+159) {
tmp = t_1;
} else if (y <= 2e-25) {
tmp = a * (y3 * (y1 * z));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): t_1 = b * (a * (x * y)) tmp = 0 if y <= -6.4e+159: tmp = t_1 elif y <= 2e-25: tmp = a * (y3 * (y1 * z)) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(b * Float64(a * Float64(x * y))) tmp = 0.0 if (y <= -6.4e+159) tmp = t_1; elseif (y <= 2e-25) tmp = Float64(a * Float64(y3 * Float64(y1 * z))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = b * (a * (x * y)); tmp = 0.0; if (y <= -6.4e+159) tmp = t_1; elseif (y <= 2e-25) tmp = a * (y3 * (y1 * z)); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(b * N[(a * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, -6.4e+159], t$95$1, If[LessEqual[y, 2e-25], N[(a * N[(y3 * N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := b \cdot \left(a \cdot \left(x \cdot y\right)\right)\\
\mathbf{if}\;y \leq -6.4 \cdot 10^{+159}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2 \cdot 10^{-25}:\\
\;\;\;\;a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < -6.3999999999999997e159 or 2.00000000000000008e-25 < y Initial program 23.7%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
Applied rewrites35.2%
Taylor expanded in x around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6433.6
Applied rewrites33.6%
Taylor expanded in y around inf
lower-*.f64N/A
lift-*.f6428.7
Applied rewrites28.7%
if -6.3999999999999997e159 < y < 2.00000000000000008e-25Initial program 34.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.3%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6422.3
Applied rewrites22.3%
Taylor expanded in y around 0
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 (* a (* z (* y1 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) {
return a * (z * (y1 * y3));
}
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 = a * (z * (y1 * y3))
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 a * (z * (y1 * y3));
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): return a * (z * (y1 * y3))
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(a * Float64(z * Float64(y1 * y3))) end
function tmp = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = a * (z * (y1 * y3)); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(a * N[(z * N[(y1 * y3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
a \cdot \left(z \cdot \left(y1 \cdot y3\right)\right)
\end{array}
Initial program 30.0%
Taylor expanded in z around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.8%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower-fma.f64N/A
lower-*.f64N/A
lower-*.f6427.2
Applied rewrites27.2%
Taylor expanded in t around 0
lift-*.f6417.7
Applied rewrites17.7%
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5) :precision binary64 (* a (* y3 (* y1 z))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return a * (y3 * (y1 * z));
}
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 = a * (y3 * (y1 * z))
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 a * (y3 * (y1 * z));
}
def code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5): return a * (y3 * (y1 * z))
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(a * Float64(y3 * Float64(y1 * z))) end
function tmp = code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) tmp = a * (y3 * (y1 * z)); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(a * N[(y3 * N[(y1 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right)
\end{array}
Initial program 30.0%
Taylor expanded in y3 around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
Applied rewrites36.9%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6426.4
Applied rewrites26.4%
Taylor expanded in y around 0
lift-*.f6417.6
Applied rewrites17.6%
herbie shell --seed 2025114
(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)))))