37#if !defined(_DFT_SPARSE_PATTERN_H_)
38#define _DFT_SPARSE_PATTERN_H_ 1
40#if !defined(BEGIN_NAMESPACE)
41#define BEGIN_NAMESPACE(x) namespace x {
42#define END_NAMESPACE(x) }
69 Iterator(
const IntervalList::const_iterator& beg,
70 const IntervalList::const_iterator& end_,
int p)
78 printf(
"Iterator increased to %d current limit %d last? %s %s\n",
94 printf(
"Iterator::operator!=() compares %p with %p, returns %s \n",
110 IntervalList::const_iterator a =
list.begin();
111 IntervalList::const_iterator b =
list.end();
121 for(IntervalList::const_iterator i =
list.begin();
122 i !=
list.end(); ++i)
123 result += i->hi- i->lo;
142 void add(
int nRanges,
const int (*range)[2]);
144 void save(FILE *f)
const;
152 return ranges[col].size();
157 return bis.noOfBasisFuncs;
160 int sizeTotal()
const;
Code for setting up basis functions starting from shells.
const Column & operator[](int column) const
Definition sparse_pattern.h:146
std::vector< Interval > IntervalList
Definition sparse_pattern.h:60
~SparsePattern()
Definition sparse_pattern.h:136
const BasisInfoStruct & bis
Definition sparse_pattern.h:129
int getColumnSize(int col) const
returns the number of stored elements for specified column.
Definition sparse_pattern.h:151
int size() const
Returns the dimension of the pattern.
Definition sparse_pattern.h:156
SparsePattern(const BasisInfoStruct &bis_)
Definition sparse_pattern.h:132
Column * ranges
Definition sparse_pattern.h:130
Definition grid_matrix.h:42
void setupShellMap(const BasisInfoStruct &bis, int *shellMap, int *aoMap)
Definition sparse_pattern.cc:446
#define END_NAMESPACE(x)
Definition sparse_pattern.h:42
#define BEGIN_NAMESPACE(x)
Definition sparse_pattern.h:41
Definition basisinfo.h:112
Definition sparse_pattern.h:66
bool operator!=(const Iterator &other) const
Definition sparse_pattern.h:91
Iterator & operator++()
Definition sparse_pattern.h:74
int pos
Definition sparse_pattern.h:68
IntervalList::const_iterator current
Definition sparse_pattern.h:67
int operator*() const
Definition sparse_pattern.h:99
Iterator(const IntervalList::const_iterator &beg, const IntervalList::const_iterator &end_, int p)
Definition sparse_pattern.h:69
IntervalList::const_iterator end
Definition sparse_pattern.h:67
const Interval * operator->() const
Definition sparse_pattern.h:103
Definition sparse_pattern.h:61
void addIntervals(int nIntervals, int(*intervals)[2])
Definition sparse_pattern.cc:101
Iterator end() const
Definition sparse_pattern.h:115
Iterator begin() const
Definition sparse_pattern.h:109
int size() const
Definition sparse_pattern.h:119
IntervalList list
Definition sparse_pattern.h:62
void addInterval(int lo, int hi)
Add interval { i: lo <= i < hi } to the list.
Definition sparse_pattern.cc:46
ranges are upper-exclusive: involve i: lo <= i < hi.
Definition sparse_pattern.h:56
int hi
Definition sparse_pattern.h:57
Interval(int l_, int h_)
Definition sparse_pattern.h:58
int lo
Definition sparse_pattern.h:57