QMCPACK
Array< T, 1, base_type > Struct Template Reference
+ Inheritance diagram for Array< T, 1, base_type >:
+ Collaboration diagram for Array< T, 1, base_type >:

Public Types

using sizes_type = decltype(std::declval< base_type const & >().sizes())
 

Public Member Functions

Arrayoperator= (const T t)
 
auto rows () const
 
sizes_type shape () const
 
void resize (sizes_type sizes)
 
void resizeAndPreserve (sizes_type sizes)
 
std::ptrdiff_t extent (int d) const
 
template<class... Ints>
void resize (Ints... ns)
 
base_type::element_ptr data ()
 
base_type::element_const_ptr data () const
 

Friends

Array operator- (Array const &a, Array const &b)
 
Array operator+ (Array const &a, Array const &b)
 
Array operator* (T const &t, Array const &a)
 

Detailed Description

template<class T, class base_type>
struct Array< T, 1, base_type >

Definition at line 121 of file Blitz.h.

Member Typedef Documentation

◆ sizes_type

using sizes_type = decltype(std::declval<base_type const&>().sizes())

Definition at line 144 of file Blitz.h.

Member Function Documentation

◆ data() [1/2]

base_type::element_ptr data ( )
inline

Definition at line 169 of file Blitz.h.

169 { return base_type::data_elements(); }

◆ data() [2/2]

base_type::element_const_ptr data ( ) const
inline

Definition at line 170 of file Blitz.h.

170 { return base_type::data_elements(); }

◆ extent()

std::ptrdiff_t extent ( int  d) const
inline

Definition at line 148 of file Blitz.h.

149  {
150  switch (d)
151  {
152  case 0:
153  return std::get<0>(base_type::sizes());
154  }
155  assert(false);
156  return 0;
157  }

◆ operator=()

Array& operator= ( const T  t)
inline

Definition at line 124 of file Blitz.h.

125  {
126  std::fill(base_type::begin(), base_type::end(), t);
127  return *this;
128  }

◆ resize() [1/2]

void resize ( sizes_type  sizes)
inline

Definition at line 146 of file Blitz.h.

References Array< T, D, ALLOC >::resizeAndPreserve().

146 { resizeAndPreserve(sizes); }
void resizeAndPreserve(sizes_type sizes)
Definition: Blitz.h:147

◆ resize() [2/2]

void resize ( Ints...  ns)
inline

Definition at line 159 of file Blitz.h.

References qmcplusplus::Units::time::ns.

160  {
161  base_type::reextent(typename base_type::extensions_type({static_cast<typename base_type::size_type>(ns)...})); // std::make_tuple(ns...));
162  }

◆ resizeAndPreserve()

void resizeAndPreserve ( sizes_type  sizes)
inline

Definition at line 147 of file Blitz.h.

147 { base_type::reextent(sizes); }

◆ rows()

auto rows ( ) const
inline

Definition at line 143 of file Blitz.h.

143 { return base_type::size(); }

◆ shape()

sizes_type shape ( ) const
inline

Definition at line 145 of file Blitz.h.

145 { return base_type::sizes(); }

Friends And Related Function Documentation

◆ operator*

Array operator* ( T const &  t,
Array< T, 1, base_type > const &  a 
)
friend

Definition at line 163 of file Blitz.h.

164  {
165  Array ret(a.extensions());
166  std::transform(a.begin(), a.end(), ret.begin(), [&](auto const& e) { return t * e; });
167  return ret;
168  }
A D-dimensional Array class based on PETE.
Definition: OhmmsArray.h:25

◆ operator+

Array operator+ ( Array< T, 1, base_type > const &  a,
Array< T, 1, base_type > const &  b 
)
friend

Definition at line 136 of file Blitz.h.

137  {
138  assert(a.extensions() == b.extensions());
139  Array ret(a.extensions());
140  std::transform(a.begin(), a.end(), b.begin(), ret.begin(), [](auto a, auto b) { return a + b; });
141  return ret;
142  }
A D-dimensional Array class based on PETE.
Definition: OhmmsArray.h:25

◆ operator-

Array operator- ( Array< T, 1, base_type > const &  a,
Array< T, 1, base_type > const &  b 
)
friend

Definition at line 129 of file Blitz.h.

130  {
131  assert(a.size() == b.size());
132  Array ret(a.size());
133  std::transform(a.begin(), a.end(), b.begin(), ret.begin(), [](auto a, auto b) { return a - b; });
134  return ret;
135  }
A D-dimensional Array class based on PETE.
Definition: OhmmsArray.h:25

The documentation for this struct was generated from the following file: