File indexing completed on 2026-06-02 08:48:22
0001 #ifndef WORKSPACE_H
0002 #define WORKSPACE_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <stddef.h>
0012 #include <vector>
0013
0014 namespace NumA {
0015
0016
0017
0018
0019
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 }
0061
0062 #endif