20 #ifndef _libint2_src_bin_libint_boostutil_h_ 21 #define _libint2_src_bin_libint_boostutil_h_ 23 #include <boost/tuple/tuple.hpp> 28 template <
typename T,
int N>
32 VectorN() {
for(
int i=0; i<N; ++i) data_[i] = T(); }
33 VectorN(
const VectorN& a) {
for(
int i=0; i<N; ++i) data_[i] = a.data_[i]; }
36 for(
int i=0; i<N; ++i)
37 data_[i] += a.data_[i];
41 for(
int i=0; i<N; ++i)
42 data_[i] -= a.data_[i];
47 T
norm1()
const { T result(0);
for(
int i=0; i<N; ++i) result += abs(data_[i]);
return result; }
49 T& operator[](
int i) {
53 const T& operator[](
int i)
const {
61 template<
typename T,
int N>
68 template<
typename T,
int N>
76 template <
typename T,
int N>
78 assert(i >= 0 && i < N);
86 inline IntVec3 unit_intvec3(
int i) {
87 return unit_vector<int,3>(i);
90 inline bool ltzero(
const IntVec3& a) {
91 for(
int xyz=0; xyz<3; ++xyz)
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:23
bool ltzero(const IntVec3 &a)
return true if has elements < 0
Definition: vectorn.h:90
T norm1() const
1-norm
Definition: vectorn.h:47
vector of N elements of type T
Definition: vectorn.h:29
VectorN()
Default is vector of zeroes.
Definition: vectorn.h:32