tintegrator.h - numeric - C++ library with numerical algorithms
 (HTM) git clone git://src.adamsgaard.dk/numeric
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
       tintegrator.h (1555B)
       ---
            1 #ifndef INTEGRATOR_H_
            2 #define INTEGRATOR_H_
            3 
            4 #include <string>
            5 #include "header.h"
            6 
            7 class Integral {
            8 
            9   private:
           10 
           11     // Input function (maybe to be transformed)
           12     Floattype (*f_in)(const Floattype);
           13 
           14     // Function to be evaluated (pointer to function)
           15     Floattype (*f)(const Floattype);
           16 
           17     // Integral limits
           18     Floattype low; // Lower
           19     Floattype high; // Upper
           20 
           21     // Accuracy requirement values
           22     const Floattype acc_pres; // Absolute
           23     const Floattype eps; // Relative
           24 
           25     // Number of recursions
           26     Lengthtype nrec;
           27 
           28     // Adaptive integrator function to be
           29     // called recursively
           30     Floattype adapt(const Floattype a,
           31                     const Floattype b,
           32                     const Floattype acc,
           33                     const Floattype f2,
           34                     const Floattype f3);
           35 
           36     // Result of integral
           37     Floattype res;
           38 
           39     // Size of error
           40     Floattype err;
           41 
           42     // Functions for variable transformations 
           43     // when one or both limits are infinite
           44     Floattype infinf(const Floattype t); // a=inf
           45     Floattype fininf(const Floattype t); // b=inf
           46     Floattype inffin(const Floattype t); // a=inf,b=inf
           47 
           48 
           49   public:
           50 
           51     // Constructor
           52     Integral(Floattype (*function)(const Floattype),
           53              const Floattype lower_limit,
           54              const Floattype upper_limit,
           55              const Floattype absolute_accuracy,
           56              const Floattype relative_accuracy);
           57 
           58     // Return value of result
           59     Floattype result();
           60 
           61     // Return number of recursions taken
           62     Lengthtype recursions();
           63 
           64     // Print results and statistics
           65     void show(const std::string function_description);
           66 };
           67 
           68 #endif