Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:48:22

0001 #ifndef WORKSPACE_H
0002 #define WORKSPACE_H
0003 
0004 /**
0005  * @file Workspace.h
0006  * @author Bryan BERTHOU (SPhN / CEA Saclay)
0007  * @date 22 January 2016
0008  * @version 1.0
0009  */
0010 
0011 #include <stddef.h>
0012 #include <vector>
0013 
0014 namespace NumA {
0015 
0016 /**
0017  * @class Workspace
0018  *
0019  * @brief
0020  */
0021 
0022 
0023 class Workspace {
0024 public:
0025     size_t m_limit;
0026     size_t m_size;
0027     size_t m_nrmax;
0028     size_t m_i;
0029     size_t m_maximum_level;
0030     std::vector<double> m_alist;
0031     std::vector<double> m_blist;
0032     std::vector<double> m_rlist;
0033     std::vector<double> m_elist;
0034     std::vector<size_t> m_order;
0035     std::vector<size_t> m_level;
0036 
0037     Workspace(double limit);
0038     virtual ~Workspace();
0039 
0040     void initialise(double a, double b);
0041 
0042     void set_initial_result(double result, double error);
0043 
0044     void retrieve(double &a, double &b, double &r, double &e);
0045 
0046     void update(double a1, double b1, double area1, double error1, double a2,
0047             double b2, double area2, double error2);
0048 
0049     void qpsrt();
0050 
0051     int large_interval();
0052 
0053     int increase_nrmax();
0054 
0055     void reset_nrmax();
0056 
0057     double sum_results();
0058 };
0059 
0060 } // namespace NumA
0061 
0062 #endif /* WORKSPACE_H */