From db8e338e520648813463a21abc15086e10c2bf41 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Thu, 23 Feb 2012 21:24:53 +0000 Subject: [PATCH] Fixed size_t issues in CVodesIntegrator --- src/numerics/CVodesIntegrator.cpp | 17 ++++++++--------- src/numerics/CVodesIntegrator.h | 12 ++++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/numerics/CVodesIntegrator.cpp b/src/numerics/CVodesIntegrator.cpp index 137ff5a6b..19c1ac720 100644 --- a/src/numerics/CVodesIntegrator.cpp +++ b/src/numerics/CVodesIntegrator.cpp @@ -170,7 +170,7 @@ double* CVodesIntegrator::solution() return NV_DATA_S(nv(m_y)); } -void CVodesIntegrator::setTolerances(double reltol, int n, double* abstol) +void CVodesIntegrator::setTolerances(double reltol, size_t n, double* abstol) { m_itol = CV_SV; m_nabs = n; @@ -180,7 +180,7 @@ void CVodesIntegrator::setTolerances(double reltol, int n, double* abstol) } m_abstol = reinterpret_cast(N_VNew_Serial(n)); } - for (int i=0; i= m_neq) { + if (k >= m_neq) { throw CVodesErr("sensitivity: k out of range ("+int2str(p)+")"); } - if (p < 0 || p >= m_np) { + if (p >= m_np) { throw CVodesErr("sensitivity: p out of range ("+int2str(p)+")"); } return NV_Ith_S(m_yS[p],k); diff --git a/src/numerics/CVodesIntegrator.h b/src/numerics/CVodesIntegrator.h index 5a83cc006..352b394ba 100644 --- a/src/numerics/CVodesIntegrator.h +++ b/src/numerics/CVodesIntegrator.h @@ -48,7 +48,7 @@ public: CVodesIntegrator(); virtual ~CVodesIntegrator(); - virtual void setTolerances(double reltol, int n, double* abstol); + virtual void setTolerances(double reltol, size_t n, double* abstol); virtual void setTolerances(double reltol, double abstol); virtual void setSensitivityTolerances(double reltol, double abstol); virtual void setProblemType(int probtype); @@ -77,13 +77,13 @@ public: virtual int nSensParams() { return m_np; } - virtual double sensitivity(int k, int p); + virtual double sensitivity(size_t k, size_t p); private: void sensInit(double t0, FuncEval& func); - int m_neq; + size_t m_neq; void* m_cvode_mem; double m_t0; void* m_y, *m_abstol; @@ -95,12 +95,12 @@ private: double m_reltol; double m_abstols; double m_reltolsens, m_abstolsens; - int m_nabs; + size_t m_nabs; double m_hmax, m_hmin; int m_maxsteps; FuncData* m_fdata; N_Vector* m_yS; - int m_np; + size_t m_np; int m_mupper, m_mlower; }; @@ -108,7 +108,7 @@ private: #else -#error No sundials! +#error No sundials! #endif