include/adapt01.hpp
00001 /* adapt01.hpp
00002  * 
00003  * Structures for the adaptive quadrature routines.
00004  */
00005 
00006 #ifndef MULTIQUAD_ADAPT01_HPP
00007 #define MULTIQUAD_ADAPT01_HPP
00008 
00013 template<typename FP>
00014 struct errdata 
00015 {
00016     FP *rawerr, *resabs, *resasc;
00017 };
00018 
00022 template<typename FP>
00023 struct region
00024 {
00025     FP *a, *b;  // endpoints
00026     FP *result;
00027     unsigned int dim;
00028 };
00029 
00033 template<typename FP>
00034 struct gtr_abs 
00035 {
00036     bool operator()(const errdata<FP> e1, const errdata<FP> e2)
00037     {   
00038         return *(e1.rawerr) > *(e2.rawerr);
00039     }
00040 };
00041 
00045 template<typename FP>
00046 struct gtr_rel 
00047 {
00048     bool operator()(const errdata<FP> e1, const errdata<FP> e2)
00049     {   
00050         return (*(e1.rawerr) / *(e1.resabs)) > (*(e2.rawerr) / *(e2.resabs));
00051     }
00052 };
00053 
00071 #endif // MULTIQUAD_ADAPT01_HPP
 All Classes Functions Variables