QMCPACK
IOVarASCII< T, RANK > Class Template Reference
+ Inheritance diagram for IOVarASCII< T, RANK >:
+ Collaboration diagram for IOVarASCII< T, RANK >:

Public Member Functions

template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
ASCIISliceMaker< T, RANK, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::SliceType Slice (T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T9 s9, T10 s10)
 
int GetRank () override
 
IODataType GetType () override
 
IOFileType GetFileType () override
 
void Print (std::ofstream &out) override
 
int GetExtent (int dim) override
 
void Resize (int n) override
 Resizes the first dimension of the variable. More...
 
bool VarRead (Array< T, RANK > &val)
 
template<class TT >
bool VarRead (Array< TT, 1 > &val)
 
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
bool VarRead (typename SliceInfo< T, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::T_slice &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T8 s9, T10 s10)
 
bool VarWrite (const Array< T, RANK > &val)
 
template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
bool VarWrite (const typename SliceInfo< T, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::T_slice &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T8 s9, T10 s10)
 
IOVarASCII< T, RANK > & operator= (const IOVarASCII< T, RANK > &var)
 Assignment operator. More...
 
 IOVarASCII (std::string name, const Array< T, RANK > &val)
 
 IOVarASCII (std::string name)
 Default constructor. More...
 
 IOVarASCII (const IOVarASCII< T, RANK > &var)
 Copy constructor. More...
 
- Public Member Functions inherited from IOVarBase
std::string GetName () const
 
template<typename T >
bool Read (T &val)
 Read functions ///. More...
 
template<typename T , int LEN>
bool Read (TinyVector< T, LEN > &val)
 
template<typename T , int RANK>
bool Read (Array< T, RANK > &val)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T9 s9, T10 s10)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T9 s9)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1, T2 s2)
 
template<typename T , int RANK, typename T0 , typename T1 >
bool Read (Array< T, RANK > &val, T0 s0, T1 s1)
 
template<typename T , int RANK, typename T0 >
bool Read (Array< T, RANK > &val, T0 s0)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T9 s9, T10 s10)
 Write functions ///. More...
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8, T9 s9)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7, T8 s8)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6, T7 s7)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5, T6 s6)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4, T5 s5)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3, T4 s4)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 , typename T3 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2, T3 s3)
 
template<typename T , int RANK, typename T0 , typename T1 , typename T2 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1, T2 s2)
 
template<typename T , int RANK, typename T0 , typename T1 >
bool Write (const Array< T, RANK > &val, T0 s0, T1 s1)
 
template<typename T , int RANK, typename T0 >
bool Write (const Array< T, RANK > &val, T0 s0)
 
template<typename T >
bool Append (const T val)
 
template<class T >
bool Append (const Array< T, 1 > &val)
 
template<class T >
bool Append (const Array< T, 2 > &val)
 
template<class T >
bool Append (const Array< T, 3 > &val)
 
template<class T >
bool Append (const Array< T, 4 > &val)
 
virtual ~IOVarBase ()
 

Public Attributes

Array< T, RANK > ArrayValue
 

Additional Inherited Members

- Protected Attributes inherited from IOVarBase
std::string Name
 

Detailed Description

template<typename T, int RANK>
class IO::IOVarASCII< T, RANK >

Definition at line 26 of file IOVarASCII.h.

Constructor & Destructor Documentation

◆ IOVarASCII() [1/3]

IOVarASCII ( std::string  name,
const Array< T, RANK > &  val 
)
inline

Definition at line 167 of file IOVarASCII.h.

References IOVarASCII< T, RANK >::ArrayValue, IOVarBase::Name, Array< T, D, ALLOC >::resize(), and Array< T, D, ALLOC >::shape().

168  {
169  Name = name;
170  ArrayValue.resize(val.shape());
171  ArrayValue = val;
172  }
const std::array< size_t, D > & shape() const
Definition: OhmmsArray.h:56
void resize(const std::array< SIZET, D > &dims)
Resize the container.
Definition: OhmmsArray.h:65
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70
std::string Name
Definition: IOVarBase.h:65

◆ IOVarASCII() [2/3]

IOVarASCII ( std::string  name)
inline

Default constructor.

Definition at line 174 of file IOVarASCII.h.

References IOVarBase::Name.

174 { Name = name; }
std::string Name
Definition: IOVarBase.h:65

◆ IOVarASCII() [3/3]

IOVarASCII ( const IOVarASCII< T, RANK > &  var)
inline

Copy constructor.

This references the arguments array value.

Definition at line 176 of file IOVarASCII.h.

176  : ArrayValue(var.ArrayValue)
177  {
178  /// This references the arguments array value.
179  }
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70

Member Function Documentation

◆ GetExtent()

int GetExtent ( int  dim)
inlineoverridevirtual

Implements IOVarBase.

Definition at line 340 of file IOVarASCII.h.

341 {
342  return ArrayValue.extent(dim);
343 }
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77

◆ GetFileType()

IOFileType GetFileType ( )
inlineoverridevirtual

Implements IOVarBase.

Definition at line 333 of file IOVarASCII.h.

References IO::ASCII_TYPE.

334 {
335  return ASCII_TYPE;
336 }

◆ GetRank()

int GetRank ( )
inlineoverridevirtual

Implements IOVarBase.

Definition at line 321 of file IOVarASCII.h.

322 {
323  return RANK;
324 }

◆ GetType()

IODataType GetType ( )
inlineoverridevirtual

Implements IOVarBase.

Definition at line 327 of file IOVarASCII.h.

328 {
329  return TypeConvert<T>::Type;
330 }
static const IODataType Type
Definition: IOVarBase.h:357

◆ operator=()

IOVarASCII<T, RANK>& operator= ( const IOVarASCII< T, RANK > &  var)
inline

Assignment operator.

This references var's value.

Definition at line 161 of file IOVarASCII.h.

References IOVarASCII< T, RANK >::ArrayValue.

162  {
163  /// This references var's value.
164  ArrayValue.reference(var.ArrayValue);
165  }
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70

◆ Print()

void Print ( std::ofstream &  out)
overridevirtual

Reimplemented from IOVarBase.

Definition at line 461 of file IOVarASCII.h.

References IO::TypeString().

462 {
463  T a;
464  if (GetRank() == 0)
465  {
466  out << TypeString(a) << " " << Name << " = " << std::endl;
467  }
468  else
469  {
470  out << "Array<" << TypeString(a) << "," << GetRank() << ">(";
471  for (int i = 0; i < RANK; i++)
472  {
473  out << ArrayValue.extent(i);
474  if (i < (RANK - 1))
475  out << ",";
476  }
477  out << ") = [ ";
478  for (int i = 0; i < ArrayValue.size(); i++)
479  {
480  out << *(ArrayValue.data() + i);
481  if (i < (ArrayValue.size() - 1))
482  out << ", ";
483  }
484  out << " ];" << std::endl;
485  }
486 }
std::string TypeString(T &val)
Definition: IOVarBase.h:397
size_t size() const
Definition: OhmmsArray.h:57
Type_t * data()
Definition: OhmmsArray.h:87
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
int GetRank() override
Definition: IOVarASCII.h:321
std::string Name
Definition: IOVarBase.h:65

◆ Resize()

void Resize ( int  n)
inlineoverridevirtual

Resizes the first dimension of the variable.

Implements IOVarBase.

Definition at line 347 of file IOVarASCII.h.

References qmcplusplus::dims, and qmcplusplus::n.

348 {
349  // TinyVector<int, RANK>
350  auto dims = ArrayValue.shape();
351  std::get<0>(dims) = n;
352  // dims[0] = n;
354 }
std::vector< int > dims
const std::array< size_t, D > & shape() const
Definition: OhmmsArray.h:56
void resizeAndPreserve(Ints... sizes)
Definition: Blitz.h:97
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70

◆ Slice()

ASCIISliceMaker< T, RANK, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::SliceType Slice ( T0  s0,
T1  s1,
T2  s2,
T3  s3,
T4  s4,
T5  s5,
T6  s6,
T7  s7,
T8  s8,
T9  s9,
T10  s10 
)

Definition at line 452 of file IOVarASCII.h.

Referenced by IOVarBase::Read(), and IOVarBase::Write().

453 {
455  newSliceType newVar(Name);
456  newVar.ArrayValue.reference(ArrayValue(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10));
457  return newVar;
458 }
IOVarASCII< T, rank > SliceType
Definition: IOVarASCII.h:62
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70
std::string Name
Definition: IOVarBase.h:65

◆ VarRead() [1/3]

bool VarRead ( Array< T, RANK > &  val)

Definition at line 357 of file IOVarASCII.h.

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

Referenced by IOVarBase::Read().

358 {
359  val.resize(ArrayValue.shape());
360  val = ArrayValue;
361  return true;
362 }
const std::array< size_t, D > & shape() const
Definition: OhmmsArray.h:56
void resize(const std::array< SIZET, D > &dims)
Resize the container.
Definition: OhmmsArray.h:65
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70

◆ VarRead() [2/3]

bool VarRead ( Array< TT, 1 > &  val)
inline

Definition at line 105 of file IOVarASCII.h.

106  {
107  assert(0);
108  return false;
109  }

◆ VarRead() [3/3]

bool VarRead ( typename SliceInfo< T, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::T_slice &  val,
T0  s0,
T1  s1,
T2  s2,
T3  s3,
T4  s4,
T5  s5,
T6  s6,
T7  s7,
T8  s8,
T8  s9,
T10  s10 
)
inline

Definition at line 376 of file IOVarASCII.h.

389 {
390  val.resize(ArrayValue(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10).shape());
391  val = ArrayValue(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10);
392  return true;
393 }
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70

◆ VarWrite() [1/2]

bool VarWrite ( const Array< T, RANK > &  val)

Definition at line 396 of file IOVarASCII.h.

References Array< T, D, ALLOC >::extent(), and Array< T, D, ALLOC >::shape().

397 {
398  bool mustReshape = false;
399  for (int i = 0; i < RANK; i++)
400  if (ArrayValue.extent(i) != val.extent(i))
401  mustReshape = true;
402  if (mustReshape)
403  ArrayValue.resize(val.shape());
404  ArrayValue = val;
405  return true;
406 }
const std::array< size_t, D > & shape() const
Definition: OhmmsArray.h:56
void resize(const std::array< SIZET, D > &dims)
Resize the container.
Definition: OhmmsArray.h:65
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77

◆ VarWrite() [2/2]

bool VarWrite ( const typename SliceInfo< T, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::T_slice &  val,
T0  s0,
T1  s1,
T2  s2,
T3  s3,
T4  s4,
T5  s5,
T6  s6,
T7  s7,
T8  s8,
T8  s9,
T10  s10 
)
inline

Definition at line 420 of file IOVarASCII.h.

433 {
434  ArrayValue(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10) = val;
435  return true;
436 }
Array< T, RANK > ArrayValue
Definition: IOVarASCII.h:70

Member Data Documentation

◆ ArrayValue

Array<T, RANK> ArrayValue

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