23 #ifndef FUNCTIONFROMPOINTSR_T_H 24 #define FUNCTIONFROMPOINTSR_T_H 29 #include <boost/python/list.hpp> 40 typedef std::map<double,T> value_map;
41 typedef typename value_map::iterator iterator;
42 typedef typename value_map::const_iterator const_iterator;
43 typedef typename value_map::const_reverse_iterator const_reverse_iterator;
47 T
Valor(
const double &)
const;
48 std::vector<T>
Valores(
const std::vector<double> &)
const;
49 T operator()(
const double &z)
const 51 std::vector<T> operator()(
const std::vector<double> &zs)
const 54 const_iterator
begin(
void)
const 55 {
return points.begin(); }
57 const_reverse_iterator
rbegin(
void)
const 58 {
return points.rbegin(); }
60 const_iterator
end(
void)
const 61 {
return points.end(); }
63 const_reverse_iterator
rend(
void)
const 64 {
return points.rend(); }
67 {
return points.size(); }
70 {
return points.empty(); }
71 void insert(
const double &x,
const T &y);
81 if(points.empty())
return retval;
82 const_iterator j= points.upper_bound(z);
89 const double x0= (*i).first;
90 const T y0= (*i).second;
91 const double x1= (*j).first;
92 const T y1= (*j).second;
93 const T a= (y1-y0)/(x1-x0);
103 const size_t sz= zs.size();
104 std::vector<T> retval(sz);
105 if(points.empty())
return retval;
106 for(
size_t i= 0;i<sz;i++)
107 retval[i]=
Valor(zs[i]);
118 std::ostream &operator<<(std::ostream &os, const FunctionFromPointsR_T<T> <)
122 typename FunctionFromPointsR_T<T>::const_iterator i= lt.begin();
123 os <<
"x= " << (*i).first
124 <<
" y= " << (*i).second;
126 for(;i!=lt.
end();i++)
127 os << std::endl <<
"x= " << (*i).first
128 <<
" y= " << (*i).second;
const_reverse_iterator rend(void) const
Return an iterator to the beginning of the point container.
Definition: FunctionFromPointsR_T.h:63
std::vector< T > Valores(const std::vector< double > &) const
Return los valores que corresponden a las abcisas z.
Definition: FunctionFromPointsR_T.h:101
size_t size(void) const
Return the number of points that define the function.
Definition: FunctionFromPointsR_T.h:66
function from R to T defined on a set of points.
Definition: FunctionFromPointsR_T.h:37
const_iterator end(void) const
Return an iterator to the end of the point container.
Definition: FunctionFromPointsR_T.h:60
void insert(const double &x, const T &y)
Inserts the pair (x,y) as a point of the function.
Definition: FunctionFromPointsR_T.h:113
const_reverse_iterator rbegin(void) const
Return an reverse iterator to the end of the point container.
Definition: FunctionFromPointsR_T.h:57
const_iterator begin(void) const
Return an iterator to the beginning of the point container.
Definition: FunctionFromPointsR_T.h:54
T Valor(const double &) const
Return el valor que corresponde a la abcisa z.
Definition: FunctionFromPointsR_T.h:78
size_t empty(void) const
Return true if there are no points.
Definition: FunctionFromPointsR_T.h:69