From ce0bf2a332c75a45a681f2d39a5479ad6c5de124 Mon Sep 17 00:00:00 2001 From: banana-bred Date: Mon, 14 Aug 2023 16:46:50 -0400 Subject: [PATCH 1/4] =?UTF-8?q?include=20imaginary=20axis=20in=20right=20h?= =?UTF-8?q?alf-plane=20for=20=CE=93(z)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stdlib_specialfunctions_gamma.fypp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/stdlib_specialfunctions_gamma.fypp b/src/stdlib_specialfunctions_gamma.fypp index 7129fddf4..2307a6660 100644 --- a/src/stdlib_specialfunctions_gamma.fypp +++ b/src/stdlib_specialfunctions_gamma.fypp @@ -298,14 +298,14 @@ contains end if - if(z % re > zero_k1) then + if(z % re < zero_k1) then - y = z - one + x = cmplx(abs(z % re), - z % im, kind = ${k1}$) + y = x - one else - x = cmplx(abs(z % re), - z % im, kind = ${k1}$) - y = x - one + y = z - one end if From 736efb758473f4a0ac07b0c1ff55d68ed824e074 Mon Sep 17 00:00:00 2001 From: banana-bred Date: Mon, 14 Aug 2023 17:48:43 -0400 Subject: [PATCH 2/4] added pure imaginary test case --- .../test_specialfunctions_gamma.fypp | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/test/specialfunctions/test_specialfunctions_gamma.fypp b/test/specialfunctions/test_specialfunctions_gamma.fypp index 26421bded..1f386bd41 100644 --- a/test/specialfunctions/test_specialfunctions_gamma.fypp +++ b/test/specialfunctions/test_specialfunctions_gamma.fypp @@ -96,21 +96,21 @@ contains 4.78749174, 3.63739376e2] #:elif k1 == "int16" - + ${t1}$, parameter :: x(n) = [0_${k1}$, 1_${k1}$, 2_${k1}$, 4_${k1}$, & 7_${k1}$, 500_${k1}$] real(sp), parameter :: ans(n) = [0.0, 0.0, 0.693147180, 3.17805383, & 8.52516136, 2.61133046e3] #:elif k1 == "int32" - + ${t1}$, parameter :: x(n) = [0_${k1}$, 1_${k1}$, 2_${k1}$, 4_${k1}$, & 12_${k1}$, 7000_${k1}$] real(sp), parameter :: ans(n) = [0.0, 0.0, 0.693147180, 3.17805383, & 1.99872145e1, 5.49810038e4] #:elif k1 == "int64" - + ${t1}$, parameter :: x(n) = [0_${k1}$, 1_${k1}$, 2_${k1}$, 4_${k1}$, & 20_${k1}$, 90000_${k1}$] real(sp), parameter :: ans(n) = [0.0, 0.0, 0.693147180, 3.17805383, & @@ -134,42 +134,46 @@ contains subroutine test_gamma_${t1[0]}$${k1}$(error) type(error_type), allocatable, intent(out) :: error - integer, parameter :: n = 4 + integer, parameter :: n = 5 integer :: i #:if k1 == "int8" - ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 6_${k1}$] - ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 120_${k1}$] + ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 5_${k1}$, 6_${k1}$ ] + ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 24_${k1}$, 120_${k1}$ ] #:elif k1 == "int16" - ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 8_${k1}$] - ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 5040_${k1}$] + ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 5_${k1}$, 8_${k1}$] + ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 24_${k1}$, 5040_${k1}$] #:elif k1 == "int32" - ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 13_${k1}$] - ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, & + ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 8_${k1}$, 13_${k1}$] + ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 5040_${k1}$, & 479001600_${k1}$] #:elif k1 == "int64" - ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 21_${k1}$] - ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, & + ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 13_${k1}$, 21_${k1}$] + ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 479001600_${k1}$, & 2432902008176640000_${k1}$] #:elif t1[0] == "c" - ${t1}$, parameter :: x(n) = [(0.25_${k1}$, 0.25_${k1}$), & + ${t1}$, parameter :: x(k) = [(0.25_${k1}$, 0.25_${k1}$), & (0.5_${k1}$, -0.5_${k1}$), & (1.0_${k1}$, 1.0_${k1}$), & - (-1.254e1_${k1}$, -9.87_${k1}$)] + (-1.254e1_${k1}$, -9.87_${k1}$), & + (0.0_${k1}$, 1.0_{k1}$) & + ] - ${t1}$, parameter :: ans(n) = & + ${t1}$, parameter :: ans(k) = & [(1.6511332803889208_${k1}$, -1.8378758749947890_${k1}$), & (0.81816399954174739_${k1}$, 0.76331382871398262_${k1}$),& (0.49801566811835604_${k1}$, -0.15494982830181069_${k1}$),& - (-2.18767396709283064e-21_${k1}$, 2.77577940846953455e-21_${k1}$)] + (-2.18767396709283064e-21_${k1}$, 2.77577940846953455e-21_${k1}$),& + (-0.15494982830181067_${k1}$, 0.49801566811835607_${k1}$) & + ] #:endif From 5ee7535fa8127d81df1a9b7c0b1a982308791003 Mon Sep 17 00:00:00 2001 From: banana-bred Date: Mon, 14 Aug 2023 18:23:25 -0400 Subject: [PATCH 3/4] consistent test array sizes --- test/specialfunctions/test_specialfunctions_gamma.fypp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/specialfunctions/test_specialfunctions_gamma.fypp b/test/specialfunctions/test_specialfunctions_gamma.fypp index 1f386bd41..435439dc7 100644 --- a/test/specialfunctions/test_specialfunctions_gamma.fypp +++ b/test/specialfunctions/test_specialfunctions_gamma.fypp @@ -139,8 +139,8 @@ contains #:if k1 == "int8" - ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 5_${k1}$, 6_${k1}$ ] - ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 24_${k1}$, 120_${k1}$ ] + ${t1}$, parameter :: x(n) = [1_${k1}$, 2_${k1}$, 4_${k1}$, 5_${k1}$, 6_${k1}$] + ${t1}$, parameter :: ans(n) = [1_${k1}$, 1_${k1}$, 6_${k1}$, 24_${k1}$, 120_${k1}$] #:elif k1 == "int16" @@ -160,14 +160,14 @@ contains 2432902008176640000_${k1}$] #:elif t1[0] == "c" - ${t1}$, parameter :: x(k) = [(0.25_${k1}$, 0.25_${k1}$), & + ${t1}$, parameter :: x(n) = [(0.25_${k1}$, 0.25_${k1}$), & (0.5_${k1}$, -0.5_${k1}$), & (1.0_${k1}$, 1.0_${k1}$), & (-1.254e1_${k1}$, -9.87_${k1}$), & (0.0_${k1}$, 1.0_{k1}$) & ] - ${t1}$, parameter :: ans(k) = & + ${t1}$, parameter :: ans(n) = & [(1.6511332803889208_${k1}$, -1.8378758749947890_${k1}$), & (0.81816399954174739_${k1}$, 0.76331382871398262_${k1}$),& (0.49801566811835604_${k1}$, -0.15494982830181069_${k1}$),& From a896ba590f323eea7bc767b0b0c38e169083151f Mon Sep 17 00:00:00 2001 From: banana-bred Date: Mon, 14 Aug 2023 18:35:13 -0400 Subject: [PATCH 4/4] make answer correct --- test/specialfunctions/test_specialfunctions_gamma.fypp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/specialfunctions/test_specialfunctions_gamma.fypp b/test/specialfunctions/test_specialfunctions_gamma.fypp index 435439dc7..a5853df1f 100644 --- a/test/specialfunctions/test_specialfunctions_gamma.fypp +++ b/test/specialfunctions/test_specialfunctions_gamma.fypp @@ -164,7 +164,7 @@ contains (0.5_${k1}$, -0.5_${k1}$), & (1.0_${k1}$, 1.0_${k1}$), & (-1.254e1_${k1}$, -9.87_${k1}$), & - (0.0_${k1}$, 1.0_{k1}$) & + (0.0_${k1}$, 1.0_${k1}$) & ] ${t1}$, parameter :: ans(n) = & @@ -172,7 +172,7 @@ contains (0.81816399954174739_${k1}$, 0.76331382871398262_${k1}$),& (0.49801566811835604_${k1}$, -0.15494982830181069_${k1}$),& (-2.18767396709283064e-21_${k1}$, 2.77577940846953455e-21_${k1}$),& - (-0.15494982830181067_${k1}$, 0.49801566811835607_${k1}$) & + (-0.15494982830181067_${k1}$, -0.49801566811835607_${k1}$) & ] #:endif