Sheplyakov Alexei wrote:
+class lanczos_coeffs +{ + public: + lanczos_coeffs(); + bool sufficiently_accurate(int digits); + int get_order() const { return current_vector->size(); } + numeric calc_lanczos_A(const numeric &) const; + private: + static std::vector<numeric> coeffs_12; // Use in case Digits <= 20 + static std::vector<numeric> coeffs_30; // Use in case Digits <= 50 + static std::vector<numeric> coeffs_60; // Use in case Digits <= 100 + static std::vector<numeric> coeffs_120; // Use in case Digits <= 200
With such a code one need to break ABI (add extra class members) in order to increase the precision. May be replacing all these with static std::vector<std::vector<numeric> > would be better solution?
But if the extra class members are of a class that is not intended to be used by any user of the library and cannot be used (at least without messing around), then it is okay. Chris was careful enough to add the class to file numeric.cpp, not to any of our header files. So it is not something anybody can use when linking his/her apps. Hence, there isn't anything that can break when the library is later upgraded underneath applications using it. Regards -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>