From f5290b44276dcbc56c43811e3d0f6b93728b41f9 Mon Sep 17 00:00:00 2001 From: jthorn Date: Sat, 30 Mar 2002 18:35:15 +0000 Subject: add functions to get array subscripting offset/strides & test these git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@405 f88db872-0e4f-0410-b76b-b9085cfa78c5 --- src/jtutil/array.hh | 14 ++++++++++++++ src/jtutil/test_array.cc | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/jtutil/array.hh b/src/jtutil/array.hh index 0185b8d..400c6ae 100644 --- a/src/jtutil/array.hh +++ b/src/jtutil/array.hh @@ -89,6 +89,8 @@ public: assert(posn <= max_subscript_); return posn; } + int subscript_offset() const { return offset_; } + int subscript_stride_i() const { return stride_i_; } // normal-use access functions // ... rvalue @@ -177,6 +179,9 @@ public: assert(posn <= max_subscript_); return posn; } + int subscript_offset() const { return offset_; } + int subscript_stride_i() const { return stride_i_; } + int subscript_stride_j() const { return stride_j_; } // normal-use access functions // ... rvalue @@ -273,6 +278,10 @@ public: assert(posn <= max_subscript_); return posn; } + int subscript_offset() const { return offset_; } + int subscript_stride_i() const { return stride_i_; } + int subscript_stride_j() const { return stride_j_; } + int subscript_stride_k() const { return stride_k_; } // normal-use access functions // ... rvalue @@ -381,6 +390,11 @@ public: assert(posn <= max_subscript_); return posn; } + int subscript_offset() const { return offset_; } + int subscript_stride_i() const { return stride_i_; } + int subscript_stride_j() const { return stride_j_; } + int subscript_stride_k() const { return stride_k_; } + int subscript_stride_l() const { return stride_l_; } // normal-use access functions // ... rvalue diff --git a/src/jtutil/test_array.cc b/src/jtutil/test_array.cc index e9fd235..e3d05be 100644 --- a/src/jtutil/test_array.cc +++ b/src/jtutil/test_array.cc @@ -128,6 +128,7 @@ int sub = 0; sub += stride; } assert( A.N_array() == sub ); +assert( A.subscript_stride_i() == &A(min_i+1) - &A(min_i) ); printf("checking what changes when we assign an array element...\n"); double sumsq_of_diff = 0.0; @@ -243,6 +244,8 @@ int sub = 0; } } assert( A.N_array() == sub ); +assert( A.subscript_stride_i() == &A(min_i+1,min_j) - &A(min_i,min_j) ); +assert( A.subscript_stride_j() == &A(min_i,min_j+1) - &A(min_i,min_j) ); printf("checking what changes when we assign an array element...\n"); double sumsq_of_diff = 0.0; @@ -375,6 +378,12 @@ int sub = 0; } } assert(sub == A.N_array()); +assert( A.subscript_stride_i() + == &A(min_i+1,min_j,min_k) - &A(min_i,min_j,min_k) ); +assert( A.subscript_stride_j() + == &A(min_i,min_j+1,min_k) - &A(min_i,min_j,min_k) ); +assert( A.subscript_stride_k() + == &A(min_i,min_j,min_k+1) - &A(min_i,min_j,min_k) ); printf("checking which things change when we assign an array element...\n"); double sumsq_of_diff = 0.0; @@ -524,6 +533,14 @@ int sub = 0; } } assert(sub == A.N_array()); +assert( A.subscript_stride_i() + == &A(min_i+1,min_j,min_k,min_l) - &A(min_i,min_j,min_k,min_l) ); +assert( A.subscript_stride_j() + == &A(min_i,min_j+1,min_k,min_l) - &A(min_i,min_j,min_k,min_l) ); +assert( A.subscript_stride_k() + == &A(min_i,min_j,min_k+1,min_l) - &A(min_i,min_j,min_k,min_l) ); +assert( A.subscript_stride_l() + == &A(min_i,min_j,min_k,min_l+1) - &A(min_i,min_j,min_k,min_l) ); printf("checking which things change when we assign an array element...\n"); double sumsq_of_diff = 0.0; -- cgit v1.2.3