9#ifndef GMATTENSOR_CARTESIAN2D_ARRAY_HPP
10#define GMATTENSOR_CARTESIAN2D_ARRAY_HPP
15namespace Cartesian2d {
28 std::copy(m_shape.begin(), m_shape.end(), m_shape_tensor2.begin());
29 std::copy(m_shape.begin(), m_shape.end(), m_shape_tensor4.begin());
30 std::fill(m_shape_tensor2.begin() + N, m_shape_tensor2.end(), nd);
31 std::fill(m_shape_tensor4.begin() + N, m_shape_tensor4.end(), nd);
32 m_size = std::accumulate(m_shape.begin(), m_shape.end(), 1, std::multiplies<size_t>());
44 return m_shape_tensor2;
50 return m_shape_tensor4;
58#pragma omp parallel for
59 for (
size_t i = 0; i < m_size; ++i) {
71#pragma omp parallel for
72 for (
size_t i = 0; i < m_size; ++i) {
84#pragma omp parallel for
85 for (
size_t i = 0; i < m_size; ++i) {
97#pragma omp parallel for
98 for (
size_t i = 0; i < m_size; ++i) {
110#pragma omp parallel for
111 for (
size_t i = 0; i < m_size; ++i) {
123#pragma omp parallel for
124 for (
size_t i = 0; i < m_size; ++i) {
136#pragma omp parallel for
137 for (
size_t i = 0; i < m_size; ++i) {
149#pragma omp parallel for
150 for (
size_t i = 0; i < m_size; ++i) {
array_type::tensor< double, N+4 > I4d() const
Array of Cartesian2d::I4d()
array_type::tensor< double, N+4 > O4() const
Array of Cartesian2d::O4()
const std::array< size_t, N+2 > & shape_tensor2() const
Shape of the array of second-order tensors.
const std::array< size_t, N+4 > & shape_tensor4() const
Shape of the array of fourth-order tensors.
array_type::tensor< double, N+4 > II() const
Array of Cartesian2d::II()
array_type::tensor< double, N+4 > I4s() const
Array of Cartesian2d::I4s()
array_type::tensor< double, N+4 > I4() const
Array of Cartesian2d::I4()
array_type::tensor< double, N+2 > I2() const
Array of Cartesian2d::I2()
void init(const std::array< size_t, N > &shape)
Constructor 'alias'.
array_type::tensor< double, N+4 > I4rt() const
Array of Cartesian2d::I4rt()
const std::array< size_t, N > & shape() const
Shape of the array (of scalars).
array_type::tensor< double, N+2 > O2() const
Array of Cartesian2d::O2()
void I4d(T *ret)
See Cartesian2d::I4d()
void I4(T *ret)
See Cartesian2d::I4()
void I2(T *ret)
See Cartesian2d::I2()
void I4rt(T *ret)
See Cartesian2d::I4rt()
void I4s(T *ret)
See Cartesian2d::I4s()
void O2(T *ret)
See Cartesian2d::O2()
void O4(T *ret)
See Cartesian2d::O4()
void II(T *ret)
See Cartesian2d::II()
xt::xtensor< T, N > tensor
Fixed (static) rank array.
Tensor products / operations.