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