diff --git a/OndselSolver/ASMTAnimationParameters.cpp b/OndselSolver/ASMTAnimationParameters.cpp index 2fd9e8b..625272f 100644 --- a/OndselSolver/ASMTAnimationParameters.cpp +++ b/OndselSolver/ASMTAnimationParameters.cpp @@ -18,19 +18,19 @@ void MbD::ASMTAnimationParameters::parseASMT(std::vector& lines) auto leadingTabs = lines[0].substr(0, pos); assert(lines[0] == (leadingTabs + "nframe")); lines.erase(lines.begin()); - nframe = readInt(lines[0]); + nframe = readSize_t(lines[0]); lines.erase(lines.begin()); assert(lines[0] == (leadingTabs + "icurrent")); lines.erase(lines.begin()); - icurrent = readInt(lines[0]); + icurrent = readSize_t(lines[0]); lines.erase(lines.begin()); assert(lines[0] == (leadingTabs + "istart")); lines.erase(lines.begin()); - istart = readInt(lines[0]); + istart = readSize_t(lines[0]); lines.erase(lines.begin()); assert(lines[0] == (leadingTabs + "iend")); lines.erase(lines.begin()); - iend = readInt(lines[0]); + iend = readSize_t(lines[0]); lines.erase(lines.begin()); assert(lines[0] == (leadingTabs + "isForward")); lines.erase(lines.begin()); @@ -38,7 +38,7 @@ void MbD::ASMTAnimationParameters::parseASMT(std::vector& lines) lines.erase(lines.begin()); assert(lines[0] == (leadingTabs + "framesPerSecond")); lines.erase(lines.begin()); - framesPerSecond = readInt(lines[0]); + framesPerSecond = readSize_t(lines[0]); lines.erase(lines.begin()); } @@ -47,15 +47,15 @@ void MbD::ASMTAnimationParameters::storeOnLevel(std::ofstream& os, size_t level) { storeOnLevelString(os, level, "AnimationParameters"); storeOnLevelString(os, level + 1, "nframe"); - storeOnLevelInt(os, level + 2, nframe); + storeOnLevelSize_t(os, level + 2, nframe); storeOnLevelString(os, level + 1, "icurrent"); - storeOnLevelInt(os, level + 2, icurrent); + storeOnLevelSize_t(os, level + 2, icurrent); storeOnLevelString(os, level + 1, "istart"); - storeOnLevelInt(os, level + 2, istart); + storeOnLevelSize_t(os, level + 2, istart); storeOnLevelString(os, level + 1, "iend"); - storeOnLevelInt(os, level + 2, iend); + storeOnLevelSize_t(os, level + 2, iend); storeOnLevelString(os, level + 1, "isForward"); storeOnLevelBool(os, level + 2, isForward); storeOnLevelString(os, level + 1, "framesPerSecond"); - storeOnLevelInt(os, level + 2, framesPerSecond); + storeOnLevelSize_t(os, level + 2, framesPerSecond); } diff --git a/OndselSolver/ASMTAssembly.cpp b/OndselSolver/ASMTAssembly.cpp index 00dc9e0..840e6f8 100644 --- a/OndselSolver/ASMTAssembly.cpp +++ b/OndselSolver/ASMTAssembly.cpp @@ -440,7 +440,7 @@ void MbD::ASMTAssembly::runFile(const char* fileName) void MbD::ASMTAssembly::runDraggingTest() { auto assembly = ASMTAssembly::assemblyFromFile("../testapp/dragCrankSlider.asmt"); - auto dragPart = assembly->parts->at(0); + auto& dragPart = assembly->parts->at(0); auto dragParts = std::make_shared>>(); dragParts->push_back(dragPart); assembly->runPreDrag(); //Do this before first drag @@ -709,7 +709,7 @@ void MbD::ASMTAssembly::readMotions(std::vector& lines) } -void MbD::ASMTAssembly::readGeneralConstraintSets(std::vector& lines) +void MbD::ASMTAssembly::readGeneralConstraintSets(std::vector& lines) const { assert(lines[0] == "\t\tGeneralConstraintSets"); lines.erase(lines.begin()); @@ -938,12 +938,12 @@ void MbD::ASMTAssembly::calcCharacteristicDimensions() this->mbdUnits = std::make_shared(1.0, 1.0, 1.0, 1.0); //for debug } -double MbD::ASMTAssembly::calcCharacteristicTime() +double MbD::ASMTAssembly::calcCharacteristicTime() const { return std::abs(simulationParameters->hout); } -double MbD::ASMTAssembly::calcCharacteristicMass() +double MbD::ASMTAssembly::calcCharacteristicMass() const { auto n = parts->size(); double sumOfSquares = 0.0; @@ -957,7 +957,7 @@ double MbD::ASMTAssembly::calcCharacteristicMass() return unitMass; } -double MbD::ASMTAssembly::calcCharacteristicLength() +double MbD::ASMTAssembly::calcCharacteristicLength() const { auto markerMap = this->markerMap(); auto lengths = std::make_shared>(); @@ -975,7 +975,7 @@ double MbD::ASMTAssembly::calcCharacteristicLength() return unitLength; } -std::shared_ptr>> MbD::ASMTAssembly::connectorList() +std::shared_ptr>> MbD::ASMTAssembly::connectorList() const { auto list = std::make_shared>>(); list->insert(list->end(), joints->begin(), joints->end()); @@ -985,7 +985,7 @@ std::shared_ptr>> MbD::ASMTAssembly::con return list; } -std::shared_ptr>> MbD::ASMTAssembly::markerMap() +std::shared_ptr>> MbD::ASMTAssembly::markerMap() const { auto answer = std::make_shared>>(); for (auto& refPoint : *refPoints) { @@ -1109,7 +1109,7 @@ void MbD::ASMTAssembly::runPreDrag() } } -void MbD::ASMTAssembly::runDragStep(std::shared_ptr>> dragParts) +void MbD::ASMTAssembly::runDragStep(std::shared_ptr>> dragParts) const { auto dragMbDParts = std::make_shared>>(); for (auto& dragPart : *dragParts) { @@ -1146,7 +1146,7 @@ void MbD::ASMTAssembly::initprincipalMassMarker() //principalMassMarker->rotationMatrix = FullMatrix>::identitysptr(3); } -std::shared_ptr MbD::ASMTAssembly::spatialContainerAt(std::shared_ptr self, std::string& longname) +std::shared_ptr MbD::ASMTAssembly::spatialContainerAt(std::shared_ptr self, std::string& longname) const { if ((self->fullName("")) == longname) return self; auto it = std::find_if(parts->begin(), parts->end(), [&](const std::shared_ptr& prt) { @@ -1156,7 +1156,7 @@ std::shared_ptr MbD::ASMTAssembly::spatialContainerAt(std: return part; } -std::shared_ptr MbD::ASMTAssembly::markerAt(std::string& longname) +std::shared_ptr MbD::ASMTAssembly::markerAt(std::string& longname) const { for (auto& refPoint : *refPoints) { for (auto& marker : *refPoint->markers) { @@ -1173,7 +1173,7 @@ std::shared_ptr MbD::ASMTAssembly::markerAt(std::string& longname) return nullptr; } -std::shared_ptr MbD::ASMTAssembly::jointAt(std::string& longname) +std::shared_ptr MbD::ASMTAssembly::jointAt(std::string& longname) const { auto it = std::find_if(joints->begin(), joints->end(), [&](const std::shared_ptr& jt) { return jt->fullName("") == longname; @@ -1182,7 +1182,7 @@ std::shared_ptr MbD::ASMTAssembly::jointAt(std::string& longname) return joint; } -std::shared_ptr MbD::ASMTAssembly::motionAt(std::string& longname) +std::shared_ptr MbD::ASMTAssembly::motionAt(std::string& longname) const { auto it = std::find_if(motions->begin(), motions->end(), [&](const std::shared_ptr& mt) { return mt->fullName("") == longname; @@ -1191,7 +1191,7 @@ std::shared_ptr MbD::ASMTAssembly::motionAt(std::string& longname) return motion; } -std::shared_ptr MbD::ASMTAssembly::forceTorqueAt(std::string& longname) +std::shared_ptr MbD::ASMTAssembly::forceTorqueAt(std::string& longname) const { auto it = std::find_if(forcesTorques->begin(), forcesTorques->end(), [&](const std::shared_ptr& mt) { return mt->fullName("") == longname; @@ -1210,7 +1210,7 @@ FColDsptr MbD::ASMTAssembly::omeOpO() return std::make_shared>(3, 0.0); } -std::shared_ptr MbD::ASMTAssembly::geoTime() +std::shared_ptr MbD::ASMTAssembly::geoTime() const { return asmtTime; } @@ -1276,7 +1276,7 @@ void MbD::ASMTAssembly::setSimulationParameters(std::shared_ptrowner = this; } -std::shared_ptr MbD::ASMTAssembly::partNamed(std::string partName) +std::shared_ptr MbD::ASMTAssembly::partNamed(std::string partName) const { auto it = std::find_if(parts->begin(), parts->end(), [&](const std::shared_ptr& prt) { return prt->fullName("") == partName; @@ -1285,7 +1285,7 @@ std::shared_ptr MbD::ASMTAssembly::partNamed(std::string partName) return part; } -std::shared_ptr MbD::ASMTAssembly::partPartialNamed(std::string partialName) +std::shared_ptr MbD::ASMTAssembly::partPartialNamed(std::string partialName) const { auto it = std::find_if(parts->begin(), parts->end(), [&](const std::shared_ptr& prt) { auto fullName = prt->fullName(""); diff --git a/OndselSolver/ASMTAssembly.h b/OndselSolver/ASMTAssembly.h index 2c13679..60e2631 100644 --- a/OndselSolver/ASMTAssembly.h +++ b/OndselSolver/ASMTAssembly.h @@ -54,7 +54,7 @@ namespace MbD { void readConstraintSets(std::vector& lines); void readJoints(std::vector& lines); void readMotions(std::vector& lines); - void readGeneralConstraintSets(std::vector& lines); + void readGeneralConstraintSets(std::vector& lines) const; void readForcesTorques(std::vector& lines); void readConstantGravity(std::vector& lines); void readSimulationParameters(std::vector& lines); @@ -73,11 +73,11 @@ namespace MbD { void preMbDrun(std::shared_ptr mbdSys); void postMbDrun(); void calcCharacteristicDimensions(); - double calcCharacteristicTime(); - double calcCharacteristicMass(); - double calcCharacteristicLength(); - std::shared_ptr>> connectorList(); - std::shared_ptr>>markerMap(); + double calcCharacteristicTime() const; + double calcCharacteristicMass() const; + double calcCharacteristicLength() const; + std::shared_ptr>> connectorList() const; + std::shared_ptr>>markerMap() const; void deleteMbD() override; void createMbD(std::shared_ptr mbdSys, std::shared_ptr mbdUnits) override; void outputFile(std::string filename); @@ -87,18 +87,18 @@ namespace MbD { void solve(); void runPreDrag(); - void runDragStep(std::shared_ptr>> dragParts); + void runDragStep(std::shared_ptr>> dragParts) const; void runPostDrag(); void runKINEMATIC(); void initprincipalMassMarker(); - std::shared_ptr spatialContainerAt(std::shared_ptr self, std::string& longname); - std::shared_ptr markerAt(std::string& longname); - std::shared_ptr jointAt(std::string& longname); - std::shared_ptr motionAt(std::string& longname); - std::shared_ptr forceTorqueAt(std::string& longname); + std::shared_ptr spatialContainerAt(std::shared_ptr self, std::string& longname) const; + std::shared_ptr markerAt(std::string& longname) const; + std::shared_ptr jointAt(std::string& longname) const; + std::shared_ptr motionAt(std::string& longname) const; + std::shared_ptr forceTorqueAt(std::string& longname) const; FColDsptr vOcmO() override; FColDsptr omeOpO() override; - std::shared_ptr geoTime(); + std::shared_ptr geoTime() const; void updateFromMbD() override; void compareResults(AnalysisType type) override; void outputResults(AnalysisType type) override; @@ -107,8 +107,8 @@ namespace MbD { void addMotion(std::shared_ptr motion); void setConstantGravity(std::shared_ptr constantGravity); void setSimulationParameters(std::shared_ptr simulationParameters); - std::shared_ptr partNamed(std::string partName); - std::shared_ptr partPartialNamed(std::string partialName); + std::shared_ptr partNamed(std::string partName) const; + std::shared_ptr partPartialNamed(std::string partialName) const; void storeOnLevelNotes(std::ofstream& os, size_t level); void storeOnLevelParts(std::ofstream& os, size_t level); void storeOnLevelKinematicIJs(std::ofstream& os, size_t level); diff --git a/OndselSolver/ASMTItem.cpp b/OndselSolver/ASMTItem.cpp index 4cbf03f..8b075a3 100644 --- a/OndselSolver/ASMTItem.cpp +++ b/OndselSolver/ASMTItem.cpp @@ -110,6 +110,14 @@ int MbD::ASMTItem::readInt(std::string& line) return i; } +size_t MbD::ASMTItem::readSize_t(std::string& line) +{ + std::istringstream iss(line); + size_t i; + iss >> i; + return i; +} + bool MbD::ASMTItem::readBool(std::string& line) { if (line.find("true") != std::string::npos) @@ -231,6 +239,12 @@ void MbD::ASMTItem::storeOnLevelInt(std::ofstream& os, size_t level, int i) os << i << std::endl; } +void MbD::ASMTItem::storeOnLevelSize_t(std::ofstream& os, size_t level, size_t i) +{ + storeOnLevelTabs(os, level); + os << i << std::endl; +} + void MbD::ASMTItem::storeOnLevelBool(std::ofstream& os, size_t level, bool value) { storeOnLevelTabs(os, level); diff --git a/OndselSolver/ASMTItem.h b/OndselSolver/ASMTItem.h index 8dbb145..2567ea9 100644 --- a/OndselSolver/ASMTItem.h +++ b/OndselSolver/ASMTItem.h @@ -36,6 +36,7 @@ namespace MbD { FColDsptr readColumnOfDoubles(std::string& line); double readDouble(std::string& line); int readInt(std::string& line); + size_t readSize_t(std::string& line); bool readBool(std::string& line); std::string readString(std::string& line); void readName(std::vector& lines); @@ -53,6 +54,7 @@ namespace MbD { virtual void storeOnLevelString(std::ofstream& os, size_t level, std::string str); virtual void storeOnLevelDouble(std::ofstream& os, size_t level, double value); virtual void storeOnLevelInt(std::ofstream& os, size_t level, int i); + virtual void storeOnLevelSize_t(std::ofstream& os, size_t level, size_t i); virtual void storeOnLevelBool(std::ofstream& os, size_t level, bool value); //template //void storeOnLevelArray(std::ofstream& os, size_t level, std::vector array); diff --git a/OndselSolver/GEFullMat.cpp b/OndselSolver/GEFullMat.cpp index b551049..89600de 100644 --- a/OndselSolver/GEFullMat.cpp +++ b/OndselSolver/GEFullMat.cpp @@ -21,7 +21,7 @@ void GEFullMat::backSubstituteIntoDU() { answerX = std::make_shared>(n); answerX->at(n - 1) = rightHandSideB->at(m - 1) / matrixA->at(m - 1)->at(n - 1); - for (int i = n - 2; i >= 0; i--) //Use int because of decrement + for (int i = (int)n - 2; i >= 0; i--) //Use int because of decrement { auto rowi = matrixA->at(i); double sum = answerX->at(n) * rowi->at(n); diff --git a/OndselSolver/GESpMatFullPv.cpp b/OndselSolver/GESpMatFullPv.cpp index 3eab30b..c21bd5d 100644 --- a/OndselSolver/GESpMatFullPv.cpp +++ b/OndselSolver/GESpMatFullPv.cpp @@ -118,7 +118,7 @@ void GESpMatFullPv::backSubstituteIntoDU() auto jn = colOrder->at(n); answerX->at(jn) = rightHandSideB->at(m) / matrixA->at(m)->at(jn); //auto rhsZeroElement = this->rhsZeroElement(); - for (int i = n - 2; i >= 0; i--) //Use int because of decrement + for (int i = (int)n - 2; i >= 0; i--) //Use int because of decrement { auto& rowi = matrixA->at(i); sum = 0.0; // rhsZeroElement copy. diff --git a/OndselSolver/GESpMatParPv.cpp b/OndselSolver/GESpMatParPv.cpp index 62c2cb7..558bb80 100644 --- a/OndselSolver/GESpMatParPv.cpp +++ b/OndselSolver/GESpMatParPv.cpp @@ -54,7 +54,7 @@ void GESpMatParPv::backSubstituteIntoDU() answerX = std::make_shared>(m); answerX->at(n - 1) = rightHandSideB->at(m - 1) / matrixA->at(m - 1)->at(n - 1); //auto rhsZeroElement = this->rhsZeroElement(); - for (int i = n - 2; i >= 0; i--) //Use int because of decrement + for (int i = (int)n - 2; i >= 0; i--) //Use int because of decrement { auto rowi = matrixA->at(i); sum = 0.0; // rhsZeroElement copy. diff --git a/OndselSolver/GESpMatParPvMarko.cpp b/OndselSolver/GESpMatParPvMarko.cpp index 8d075af..d2f3832 100644 --- a/OndselSolver/GESpMatParPvMarko.cpp +++ b/OndselSolver/GESpMatParPvMarko.cpp @@ -26,7 +26,7 @@ void GESpMatParPvMarko::doPivoting(size_t p) SpRowDsptr spRowi; rowPositionsOfNonZerosInPivotColumn->clear(); auto lookForFirstNonZeroInPivotCol = true; - i = m - 1; + i = (int)m - 1; while (lookForFirstNonZeroInPivotCol) { spRowi = matrixA->at(i); if (spRowi->find(p) == spRowi->end()) { diff --git a/OndselSolver/GESpMatParPvMarkoFast.cpp b/OndselSolver/GESpMatParPvMarkoFast.cpp index d8fd26d..421839c 100644 --- a/OndselSolver/GESpMatParPvMarkoFast.cpp +++ b/OndselSolver/GESpMatParPvMarkoFast.cpp @@ -57,7 +57,7 @@ void GESpMatParPvMarkoFast::doPivoting(size_t p) SpRowDsptr spRowi; rowPositionsOfNonZerosInPivotColumn->clear(); auto lookForFirstNonZeroInPivotCol = true; - i = m - 1; + i = (int)m - 1; while (lookForFirstNonZeroInPivotCol) { spRowi = matrixA->at(i); if (spRowi->find(p) == spRowi->end()) { diff --git a/OndselSolver/GESpMatParPvPrecise.cpp b/OndselSolver/GESpMatParPvPrecise.cpp index bad1894..bd10eb1 100644 --- a/OndselSolver/GESpMatParPvPrecise.cpp +++ b/OndselSolver/GESpMatParPvPrecise.cpp @@ -26,7 +26,7 @@ void GESpMatParPvPrecise::doPivoting(size_t p) SpRowDsptr spRowi; rowPositionsOfNonZerosInPivotColumn->clear(); auto lookForFirstNonZeroInPivotCol = true; - i = m - 1; + i = (int)m - 1; while (lookForFirstNonZeroInPivotCol) { spRowi = matrixA->at(i); if (spRowi->find(p) == spRowi->end()) { diff --git a/OndselSolver/GeneralSpline.cpp b/OndselSolver/GeneralSpline.cpp index 0579eb0..76a0bdf 100644 --- a/OndselSolver/GeneralSpline.cpp +++ b/OndselSolver/GeneralSpline.cpp @@ -36,7 +36,7 @@ void MbD::GeneralSpline::arguments(Symsptr args) { auto array = args->getTerms(); auto& arg = array->at(0); - size_t order = array->at(1)->getValue(); + size_t order = (size_t)array->at(1)->getValue(); size_t n = (array->size() - 2) / 2; auto xarray = std::make_shared>(n); auto yarray = std::make_shared>(n); @@ -136,7 +136,7 @@ void MbD::GeneralSpline::computeDerivatives() } } -bool MbD::GeneralSpline::isCyclic() +bool MbD::GeneralSpline::isCyclic() const { return (ys->size() > 3) && (ys->front() == ys->back()); } @@ -149,9 +149,9 @@ double MbD::GeneralSpline::derivativeAt(size_t n, double xxx) calcIndexAndDeltaFor(xxx); auto& derivsi = derivs->at(index); double sum = 0.0; - for (int j = degree; j >= n + 1; j--) //Use int because of decrement + for (int j = (int)degree; j >= n + 1; j--) //Use int because of decrement { - sum = (sum + derivsi->at(j - 1)) * delta / (j - n); + sum = (sum + derivsi->at((size_t)j - 1)) * delta / (j - n); } return derivsi->at(n - 1) + sum; } @@ -209,7 +209,7 @@ void MbD::GeneralSpline::searchIndexFromto(size_t first, size_t last) index = first; } else { - auto middle = std::floor((first + last) / 2); + auto middle = (size_t)std::floor((first + last) / 2); if (xvalue < xs->at(middle)) { searchIndexFromto(first, middle); } @@ -231,9 +231,9 @@ double MbD::GeneralSpline::y(double xxx) calcIndexAndDeltaFor(xxx); auto& derivsi = derivs->at(index); double sum = 0.0; - for (int j = degree; j >= 1; j--) //Use int because of decrement + for (int j = (int)degree; j >= 1; j--) //Use int because of decrement { - sum = (sum + derivsi->at(j - 1)) * delta / j; + sum = (sum + derivsi->at((size_t)j - 1)) * delta / j; } return ys->at(index) + sum; } diff --git a/OndselSolver/GeneralSpline.h b/OndselSolver/GeneralSpline.h index c1b0d37..eab2f0c 100644 --- a/OndselSolver/GeneralSpline.h +++ b/OndselSolver/GeneralSpline.h @@ -22,7 +22,7 @@ namespace MbD { void arguments(Symsptr args) override; void initxdegreexsys(Symsptr arg, size_t order, std::shared_ptr> xarr, std::shared_ptr> yarr); void computeDerivatives(); - bool isCyclic(); + bool isCyclic() const; double derivativeAt(size_t derivativeOrder, double arg); void calcIndexAndDeltaFor(double xxx); void calcCyclicIndexAndDelta(); diff --git a/OndselSolver/LDUFullMat.cpp b/OndselSolver/LDUFullMat.cpp index b29f5b6..8f91a28 100644 --- a/OndselSolver/LDUFullMat.cpp +++ b/OndselSolver/LDUFullMat.cpp @@ -156,11 +156,11 @@ void LDUFullMat::backSubstituteIntoDU() //| rowi sum | answerX = std::make_shared>(n); answerX->at(n - 1) = rightHandSideB->at(m - 1) / matrixA->at(m - 1)->at(n - 1); - for (int i = n - 2; i >= 0; i--) //Use int because of decrement + for (int i = (int)n - 2; i >= 0; i--) //Use int because of decrement { auto& rowi = matrixA->at(i); double sum = answerX->at((size_t)n - 1) * rowi->at((size_t)n - 1); - for (size_t j = i + 1; j < n - 1; j++) + for (int j = i + 1; j < n - 1; j++) { sum += answerX->at(j) * rowi->at(j); } diff --git a/OndselSolver/LDUSpMat.cpp b/OndselSolver/LDUSpMat.cpp index 4cb2407..b4371fd 100644 --- a/OndselSolver/LDUSpMat.cpp +++ b/OndselSolver/LDUSpMat.cpp @@ -46,7 +46,7 @@ void LDUSpMat::forwardSubstituteIntoL() vectorc->at(0) = rightHandSideB->at(0); for (size_t i = 1; i < n; i++) { - auto rowi = matrixA->at(i); + auto& rowi = matrixA->at(i); double sum = 0.0; for (auto const& keyValue : *rowi) { size_t j = keyValue.first; @@ -69,9 +69,9 @@ void LDUSpMat::backSubstituteIntoDU() } answerX = std::make_shared>(m); answerX->at(n - 1) = rightHandSideB->at(m - 1); - for (int i = n - 2; i >= 0; i--) //Use int because of decrement + for (int i = (int)n - 2; i >= 0; i--) //Use int because of decrement { - auto rowi = matrixU->at(i); + auto& rowi = matrixU->at(i); sum = 0.0; for (auto const& keyValue : *rowi) { auto j = keyValue.first; diff --git a/OndselSolver/LDUSpMatParPvMarko.cpp b/OndselSolver/LDUSpMatParPvMarko.cpp index bc5692c..a6dc16d 100644 --- a/OndselSolver/LDUSpMatParPvMarko.cpp +++ b/OndselSolver/LDUSpMatParPvMarko.cpp @@ -24,7 +24,7 @@ void LDUSpMatParPvMarko::doPivoting(size_t p) SpRowDsptr spRowi; rowPositionsOfNonZerosInPivotColumn->clear(); auto lookForFirstNonZeroInPivotCol = true; - i = m - 1; + i = (int)m - 1; while (lookForFirstNonZeroInPivotCol) { spRowi = matrixA->at(i); if (spRowi->find(p) == spRowi->end()) { diff --git a/OndselSolver/LDUSpMatParPvPrecise.cpp b/OndselSolver/LDUSpMatParPvPrecise.cpp index c3ae451..6cd7996 100644 --- a/OndselSolver/LDUSpMatParPvPrecise.cpp +++ b/OndselSolver/LDUSpMatParPvPrecise.cpp @@ -24,7 +24,7 @@ void LDUSpMatParPvPrecise::doPivoting(size_t p) SpRowDsptr spRowi; rowPositionsOfNonZerosInPivotColumn->clear(); auto lookForFirstNonZeroInPivotCol = true; - i = m - 1; + i = (int)m - 1; while (lookForFirstNonZeroInPivotCol) { spRowi = matrixA->at(i); if (spRowi->find(p) == spRowi->end()) { diff --git a/OndselSolver/Numeric.h b/OndselSolver/Numeric.h index f1d6382..ee3165e 100644 --- a/OndselSolver/Numeric.h +++ b/OndselSolver/Numeric.h @@ -8,6 +8,7 @@ #pragma once #include +#include #include #include "MbDMath.h" diff --git a/OndselSolver/SymbolicParser.cpp b/OndselSolver/SymbolicParser.cpp index 6217022..6860f95 100644 --- a/OndselSolver/SymbolicParser.cpp +++ b/OndselSolver/SymbolicParser.cpp @@ -64,7 +64,7 @@ void MbD::SymbolicParser::parseString(std::string expr) } source = std::make_shared(expr); hereChar = source->get(); - prevEnd = SIZE_MAX; + prevEnd = -1; scanToken(); expression(); if (tokenType != "end") expected("Nothing more"); @@ -480,12 +480,12 @@ bool MbD::SymbolicParser::peekForTypevalue(std::string type, std::string symbol) return false; } -void MbD::SymbolicParser::notify(std::string msg) +void MbD::SymbolicParser::notify(std::string msg) const { notifyat(msg, mark); } -void MbD::SymbolicParser::notifyat(std::string, int) +void MbD::SymbolicParser::notifyat(std::string, int) const { //"Temporarily reset source in order to get full contents" auto p = source->tellg(); @@ -501,7 +501,7 @@ void MbD::SymbolicParser::notifyat(std::string, int) //raiseSignal } -void MbD::SymbolicParser::combineStackTo(size_t pos) +void MbD::SymbolicParser::combineStackTo(size_t pos) const { auto args = std::make_shared>(); while (stack->size() > pos) { @@ -515,7 +515,7 @@ void MbD::SymbolicParser::combineStackTo(size_t pos) stack->push(sum); } -bool MbD::SymbolicParser::isNextLineTag(char c) +bool MbD::SymbolicParser::isNextLineTag(char c) const { //Skip tag in asmt file auto pos = source->tellg(); diff --git a/OndselSolver/SymbolicParser.h b/OndselSolver/SymbolicParser.h index b0d6219..a38c29b 100644 --- a/OndselSolver/SymbolicParser.h +++ b/OndselSolver/SymbolicParser.h @@ -49,16 +49,16 @@ namespace MbD { bool expected(std::string msg); bool signedNumber(); bool peekForTypevalue(std::string type, std::string symbol); - void notify(std::string msg); - void notifyat(std::string msg, int mrk); - void combineStackTo(size_t pos); - bool isNextLineTag(char c); + void notify(std::string msg) const; + void notifyat(std::string msg, int mrk) const; + void combineStackTo(size_t pos) const; + bool isNextLineTag(char c) const; ASMTItem* owner = nullptr; std::shared_ptr> variables; std::shared_ptr> geoIJs; std::shared_ptr units; - int mark = SIZE_MAX, prevEnd = SIZE_MAX; + int mark = -1, prevEnd = -1; char hereChar = '\0'; std::string token, tokenType; double tokenNum = -1.0e100;