
(FPCore (x y z t a b c i j) :precision binary64 (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
return ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)));
}
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)
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
code = ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
return ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)));
}
def code(x, y, z, t, a, b, c, i, j): return ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)))
function code(x, y, z, t, a, b, c, i, j) return Float64(Float64(Float64(x * Float64(Float64(y * z) - Float64(t * a))) - Float64(b * Float64(Float64(c * z) - Float64(i * a)))) + Float64(j * Float64(Float64(c * t) - Float64(i * y)))) end
function tmp = code(x, y, z, t, a, b, c, i, j) tmp = ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y))); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := N[(N[(N[(x * N[(N[(y * z), $MachinePrecision] - N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(b * N[(N[(c * z), $MachinePrecision] - N[(i * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(j * N[(N[(c * t), $MachinePrecision] - N[(i * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
Herbie found 26 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a b c i j) :precision binary64 (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
return ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)));
}
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)
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
code = ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
return ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)));
}
def code(x, y, z, t, a, b, c, i, j): return ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y)))
function code(x, y, z, t, a, b, c, i, j) return Float64(Float64(Float64(x * Float64(Float64(y * z) - Float64(t * a))) - Float64(b * Float64(Float64(c * z) - Float64(i * a)))) + Float64(j * Float64(Float64(c * t) - Float64(i * y)))) end
function tmp = code(x, y, z, t, a, b, c, i, j) tmp = ((x * ((y * z) - (t * a))) - (b * ((c * z) - (i * a)))) + (j * ((c * t) - (i * y))); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := N[(N[(N[(x * N[(N[(y * z), $MachinePrecision] - N[(t * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(b * N[(N[(c * z), $MachinePrecision] - N[(i * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(j * N[(N[(c * t), $MachinePrecision] - N[(i * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* x (- (* y z) (* t a))))
(t_2 (* j (- (* c t) (* i y)))))
(if (<= (+ (- t_1 (* b (- (* c z) (* i a)))) t_2) INFINITY)
(+ (- t_1 (134-z0z1z2z3z4 b z c i a)) t_2)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i)))))\begin{array}{l}
t_1 := x \cdot \left(y \cdot z - t \cdot a\right)\\
t_2 := j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{if}\;\left(t\_1 - b \cdot \left(c \cdot z - i \cdot a\right)\right) + t\_2 \leq \infty:\\
\;\;\;\;\left(t\_1 - \mathsf{134\_z0z1z2z3z4}\left(b, z, c, i, a\right)\right) + t\_2\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\end{array}
if (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < +inf.0Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
if +inf.0 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))))
(if (<= (+ t_1 (* j (- (* c t) (* i y)))) INFINITY)
(+ t_1 (134-z0z1z2z3z4 j t c y i))
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i)))))\begin{array}{l}
t_1 := x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\\
\mathbf{if}\;t\_1 + j \cdot \left(c \cdot t - i \cdot y\right) \leq \infty:\\
\;\;\;\;t\_1 + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\end{array}
if (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < +inf.0Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
*-commutativeN/A
lower-134-z0z1z2z3z477.4%
Applied rewrites77.4%
if +inf.0 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1
(+
(- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))
(* j (- (* c t) (* i y))))))
(if (<= t_1 INFINITY)
t_1
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i)))))\begin{array}{l}
t_1 := \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\end{array}
if (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < +inf.0Initial program 73.1%
if +inf.0 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<=
i
-7999999999999999506066406602255828322616218915776995826355329700310971934596797709094564220031266042413056)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i))
(if (<= i 6799999999999999771361204269095990591488)
(+
(- (* x (- (* y z) (* t a))) (134-z0z1z2z3z4 b z c i a))
(* j (* c t)))
(134-z0z1z2z3z4 i b a y j))))\begin{array}{l}
\mathbf{if}\;i \leq -7999999999999999506066406602255828322616218915776995826355329700310971934596797709094564220031266042413056:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\mathbf{elif}\;i \leq 6799999999999999771361204269095990591488:\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \mathsf{134\_z0z1z2z3z4}\left(b, z, c, i, a\right)\right) + j \cdot \left(c \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\end{array}
if i < -7.9999999999999995e105Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
if -7.9999999999999995e105 < i < 6.7999999999999998e39Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in y around 0
lower-*.f6470.0%
Applied rewrites70.0%
if 6.7999999999999998e39 < i Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* j (- (* c t) (* i y)))))
(if (<=
c
-47000000000000000882497468202382926760474282586130709860674048069879890039594240516162270598191842570956416285147869624605267034784581812224)
(134-z0z1z2z3z4 c t j z b)
(if (<=
c
-7713302612443153/3213876088517980551083924184682325205044405987565585670602752)
(+ (* z (- (* x y) (* b c))) t_1)
(if (<=
c
4200000000000000159086051820587205661447942375116082460464186153870236755951616)
(+ (134-z0z1z2z3z4 a i b x t) t_1)
(134-z0z1z2z3z4 c t j z b))))))\begin{array}{l}
t_1 := j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{if}\;c \leq -47000000000000000882497468202382926760474282586130709860674048069879890039594240516162270598191842570956416285147869624605267034784581812224:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(c, t, j, z, b\right)\\
\mathbf{elif}\;c \leq \frac{-7713302612443153}{3213876088517980551083924184682325205044405987565585670602752}:\\
\;\;\;\;z \cdot \left(x \cdot y - b \cdot c\right) + t\_1\\
\mathbf{elif}\;c \leq 4200000000000000159086051820587205661447942375116082460464186153870236755951616:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(a, i, b, x, t\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(c, t, j, z, b\right)\\
\end{array}
if c < -4.7000000000000001e139 or 4.2000000000000002e78 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
lift-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
fp-cancel-sub-sign-invN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
fp-cancel-sign-sub-invN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
remove-double-negN/A
lower-134-z0z1z2z3z439.2%
Applied rewrites39.2%
if -4.7000000000000001e139 < c < -2.3999999999999999e-45Initial program 73.1%
Taylor expanded in z around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6458.5%
Applied rewrites58.5%
if -2.3999999999999999e-45 < c < 4.2000000000000002e78Initial program 73.1%
Taylor expanded in a around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.4%
Applied rewrites59.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
mul-1-negN/A
distribute-lft-neg-inN/A
remove-double-negN/A
sub-negate-revN/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
add-flipN/A
sub-negateN/A
distribute-lft-neg-outN/A
lift-*.f64N/A
remove-double-negN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z462.4%
Applied rewrites62.4%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* j (- (* c t) (* i y))))
(t_2
(+
(- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))
t_1)))
(if (<=
t_2
6931674235302037/173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884864)
(+ (134-z0z1z2z3z4 j t c y i) (* x (- (* y z) (* a t))))
(if (<= t_2 INFINITY)
(+ (* b (- (* a i) (* c z))) t_1)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i))))))\begin{array}{l}
t_1 := j \cdot \left(c \cdot t - i \cdot y\right)\\
t_2 := \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + t\_1\\
\mathbf{if}\;t\_2 \leq \frac{6931674235302037}{173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884864}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right) + x \cdot \left(y \cdot z - a \cdot t\right)\\
\mathbf{elif}\;t\_2 \leq \infty:\\
\;\;\;\;b \cdot \left(a \cdot i - c \cdot z\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\end{array}
if (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < 3.9999999999999999e-113Initial program 73.1%
Taylor expanded in b around 0
lower-+.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.6%
Applied rewrites59.6%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
*-commutativeN/A
lower-134-z0z1z2z3z462.8%
Applied rewrites62.8%
if 3.9999999999999999e-113 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < +inf.0Initial program 73.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6458.5%
Applied rewrites58.5%
if +inf.0 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* j (- (* c t) (* i y)))))
(if (<= i -9200000000000000494652599231133532570395869184)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i))
(if (<=
i
6137165078635627/1427247692705959881058285969449495136382746624)
(+ (* z (- (* x y) (* b c))) t_1)
(if (<=
i
108000000000000002841598060393185870412347289647193203911040249628872955534546268587121803176431669988575907748942521916126535188801716815562484347968372693589481874810673628725641216)
(+ (* b (- (* a i) (* c z))) t_1)
(134-z0z1z2z3z4 i b a y j))))))\begin{array}{l}
t_1 := j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{if}\;i \leq -9200000000000000494652599231133532570395869184:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\mathbf{elif}\;i \leq \frac{6137165078635627}{1427247692705959881058285969449495136382746624}:\\
\;\;\;\;z \cdot \left(x \cdot y - b \cdot c\right) + t\_1\\
\mathbf{elif}\;i \leq 108000000000000002841598060393185870412347289647193203911040249628872955534546268587121803176431669988575907748942521916126535188801716815562484347968372693589481874810673628725641216:\\
\;\;\;\;b \cdot \left(a \cdot i - c \cdot z\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\end{array}
if i < -9.2000000000000005e45Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
if -9.2000000000000005e45 < i < 4.2999999999999997e-30Initial program 73.1%
Taylor expanded in z around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6458.5%
Applied rewrites58.5%
if 4.2999999999999997e-30 < i < 1.08e182Initial program 73.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6458.5%
Applied rewrites58.5%
if 1.08e182 < i Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* j (- (* c t) (* i y))))
(t_2
(+
(- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))
t_1)))
(if (<=
t_2
6931674235302037/173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884864)
(+ t_1 (* x (- (* y z) (* a t))))
(if (<= t_2 INFINITY)
(+ (* b (- (* a i) (* c z))) t_1)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i))))))\begin{array}{l}
t_1 := j \cdot \left(c \cdot t - i \cdot y\right)\\
t_2 := \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + t\_1\\
\mathbf{if}\;t\_2 \leq \frac{6931674235302037}{173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884864}:\\
\;\;\;\;t\_1 + x \cdot \left(y \cdot z - a \cdot t\right)\\
\mathbf{elif}\;t\_2 \leq \infty:\\
\;\;\;\;b \cdot \left(a \cdot i - c \cdot z\right) + t\_1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\end{array}
if (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < 3.9999999999999999e-113Initial program 73.1%
Taylor expanded in b around 0
lower-+.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.6%
Applied rewrites59.6%
if 3.9999999999999999e-113 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) < +inf.0Initial program 73.1%
Taylor expanded in b around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6458.5%
Applied rewrites58.5%
if +inf.0 < (+.f64 (-.f64 (*.f64 x (-.f64 (*.f64 y z) (*.f64 t a))) (*.f64 b (-.f64 (*.f64 c z) (*.f64 i a)))) (*.f64 j (-.f64 (*.f64 c t) (*.f64 i y)))) Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<=
i
-26499999999999998459331033260651466612499616802700899974089610585370856281920975974862367405259976867840)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i))
(if (<= i 2803840303608807/20769187434139310514121985316880384)
(+ (* j (- (* c t) (* i y))) (* x (- (* y z) (* a t))))
(134-z0z1z2z3z4 i b a y j))))\begin{array}{l}
\mathbf{if}\;i \leq -26499999999999998459331033260651466612499616802700899974089610585370856281920975974862367405259976867840:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\mathbf{elif}\;i \leq \frac{2803840303608807}{20769187434139310514121985316880384}:\\
\;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right) + x \cdot \left(y \cdot z - a \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\end{array}
if i < -2.6499999999999998e103Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
if -2.6499999999999998e103 < i < 1.35e-19Initial program 73.1%
Taylor expanded in b around 0
lower-+.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.6%
Applied rewrites59.6%
if 1.35e-19 < i Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<= i -50000000000000000310004322520389159747584)
(+ (* a (* b i)) (134-z0z1z2z3z4 j t c y i))
(if (<= i 2803840303608807/20769187434139310514121985316880384)
(+ (* z (- (* x y) (* b c))) (* j (* c t)))
(134-z0z1z2z3z4 i b a y j))))\begin{array}{l}
\mathbf{if}\;i \leq -50000000000000000310004322520389159747584:\\
\;\;\;\;a \cdot \left(b \cdot i\right) + \mathsf{134\_z0z1z2z3z4}\left(j, t, c, y, i\right)\\
\mathbf{elif}\;i \leq \frac{2803840303608807}{20769187434139310514121985316880384}:\\
\;\;\;\;z \cdot \left(x \cdot y - b \cdot c\right) + j \cdot \left(c \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\end{array}
if i < -5e40Initial program 73.1%
Taylor expanded in i around inf
lower-*.f64N/A
lower-*.f6449.1%
Applied rewrites49.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z451.2%
Applied rewrites51.2%
if -5e40 < i < 1.35e-19Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in y around 0
lower-*.f6470.0%
Applied rewrites70.0%
Taylor expanded in z around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6448.9%
Applied rewrites48.9%
if 1.35e-19 < i Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<=
i
-59999999999999999817723503236360894134390639559794877150527488)
(134-z0z1z2z3z4 i b a y j)
(if (<= i 2803840303608807/20769187434139310514121985316880384)
(+ (* z (- (* x y) (* b c))) (* j (* c t)))
(134-z0z1z2z3z4 i b a y j))))\begin{array}{l}
\mathbf{if}\;i \leq -59999999999999999817723503236360894134390639559794877150527488:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\mathbf{elif}\;i \leq \frac{2803840303608807}{20769187434139310514121985316880384}:\\
\;\;\;\;z \cdot \left(x \cdot y - b \cdot c\right) + j \cdot \left(c \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\end{array}
if i < -6e61 or 1.35e-19 < i Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
if -6e61 < i < 1.35e-19Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in y around 0
lower-*.f6470.0%
Applied rewrites70.0%
Taylor expanded in z around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6448.9%
Applied rewrites48.9%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<=
i
-59999999999999999817723503236360894134390639559794877150527488)
(134-z0z1z2z3z4 i b a y j)
(if (<= i 2803840303608807/20769187434139310514121985316880384)
(+ (* j (* c t)) (* x (- (* y z) (* a t))))
(134-z0z1z2z3z4 i b a y j))))\begin{array}{l}
\mathbf{if}\;i \leq -59999999999999999817723503236360894134390639559794877150527488:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\mathbf{elif}\;i \leq \frac{2803840303608807}{20769187434139310514121985316880384}:\\
\;\;\;\;j \cdot \left(c \cdot t\right) + x \cdot \left(y \cdot z - a \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\end{array}
if i < -6e61 or 1.35e-19 < i Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
if -6e61 < i < 1.35e-19Initial program 73.1%
Taylor expanded in b around 0
lower-+.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.6%
Applied rewrites59.6%
Taylor expanded in y around 0
lower-*.f6450.0%
Applied rewrites50.0%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<=
c
-25000000000000001047038139105286448974785846666008457078585692795174912)
(134-z0z1z2z3z4 c t j z b)
(if (<= c 3700000000000)
(134-z0z1z2z3z4 i b a y j)
(134-z0z1z2z3z4 c t j z b))))\begin{array}{l}
\mathbf{if}\;c \leq -25000000000000001047038139105286448974785846666008457078585692795174912:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(c, t, j, z, b\right)\\
\mathbf{elif}\;c \leq 3700000000000:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(i, b, a, y, j\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(c, t, j, z, b\right)\\
\end{array}
if c < -2.5000000000000001e70 or 3.7e12 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
lift-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
fp-cancel-sub-sign-invN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
fp-cancel-sign-sub-invN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
remove-double-negN/A
lower-134-z0z1z2z3z439.2%
Applied rewrites39.2%
if -2.5000000000000001e70 < c < 3.7e12Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-134-z0z1z2z3z438.9%
Applied rewrites38.9%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<=
c
-25000000000000001047038139105286448974785846666008457078585692795174912)
(134-z0z1z2z3z4 c t j z b)
(if (<=
c
4200000000000000159086051820587205661447942375116082460464186153870236755951616)
(* (- (* b a) (* j y)) i)
(134-z0z1z2z3z4 c t j z b))))\begin{array}{l}
\mathbf{if}\;c \leq -25000000000000001047038139105286448974785846666008457078585692795174912:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(c, t, j, z, b\right)\\
\mathbf{elif}\;c \leq 4200000000000000159086051820587205661447942375116082460464186153870236755951616:\\
\;\;\;\;\left(b \cdot a - j \cdot y\right) \cdot i\\
\mathbf{else}:\\
\;\;\;\;\mathsf{134\_z0z1z2z3z4}\left(c, t, j, z, b\right)\\
\end{array}
if c < -2.5000000000000001e70 or 4.2000000000000002e78 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
lift-*.f64N/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
fp-cancel-sub-sign-invN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
fp-cancel-sign-sub-invN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
remove-double-negN/A
lower-134-z0z1z2z3z439.2%
Applied rewrites39.2%
if -2.5000000000000001e70 < c < 4.2000000000000002e78Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (- (* j t) (* b z)))))
(if (<=
c
-25000000000000001047038139105286448974785846666008457078585692795174912)
t_1
(if (<=
c
4200000000000000159086051820587205661447942375116082460464186153870236755951616)
(* (- (* b a) (* j y)) i)
t_1))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * ((j * t) - (b * z));
double tmp;
if (c <= -2.5e+70) {
tmp = t_1;
} else if (c <= 4.2e+78) {
tmp = ((b * a) - (j * y)) * i;
} 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)
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) :: t_1
real(8) :: tmp
t_1 = c * ((j * t) - (b * z))
if (c <= (-2.5d+70)) then
tmp = t_1
else if (c <= 4.2d+78) then
tmp = ((b * a) - (j * y)) * i
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 t_1 = c * ((j * t) - (b * z));
double tmp;
if (c <= -2.5e+70) {
tmp = t_1;
} else if (c <= 4.2e+78) {
tmp = ((b * a) - (j * y)) * i;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * ((j * t) - (b * z)) tmp = 0 if c <= -2.5e+70: tmp = t_1 elif c <= 4.2e+78: tmp = ((b * a) - (j * y)) * i else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(Float64(j * t) - Float64(b * z))) tmp = 0.0 if (c <= -2.5e+70) tmp = t_1; elseif (c <= 4.2e+78) tmp = Float64(Float64(Float64(b * a) - Float64(j * y)) * i); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * ((j * t) - (b * z)); tmp = 0.0; if (c <= -2.5e+70) tmp = t_1; elseif (c <= 4.2e+78) tmp = ((b * a) - (j * y)) * i; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(N[(j * t), $MachinePrecision] - N[(b * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -25000000000000001047038139105286448974785846666008457078585692795174912], t$95$1, If[LessEqual[c, 4200000000000000159086051820587205661447942375116082460464186153870236755951616], N[(N[(N[(b * a), $MachinePrecision] - N[(j * y), $MachinePrecision]), $MachinePrecision] * i), $MachinePrecision], t$95$1]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t - b \cdot z\right)\\
\mathbf{if}\;c \leq -25000000000000001047038139105286448974785846666008457078585692795174912:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq 4200000000000000159086051820587205661447942375116082460464186153870236755951616:\\
\;\;\;\;\left(b \cdot a - j \cdot y\right) \cdot i\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -2.5000000000000001e70 or 4.2000000000000002e78 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
if -2.5000000000000001e70 < c < 4.2000000000000002e78Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (- (* j t) (* b z)))))
(if (<=
c
-139999999999999992138831935449925184808511285378398708820252613393702318409515008)
t_1
(if (<= c 6500000000000000137014627496820924743680)
(* (- (* z x) (* j i)) y)
t_1))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * ((j * t) - (b * z));
double tmp;
if (c <= -1.4e+80) {
tmp = t_1;
} else if (c <= 6.5e+39) {
tmp = ((z * x) - (j * i)) * 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)
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) :: t_1
real(8) :: tmp
t_1 = c * ((j * t) - (b * z))
if (c <= (-1.4d+80)) then
tmp = t_1
else if (c <= 6.5d+39) then
tmp = ((z * x) - (j * i)) * 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 t_1 = c * ((j * t) - (b * z));
double tmp;
if (c <= -1.4e+80) {
tmp = t_1;
} else if (c <= 6.5e+39) {
tmp = ((z * x) - (j * i)) * y;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * ((j * t) - (b * z)) tmp = 0 if c <= -1.4e+80: tmp = t_1 elif c <= 6.5e+39: tmp = ((z * x) - (j * i)) * y else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(Float64(j * t) - Float64(b * z))) tmp = 0.0 if (c <= -1.4e+80) tmp = t_1; elseif (c <= 6.5e+39) tmp = Float64(Float64(Float64(z * x) - Float64(j * i)) * y); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * ((j * t) - (b * z)); tmp = 0.0; if (c <= -1.4e+80) tmp = t_1; elseif (c <= 6.5e+39) tmp = ((z * x) - (j * i)) * y; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(N[(j * t), $MachinePrecision] - N[(b * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -139999999999999992138831935449925184808511285378398708820252613393702318409515008], t$95$1, If[LessEqual[c, 6500000000000000137014627496820924743680], N[(N[(N[(z * x), $MachinePrecision] - N[(j * i), $MachinePrecision]), $MachinePrecision] * y), $MachinePrecision], t$95$1]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t - b \cdot z\right)\\
\mathbf{if}\;c \leq -139999999999999992138831935449925184808511285378398708820252613393702318409515008:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq 6500000000000000137014627496820924743680:\\
\;\;\;\;\left(z \cdot x - j \cdot i\right) \cdot y\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -1.3999999999999999e80 or 6.5000000000000001e39 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
if -1.3999999999999999e80 < c < 6.5000000000000001e39Initial program 73.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6439.3%
Applied rewrites39.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.3%
lift-+.f64N/A
+-commutativeN/A
add-flipN/A
lower--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
distribute-lft-neg-outN/A
metadata-evalN/A
*-lft-identity39.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.3%
Applied rewrites39.3%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (- (* j t) (* b z)))))
(if (<=
c
-54999999999999995856782217794033543777047918854839284797535091765700111817594182285267951232722895270914328805700170328504758759671407312896)
t_1
(if (<=
c
-5398307492432545/12554203470773361527671578846415332832204710888928069025792)
(* j (- (* c t) (* i y)))
(if (<= c 1350000000000000037384336378801607506132992)
(* a (* b i))
t_1)))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * ((j * t) - (b * z));
double tmp;
if (c <= -5.5e+139) {
tmp = t_1;
} else if (c <= -4.3e-43) {
tmp = j * ((c * t) - (i * y));
} else if (c <= 1.35e+42) {
tmp = a * (b * i);
} 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)
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) :: t_1
real(8) :: tmp
t_1 = c * ((j * t) - (b * z))
if (c <= (-5.5d+139)) then
tmp = t_1
else if (c <= (-4.3d-43)) then
tmp = j * ((c * t) - (i * y))
else if (c <= 1.35d+42) then
tmp = a * (b * i)
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 t_1 = c * ((j * t) - (b * z));
double tmp;
if (c <= -5.5e+139) {
tmp = t_1;
} else if (c <= -4.3e-43) {
tmp = j * ((c * t) - (i * y));
} else if (c <= 1.35e+42) {
tmp = a * (b * i);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * ((j * t) - (b * z)) tmp = 0 if c <= -5.5e+139: tmp = t_1 elif c <= -4.3e-43: tmp = j * ((c * t) - (i * y)) elif c <= 1.35e+42: tmp = a * (b * i) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(Float64(j * t) - Float64(b * z))) tmp = 0.0 if (c <= -5.5e+139) tmp = t_1; elseif (c <= -4.3e-43) tmp = Float64(j * Float64(Float64(c * t) - Float64(i * y))); elseif (c <= 1.35e+42) tmp = Float64(a * Float64(b * i)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * ((j * t) - (b * z)); tmp = 0.0; if (c <= -5.5e+139) tmp = t_1; elseif (c <= -4.3e-43) tmp = j * ((c * t) - (i * y)); elseif (c <= 1.35e+42) tmp = a * (b * i); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(N[(j * t), $MachinePrecision] - N[(b * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -54999999999999995856782217794033543777047918854839284797535091765700111817594182285267951232722895270914328805700170328504758759671407312896], t$95$1, If[LessEqual[c, -5398307492432545/12554203470773361527671578846415332832204710888928069025792], N[(j * N[(N[(c * t), $MachinePrecision] - N[(i * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[c, 1350000000000000037384336378801607506132992], N[(a * N[(b * i), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t - b \cdot z\right)\\
\mathbf{if}\;c \leq -54999999999999995856782217794033543777047918854839284797535091765700111817594182285267951232722895270914328805700170328504758759671407312896:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq \frac{-5398307492432545}{12554203470773361527671578846415332832204710888928069025792}:\\
\;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{elif}\;c \leq 1350000000000000037384336378801607506132992:\\
\;\;\;\;a \cdot \left(b \cdot i\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -5.4999999999999996e139 or 1.35e42 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
if -5.4999999999999996e139 < c < -4.2999999999999996e-43Initial program 73.1%
Taylor expanded in b around 0
lower-+.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.6%
Applied rewrites59.6%
Taylor expanded in y around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6435.2%
Applied rewrites35.2%
Taylor expanded in x around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
if -4.2999999999999996e-43 < c < 1.35e42Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6422.2%
Applied rewrites22.2%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<= b -180000000000000012012486656)
(* a (* b i))
(if (<=
b
24500000000000000923157099035783906969573975216719612870656)
(* j (- (* c t) (* i y)))
(* (* a b) i))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double tmp;
if (b <= -1.8e+26) {
tmp = a * (b * i);
} else if (b <= 2.45e+58) {
tmp = j * ((c * t) - (i * y));
} else {
tmp = (a * b) * i;
}
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)
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) :: tmp
if (b <= (-1.8d+26)) then
tmp = a * (b * i)
else if (b <= 2.45d+58) then
tmp = j * ((c * t) - (i * y))
else
tmp = (a * b) * i
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 tmp;
if (b <= -1.8e+26) {
tmp = a * (b * i);
} else if (b <= 2.45e+58) {
tmp = j * ((c * t) - (i * y));
} else {
tmp = (a * b) * i;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): tmp = 0 if b <= -1.8e+26: tmp = a * (b * i) elif b <= 2.45e+58: tmp = j * ((c * t) - (i * y)) else: tmp = (a * b) * i return tmp
function code(x, y, z, t, a, b, c, i, j) tmp = 0.0 if (b <= -1.8e+26) tmp = Float64(a * Float64(b * i)); elseif (b <= 2.45e+58) tmp = Float64(j * Float64(Float64(c * t) - Float64(i * y))); else tmp = Float64(Float64(a * b) * i); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) tmp = 0.0; if (b <= -1.8e+26) tmp = a * (b * i); elseif (b <= 2.45e+58) tmp = j * ((c * t) - (i * y)); else tmp = (a * b) * i; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := If[LessEqual[b, -180000000000000012012486656], N[(a * N[(b * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 24500000000000000923157099035783906969573975216719612870656], N[(j * N[(N[(c * t), $MachinePrecision] - N[(i * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(a * b), $MachinePrecision] * i), $MachinePrecision]]]
\begin{array}{l}
\mathbf{if}\;b \leq -180000000000000012012486656:\\
\;\;\;\;a \cdot \left(b \cdot i\right)\\
\mathbf{elif}\;b \leq 24500000000000000923157099035783906969573975216719612870656:\\
\;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a \cdot b\right) \cdot i\\
\end{array}
if b < -1.8000000000000001e26Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6422.2%
Applied rewrites22.2%
if -1.8000000000000001e26 < b < 2.4500000000000001e58Initial program 73.1%
Taylor expanded in b around 0
lower-+.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6459.6%
Applied rewrites59.6%
Taylor expanded in y around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6435.2%
Applied rewrites35.2%
Taylor expanded in x around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
if 2.4500000000000001e58 < b Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f6422.4%
Applied rewrites22.4%
(FPCore (x y z t a b c i j)
:precision binary64
(if (<= b -14500000000000000)
(* a (* b i))
(if (<=
b
-1416953066986969/833501804109981784259981473840157224643094790289488520049532226470504654727204008940179025108944286342866238824179155055736100206764920635045419506541353755761894697439251819807884785738976753091120627016985825247711343504684557661395484672)
(* -1 (* i (* j y)))
(if (<=
b
21000000000000001189505106290147333501344090768766123638784)
(* c (* j t))
(* (* a b) i)))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double tmp;
if (b <= -1.45e+16) {
tmp = a * (b * i);
} else if (b <= -1.7e-225) {
tmp = -1.0 * (i * (j * y));
} else if (b <= 2.1e+58) {
tmp = c * (j * t);
} else {
tmp = (a * b) * i;
}
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)
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) :: tmp
if (b <= (-1.45d+16)) then
tmp = a * (b * i)
else if (b <= (-1.7d-225)) then
tmp = (-1.0d0) * (i * (j * y))
else if (b <= 2.1d+58) then
tmp = c * (j * t)
else
tmp = (a * b) * i
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 tmp;
if (b <= -1.45e+16) {
tmp = a * (b * i);
} else if (b <= -1.7e-225) {
tmp = -1.0 * (i * (j * y));
} else if (b <= 2.1e+58) {
tmp = c * (j * t);
} else {
tmp = (a * b) * i;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): tmp = 0 if b <= -1.45e+16: tmp = a * (b * i) elif b <= -1.7e-225: tmp = -1.0 * (i * (j * y)) elif b <= 2.1e+58: tmp = c * (j * t) else: tmp = (a * b) * i return tmp
function code(x, y, z, t, a, b, c, i, j) tmp = 0.0 if (b <= -1.45e+16) tmp = Float64(a * Float64(b * i)); elseif (b <= -1.7e-225) tmp = Float64(-1.0 * Float64(i * Float64(j * y))); elseif (b <= 2.1e+58) tmp = Float64(c * Float64(j * t)); else tmp = Float64(Float64(a * b) * i); end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) tmp = 0.0; if (b <= -1.45e+16) tmp = a * (b * i); elseif (b <= -1.7e-225) tmp = -1.0 * (i * (j * y)); elseif (b <= 2.1e+58) tmp = c * (j * t); else tmp = (a * b) * i; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := If[LessEqual[b, -14500000000000000], N[(a * N[(b * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -1416953066986969/833501804109981784259981473840157224643094790289488520049532226470504654727204008940179025108944286342866238824179155055736100206764920635045419506541353755761894697439251819807884785738976753091120627016985825247711343504684557661395484672], N[(-1 * N[(i * N[(j * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 21000000000000001189505106290147333501344090768766123638784], N[(c * N[(j * t), $MachinePrecision]), $MachinePrecision], N[(N[(a * b), $MachinePrecision] * i), $MachinePrecision]]]]
\begin{array}{l}
\mathbf{if}\;b \leq -14500000000000000:\\
\;\;\;\;a \cdot \left(b \cdot i\right)\\
\mathbf{elif}\;b \leq \frac{-1416953066986969}{833501804109981784259981473840157224643094790289488520049532226470504654727204008940179025108944286342866238824179155055736100206764920635045419506541353755761894697439251819807884785738976753091120627016985825247711343504684557661395484672}:\\
\;\;\;\;-1 \cdot \left(i \cdot \left(j \cdot y\right)\right)\\
\mathbf{elif}\;b \leq 21000000000000001189505106290147333501344090768766123638784:\\
\;\;\;\;c \cdot \left(j \cdot t\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a \cdot b\right) \cdot i\\
\end{array}
if b < -1.45e16Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6422.2%
Applied rewrites22.2%
if -1.45e16 < b < -1.7e-225Initial program 73.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6439.3%
Applied rewrites39.3%
Taylor expanded in x around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6422.3%
Applied rewrites22.3%
if -1.7e-225 < b < 2.1000000000000001e58Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around 0
lower-*.f6422.5%
Applied rewrites22.5%
if 2.1000000000000001e58 < b Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f6422.4%
Applied rewrites22.4%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (* j t))))
(if (<=
c
-4290987514424489/12259964326927110866866776217202473468949912977468817408)
t_1
(if (<= c 52000000000000004190967118188018085197250560)
(* a (* b i))
(if (<=
c
469999999999999975576717977797941685112922973656463459718548369107617262217776701562974441173756323187809264862674962475780911815598089383150786409990048429331027285695435757190994122499435700208795648)
(* (* (- c) b) z)
t_1)))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * (j * t);
double tmp;
if (c <= -3.5e-40) {
tmp = t_1;
} else if (c <= 5.2e+43) {
tmp = a * (b * i);
} else if (c <= 4.7e+200) {
tmp = (-c * b) * 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)
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) :: t_1
real(8) :: tmp
t_1 = c * (j * t)
if (c <= (-3.5d-40)) then
tmp = t_1
else if (c <= 5.2d+43) then
tmp = a * (b * i)
else if (c <= 4.7d+200) then
tmp = (-c * b) * 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 t_1 = c * (j * t);
double tmp;
if (c <= -3.5e-40) {
tmp = t_1;
} else if (c <= 5.2e+43) {
tmp = a * (b * i);
} else if (c <= 4.7e+200) {
tmp = (-c * b) * z;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * (j * t) tmp = 0 if c <= -3.5e-40: tmp = t_1 elif c <= 5.2e+43: tmp = a * (b * i) elif c <= 4.7e+200: tmp = (-c * b) * z else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(j * t)) tmp = 0.0 if (c <= -3.5e-40) tmp = t_1; elseif (c <= 5.2e+43) tmp = Float64(a * Float64(b * i)); elseif (c <= 4.7e+200) tmp = Float64(Float64(Float64(-c) * b) * z); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * (j * t); tmp = 0.0; if (c <= -3.5e-40) tmp = t_1; elseif (c <= 5.2e+43) tmp = a * (b * i); elseif (c <= 4.7e+200) tmp = (-c * b) * z; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(j * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -4290987514424489/12259964326927110866866776217202473468949912977468817408], t$95$1, If[LessEqual[c, 52000000000000004190967118188018085197250560], N[(a * N[(b * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[c, 469999999999999975576717977797941685112922973656463459718548369107617262217776701562974441173756323187809264862674962475780911815598089383150786409990048429331027285695435757190994122499435700208795648], N[(N[((-c) * b), $MachinePrecision] * z), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t\right)\\
\mathbf{if}\;c \leq \frac{-4290987514424489}{12259964326927110866866776217202473468949912977468817408}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq 52000000000000004190967118188018085197250560:\\
\;\;\;\;a \cdot \left(b \cdot i\right)\\
\mathbf{elif}\;c \leq 469999999999999975576717977797941685112922973656463459718548369107617262217776701562974441173756323187809264862674962475780911815598089383150786409990048429331027285695435757190994122499435700208795648:\\
\;\;\;\;\left(\left(-c\right) \cdot b\right) \cdot z\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -3.5000000000000002e-40 or 4.6999999999999998e200 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around 0
lower-*.f6422.5%
Applied rewrites22.5%
if -3.5000000000000002e-40 < c < 5.2000000000000004e43Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6422.2%
Applied rewrites22.2%
if 5.2000000000000004e43 < c < 4.6999999999999998e200Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6422.5%
Applied rewrites22.5%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
distribute-lft-neg-inN/A
lower-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lower-*.f64N/A
lower-neg.f6422.2%
Applied rewrites22.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (* j t))))
(if (<=
c
-4290987514424489/12259964326927110866866776217202473468949912977468817408)
t_1
(if (<= c 52000000000000004190967118188018085197250560)
(* a (* b i))
(if (<=
c
449999999999999969383489225493115588696703864275764557370108112011539275577780917490969607273906365752923733384545329432361067244769220689786693879825947789314966839269759655947717493145169070831697920)
(* (* (- b) z) c)
t_1)))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * (j * t);
double tmp;
if (c <= -3.5e-40) {
tmp = t_1;
} else if (c <= 5.2e+43) {
tmp = a * (b * i);
} else if (c <= 4.5e+200) {
tmp = (-b * z) * c;
} 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)
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) :: t_1
real(8) :: tmp
t_1 = c * (j * t)
if (c <= (-3.5d-40)) then
tmp = t_1
else if (c <= 5.2d+43) then
tmp = a * (b * i)
else if (c <= 4.5d+200) then
tmp = (-b * z) * c
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 t_1 = c * (j * t);
double tmp;
if (c <= -3.5e-40) {
tmp = t_1;
} else if (c <= 5.2e+43) {
tmp = a * (b * i);
} else if (c <= 4.5e+200) {
tmp = (-b * z) * c;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * (j * t) tmp = 0 if c <= -3.5e-40: tmp = t_1 elif c <= 5.2e+43: tmp = a * (b * i) elif c <= 4.5e+200: tmp = (-b * z) * c else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(j * t)) tmp = 0.0 if (c <= -3.5e-40) tmp = t_1; elseif (c <= 5.2e+43) tmp = Float64(a * Float64(b * i)); elseif (c <= 4.5e+200) tmp = Float64(Float64(Float64(-b) * z) * c); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * (j * t); tmp = 0.0; if (c <= -3.5e-40) tmp = t_1; elseif (c <= 5.2e+43) tmp = a * (b * i); elseif (c <= 4.5e+200) tmp = (-b * z) * c; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(j * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -4290987514424489/12259964326927110866866776217202473468949912977468817408], t$95$1, If[LessEqual[c, 52000000000000004190967118188018085197250560], N[(a * N[(b * i), $MachinePrecision]), $MachinePrecision], If[LessEqual[c, 449999999999999969383489225493115588696703864275764557370108112011539275577780917490969607273906365752923733384545329432361067244769220689786693879825947789314966839269759655947717493145169070831697920], N[(N[((-b) * z), $MachinePrecision] * c), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t\right)\\
\mathbf{if}\;c \leq \frac{-4290987514424489}{12259964326927110866866776217202473468949912977468817408}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq 52000000000000004190967118188018085197250560:\\
\;\;\;\;a \cdot \left(b \cdot i\right)\\
\mathbf{elif}\;c \leq 449999999999999969383489225493115588696703864275764557370108112011539275577780917490969607273906365752923733384545329432361067244769220689786693879825947789314966839269759655947717493145169070831697920:\\
\;\;\;\;\left(\left(-b\right) \cdot z\right) \cdot c\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -3.5000000000000002e-40 or 4.4999999999999997e200 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around 0
lower-*.f6422.5%
Applied rewrites22.5%
if -3.5000000000000002e-40 < c < 5.2000000000000004e43Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6422.2%
Applied rewrites22.2%
if 5.2000000000000004e43 < c < 4.4999999999999997e200Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around inf
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6422.5%
Applied rewrites22.5%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lift-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-neg.f6422.2%
Applied rewrites22.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (* j t))))
(if (<=
c
-2911741527645189/3064991081731777716716694054300618367237478244367204352)
t_1
(if (<=
c
3900000000000000382794842022146125564911543999372148710821867947676628894613504)
(* (* a b) i)
t_1))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * (j * t);
double tmp;
if (c <= -9.5e-40) {
tmp = t_1;
} else if (c <= 3.9e+78) {
tmp = (a * b) * i;
} 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)
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) :: t_1
real(8) :: tmp
t_1 = c * (j * t)
if (c <= (-9.5d-40)) then
tmp = t_1
else if (c <= 3.9d+78) then
tmp = (a * b) * i
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 t_1 = c * (j * t);
double tmp;
if (c <= -9.5e-40) {
tmp = t_1;
} else if (c <= 3.9e+78) {
tmp = (a * b) * i;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * (j * t) tmp = 0 if c <= -9.5e-40: tmp = t_1 elif c <= 3.9e+78: tmp = (a * b) * i else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(j * t)) tmp = 0.0 if (c <= -9.5e-40) tmp = t_1; elseif (c <= 3.9e+78) tmp = Float64(Float64(a * b) * i); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * (j * t); tmp = 0.0; if (c <= -9.5e-40) tmp = t_1; elseif (c <= 3.9e+78) tmp = (a * b) * i; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(j * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -2911741527645189/3064991081731777716716694054300618367237478244367204352], t$95$1, If[LessEqual[c, 3900000000000000382794842022146125564911543999372148710821867947676628894613504], N[(N[(a * b), $MachinePrecision] * i), $MachinePrecision], t$95$1]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t\right)\\
\mathbf{if}\;c \leq \frac{-2911741527645189}{3064991081731777716716694054300618367237478244367204352}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq 3900000000000000382794842022146125564911543999372148710821867947676628894613504:\\
\;\;\;\;\left(a \cdot b\right) \cdot i\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -9.5000000000000006e-40 or 3.9000000000000004e78 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around 0
lower-*.f6422.5%
Applied rewrites22.5%
if -9.5000000000000006e-40 < c < 3.9000000000000004e78Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
lift-*.f64N/A
mul-1-negN/A
lift-*.f64N/A
*-commutativeN/A
distribute-lft-neg-inN/A
lift--.f64N/A
sub-negate-revN/A
lower-*.f64N/A
lower--.f6439.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f6422.4%
Applied rewrites22.4%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (* j t))))
(if (<=
c
-4290987514424489/12259964326927110866866776217202473468949912977468817408)
t_1
(if (<=
c
3900000000000000382794842022146125564911543999372148710821867947676628894613504)
(* a (* b i))
t_1))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * (j * t);
double tmp;
if (c <= -3.5e-40) {
tmp = t_1;
} else if (c <= 3.9e+78) {
tmp = a * (b * i);
} 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)
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) :: t_1
real(8) :: tmp
t_1 = c * (j * t)
if (c <= (-3.5d-40)) then
tmp = t_1
else if (c <= 3.9d+78) then
tmp = a * (b * i)
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 t_1 = c * (j * t);
double tmp;
if (c <= -3.5e-40) {
tmp = t_1;
} else if (c <= 3.9e+78) {
tmp = a * (b * i);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * (j * t) tmp = 0 if c <= -3.5e-40: tmp = t_1 elif c <= 3.9e+78: tmp = a * (b * i) else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(j * t)) tmp = 0.0 if (c <= -3.5e-40) tmp = t_1; elseif (c <= 3.9e+78) tmp = Float64(a * Float64(b * i)); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * (j * t); tmp = 0.0; if (c <= -3.5e-40) tmp = t_1; elseif (c <= 3.9e+78) tmp = a * (b * i); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(j * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c, -4290987514424489/12259964326927110866866776217202473468949912977468817408], t$95$1, If[LessEqual[c, 3900000000000000382794842022146125564911543999372148710821867947676628894613504], N[(a * N[(b * i), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t\right)\\
\mathbf{if}\;c \leq \frac{-4290987514424489}{12259964326927110866866776217202473468949912977468817408}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;c \leq 3900000000000000382794842022146125564911543999372148710821867947676628894613504:\\
\;\;\;\;a \cdot \left(b \cdot i\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if c < -3.5000000000000002e-40 or 3.9000000000000004e78 < c Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around 0
lower-*.f6422.5%
Applied rewrites22.5%
if -3.5000000000000002e-40 < c < 3.9000000000000004e78Initial program 73.1%
lift-*.f64N/A
lift--.f64N/A
sub-negate-revN/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
sub-negate-revN/A
lift--.f64N/A
distribute-rgt-neg-outN/A
distribute-lft-neg-outN/A
remove-double-negN/A
lift--.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-134-z0z1z2z3z477.2%
Applied rewrites77.2%
Taylor expanded in i around -inf
lower-*.f64N/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6439.2%
Applied rewrites39.2%
Taylor expanded in y around 0
lower-*.f64N/A
lower-*.f6422.2%
Applied rewrites22.2%
(FPCore (x y z t a b c i j)
:precision binary64
(let* ((t_1 (* c (* j t))))
(if (<= t -5609415803011879/19342813113834066795298816)
t_1
(if (<=
t
1449999999999999980639788350416853003932704626439205672130083285472643144103231488)
(* (* y x) z)
t_1))))double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double t_1 = c * (j * t);
double tmp;
if (t <= -2.9e-10) {
tmp = t_1;
} else if (t <= 1.45e+81) {
tmp = (y * x) * 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)
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) :: t_1
real(8) :: tmp
t_1 = c * (j * t)
if (t <= (-2.9d-10)) then
tmp = t_1
else if (t <= 1.45d+81) then
tmp = (y * x) * 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 t_1 = c * (j * t);
double tmp;
if (t <= -2.9e-10) {
tmp = t_1;
} else if (t <= 1.45e+81) {
tmp = (y * x) * z;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a, b, c, i, j): t_1 = c * (j * t) tmp = 0 if t <= -2.9e-10: tmp = t_1 elif t <= 1.45e+81: tmp = (y * x) * z else: tmp = t_1 return tmp
function code(x, y, z, t, a, b, c, i, j) t_1 = Float64(c * Float64(j * t)) tmp = 0.0 if (t <= -2.9e-10) tmp = t_1; elseif (t <= 1.45e+81) tmp = Float64(Float64(y * x) * z); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a, b, c, i, j) t_1 = c * (j * t); tmp = 0.0; if (t <= -2.9e-10) tmp = t_1; elseif (t <= 1.45e+81) tmp = (y * x) * z; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := Block[{t$95$1 = N[(c * N[(j * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -5609415803011879/19342813113834066795298816], t$95$1, If[LessEqual[t, 1449999999999999980639788350416853003932704626439205672130083285472643144103231488], N[(N[(y * x), $MachinePrecision] * z), $MachinePrecision], t$95$1]]]
\begin{array}{l}
t_1 := c \cdot \left(j \cdot t\right)\\
\mathbf{if}\;t \leq \frac{-5609415803011879}{19342813113834066795298816}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t \leq 1449999999999999980639788350416853003932704626439205672130083285472643144103231488:\\
\;\;\;\;\left(y \cdot x\right) \cdot z\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if t < -2.8999999999999998e-10 or 1.45e81 < t Initial program 73.1%
Taylor expanded in c around inf
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-*.f6438.8%
Applied rewrites38.8%
Taylor expanded in z around 0
lower-*.f6422.5%
Applied rewrites22.5%
if -2.8999999999999998e-10 < t < 1.45e81Initial program 73.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6439.3%
Applied rewrites39.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower-*.f6422.9%
Applied rewrites22.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6422.4%
Applied rewrites22.4%
(FPCore (x y z t a b c i j) :precision binary64 (* (* y x) z))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
return (y * x) * 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)
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
code = (y * x) * 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) {
return (y * x) * z;
}
def code(x, y, z, t, a, b, c, i, j): return (y * x) * z
function code(x, y, z, t, a, b, c, i, j) return Float64(Float64(y * x) * z) end
function tmp = code(x, y, z, t, a, b, c, i, j) tmp = (y * x) * z; end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := N[(N[(y * x), $MachinePrecision] * z), $MachinePrecision]
\left(y \cdot x\right) \cdot z
Initial program 73.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6439.3%
Applied rewrites39.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower-*.f6422.9%
Applied rewrites22.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6422.4%
Applied rewrites22.4%
(FPCore (x y z t a b c i j) :precision binary64 (* x (* y z)))
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
return x * (y * 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)
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
code = x * (y * 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) {
return x * (y * z);
}
def code(x, y, z, t, a, b, c, i, j): return x * (y * z)
function code(x, y, z, t, a, b, c, i, j) return Float64(x * Float64(y * z)) end
function tmp = code(x, y, z, t, a, b, c, i, j) tmp = x * (y * z); end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_] := N[(x * N[(y * z), $MachinePrecision]), $MachinePrecision]
x \cdot \left(y \cdot z\right)
Initial program 73.1%
Taylor expanded in y around inf
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6439.3%
Applied rewrites39.3%
Taylor expanded in x around inf
lower-*.f64N/A
lower-*.f6422.9%
Applied rewrites22.9%
herbie shell --seed 2025271 -o generate:evaluate
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
:precision binary64
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))