From 37616ad68c7402fae24afac94ac9737f69f06755 Mon Sep 17 00:00:00 2001 From: Federico Perini Date: Wed, 18 Sep 2024 12:27:24 +0200 Subject: [PATCH] do not use strides --- src/stdlib_linalg_norms.fypp | 6 +++--- test/linalg/test_linalg_norm.fypp | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/stdlib_linalg_norms.fypp b/src/stdlib_linalg_norms.fypp index 858832cbd..1793ab919 100644 --- a/src/stdlib_linalg_norms.fypp +++ b/src/stdlib_linalg_norms.fypp @@ -8,7 +8,7 @@ ! Vector norms submodule(stdlib_linalg) stdlib_linalg_norms use stdlib_linalg_constants - use stdlib_linalg_blas!, only: nrm2 + use stdlib_linalg_blas, only: nrm2 use stdlib_linalg_lapack, only: lange use stdlib_linalg_state, only: linalg_state_type, linalg_error_handling, LINALG_ERROR, & LINALG_INTERNAL_ERROR, LINALG_VALUE_ERROR @@ -169,7 +169,7 @@ submodule(stdlib_linalg) stdlib_linalg_norms type(linalg_state_type) :: err_ - integer(ilp) :: sze,norm_request,str + integer(ilp) :: sze,norm_request real(${rk}$) :: rorder ${rt}$, pointer :: a1d(:) intrinsic :: abs, sum, sqrt, maxval, minval, conjg @@ -198,7 +198,7 @@ submodule(stdlib_linalg) stdlib_linalg_norms nrm = sum( abs(a) ) case(NORM_TWO) #:if rank==1 - nrm = nrm2(sze,a,incx=stride_1d(a)) + nrm = nrm2(sze,a,incx=1) #:elif rt.startswith('complex') nrm = sqrt( real( sum( a * conjg(a) ), ${rk}$) ) #:else diff --git a/test/linalg/test_linalg_norm.fypp b/test/linalg/test_linalg_norm.fypp index e24c324e1..3ae08822b 100644 --- a/test/linalg/test_linalg_norm.fypp +++ b/test/linalg/test_linalg_norm.fypp @@ -80,6 +80,21 @@ module test_linalg_norm '2d-reshaped ${rt}$ norm(a,2)') if (allocated(error)) return + ! Test row norm (strided access) + slice = twod(3,:) + call check(error,abs(norm(twod(3,:),2)-norm(slice,2))