From 9f6275e0e495663a7a2d10b4b8677e3b18ea839d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 23 Sep 2006 22:02:21 +0000 Subject: [PATCH] fixed build for gcc4, from eNigMa tested also for gcc2.95 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18914 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/qoca/Jamfile | 1 + src/kits/interface/qoca/KeyIterator.hh | 2 +- src/kits/interface/qoca/QcBiMap.H | 18 +++++++------ src/kits/interface/qoca/QcBiMap.ch | 24 ++++++++--------- src/kits/interface/qoca/QcBiMap.hh | 26 +++++++++++-------- src/kits/interface/qoca/QcCassSolver.hh | 4 ++- src/kits/interface/qoca/QcDefines.hh | 3 ++- src/kits/interface/qoca/QcDelLinEqTableau.cc | 2 +- src/kits/interface/qoca/QcException.hh | 2 +- src/kits/interface/qoca/QcIneqSolverBase.H | 22 +++++++++++----- src/kits/interface/qoca/QcIneqSolverBase.hh | 9 +++---- src/kits/interface/qoca/QcLinEqSystem.hh | 2 +- src/kits/interface/qoca/QcLinEqTableau.hh | 4 +-- src/kits/interface/qoca/QcLinInEqTableau.cc | 2 +- .../interface/qoca/QcOrigRowStateVector.cc | 2 +- .../interface/qoca/QcQuasiRowColStateVector.H | 4 ++- src/kits/interface/qoca/QcSolver.H | 4 +-- src/kits/interface/qoca/QcSolver.cc | 4 +-- src/kits/interface/qoca/QcSolver.hh | 4 +-- src/kits/interface/qoca/QcSparseCoeff.hh | 3 ++- src/kits/interface/qoca/QcSparseMatrix.hh | 2 +- src/kits/interface/qoca/QcState.hh | 4 +-- src/kits/interface/qoca/QcStateVector.hh | 3 ++- src/kits/interface/qoca/QcUnsortedListSet.hh | 17 ++++++------ src/kits/interface/qoca/QcUtility.cc | 9 +++++++ src/kits/interface/qoca/QcUtility.hh | 16 ++++++------ 26 files changed, 112 insertions(+), 81 deletions(-) create mode 100644 src/kits/interface/qoca/QcUtility.cc diff --git a/src/kits/interface/qoca/Jamfile b/src/kits/interface/qoca/Jamfile index c98d91c6a4..3b704a68f5 100644 --- a/src/kits/interface/qoca/Jamfile +++ b/src/kits/interface/qoca/Jamfile @@ -47,6 +47,7 @@ SharedLibrary libqoca.so : QcSparseMatrix.cc QcVarStow.cc QcVariableBiMap.cc + QcUtility.cc : $(TARGET_LIBSTDC++) ; diff --git a/src/kits/interface/qoca/KeyIterator.hh b/src/kits/interface/qoca/KeyIterator.hh index 53f132779d..cd7a8c1ca4 100644 --- a/src/kits/interface/qoca/KeyIterator.hh +++ b/src/kits/interface/qoca/KeyIterator.hh @@ -1,7 +1,7 @@ #ifndef KeyIteratorHH #define KeyIteratorHH -template +template class KeyIterator : public Iterator { diff --git a/src/kits/interface/qoca/QcBiMap.H b/src/kits/interface/qoca/QcBiMap.H index bc374a15f9..b48d3112eb 100644 --- a/src/kits/interface/qoca/QcBiMap.H +++ b/src/kits/interface/qoca/QcBiMap.H @@ -3,12 +3,14 @@ #define QcBiMapDCL #line 1 "QcBiMap.ch" -#include -#include -#include +#include +#include +#include #include "qoca/QcDefines.hh" #include "qoca/KeyIterator.hh" +using namespace std; + /** Bi-directional one-to-one mapping between identifier class and non-negative integers. @@ -24,7 +26,7 @@ -template +template class QcBiMap { @@ -55,11 +57,11 @@ vAssertDeepInvar() const; protected: - typedef map > TIdentifierMap; - typedef vector TIndexMap; + typedef std::map > TIdentifierMap; + typedef std::vector TIndexMap; public: - typedef KeyIterator const_identifier_iterator; + typedef KeyIterator const_identifier_iterator; //-----------------------------------------------------------------------// @@ -117,7 +119,7 @@ Update(const AKey &ident, int index); const_identifier_iterator getIdentifiers_begin() const { - TIdentifierMap::const_iterator i = fIdentifierMap.begin(); + typename TIdentifierMap::const_iterator i = fIdentifierMap.begin(); return const_identifier_iterator (i); } diff --git a/src/kits/interface/qoca/QcBiMap.ch b/src/kits/interface/qoca/QcBiMap.ch index 707b0f1771..052de5d806 100644 --- a/src/kits/interface/qoca/QcBiMap.ch +++ b/src/kits/interface/qoca/QcBiMap.ch @@ -1,7 +1,7 @@ //begin o[d] -#include -#include -#include +#include +#include +#include #include "qoca/QcDefines.hh" #include "qoca/KeyIterator.hh" //end o[d] @@ -46,12 +46,12 @@ assertInvar() const fIndexMap[ i].assertInvar(); if(fIndexMap[ i].isDead()) continue; - TIdentifierMap::const_iterator f = fIdentifierMap.find(fIndexMap[i]); + typename TIdentifierMap::const_iterator f = fIdentifierMap.find(fIndexMap[i]); qcAssertInvar( f != fIdentifierMap.end()); qcAssertInvar( f->second == i); } - for(TIdentifierMap::const_iterator ii = fIdentifierMap.begin(); ii != fIdentifierMap.end(); ii++) + for(typename TIdentifierMap::const_iterator ii = fIdentifierMap.begin(); ii != fIdentifierMap.end(); ii++) { unsigned ix = ii->second; qcAssertInvar( ix < fIndexMap.size()); @@ -80,7 +80,7 @@ protected: typedef vector TIndexMap; public: - typedef KeyIterator const_identifier_iterator; + typedef KeyIterator const_identifier_iterator; //end o[d] //-----------------------------------------------------------------------// @@ -134,11 +134,11 @@ SwapByIndex(int i1, int i2) fIndexMap[ i1] = ident2; fIndexMap[ i2] = ident1; - QcBiMap::TIdentifierMap::iterator it1 = fIdentifierMap.find( ident1); + typename QcBiMap::TIdentifierMap::iterator it1 = fIdentifierMap.find( ident1); qcAssertPost( it1 != fIdentifierMap.end()); it1->second = i2; - QcBiMap::TIdentifierMap::iterator it2 = fIdentifierMap.find( ident2); + typename QcBiMap::TIdentifierMap::iterator it2 = fIdentifierMap.find( ident2); qcAssertPost( it2 != fIdentifierMap.end()); it2->second = i1; } @@ -191,13 +191,13 @@ Update(const AKey &ident, int index) unsigned GetSize() const { return fIdentifierMap.size(); } - bool IdentifierPresent(AKey const &ident) const +bool IdentifierPresent(AKey const &ident) const { return (fIdentifierMap.find(ident) != fIdentifierMap.end()); } const_identifier_iterator getIdentifiers_begin() const { - TIdentifierMap::const_iterator i = fIdentifierMap.begin(); + typename TIdentifierMap::const_iterator i = fIdentifierMap.begin(); return const_identifier_iterator (i); } @@ -220,7 +220,7 @@ Identifier(int index) inline AKey & Identifier(char const *n) { - QcBiMap::TIdentifierMap::iterator iIt = fIdentifierMap.begin(); + typename QcBiMap::TIdentifierMap::iterator iIt = fIdentifierMap.begin(); while(iIt != fIdentifierMap.end()) { @@ -243,7 +243,7 @@ Identifier(char const *n) inline int Index(AKey const &ident) const { - QcBiMap::TIdentifierMap::const_iterator iIt = fIdentifierMap.find( ident); + typename QcBiMap::TIdentifierMap::const_iterator iIt = fIdentifierMap.find( ident); qcAssertPre( iIt != fIdentifierMap.end()); unsigned ix = iIt->second; qcAssertPost( (ix < fIndexMap.size()) diff --git a/src/kits/interface/qoca/QcBiMap.hh b/src/kits/interface/qoca/QcBiMap.hh index 1cb3ef3846..12fe14450c 100644 --- a/src/kits/interface/qoca/QcBiMap.hh +++ b/src/kits/interface/qoca/QcBiMap.hh @@ -7,7 +7,11 @@ #line 21 "QcBiMap.ch" #define TMPL template - +#if __GNUC__ >= 4 + #define TYPENAMEDEF typename +#else + #define TYPENAMEDEF +#endif @@ -23,12 +27,12 @@ QcBiMap::assertInvar() const fIndexMap[ i].assertInvar(); if(fIndexMap[ i].isDead()) continue; - TIdentifierMap::const_iterator f = fIdentifierMap.find(fIndexMap[i]); + TYPENAMEDEF TIdentifierMap::const_iterator f = fIdentifierMap.find(fIndexMap[i]); qcAssertInvar( f != fIdentifierMap.end()); qcAssertInvar( f->second == i); } - for(TIdentifierMap::const_iterator ii = fIdentifierMap.begin(); ii != fIdentifierMap.end(); ii++) + for(TYPENAMEDEF TIdentifierMap::const_iterator ii = fIdentifierMap.begin(); ii != fIdentifierMap.end(); ii++) { unsigned ix = ii->second; qcAssertInvar( ix < fIndexMap.size()); @@ -99,11 +103,11 @@ QcBiMap::SwapByIndex(int i1, int i2) fIndexMap[ i1] = ident2; fIndexMap[ i2] = ident1; - QcBiMap::TIdentifierMap::iterator it1 = fIdentifierMap.find( ident1); + TYPENAMEDEF QcBiMap::TIdentifierMap::iterator it1 = fIdentifierMap.find( ident1); qcAssertPost( it1 != fIdentifierMap.end()); it1->second = i2; - QcBiMap::TIdentifierMap::iterator it2 = fIdentifierMap.find( ident2); + TYPENAMEDEF QcBiMap::TIdentifierMap::iterator it2 = fIdentifierMap.find( ident2); qcAssertPost( it2 != fIdentifierMap.end()); it2->second = i1; } @@ -127,8 +131,8 @@ QcBiMap::Update(const AKey &ident, int index) fIndexMap[ index] = ident; // Insert ident->index mapping. - TIdentifierMap::value_type ins (ident, index); - typedef pair insResultT; + TYPENAMEDEF TIdentifierMap::value_type ins (ident, index); + typedef pair insResultT; dbgPre(insResultT insResult =) fIdentifierMap.insert (ins); @@ -159,7 +163,7 @@ TMPL inline AKey & QcBiMap::Identifier(char const *n) { - QcBiMap::TIdentifierMap::iterator iIt = fIdentifierMap.begin(); + TYPENAMEDEF QcBiMap::TIdentifierMap::iterator iIt = fIdentifierMap.begin(); while(iIt != fIdentifierMap.end()) { @@ -179,7 +183,7 @@ TMPL inline int QcBiMap::Index(AKey const &ident) const { - QcBiMap::TIdentifierMap::const_iterator iIt = fIdentifierMap.find( ident); + TYPENAMEDEF QcBiMap::TIdentifierMap::const_iterator iIt = fIdentifierMap.find( ident); qcAssertPre( iIt != fIdentifierMap.end()); unsigned ix = iIt->second; qcAssertPost( (ix < fIndexMap.size()) @@ -194,7 +198,7 @@ TMPL inline int QcBiMap::safeIndex(AKey const &ident) const { - QcBiMap::TIdentifierMap::const_iterator iIt = fIdentifierMap.find( ident); + TYPENAMEDEF QcBiMap::TIdentifierMap::const_iterator iIt = fIdentifierMap.find( ident); if(iIt == fIdentifierMap.end()) return -1; int ix = iIt->second; @@ -217,7 +221,7 @@ QcBiMap::Print(ostream &os) const os << i << " -> " << fIndexMap[i] << endl; os << "Reverse Map:" << endl; - QcBiMap::TIdentifierMap::const_iterator itF; + TYPENAMEDEF QcBiMap::TIdentifierMap::const_iterator itF; for (itF = fIdentifierMap.begin(); itF != fIdentifierMap.end(); ++itF) os << (*itF).first << " -> " << (*itF).second << endl; diff --git a/src/kits/interface/qoca/QcCassSolver.hh b/src/kits/interface/qoca/QcCassSolver.hh index 37bb7ce498..4df7de5cba 100644 --- a/src/kits/interface/qoca/QcCassSolver.hh +++ b/src/kits/interface/qoca/QcCassSolver.hh @@ -27,10 +27,12 @@ #ifndef __QcCassSolverH #define __QcCassSolverH -#include +#include #include "qoca/QcDelLinInEqSystem.hh" #include "qoca/QcCassConstraint.hh" +using namespace std; + class QcCassSolver : public QcDelLinInEqSystem { protected: diff --git a/src/kits/interface/qoca/QcDefines.hh b/src/kits/interface/qoca/QcDefines.hh index 719c196615..4ecb6efdb1 100644 --- a/src/kits/interface/qoca/QcDefines.hh +++ b/src/kits/interface/qoca/QcDefines.hh @@ -173,7 +173,8 @@ ) #ifndef qcNoStream -# include +# include +using namespace std; #endif /* TODO: Maybe use autoconf to detect this. (OTOH, I imagine that diff --git a/src/kits/interface/qoca/QcDelLinEqTableau.cc b/src/kits/interface/qoca/QcDelLinEqTableau.cc index f79f54d0af..f9e6c7d6b2 100644 --- a/src/kits/interface/qoca/QcDelLinEqTableau.cc +++ b/src/kits/interface/qoca/QcDelLinEqTableau.cc @@ -24,7 +24,7 @@ // included with the above copyright notice. // //============================================================================// -#include +#include #include "qoca/QcDefines.hh" #include "qoca/QcDelLinEqTableau.hh" #ifdef qcDenseQuasiInverse diff --git a/src/kits/interface/qoca/QcException.hh b/src/kits/interface/qoca/QcException.hh index d35191d148..76baa117b8 100644 --- a/src/kits/interface/qoca/QcException.hh +++ b/src/kits/interface/qoca/QcException.hh @@ -31,7 +31,7 @@ #include "qoca/QcDefines.hh" #ifndef qcNoStream -#include +#include #endif //#ifdef DEBUG diff --git a/src/kits/interface/qoca/QcIneqSolverBase.H b/src/kits/interface/qoca/QcIneqSolverBase.H index 08352d2988..e108797d41 100644 --- a/src/kits/interface/qoca/QcIneqSolverBase.H +++ b/src/kits/interface/qoca/QcIneqSolverBase.H @@ -1,7 +1,6 @@ // Generated automatically from QcIneqSolverBase.ch by /home/pmoulder/usr/local/bin/ch2xx. #ifndef QcIneqSolverBaseDCL #define QcIneqSolverBaseDCL -#line 1 "QcIneqSolverBase.ch" #include #include @@ -12,11 +11,24 @@ class QcIneqSolverBase public: inline -QcIneqSolverBase(); #line 18 "QcIneqSolverBase.ch" +QcIneqSolverBase() + : QcSolver(), + fSystem() +{ + ; +} + inline -QcIneqSolverBase(unsigned hintNumConstraints, unsigned hintNumVariables); #line 26 "QcIneqSolverBase.ch" +QcIneqSolverBase(unsigned hintNumConstraints, unsigned hintNumVariables) + : QcSolver(), + fSystem( hintNumConstraints, hintNumVariables) +{ + ; +} + + virtual ~QcIneqSolverBase() { } @@ -78,10 +90,8 @@ IsBasic(QcFloat const &v) const virtual bool AddConstraint(QcConstraint &c); -#line 101 "QcIneqSolverBase.ch" virtual bool AddConstraint(QcConstraint &c, QcFloat &hint); -#line 117 "QcIneqSolverBase.ch" virtual void BeginAddConstraint() { @@ -98,10 +108,8 @@ EndAddConstraint() virtual bool ChangeConstraint(QcConstraint &oldc, numT rhs); -#line 143 "QcIneqSolverBase.ch" virtual bool RemoveConstraint(QcConstraint &c); -#line 159 "QcIneqSolverBase.ch" virtual bool Reset() { diff --git a/src/kits/interface/qoca/QcIneqSolverBase.hh b/src/kits/interface/qoca/QcIneqSolverBase.hh index ec34d40cfb..64028f4b87 100644 --- a/src/kits/interface/qoca/QcIneqSolverBase.hh +++ b/src/kits/interface/qoca/QcIneqSolverBase.hh @@ -2,7 +2,6 @@ #include "QcIneqSolverBase.H" #ifndef QcIneqSolverBaseIFN #define QcIneqSolverBaseIFN -#line 1 "QcIneqSolverBase.ch" #include @@ -12,11 +11,12 @@ -inline +/*inline QcIneqSolverBase::QcIneqSolverBase() : QcSolver(), fSystem() { + ; } @@ -25,16 +25,15 @@ QcIneqSolverBase::QcIneqSolverBase(unsigned hintNumConstraints, unsigned hintNum : QcSolver(), fSystem( hintNumConstraints, hintNumVariables) { -} + ; +}*/ -#line 80 "QcIneqSolverBase.ch" //-----------------------------------------------------------------------// // Constraint management methods // //-----------------------------------------------------------------------// -#line 173 "QcIneqSolverBase.ch" /* Local Variables: mode:c++ diff --git a/src/kits/interface/qoca/QcLinEqSystem.hh b/src/kits/interface/qoca/QcLinEqSystem.hh index 383acf97ed..9c58575132 100644 --- a/src/kits/interface/qoca/QcLinEqSystem.hh +++ b/src/kits/interface/qoca/QcLinEqSystem.hh @@ -27,7 +27,7 @@ #ifndef __QcLinEqSystemH #define __QcLinEqSystemH -#include +#include #include "qoca/QcSolver.hh" #include "qoca/QcLinEqTableau.hh" #include "qoca/QcConstraint.hh" diff --git a/src/kits/interface/qoca/QcLinEqTableau.hh b/src/kits/interface/qoca/QcLinEqTableau.hh index bfc3e42680..f1a31599b9 100644 --- a/src/kits/interface/qoca/QcLinEqTableau.hh +++ b/src/kits/interface/qoca/QcLinEqTableau.hh @@ -27,8 +27,8 @@ #ifndef __QcLinEqTableauH #define __QcLinEqTableauH -#include -#include +#include +#include #include "qoca/QcTableau.hh" #include "qoca/QcSparseCoeff.hh" #include "qoca/QcDelCoreTableau.hh" diff --git a/src/kits/interface/qoca/QcLinInEqTableau.cc b/src/kits/interface/qoca/QcLinInEqTableau.cc index ab3ffbb2d2..8ba3cbec66 100644 --- a/src/kits/interface/qoca/QcLinInEqTableau.cc +++ b/src/kits/interface/qoca/QcLinInEqTableau.cc @@ -25,7 +25,7 @@ //============================================================================// #include -#include +#include #include "qoca/QcDefines.hh" #include "qoca/QcLinInEqTableau.hh" #include "qoca/QcConstraintIndexIterator.hh" diff --git a/src/kits/interface/qoca/QcOrigRowStateVector.cc b/src/kits/interface/qoca/QcOrigRowStateVector.cc index fa358d518a..0b7e4c7481 100644 --- a/src/kits/interface/qoca/QcOrigRowStateVector.cc +++ b/src/kits/interface/qoca/QcOrigRowStateVector.cc @@ -113,7 +113,7 @@ QcOrigRowStateVector::virtualAssertLinkageInvar() const { QcOrigRowState const *state = CAST(QcOrigRowState const *, *i); assert( state->fRHS == 0.0); - assert( state->fMRowIndex == i - fStates); + assert( state->fMRowIndex == (i - (QcState const * const *)fStates)); assert( !state->fARowDeleted); } } diff --git a/src/kits/interface/qoca/QcQuasiRowColStateVector.H b/src/kits/interface/qoca/QcQuasiRowColStateVector.H index e496d38091..d9f88eece4 100644 --- a/src/kits/interface/qoca/QcQuasiRowColStateVector.H +++ b/src/kits/interface/qoca/QcQuasiRowColStateVector.H @@ -28,11 +28,13 @@ // included with the above copyright notice. // //============================================================================// -#include +#include #include #include +using namespace std; + class QcQuasiRowColStateVector { public: diff --git a/src/kits/interface/qoca/QcSolver.H b/src/kits/interface/qoca/QcSolver.H index 2528d34a72..4265172987 100644 --- a/src/kits/interface/qoca/QcSolver.H +++ b/src/kits/interface/qoca/QcSolver.H @@ -28,8 +28,8 @@ // included with the above copyright notice. // //============================================================================// -#include -#include +#include +#include #include "qoca/QcConstraint.hh" diff --git a/src/kits/interface/qoca/QcSolver.cc b/src/kits/interface/qoca/QcSolver.cc index 08410f02f9..2e776b9c8f 100644 --- a/src/kits/interface/qoca/QcSolver.cc +++ b/src/kits/interface/qoca/QcSolver.cc @@ -27,8 +27,8 @@ // included with the above copyright notice. // //============================================================================// -#include -#include +#include +#include #include "qoca/QcConstraint.hh" #include diff --git a/src/kits/interface/qoca/QcSolver.hh b/src/kits/interface/qoca/QcSolver.hh index 0d540f2657..86d8e13526 100644 --- a/src/kits/interface/qoca/QcSolver.hh +++ b/src/kits/interface/qoca/QcSolver.hh @@ -29,8 +29,8 @@ // included with the above copyright notice. // //============================================================================// -#include -#include +#include +#include #include "qoca/QcConstraint.hh" diff --git a/src/kits/interface/qoca/QcSparseCoeff.hh b/src/kits/interface/qoca/QcSparseCoeff.hh index d3ef26192f..5a398f0816 100644 --- a/src/kits/interface/qoca/QcSparseCoeff.hh +++ b/src/kits/interface/qoca/QcSparseCoeff.hh @@ -27,7 +27,8 @@ #ifndef __QcSparseCoeffH #define __QcSparseCoeffH -#include +#include +using namespace std; class QcSparseCoeff { diff --git a/src/kits/interface/qoca/QcSparseMatrix.hh b/src/kits/interface/qoca/QcSparseMatrix.hh index 4f470e7335..dd751797c4 100644 --- a/src/kits/interface/qoca/QcSparseMatrix.hh +++ b/src/kits/interface/qoca/QcSparseMatrix.hh @@ -27,7 +27,7 @@ #ifndef __QcSparseMatrixH #define __QcSparseMatrixH -#include +#include #include "qoca/QcDefines.hh" #include "qoca/QcMatrix.hh" #include "qoca/QcSparseMatrixElement.hh" diff --git a/src/kits/interface/qoca/QcState.hh b/src/kits/interface/qoca/QcState.hh index 3d41d75166..52b6c0fb39 100644 --- a/src/kits/interface/qoca/QcState.hh +++ b/src/kits/interface/qoca/QcState.hh @@ -27,7 +27,7 @@ #ifndef __QcStateH #define __QcStateH -#include +#include class QcState { @@ -37,7 +37,7 @@ public: //-----------------------------------------------------------------------// // Utililty functions. // //-----------------------------------------------------------------------// - virtual void Print(ostream &os) = 0; + virtual void Print(std::ostream &os) = 0; }; #endif diff --git a/src/kits/interface/qoca/QcStateVector.hh b/src/kits/interface/qoca/QcStateVector.hh index fd93cb8e77..91cce8a8f0 100644 --- a/src/kits/interface/qoca/QcStateVector.hh +++ b/src/kits/interface/qoca/QcStateVector.hh @@ -27,7 +27,8 @@ #ifndef __QcStateVectorH #define __QcStateVectorH -#include +#include +using namespace std; #include "qoca/QcDefines.hh" #include "qoca/QcState.hh" diff --git a/src/kits/interface/qoca/QcUnsortedListSet.hh b/src/kits/interface/qoca/QcUnsortedListSet.hh index d0c2270cca..a16799ecac 100644 --- a/src/kits/interface/qoca/QcUnsortedListSet.hh +++ b/src/kits/interface/qoca/QcUnsortedListSet.hh @@ -1,7 +1,7 @@ #ifndef __QcUnsortedListSetH #define __QcUnsortedListSetH -#include +#include #if __GNUC__ >= 4 template > @@ -12,8 +12,8 @@ class QcUnsortedListSet { public: typedef T value_type; - typedef value_type* iterator; - typedef value_type const * const_iterator; + typedef typename std::vector::iterator iterator; + typedef typename std::vector::const_iterator const_iterator; typedef value_type& reference; typedef const value_type& const_reference; typedef size_t size_type; @@ -34,11 +34,12 @@ public: { } - iterator begin() { return elements.begin(); } - iterator end() { return elements.end(); } + // TODO: This really shouldn't rely on vector's iterator type being a pointer + iterator begin() { return (iterator)elements.begin(); } + iterator end() { return (iterator)elements.end(); } - iterator abegin() { return elements.begin(); } - iterator aend() { return elements.end(); } + iterator abegin() { return (iterator)elements.begin(); } + iterator aend() { return (iterator)elements.end(); } const_iterator abegin() const { return elements.begin(); } const_iterator aend() const { return elements.end(); } @@ -83,6 +84,6 @@ private: (The reason for using an instance variable is so that we can control the interface.) */ - vector elements; + std::vector elements; }; #endif /* !__QcUnsortedListSetH */ diff --git a/src/kits/interface/qoca/QcUtility.cc b/src/kits/interface/qoca/QcUtility.cc new file mode 100644 index 0000000000..b6634c07f0 --- /dev/null +++ b/src/kits/interface/qoca/QcUtility.cc @@ -0,0 +1,9 @@ +#include + +/* Needed for GCC4, avoids undefined references */ + +double const QcUtility::qcEps; // = _QC_EPS; +double const QcUtility::qcNearEps; // = 9.313225746154785e-10; // 2 ** -30 +double const QcUtility::qcVaguelyNearEps; // = 9.5367431640625e-7; // 2 ** -20 +double const QcUtility::qcMaxZeroVal; // = _QC_EPS * (1 - DBL_EPSILON / 2); + diff --git a/src/kits/interface/qoca/QcUtility.hh b/src/kits/interface/qoca/QcUtility.hh index aba06eec48..d1c2484371 100644 --- a/src/kits/interface/qoca/QcUtility.hh +++ b/src/kits/interface/qoca/QcUtility.hh @@ -60,26 +60,26 @@ public: //-----------------------------------------------------------------------// static bool IsVaguelyZero(numT val) - { return fabs( val) < qcVaguelyNearEps; } + { return fabs( val) < QcUtility::qcVaguelyNearEps; } static bool IsNearZero(numT val) - { return fabs( val) < qcNearEps; } + { return fabs( val) < QcUtility::qcNearEps; } static bool IsZero(double val) - { return fabs( val) < qcEps; } + { return fabs( val) < QcUtility::qcEps; } static bool IsOne(double val) - { return IsZero( val - 1.0); } + { return QcUtility::IsZero( val - 1.0); } static bool IsNegative(numT val) - { return (val <= -qcEps); } + { return (val <= -QcUtility::qcEps); } static bool IsPositive(numT val) - { return (val >= qcEps); } + { return (val >= QcUtility::qcEps); } static double Zeroise(double val) { - return (IsZero( val) + return (QcUtility::IsZero( val) ? 0.0 : val); } @@ -87,7 +87,7 @@ public: #ifndef NDEBUG static bool IsZeroised(double val) { - return (val == 0 || !IsZero( val)); + return (val == 0 || !QcUtility::IsZero( val)); } #endif