16#ifndef IJK_ptr_included
17#define IJK_ptr_included
19#include <ConstIJK_ptr.h>
22template <
typename _TYPE_,
typename _TYPE_ARRAY_ >
32 void put_val(
int i_offset,
const _TYPE_ & val)
34 assert(this->
i_ + i_offset >= this->
i_min_ && this->
i_ + i_offset < this->
i_max_);
36 const _TYPE_ *ptr = this->
ptr_;
37 ((_TYPE_*)ptr)[i_offset] = val;
41 assert(this->
i_ + i_offset >= this->
i_min_ && this->
i_ + i_offset < this->
i_max_);
42 const _TYPE_ *ptr = this->
ptr_;
43 SimdPut((_TYPE_*)ptr + i_offset, val);
ConstIJK_ptr(const IJK_Field_local_template< _TYPE_, _TYPE_ARRAY_ > &field, int i, int j, int k)
builds a pointer to field(i,j,k);
: This class describes a scalar field in an ijk box without any parallel information.
void put_val(int i_offset, const Simd_template< _TYPE_ > &val)
void put_val(int i_offset, const _TYPE_ &val)
Performs the assignment: field(i+i_offset,j,k) = val.
IJK_ptr(IJK_Field_local_template< _TYPE_, _TYPE_ARRAY_ > &field, int i, int j, int k)
This class provides a generic access to simd operations on x86, x86 AMD and ARM architectures.