diff --git a/.gitignore b/.gitignore index 0ea3d3f92b974e57fbe8dc1a2f45355c690c9152..a43aa8a9f7c5ef7ea5e75bba6e789ca87ad41efd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,11 +4,13 @@ .settings obj bin +lib core* *~ *.pyc *.so *.so* +*.o .pylintrc .metadata .idea @@ -16,3 +18,9 @@ core* .nse_depinfo software oldsrc +spltest +test_freespline +test_inverse +test_multipoly +test_periodicspline +test_spline diff --git a/Makefile b/Makefile index 939dd05736ae8d95a863f66a4f7c50ddec3bc0f7..39ff6457db8fc3bb5e3a9fb3aaf7bb066d04acfe 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,6 @@ RANLIB = ranlib OPTIM = -O2 INCLUDE = -I. - CXXFLAGS += -std=c++11 -fPIC -D_REENTRANT $(DEBUG) $(OPTIM) $(WARN) $(INCLUDE) CFLAGS = $(CXXFLAGS) PROJECTHOME = . @@ -56,9 +55,9 @@ SHLIB_SUFFIX = so # release numbers for libraries # - LIBVERSION = 1 - LIBRELEASE = 1 - LIBSUBRELEASE = 1 + LIBVERSION = 2 + LIBRELEASE = 0 + LIBSUBRELEASE = 0 # LIBRARY = $(BASELIBNAME).a @@ -82,7 +81,7 @@ OBJS = periodicspline.o spline.o multipolynomial.o interpolator.o ######################################################################################## # compiler warnings -WARN = -Wall -Wextra -Wno-deprecated -Woverloaded-virtual -Wsign-promo -Wshadow +WARN = -Wall -Wextra -Wdeprecated -Woverloaded-virtual -Wsign-promo -Wshadow #WARN += -Weffc++ -Wold-style-cast -Wuninitialized -Wmissing-braces -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wswitch-default -Wswitch-enum -Winit-self -Wundef -Wmissing-field-initializers -Winline WARN+= -pedantic -Wno-long-long # test with mysql due to long long variables! ######################################################################################## diff --git a/interpolator.cpp b/interpolator.cpp index dee53a6634f1746f8c5029854f0aae5e3e89b30e..447832a4184a661a6611f2b0b15861f6f952a231 100644 --- a/interpolator.cpp +++ b/interpolator.cpp @@ -83,7 +83,7 @@ bool Interpolator::bracket(double goal,double initial,double tol, double& xlow, } -double Interpolator::solve(double goal,double x1,double x2,double tol,unsigned int maxiter) throw (std::range_error) +double Interpolator::solve(double goal,double x1,double x2,double tol,unsigned int maxiter) { double fl,fh,xl,xh,del,f,rtf,dx; fl = goal - evaluate(x1); diff --git a/interpolator.h b/interpolator.h index d2dbae40c0c69a28421d33fe46505deb782cb026..92a0f6c0cc9f8bbaea420c14e2d7aa8db34fdb65 100644 --- a/interpolator.h +++ b/interpolator.h @@ -48,7 +48,7 @@ public: * @return interpolated value y=f(x) * @exception std::range_error */ - virtual double evaluate (double in_val ) throw (std::range_error)=0; + virtual double evaluate (double in_val )=0; /** @@ -67,7 +67,7 @@ public: * @param in_val * @exception std::range_error */ - virtual doubleVector evaluate (doubleVector in_val ) throw(std::range_error)=0; + virtual doubleVector evaluate (doubleVector in_val )=0; /** * returns the existence filed of y=f(x). It is assumed the f(x) has values for all @@ -106,7 +106,7 @@ public: * @exception std::range_error initial range does not bracket a solution */ - double solve(double goal,double xlow,double xhigh,double tol,unsigned int maxiter=100) throw (std::range_error); + double solve(double goal,double xlow,double xhigh,double tol,unsigned int maxiter=100); /** diff --git a/multipolynomial.cpp b/multipolynomial.cpp index a6432bf2d2cd36dd732e4b5e471f2220b57f416e..a792a919b24d31b36d447f8ccd00a9857ff6ed84 100644 --- a/multipolynomial.cpp +++ b/multipolynomial.cpp @@ -80,7 +80,7 @@ multiPolynomial::~multiPolynomial ( ) delete [] range; } -double multiPolynomial::evaluate(double v) throw (std::range_error) +double multiPolynomial::evaluate(double v) { if ( v < _min || v > _max ) throw std::range_error("input value out of range"); //find the correct polynomial to use @@ -106,7 +106,7 @@ double multiPolynomial::evaluate(double v) throw (std::range_error) return p; } -doubleVector multiPolynomial::evaluate (doubleVector in_val ) throw(std::range_error) +doubleVector multiPolynomial::evaluate (doubleVector in_val ) { //simplicistic implementation. Should make better use of the indexing doubleVector outval; diff --git a/multipolynomial.h b/multipolynomial.h index 7c509c64cc628779f8b3d9607ea68ef7f7581105..56d6e06e6aae4ce30df8f729cdf0d02657c36416 100644 --- a/multipolynomial.h +++ b/multipolynomial.h @@ -68,7 +68,7 @@ public: * @exception lenght_error wrong number of polynomial (>=1) * @exception range_error at least one input data is outside the [min,max] range */ - double evaluate(double in_val) throw (std::range_error); + double evaluate(double in_val); /** * estimate the value of the inverse iterpolator x=g(y) @@ -86,7 +86,7 @@ public: * @param in_val doubleVector of input values * @exception range_error: at least one input data is outside the [min,max] range */ - doubleVector evaluate (doubleVector in_val ) throw(std::range_error); + doubleVector evaluate (doubleVector in_val ); protected: double* range; /**< auxiliary struct to search the polynomial to use */ diff --git a/periodicspline.cpp b/periodicspline.cpp index 4765ae9417063eab2d38014f1110b517e7319523..6da6d8d5e826e9409ac7bbb65243b77770d7588b 100644 --- a/periodicspline.cpp +++ b/periodicspline.cpp @@ -201,7 +201,7 @@ void periodicSpline::get_base_points (doubleVector& xvalues, doubleVector& yvalu return; } -double periodicSpline::evaluate (double v ) throw(std::range_error) +double periodicSpline::evaluate (double v ) { int klo,khi,k; @@ -220,7 +220,7 @@ double periodicSpline::evaluate (double v ) throw(std::range_error) return( ( ( ( a[klo] * delta) + b[klo] ) * delta + c[klo] ) * delta + y_base[klo]); } -doubleVector periodicSpline::evaluate (doubleVector in_val ) throw(std::range_error) +doubleVector periodicSpline::evaluate (doubleVector in_val ) { //simplicistic implementation. Should make better use of the indexing doubleVector outval; diff --git a/periodicspline.h b/periodicspline.h index 8218419d6928b63540c7ceac67c7a79d20895fd2..f3b2f04b2f952558c43b308c8f89b3eea3634526 100644 --- a/periodicspline.h +++ b/periodicspline.h @@ -75,7 +75,7 @@ public: * @param in_val input value * @exception range_error input value is outside the [min,max] range */ - double evaluate(double in_val) throw (std::range_error); + double evaluate(double in_val); /** * calculate the interpolated value v[]=f(in_val[]). Vector version @@ -83,7 +83,7 @@ public: * @param in_val doubleVector of input values * @exception range_error at least one input data is outside the [min,max] range */ - doubleVector evaluate (doubleVector in_val ) throw(std::range_error); + doubleVector evaluate (doubleVector in_val ); protected: diff --git a/spline.cpp b/spline.cpp index 624818ff17905461a5e2b6cba4a914b5d3b7028f..fb49d68e28ecf1c2b6490a38c67dddd89071b0ab 100644 --- a/spline.cpp +++ b/spline.cpp @@ -156,7 +156,7 @@ void Spline::get_base_points (doubleVector& xvalues, doubleVector& yvalues ) con return; } -double Spline::evaluate (double v ) throw(std::range_error) +double Spline::evaluate (double v ) { int klo,khi,k; double h,b,a; @@ -176,7 +176,7 @@ double Spline::evaluate (double v ) throw(std::range_error) return a*y_base[klo]+b*y_base[khi]+((a*a*a-a)*y2[klo]+(b*b*b-b)*y2[khi])*(h*h)/6.0; } -doubleVector Spline::evaluate (doubleVector in_val ) throw(std::range_error) +doubleVector Spline::evaluate (doubleVector in_val ) { //simplicistic implementation. Should make better use of the indexing doubleVector outval; diff --git a/spline.h b/spline.h index 34e28dfd0be83434ed379d1aef2f880371eb7c40..0779819bce64e8b47caae463ac54be0a0a882790 100644 --- a/spline.h +++ b/spline.h @@ -72,7 +72,7 @@ public: * @param in_val input value * @exception range_error input value is outside the [min,max] range */ - double evaluate(double in_val) throw (std::range_error); + double evaluate(double in_val); /** * calculate the interpolated value v[]=f(in_val[]). Vector version @@ -80,7 +80,7 @@ public: * @param in_val doubleVector of input values * @exception range_error at least one input data is outside the [min,max] range */ - doubleVector evaluate (doubleVector in_val ) throw(std::range_error); + doubleVector evaluate (doubleVector in_val ); protected: