QMCPACK
Blitz.h File Reference
+ Include dependency graph for Blitz.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  TinyVector< T, N, base_type >
 
struct  TinyMatrix< T, N1, N2, base_type >
 
struct  Array< T, D, ALLOC >
 A D-dimensional Array class based on PETE. More...
 
struct  Array< T, 1, base_type >
 
struct  Range
 
class  nilArraySection
 
class  SliceInfo< Args >
 
class  neverDeleteData_t
 
class  SymmArray< T >
 

Macros

#define NAN   sqrt(-1.0)
 

Typedefs

using scalar = double
 
using Vec1 = TinyVector< scalar, 1 >
 
using Vec2 = TinyVector< scalar, 2 >
 
using Vec3 = TinyVector< scalar, 3 >
 
using Vec4 = TinyVector< scalar, 4 >
 
using Mat2 = TinyMatrix< scalar, 2, 2 >
 
using Mat3 = TinyMatrix< scalar, 3, 3 >
 
using cVec3 = TinyVector< std::complex< double >, 3 >
 
using cMat3 = TinyMatrix< std::complex< double >, 3, 3 >
 

Functions

template<class T , int size>
TinyVector< T, size > operator- (TinyVector< T, size > v)
 
Vec2 operator* (const Vec2 &v, scalar s)
 
Vec2 operator* (scalar s, const Vec2 &v)
 
Vec2 operator+ (const Vec2 &v1, const Vec2 &v2)
 
Vec2 operator- (const Vec2 &v1, const Vec2 &v2)
 
Vec3 operator* (scalar s, const Vec3 &v)
 
Vec3 operator* (const Vec3 &v, scalar s)
 
Vec3 operator+ (const Vec3 &v1, const Vec3 &v2)
 
Vec3 operator- (const Vec3 &v1, const Vec3 &v2)
 
Vec4 operator* (scalar s, const Vec4 &v)
 
Vec4 operator* (const Vec4 &v, scalar s)
 
Vec4 operator+ (const Vec4 &v1, const Vec4 &v2)
 
Vec4 operator- (const Vec4 &v1, const Vec4 &v2)
 
Mat3 operator* (scalar s, const Mat3 &M)
 
Mat3 operator* (const Mat3 &A, const Mat3 &B)
 
Mat3 operator+ (const Mat3 &A, const Mat3 &B)
 
Mat3 operator- (const Mat3 &A, const Mat3 &B)
 
Vec3 operator* (const Mat3 &A, const Vec3 &v)
 
Vec3 operator* (const Vec3 &v, const Mat3 &A)
 
cMat3 operator+ (const cMat3 &A, const cMat3 &B)
 
cMat3 operator- (const cMat3 &A, const cMat3 &B)
 
cMat3operator+= (cMat3 &A, const cMat3 &B)
 
cMat3operator-= (cMat3 &A, const cMat3 &B)
 
double operator* (const Vec3 &v1, const Vec3 &v2)
 
cMat3 operator* (std::complex< double > z, const Mat3 &A)
 
cMat3 operator* (const Mat3 &A, std::complex< double > z)
 
cVec3 operator* (const cMat3 &A, const cVec3 &x)
 
double distSqrd (Vec2 a, Vec2 b)
 
void Vec2Array (Array< Vec2, 1 > &vec, Array< double, 1 > &array)
 
void Vec2Array (Array< Vec3, 1 > &vec, Array< double, 1 > &array)
 
void Array2Vec (Array< double, 1 > &array, Array< Vec2, 1 > &vec)
 
void Array2Vec (Array< double, 1 > &array, Array< Vec3, 1 > &vec)
 
void Vec2Array (Array< Vec2, 1 > &vec, Array< double, 2 > &array)
 
void Vec2Array (Array< Vec3, 1 > &vec, Array< double, 2 > &array)
 
void Array2Vec (Array< double, 2 > &array, Array< Vec2, 1 > &vec)
 
void Array2Vec (Array< double, 2 > &array, Array< Vec3, 1 > &vec)
 
Array< Vec3, 1 > operator+ (const Array< Vec3, 1 > &array, Vec3 vec)
 
Array< Vec3, 1 > operator+ (Vec3 vec, const Array< Vec3, 1 > &array)
 
template<typename T , int N>
bool operator== (const TinyVector< T, N > &a, const TinyVector< T, N > &b)
 
template<typename T , int N>
bool operator!= (const TinyVector< T, N > &a, const TinyVector< T, N > &b)
 
template<typename T1 , typename T2 >
void copy (const Array< T1, 3 > &src, Array< T2, 3 > &dest)
 
std::complex< float > operator+ (std::complex< float > z, double r)
 
double det (const Mat3 &A)
 
Mat3 Inverse (const Mat3 &A)
 
Mat3 Transpose (const Mat3 &A)
 

Variables

constexpr class neverDeleteData_t neverDeleteData
 

Class Documentation

◆ nilArraySection

class nilArraySection

Definition at line 179 of file Blitz.h.

+ Collaboration diagram for nilArraySection:

◆ SliceInfo

class SliceInfo

template<class... Args>
class SliceInfo< Args >

Definition at line 183 of file Blitz.h.

+ Collaboration diagram for SliceInfo< Args >:

◆ neverDeleteData_t

class neverDeleteData_t

Definition at line 186 of file Blitz.h.

+ Collaboration diagram for neverDeleteData_t:

Macro Definition Documentation

◆ NAN

#define NAN   sqrt(-1.0)

Definition at line 694 of file Blitz.h.

Typedef Documentation

◆ cMat3

using cMat3 = TinyMatrix<std::complex<double>, 3, 3>

Definition at line 200 of file Blitz.h.

◆ cVec3

using cVec3 = TinyVector<std::complex<double>, 3>

Definition at line 199 of file Blitz.h.

◆ Mat2

using Mat2 = TinyMatrix<scalar, 2, 2>

Definition at line 197 of file Blitz.h.

◆ Mat3

using Mat3 = TinyMatrix<scalar, 3, 3>

Definition at line 198 of file Blitz.h.

◆ scalar

using scalar = double

Definition at line 190 of file Blitz.h.

◆ Vec1

using Vec1 = TinyVector<scalar, 1>

Definition at line 192 of file Blitz.h.

◆ Vec2

using Vec2 = TinyVector<scalar, 2>

Definition at line 193 of file Blitz.h.

◆ Vec3

using Vec3 = TinyVector<scalar, 3>

Definition at line 194 of file Blitz.h.

◆ Vec4

using Vec4 = TinyVector<scalar, 4>

Definition at line 195 of file Blitz.h.

Function Documentation

◆ Array2Vec() [1/4]

void Array2Vec ( Array< double, 1 > &  array,
Array< Vec2, 1 > &  vec 
)
inline

Definition at line 557 of file Blitz.h.

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

558 {
559  assert(array.extent(0) == (2 * vec.size()));
560  memcpy(vec.data(), array.data(), array.size() * sizeof(double));
561 }
Type_t * data()
Definition: OhmmsArray.h:87
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ Array2Vec() [2/4]

void Array2Vec ( Array< double, 1 > &  array,
Array< Vec3, 1 > &  vec 
)
inline

Definition at line 563 of file Blitz.h.

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

564 {
565  assert(array.extent(0) == (3 * vec.size()));
566  memcpy(vec.data(), array.data(), array.size() * sizeof(double));
567 }
Type_t * data()
Definition: OhmmsArray.h:87
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ Array2Vec() [3/4]

void Array2Vec ( Array< double, 2 > &  array,
Array< Vec2, 1 > &  vec 
)
inline

Definition at line 592 of file Blitz.h.

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

593 {
594  assert(array.extent(0) == vec.size());
595  assert(array.extent(1) == 2);
596  memcpy(vec.data(), array.data(), array.size() * sizeof(double));
597 }
Type_t * data()
Definition: OhmmsArray.h:87
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ Array2Vec() [4/4]

void Array2Vec ( Array< double, 2 > &  array,
Array< Vec3, 1 > &  vec 
)
inline

Definition at line 599 of file Blitz.h.

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

600 {
601  assert(array.extent(0) == vec.size());
602  assert(array.extent(1) == 3);
603  memcpy(vec.data(), array.data(), array.size() * sizeof(double));
604 }
Type_t * data()
Definition: OhmmsArray.h:87
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ copy()

void copy ( const Array< T1, 3 > &  src,
Array< T2, 3 > &  dest 
)
inline

Definition at line 639 of file Blitz.h.

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

Referenced by AGPDeterminant::acceptMove(), BackflowTransformation::acceptMove(), MultiDiracDeterminant::acceptMove(), CSEnergyEstimator::accumulate(), Communicate::allreduce(), SolveFirstDerivInterp1D< float >::apply(), SolveFirstDerivInterp1D< std::complex< float > >::apply(), Array< T, D >::Array(), OneDimLinearSpline< Td, Tg, CTd, CTg >::assign(), NumericalGrid< T, CT >::assign(), BranchIO< SFNB >::bcast_state(), ECPComponentBuilder::buildSemiLocalAndLocal(), ForwardWalking::calculate(), QMCCostFunction::checkConfigurations(), EstimatorManagerBase::collectBlockAverages(), DescentEngine::computeFinalizationUncertainties(), container_proxy< std::vector< bool > >::container_proxy(), CoulombPotential< T >::CoulombPotential(), PWOrbitalSetBuilder::createPW(), cubicBSpline::cubicBSpline(), EstimatorManagerInput::EstimatorManagerInput(), SkEstimator::evaluate(), SkAllEstimator::evaluate(), CountingGaussianRegion::evaluate_print(), CountingGaussian::evaluate_print(), CountingJastrow< RegionType >::evaluateDerivatives(), CountingJastrow< RegionType >::evaluateExponents_print(), BackflowTransformation::evaluatePbyPAll(), BackflowTransformation::evaluatePbyPWithGrad(), CountingGaussianRegion::evaluateTemp_print(), CountingJastrow< RegionType >::evaluateTempExponents_print(), CompositeSPOSet::evaluateValue(), CompositeSPOSet::evaluateVGL(), CompositeSPOSet::evaluateVGL_spin(), PooledData< RealType >::get(), get_diamond_fill_data(), LCAOHDFParser::getMO(), gsum(), qmcplusplus::MatrixOperators::insert_columns(), StdRandom< RngValueType< T > >::load(), main(), EstimatorManagerNew::makeBlockAverages(), OneDimCubicSpline< T >::OneDimCubicSpline(), OneDimQuinticSpline< Td, Tg, CTd, CTg >::OneDimQuinticSpline(), qmcplusplus::operator<<(), ConstantSizeMatrix< FullPrecRealType, std::allocator< FullPrecRealType > >::operator=(), Array< T, D >::operator=(), TraceSamples< std::complex< TraceReal > >::order_by_size(), PairCorrEstimator::PairCorrEstimator(), GaussianFCHKParser::parse(), PooledData< RealType >::print(), PooledData< RealType >::put(), WalkerConfigurations::putConfigurations(), LCAOSpinorBuilder::putFromH5(), LCAOrbitalBuilder::putFromH5(), LCAOrbitalBuilder::putFromXML(), LCAOrbitalBuilder::putPBCFromH5(), AGPDeterminant::ratioDown(), DiracDeterminantWithBackflow::ratioGrad(), AGPDeterminant::ratioUp(), h5data_proxy< bool >::read(), h5data_proxy< Array< T, D > >::read(), HDFWalkerInput_0_4::read_hdf5(), HDFWalkerInput_0_4::read_hdf5_scatter(), HDFWalkerInput_0_4::read_phdf5(), RandomNumberControl::read_rank_0(), Matrix< ST, qmcplusplus::Mallocator< ST > >::replaceRow(), VMC::resetRun(), CSVMC::resetRun(), DMC::resetUpdateEngines(), AGPDeterminant::restore(), StdRandom< RngValueType< T > >::save(), QMCHamiltonian::saveProperty(), ObservableHelper::set_dimensions(), MomentumEstimator::setObservables(), SkEstimator::setObservables(), SpeciesKineticEnergy::setObservables(), SkAllEstimator::setObservables(), LatticeDeviationEstimator::setObservables(), ForwardWalking::setObservables(), MomentumEstimator::setParticlePropertyList(), SkEstimator::setParticlePropertyList(), SkAllEstimator::setParticlePropertyList(), ForwardWalking::setParticlePropertyList(), QMCHamiltonian::setProperty(), RotatedSPOs::setRotationParameters(), StdRandom< RngValueType< T > >::StdRandom(), qmcplusplus::TEST_CASE(), EinsplineSetBuilder::TileIons(), h5data_proxy< bool >::write(), and container_proxy< std::vector< bool > >::~container_proxy().

640 {
641  assert(src.shape() == dest.shape());
642  for (int ix = 0; ix < src.extent(0); ix++)
643  for (int iy = 0; iy < src.extent(1); iy++)
644  for (int iz = 0; iz < src.extent(2); iz++)
645  dest(ix, iy, iz) = src(ix, iy, iz);
646 }
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
const std::array< size_t, D > & shape() const
Definition: OhmmsArray.h:56

◆ det()

double det ( const Mat3 A)
inline

Definition at line 654 of file Blitz.h.

References qmcplusplus::Units::distance::A.

Referenced by Inverse().

655 {
656  return (A(0, 0) * (A(1, 1) * A(2, 2) - A(1, 2) * A(2, 1)) - A(0, 1) * (A(1, 0) * A(2, 2) - A(1, 2) * A(2, 0)) +
657  A(0, 2) * (A(1, 0) * A(2, 1) - A(1, 1) * A(2, 0)));
658 }

◆ distSqrd()

double distSqrd ( Vec2  a,
Vec2  b 
)
inline

Definition at line 494 of file Blitz.h.

495 {
496  return std::inner_product(a.begin(), a.end(), b.begin(), 0., std::plus<>{},
497  [](auto ae, auto be) { return (ae - be) * (ae - be); });
498 }

◆ Inverse()

Mat3 Inverse ( const Mat3 A)
inline

Definition at line 660 of file Blitz.h.

References qmcplusplus::Units::distance::A, and det().

661 {
662  Mat3 Ainv;
663  double dinv = 1.0 / det(A);
664  Ainv(0, 0) = dinv * (A(1, 1) * A(2, 2) - A(1, 2) * A(2, 1));
665  Ainv(1, 0) = -dinv * (A(1, 0) * A(2, 2) - A(1, 2) * A(2, 0));
666  Ainv(2, 0) = dinv * (A(1, 0) * A(2, 1) - A(1, 1) * A(2, 0));
667  Ainv(0, 1) = -dinv * (A(0, 1) * A(2, 2) - A(0, 2) * A(2, 1));
668  Ainv(1, 1) = dinv * (A(0, 0) * A(2, 2) - A(0, 2) * A(2, 0));
669  Ainv(2, 1) = -dinv * (A(0, 0) * A(2, 1) - A(0, 1) * A(2, 0));
670  Ainv(0, 2) = dinv * (A(0, 1) * A(1, 2) - A(0, 2) * A(1, 1));
671  Ainv(1, 2) = -dinv * (A(0, 0) * A(1, 2) - A(0, 2) * A(1, 0));
672  Ainv(2, 2) = dinv * (A(0, 0) * A(1, 1) - A(0, 1) * A(1, 0));
673  return Ainv;
674 }
double det(const Mat3 &A)
Definition: Blitz.h:654

◆ operator!=()

bool operator!= ( const TinyVector< T, N > &  a,
const TinyVector< T, N > &  b 
)
inline

Definition at line 632 of file Blitz.h.

633 {
634  return !(a == b);
635 }

◆ operator*() [1/14]

Vec2 operator* ( const Vec2 v,
scalar  s 
)
inline

Definition at line 233 of file Blitz.h.

References qmcplusplus::Units::time::s.

234 {
235  Vec2 result;
236  result[0] = s * v[0];
237  result[1] = s * v[1];
238  return (result);
239 }

◆ operator*() [2/14]

Vec2 operator* ( scalar  s,
const Vec2 v 
)
inline

Definition at line 241 of file Blitz.h.

References qmcplusplus::Units::time::s.

241 { return (v * s); }

◆ operator*() [3/14]

Vec3 operator* ( scalar  s,
const Vec3 v 
)
inline

Definition at line 261 of file Blitz.h.

References qmcplusplus::Units::time::s.

262 {
263  Vec3 result;
264  result[0] = s * v[0];
265  result[1] = s * v[1];
266  result[2] = s * v[2];
267  return (result);
268 }

◆ operator*() [4/14]

Vec3 operator* ( const Vec3 v,
scalar  s 
)
inline

Definition at line 270 of file Blitz.h.

References qmcplusplus::Units::time::s.

271 {
272  Vec3 result;
273  result[0] = s * v[0];
274  result[1] = s * v[1];
275  result[2] = s * v[2];
276  return (result);
277 }

◆ operator*() [5/14]

Vec4 operator* ( scalar  s,
const Vec4 v 
)
inline

Definition at line 299 of file Blitz.h.

References qmcplusplus::Units::time::s.

300 {
301  Vec4 result;
302  result[0] = s * v[0];
303  result[1] = s * v[1];
304  result[2] = s * v[2];
305  result[3] = s * v[3];
306  return (result);
307 }

◆ operator*() [6/14]

Vec4 operator* ( const Vec4 v,
scalar  s 
)
inline

Definition at line 309 of file Blitz.h.

References qmcplusplus::Units::time::s.

310 {
311  Vec4 result;
312  result[0] = s * v[0];
313  result[1] = s * v[1];
314  result[2] = s * v[2];
315  result[3] = s * v[3];
316  return (result);
317 }

◆ operator*() [7/14]

Mat3 operator* ( scalar  s,
const Mat3 M 
)
inline

Definition at line 341 of file Blitz.h.

References qmcplusplus::Units::time::s.

342 {
343  Mat3 sM;
344  sM(0, 0) = s * M(0, 0);
345  sM(0, 1) = s * M(0, 1);
346  sM(0, 2) = s * M(0, 2);
347  sM(1, 0) = s * M(1, 0);
348  sM(1, 1) = s * M(1, 1);
349  sM(1, 2) = s * M(1, 2);
350  sM(2, 0) = s * M(2, 0);
351  sM(2, 1) = s * M(2, 1);
352  sM(2, 2) = s * M(2, 2);
353  return (sM);
354 }

◆ operator*() [8/14]

Mat3 operator* ( const Mat3 A,
const Mat3 B 
)
inline

Definition at line 356 of file Blitz.h.

References qmcplusplus::Units::distance::A, B(), and qmcplusplus::Units::charge::C.

357 {
358  Mat3 C;
359  C(0, 0) = A(0, 0) * B(0, 0) + A(0, 1) * B(1, 0) + A(0, 2) * B(2, 0);
360  C(0, 1) = A(0, 0) * B(0, 1) + A(0, 1) * B(1, 1) + A(0, 2) * B(2, 1);
361  C(0, 2) = A(0, 0) * B(0, 2) + A(0, 1) * B(1, 2) + A(0, 2) * B(2, 2);
362  C(1, 0) = A(1, 0) * B(0, 0) + A(1, 1) * B(1, 0) + A(1, 2) * B(2, 0);
363  C(1, 1) = A(1, 0) * B(0, 1) + A(1, 1) * B(1, 1) + A(1, 2) * B(2, 1);
364  C(1, 2) = A(1, 0) * B(0, 2) + A(1, 1) * B(1, 2) + A(1, 2) * B(2, 2);
365  C(2, 0) = A(2, 0) * B(0, 0) + A(2, 1) * B(1, 0) + A(2, 2) * B(2, 0);
366  C(2, 1) = A(2, 0) * B(0, 1) + A(2, 1) * B(1, 1) + A(2, 2) * B(2, 1);
367  C(2, 2) = A(2, 0) * B(0, 2) + A(2, 1) * B(1, 2) + A(2, 2) * B(2, 2);
368  return C;
369 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator*() [9/14]

Vec3 operator* ( const Mat3 A,
const Vec3 v 
)
inline

Definition at line 390 of file Blitz.h.

References qmcplusplus::Units::distance::A.

391 {
392  Vec3 Av;
393  Av[0] = A(0, 0) * v[0] + A(0, 1) * v[1] + A(0, 2) * v[2];
394  Av[1] = A(1, 0) * v[0] + A(1, 1) * v[1] + A(1, 2) * v[2];
395  Av[2] = A(2, 0) * v[0] + A(2, 1) * v[1] + A(2, 2) * v[2];
396  return Av;
397 }

◆ operator*() [10/14]

Vec3 operator* ( const Vec3 v,
const Mat3 A 
)
inline

Definition at line 399 of file Blitz.h.

References qmcplusplus::Units::distance::A.

400 {
401  Vec3 vA;
402  vA[0] = A(0, 0) * v[0] + A(1, 0) * v[1] + A(2, 0) * v[2];
403  vA[1] = A(0, 1) * v[0] + A(1, 1) * v[1] + A(2, 1) * v[2];
404  vA[2] = A(0, 2) * v[0] + A(1, 2) * v[1] + A(2, 2) * v[2];
405  return vA;
406 }

◆ operator*() [11/14]

double operator* ( const Vec3 v1,
const Vec3 v2 
)
inline

Definition at line 466 of file Blitz.h.

466 { return (v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2]); }

◆ operator*() [12/14]

cMat3 operator* ( std::complex< double >  z,
const Mat3 A 
)
inline

Definition at line 468 of file Blitz.h.

References qmcplusplus::Units::distance::A.

469 {
470  cMat3 zA;
471  zA(0, 0) = z * A(0, 0);
472  zA(0, 1) = z * A(0, 1);
473  zA(0, 2) = z * A(0, 2);
474  zA(1, 0) = z * A(1, 0);
475  zA(1, 1) = z * A(1, 1);
476  zA(1, 2) = z * A(1, 2);
477  zA(2, 0) = z * A(2, 0);
478  zA(2, 1) = z * A(2, 1);
479  zA(2, 2) = z * A(2, 2);
480  return zA;
481 }

◆ operator*() [13/14]

cMat3 operator* ( const Mat3 A,
std::complex< double >  z 
)
inline

Definition at line 483 of file Blitz.h.

References qmcplusplus::Units::distance::A.

483 { return z * A; }

◆ operator*() [14/14]

cVec3 operator* ( const cMat3 A,
const cVec3 x 
)
inline

Definition at line 485 of file Blitz.h.

References qmcplusplus::Units::distance::A.

486 {
487  cVec3 Ax;
488  Ax[0] = A(0, 0) * x[0] + A(0, 1) * x[1] + A(0, 2) * x[2];
489  Ax[1] = A(1, 0) * x[0] + A(1, 1) * x[1] + A(1, 2) * x[2];
490  Ax[2] = A(2, 0) * x[0] + A(2, 1) * x[1] + A(2, 2) * x[2];
491  return Ax;
492 }

◆ operator+() [1/8]

Vec2 operator+ ( const Vec2 v1,
const Vec2 v2 
)
inline

Definition at line 243 of file Blitz.h.

244 {
245  Vec2 result;
246  result[0] = v1[0] + v2[0];
247  result[1] = v1[1] + v2[1];
248  return (result);
249 }

◆ operator+() [2/8]

Vec3 operator+ ( const Vec3 v1,
const Vec3 v2 
)
inline

Definition at line 280 of file Blitz.h.

281 {
282  Vec3 result;
283  result[0] = v1[0] + v2[0];
284  result[1] = v1[1] + v2[1];
285  result[2] = v1[2] + v2[2];
286  return (result);
287 }

◆ operator+() [3/8]

Vec4 operator+ ( const Vec4 v1,
const Vec4 v2 
)
inline

Definition at line 320 of file Blitz.h.

321 {
322  Vec4 result;
323  result[0] = v1[0] + v2[0];
324  result[1] = v1[1] + v2[1];
325  result[2] = v1[2] + v2[2];
326  result[3] = v1[3] + v2[3];
327  return (result);
328 }

◆ operator+() [4/8]

Mat3 operator+ ( const Mat3 A,
const Mat3 B 
)
inline

Definition at line 371 of file Blitz.h.

References qmcplusplus::Units::distance::A, and B().

372 {
373  Mat3 ApB;
374  for (int i = 0; i < 3; i++)
375  for (int j = 0; j < 3; j++)
376  ApB(i, j) = A(i, j) + B(i, j);
377  return (ApB);
378 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator+() [5/8]

cMat3 operator+ ( const cMat3 A,
const cMat3 B 
)
inline

Definition at line 408 of file Blitz.h.

References qmcplusplus::Units::distance::A, and B().

409 {
410  cMat3 ApB;
411  ApB(0, 0) = A(0, 0) + B(0, 0);
412  ApB(0, 1) = A(0, 1) + B(0, 1);
413  ApB(0, 2) = A(0, 2) + B(0, 2);
414  ApB(1, 0) = A(1, 0) + B(1, 0);
415  ApB(1, 1) = A(1, 1) + B(1, 1);
416  ApB(1, 2) = A(1, 2) + B(1, 2);
417  ApB(2, 0) = A(2, 0) + B(2, 0);
418  ApB(2, 1) = A(2, 1) + B(2, 1);
419  ApB(2, 2) = A(2, 2) + B(2, 2);
420  return ApB;
421 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator+() [6/8]

Array<Vec3, 1> operator+ ( const Array< Vec3, 1 > &  array,
Vec3  vec 
)
inline

Definition at line 606 of file Blitz.h.

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

607 {
608  Array<Vec3, 1> result(array.size());
609  for (int i = 0; i < array.size(); i++)
610  result(i) = vec + array(i);
611  return result;
612 }
size_t size() const
Definition: OhmmsArray.h:57
A D-dimensional Array class based on PETE.
Definition: OhmmsArray.h:25

◆ operator+() [7/8]

Array<Vec3, 1> operator+ ( Vec3  vec,
const Array< Vec3, 1 > &  array 
)
inline

Definition at line 614 of file Blitz.h.

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

615 {
616  Array<Vec3, 1> result(array.size());
617  for (int i = 0; i < array.size(); i++)
618  result(i) = vec + array(i);
619  return result;
620 }
size_t size() const
Definition: OhmmsArray.h:57
A D-dimensional Array class based on PETE.
Definition: OhmmsArray.h:25

◆ operator+() [8/8]

std::complex<float> operator+ ( std::complex< float >  z,
double  r 
)
inline

Definition at line 648 of file Blitz.h.

649 {
650  return std::complex<float>(z.real() + static_cast<float>(r), z.imag());
651 }

◆ operator+=()

cMat3& operator+= ( cMat3 A,
const cMat3 B 
)
inline

Definition at line 438 of file Blitz.h.

References qmcplusplus::Units::distance::A, and B().

439 {
440  A(0, 0) += B(0, 0);
441  A(0, 1) += B(0, 1);
442  A(0, 2) += B(0, 2);
443  A(1, 0) += B(1, 0);
444  A(1, 1) += B(1, 1);
445  A(1, 2) += B(1, 2);
446  A(2, 0) += B(2, 0);
447  A(2, 1) += B(2, 1);
448  A(2, 2) += B(2, 2);
449  return A;
450 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator-() [1/6]

TinyVector<T, size> operator- ( TinyVector< T, size >  v)
inline

Definition at line 214 of file Blitz.h.

215 {
216  TinyVector<T, size> minusv;
217  for (int i = 0; i < size; i++)
218  minusv[i] = -v[i];
219  return (minusv);
220 }

◆ operator-() [2/6]

Vec2 operator- ( const Vec2 v1,
const Vec2 v2 
)
inline

Definition at line 252 of file Blitz.h.

253 {
254  Vec2 result;
255  result[0] = v1[0] - v2[0];
256  result[1] = v1[1] - v2[1];
257  return (result);
258 }

◆ operator-() [3/6]

Vec3 operator- ( const Vec3 v1,
const Vec3 v2 
)
inline

Definition at line 289 of file Blitz.h.

290 {
291  Vec3 result;
292  result[0] = v1[0] - v2[0];
293  result[1] = v1[1] - v2[1];
294  result[2] = v1[2] - v2[2];
295  return (result);
296 }

◆ operator-() [4/6]

Vec4 operator- ( const Vec4 v1,
const Vec4 v2 
)
inline

Definition at line 330 of file Blitz.h.

331 {
332  Vec4 result;
333  result[0] = v1[0] - v2[0];
334  result[1] = v1[1] - v2[1];
335  result[2] = v1[2] - v2[2];
336  result[3] = v1[3] - v2[3];
337  return (result);
338 }

◆ operator-() [5/6]

Mat3 operator- ( const Mat3 A,
const Mat3 B 
)
inline

Definition at line 381 of file Blitz.h.

References qmcplusplus::Units::distance::A, and B().

382 {
383  Mat3 AmB;
384  for (int i = 0; i < 3; i++)
385  for (int j = 0; j < 3; j++)
386  AmB(i, j) = A(i, j) - B(i, j);
387  return (AmB);
388 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator-() [6/6]

cMat3 operator- ( const cMat3 A,
const cMat3 B 
)
inline

Definition at line 423 of file Blitz.h.

References qmcplusplus::Units::distance::A, and B().

424 {
425  cMat3 AmB;
426  AmB(0, 0) = A(0, 0) - B(0, 0);
427  AmB(0, 1) = A(0, 1) - B(0, 1);
428  AmB(0, 2) = A(0, 2) - B(0, 2);
429  AmB(1, 0) = A(1, 0) - B(1, 0);
430  AmB(1, 1) = A(1, 1) - B(1, 1);
431  AmB(1, 2) = A(1, 2) - B(1, 2);
432  AmB(2, 0) = A(2, 0) - B(2, 0);
433  AmB(2, 1) = A(2, 1) - B(2, 1);
434  AmB(2, 2) = A(2, 2) - B(2, 2);
435  return AmB;
436 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator-=()

cMat3& operator-= ( cMat3 A,
const cMat3 B 
)
inline

Definition at line 452 of file Blitz.h.

References qmcplusplus::Units::distance::A, and B().

453 {
454  A(0, 0) -= B(0, 0);
455  A(0, 1) -= B(0, 1);
456  A(0, 2) -= B(0, 2);
457  A(1, 0) -= B(1, 0);
458  A(1, 1) -= B(1, 1);
459  A(1, 2) -= B(1, 2);
460  A(2, 0) -= B(2, 0);
461  A(2, 1) -= B(2, 1);
462  A(2, 2) -= B(2, 2);
463  return A;
464 }
double B(double x, int k, int i, const std::vector< double > &t)

◆ operator==()

bool operator== ( const TinyVector< T, N > &  a,
const TinyVector< T, N > &  b 
)
inline

Definition at line 623 of file Blitz.h.

References qmcplusplus::Units::force::N.

624 {
625  bool equals = true;
626  for (int i = 0; i < N; i++)
627  equals = equals && (a[i] == b[i]);
628  return equals;
629 }

◆ Transpose()

Mat3 Transpose ( const Mat3 A)
inline

Definition at line 676 of file Blitz.h.

References qmcplusplus::Units::distance::A.

677 {
678  Mat3 Atran;
679  Atran(0, 0) = A(0, 0);
680  Atran(0, 1) = A(1, 0);
681  Atran(0, 2) = A(2, 0);
682  Atran(1, 0) = A(0, 1);
683  Atran(1, 1) = A(1, 1);
684  Atran(1, 2) = A(2, 1);
685  Atran(2, 0) = A(0, 2);
686  Atran(2, 1) = A(1, 2);
687  Atran(2, 2) = A(2, 2);
688 
689  return Atran;
690 }

◆ Vec2Array() [1/4]

void Vec2Array ( Array< Vec2, 1 > &  vec,
Array< double, 1 > &  array 
)
inline

Definition at line 538 of file Blitz.h.

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

539 {
540  assert(array.extent(0) == (2 * vec.size()));
541  memcpy(array.data(), vec.data(), array.size() * sizeof(double));
542 }
Type_t * data()
Definition: OhmmsArray.h:87
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ Vec2Array() [2/4]

void Vec2Array ( Array< Vec3, 1 > &  vec,
Array< double, 1 > &  array 
)
inline

Definition at line 544 of file Blitz.h.

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

545 {
546  assert(array.extent(0) == (3 * vec.size()));
547  for (int i = 0; i < vec.size(); i++)
548  {
549  array(3 * i + 0) = vec(i)[0];
550  array(3 * i + 1) = vec(i)[1];
551  array(3 * i + 2) = vec(i)[2];
552  }
553  // memcpy(array.data(), vec.data(),
554  // array.size()*sizeof(double));
555 }
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ Vec2Array() [3/4]

void Vec2Array ( Array< Vec2, 1 > &  vec,
Array< double, 2 > &  array 
)
inline

Definition at line 570 of file Blitz.h.

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

571 {
572  assert(array.extent(0) == vec.size());
573  assert(array.extent(1) == 2);
574  memcpy(array.data(), vec.data(), array.size() * sizeof(double));
575 }
Type_t * data()
Definition: OhmmsArray.h:87
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

◆ Vec2Array() [4/4]

void Vec2Array ( Array< Vec3, 1 > &  vec,
Array< double, 2 > &  array 
)
inline

Definition at line 577 of file Blitz.h.

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

578 {
579  assert(array.extent(0) == vec.size());
580  assert(array.extent(1) == 3);
581  for (int i = 0; i < vec.size(); i++)
582  {
583  array(i, 0) = vec(i)[0];
584  array(i, 1) = vec(i)[1];
585  array(i, 2) = vec(i)[2];
586  }
587  // memcpy(array.data(), vec.data(),
588  // array.size()*sizeof(double));
589 }
std::ptrdiff_t extent(int d) const
Definition: Blitz.h:77
size_t size() const
Definition: OhmmsArray.h:57

Variable Documentation

◆ neverDeleteData

constexpr class neverDeleteData_t neverDeleteData

Referenced by IOTreeClass::WriteVar().