From b11be82ec194f8ca30efe1ca3e9a82202dd35d73 Mon Sep 17 00:00:00 2001 From: koldo Date: Wed, 15 Jul 2020 07:56:03 +0000 Subject: [PATCH] ScatterDraw: Hopefully fixed warnings reported by Pradip git-svn-id: svn://ultimatepp.org/upp/trunk@14683 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ScatterDraw/DataSource.cpp | 2 +- uppsrc/ScatterDraw/DataSource.h | 58 +++++++++++++++---------------- uppsrc/ScatterDraw/Equation.cpp | 4 +-- uppsrc/ScatterDraw/Equation.h | 12 +++---- 4 files changed, 37 insertions(+), 39 deletions(-) diff --git a/uppsrc/ScatterDraw/DataSource.cpp b/uppsrc/ScatterDraw/DataSource.cpp index 30d8ab3cf..77acc3fa6 100644 --- a/uppsrc/ScatterDraw/DataSource.cpp +++ b/uppsrc/ScatterDraw/DataSource.cpp @@ -10,7 +10,7 @@ double DataSource::Min(Getdatafun getdata, int64& id) { for (int64 i = 0; i < GetCount(); ++i) { double d = Membercall(getdata)(i); if (!IsNull(d) && minVal > d) { - minVal = d; + minVal = d; id = i; } } diff --git a/uppsrc/ScatterDraw/DataSource.h b/uppsrc/ScatterDraw/DataSource.h index 4d5b1b5c9..11228ac14 100644 --- a/uppsrc/ScatterDraw/DataSource.h +++ b/uppsrc/ScatterDraw/DataSource.h @@ -343,14 +343,14 @@ protected: class CArray : public DataSource { private: - double *yData, *xData, *zData; + const double *yData, *xData, *zData; int64 numData; double x0, deltaX; public: - CArray(double *_yData, int _numData, double _x0, double _deltaX) : yData(_yData), numData(_numData), x0(_x0), deltaX(_deltaX) {xData = NULL;} - CArray(double *_yData, double *_xData, int _numData) : yData(_yData), xData(_xData), numData(_numData) {zData = nullptr; x0 = deltaX = 0;} - CArray(double *_yData, double *_xData, double *_zData, int _numData) : yData(_yData), xData(_xData), zData(_zData), numData(_numData) {x0 = deltaX = 0;} + CArray(const double *_yData, int _numData, double _x0, double _deltaX) : yData(_yData), numData(_numData), x0(_x0), deltaX(_deltaX) {xData = NULL;} + CArray(const double *_yData, const double *_xData, int _numData) : yData(_yData), xData(_xData), numData(_numData) {zData = nullptr; x0 = deltaX = 0;} + CArray(const double *_yData, const double *_xData, const double *_zData, int _numData) : yData(_yData), xData(_xData), zData(_zData), numData(_numData) {x0 = deltaX = 0;} virtual inline double y(int64 id) {return yData[ptrdiff_t(id)];} virtual inline double x(int64 id) {return xData ? xData[ptrdiff_t(id)] : id*deltaX + x0;} virtual double znFixed(int n, int64 id); @@ -360,18 +360,18 @@ public: class EigenVector : public DataSource { private: - Eigen::VectorXd *yData, *xData, *zData; + const Eigen::VectorXd *yData, *xData, *zData; double x0, deltaX; public: - EigenVector(Eigen::VectorXd &_yData, double _x0, double _deltaX) : yData(&_yData), x0(_x0), deltaX(_deltaX) {xData = nullptr;} - EigenVector(Eigen::VectorXd &_yData, Eigen::VectorXd &_xData) : yData(&_yData), xData(&_xData) {zData = nullptr; x0 = deltaX = 0;} - EigenVector(Eigen::VectorXd &_yData, Eigen::VectorXd &_xData, Eigen::VectorXd &_zData) : yData(&_yData), xData(&_xData), zData(&_zData) {x0 = deltaX = 0;} - virtual inline double y(int64 id) {return (*yData)(id);} - virtual inline double x(int64 id) {return xData ? (*xData)(id) : id*deltaX + x0;} + EigenVector(const Eigen::VectorXd &_yData, double _x0, double _deltaX) : yData(&_yData), x0(_x0), deltaX(_deltaX) {xData = nullptr;} + EigenVector(const Eigen::VectorXd &_yData, const Eigen::VectorXd &_xData) : yData(&_yData), xData(&_xData) {zData = nullptr; x0 = deltaX = 0;} + EigenVector(const Eigen::VectorXd &_yData, const Eigen::VectorXd &_xData, const Eigen::VectorXd &_zData) : yData(&_yData), xData(&_xData), zData(&_zData) {x0 = deltaX = 0;} + virtual inline double y(int64 id) {return (*yData)(Eigen::Index(id));} + virtual inline double x(int64 id) {return xData ? (*xData)(Eigen::Index(id)) : id*deltaX + x0;} virtual double znFixed(int n, int64 id) { if (n == 0) - return (*zData)(id); + return (*zData)(Eigen::Index(id)); NEVER(); return Null; } @@ -382,13 +382,13 @@ public: template class VectorY : public DataSource { private: - Vector *yData; + const Vector *yData; double x0, deltaX; public: VectorY() : yData(0), x0(0), deltaX(0) {} - VectorY(Vector &_yData, double _x0, double _deltaX) {Init(_yData, _x0, _deltaX);} - void Init(Vector &_yData, double _x0, double _deltaX) { + VectorY(const Vector &_yData, double _x0, double _deltaX) {Init(_yData, _x0, _deltaX);} + void Init(const Vector &_yData, double _x0, double _deltaX) { this->yData = &_yData; this->x0 = _x0; this->deltaX = _deltaX; @@ -404,13 +404,13 @@ public: template class ArrayY : public DataSource { private: - Upp::Array *yData = 0; + const Upp::Array *yData = 0; double x0 = 0, deltaX = 0; public: ArrayY() {} - ArrayY(Upp::Array &_yData, double _x0, double _deltaX) {Init(_yData, _x0, _deltaX);} - void Init(Upp::Array &_yData, double _x0, double _deltaX) { + ArrayY(const Upp::Array &_yData, double _x0, double _deltaX) {Init(_yData, _x0, _deltaX);} + void Init(const Upp::Array &_yData, double _x0, double _deltaX) { this->yData = &_yData; this->x0 = _x0; this->deltaX = _deltaX; @@ -426,7 +426,7 @@ public: template class VectorVectorY : public DataSource { private: - Vector > *data = 0; + const Vector > *data = 0; bool useRows = true; int idx = 0, idy = 1; Vector idsx, idsy, idsFixed; @@ -435,13 +435,13 @@ private: public: VectorVectorY() {} - VectorVectorY(Vector > &_data, int _idx, int _idy, - Vector &_idsx, Vector &_idsy, Vector &_idsFixed, + VectorVectorY(const Vector > &_data, int _idx, int _idy, + const Vector &_idsx, const Vector &_idsy, const Vector &_idsFixed, bool _useRows = true, int _beginData = 0, int _numData = Null) { Init(_data, _idx, _idy, _idsx, _idsy, _idsFixed, _useRows, _beginData, _numData); } - void Init(Vector > &_data, int _idx, int _idy, Vector &_idsx, Vector &_idsy, Vector &_idsFixed, - bool _useRows = true, int _beginData = 0, int _numData = Null) { + void Init(const Vector > &_data, int _idx, int _idy, const Vector &_idsx, const Vector &_idsy, + const Vector &_idsFixed, bool _useRows = true, int _beginData = 0, int _numData = Null) { this->data = &_data; this->useRows = _useRows; @@ -462,7 +462,7 @@ public: this->numData = _data.GetCount() - _beginData; } } - void Init(Vector > &_data, int _idx, int _idy, bool _useRows = true, int _beginData = 0, int _numData = Null) { + void Init(const Vector > &_data, int _idx, int _idy, bool _useRows = true, int _beginData = 0, int _numData = Null) { static Vector idsVoid; Init(_data, _idx, _idy, idsVoid, idsVoid, idsVoid, _useRows, _beginData, _numData); } @@ -541,10 +541,10 @@ public: class ArrayPointf : public DataSource { private: - Upp::Array *data; + const Upp::Array *data; public: - ArrayPointf(Upp::Array &_data) : data(&_data) {} + ArrayPointf(const Upp::Array &_data) : data(&_data) {} virtual inline double y(int64 id) {return (*data)[int(id)].y;} virtual inline double x(int64 id) {return (*data)[int(id)].x;} virtual inline int64 GetCount() const {return data->GetCount();} @@ -553,10 +553,10 @@ public: template class VectorMapXY : public DataSource { private: - VectorMap *data; + const VectorMap *data; public: - VectorMapXY(VectorMap &_data) : data(&_data) {} + VectorMapXY(const VectorMap &_data) : data(&_data) {} virtual inline double y(int64 id) {return (*data)[int(id)];} virtual inline double x(int64 id) {return (*data).GetKey(int(id));} virtual inline int64 GetCount() const {return data->GetCount();} @@ -565,10 +565,10 @@ public: template class ArrayMapXY : public DataSource { private: - ArrayMap *data; + const ArrayMap *data; public: - ArrayMapXY(ArrayMap &_data) : data(&_data) {} + ArrayMapXY(const ArrayMap &_data) : data(&_data) {} virtual inline double y(int64 id) {return (*data)[int(id)];} virtual inline double x(int64 id) {return (*data).GetKey(int(id));} virtual inline int64 GetCount() const {return data->GetCount();} diff --git a/uppsrc/ScatterDraw/Equation.cpp b/uppsrc/ScatterDraw/Equation.cpp index 8c9408d3f..098dc8a71 100644 --- a/uppsrc/ScatterDraw/Equation.cpp +++ b/uppsrc/ScatterDraw/Equation.cpp @@ -45,7 +45,7 @@ ExplicitEquation::FitError ExplicitEquation::Fit(DataSource &serie, double &r2) functor.series = &serie; functor.fSource = this; functor.unknowns = numUnknowns; - functor.datasetLen = serie.GetCount(); + functor.datasetLen = Eigen::Index(serie.GetCount()); NumericalDiff numDiff(functor); LevenbergMarquardt > lm(numDiff); @@ -600,7 +600,7 @@ void Spline::Fit(const double *x, const double *y, int num) { } } -double Spline::f(double x) { +double Spline::f(double x) const { int j; for (j = 0; j < ncoeff; j++) { if (coeff[j].x > x) { diff --git a/uppsrc/ScatterDraw/Equation.h b/uppsrc/ScatterDraw/Equation.h index 7f9cf54d9..e854bdc60 100644 --- a/uppsrc/ScatterDraw/Equation.h +++ b/uppsrc/ScatterDraw/Equation.h @@ -324,8 +324,8 @@ public: class WeibullEquation : public ExplicitEquation { public: - WeibullEquation() {SetCoeff(1, 1, 1); factor = Null;} - WeibullEquation(double k, double lambda) {ASSERT(k > 0); ASSERT(lambda > 0); SetCoeff(k, lambda, 1); factor = Null;} + WeibullEquation() {SetCoeff(1, 1, 1);} + WeibullEquation(double k, double lambda, double factor) {ASSERT(k > 0); ASSERT(lambda > 0); SetCoeff(k, lambda, factor);} double f(double x) { if (x < 0) return 0; @@ -346,9 +346,9 @@ public: virtual void GuessCoeff(DataSource &) {} virtual void _GuessCoeff(DataSource &series) { Vector cumulative = series.CumulativeY(); - double factor = cumulative.Top().y; + double fac = cumulative.Top().y; for (int i = 0; i < cumulative.GetCount(); ++i) - cumulative[i].y /= factor; + cumulative[i].y /= fac; VectorPointf data(cumulative); WeibullCumulativeEquation weibullCumulative; ExplicitEquation::FitError error = weibullCumulative.Fit(data); @@ -364,8 +364,6 @@ public: } FitError Fit(DataSource &series) {double dummy; return Fit(series, dummy);} void SetDegree(int ) {NEVER();} -private: - double factor; }; class NormalEquation : public ExplicitEquation { @@ -426,7 +424,7 @@ public: void Fit(const Vector &x, const Vector &y) {Fit(x.begin(), y.begin(), x.GetCount());} void Fit(const Eigen::VectorXd &x, const Eigen::VectorXd &y) {Fit(x.data(), y.data(), int(x.size()));} void Fit(const double *x, const double *y, int n); - double f(double x); + double f(double x) const; private: struct Coeff {double a, b, c, d, x;};