60 this->points_.insert(std::pair<std::vector<Real>,
int>(point,loc));
61 this->weights_.push_back(weight);
66 return this->weights_.size();
71 accuracy = this->accuracy_;
76 std::vector<Real>&
weights)
const {
77 points.resize(this->weights_.size());
78 weights.resize(this->weights_.size());
79 typename std::map<std::vector<Real>,
int>::const_iterator it;
80 for (it=(this->points_).begin(); it!=(this->points_).end();it++) {
81 points[it->second] = it->first;
82 weights[it->second] = (this->weights_)[it->second];
88 return this->dimension_;
93 return (this->points_).begin();
98 return (this->points_).end();
101 template <
class Real>
103 std::vector<Real> point, Real weight) {
104 (this->points_).insert(it,std::pair<std::vector<Real>,
int>(point,(
int)(this->points_).size()));
105 (this->weights_).push_back(weight);
108 template <
class Real>
113 template <
class Real>
115 return (this->weights_)[node];
118 template <
class Real>
120 return (this->weights_)[(this->points_)[point]];
123 template <
class Real>
127 typename std::map<std::vector<Real>,
int>::iterator it;
128 typename std::map<std::vector<Real>,
int>::iterator it2;
131 int loc = this->points_.size();
134 for ( it2=rule.
begin(); it2!=rule.
end(); it2++ ) {
135 it = (this->points_).find(it2->first);
136 if ( it != (this->points_).end() ) {
137 (this->weights_)[it->second] += alpha*rule.
getWeight(it2->second);
140 (this->points_).insert(std::pair<std::vector<Real>,
int>(it2->first,loc));
141 (this->weights_).push_back(alpha*rule.
getWeight(it2->second));
148 template <
class Real>
151 typename std::vector<Real>::iterator it;
152 for (it=weights_.begin(); it!=weights_.end(); it++) {
155 for (it=weights_.begin(); it!=weights_.end(); it++) {
virtual std::vector< Real > getNode(typename std::map< std::vector< Real >, int >::iterator it)
const double weights[4][5]
virtual void getCubature(std::vector< std::vector< Real > > &cubPoints, std::vector< Real > &cubWeights) const
virtual void insert(typename std::map< std::vector< Real >, int >::iterator it, std::vector< Real > point, Real weight)
virtual int getDimension() const
virtual void getAccuracy(std::vector< int > &accuracy) const
std::vector< Real > weights_
virtual void update(Real alpha, Quadrature< Real > &rule)
virtual std::map< std::vector< Real >, int >::iterator end()
void addPointAndWeight(std::vector< Real > point, Real weight, int loc)
std::map< std::vector< Real >, int > points_
Quadrature(int dimension=1)
virtual Real getWeight(int node)
std::vector< int > accuracy_
virtual int getNumPoints() const
virtual std::map< std::vector< Real >, int >::iterator begin()