12#ifndef __stir_array_index_functions_h_
13#define __stir_array_index_functions_h_
37template <
int num_dimensions,
int num_dimensions2,
typename elemT>
38inline const Array<num_dimensions - num_dimensions2, elemT>&
get(
const Array<num_dimensions, elemT>& a,
39 const BasicCoordinate<num_dimensions2, int>& c);
43template <
int num_dimensions,
typename elemT>
44inline const elemT&
get(
const Array<num_dimensions, elemT>& a,
const BasicCoordinate<num_dimensions, int>& c);
50template <
int num_dimensions,
typename T>
51inline BasicCoordinate<num_dimensions, int>
get_min_indices(
const Array<num_dimensions, T>& a);
68template <
int num_dimensions,
typename T,
int num_dimensions2>
69inline bool next(BasicCoordinate<num_dimensions, int>& indices,
const Array<num_dimensions2, T>& a);
defines the stir::Array class for multi-dimensional (numeric) arrays
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
implementation of functions in stir/array_index_functions.h
BasicCoordinate< num_dimensions, int > get_min_indices(const Array< num_dimensions, T > &a)
Get the first multi-dimensional index of the array.
Definition array_index_functions.inl:100
const Array< num_dimensions - num_dimensions2, elemT > & get(const Array< num_dimensions, elemT > &a, const BasicCoordinate< num_dimensions2, int > &c)
an alternative for array indexing using BasicCoordinate objects
Definition array_index_functions.inl:114
bool next(BasicCoordinate< num_dimensions, int > &indices, const Array< num_dimensions2, T > &a)
Given an index into an array, increment it to the next one.
Definition array_index_functions.inl:107