aboutsummaryrefslogtreecommitdiff
path: root/src/jtutil
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-03-30 18:35:15 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-03-30 18:35:15 +0000
commitf5290b44276dcbc56c43811e3d0f6b93728b41f9 (patch)
tree85f2e3714d4989436654a1454db9c01fb387e758 /src/jtutil
parentc99e3e6410ed86d43112bf29c8cfa2395040416d (diff)
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
Diffstat (limited to 'src/jtutil')
-rw-r--r--src/jtutil/array.hh14
-rw-r--r--src/jtutil/test_array.cc17
2 files changed, 31 insertions, 0 deletions
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;