Loading Unstructured_mesh/Vector.h +15 −10 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ #include <iostream> #include <initializer_list> #include "InlineArrayOperations.h" #include <array> template <unsigned int Dim, typename Real = double> Loading @@ -13,7 +13,7 @@ class Vector { /** * @brief coordinates */ Real coordinates[Dim] = {}; std::array<Real, Dim> coordinates = {}; public: Vector(){} Loading @@ -27,6 +27,11 @@ public: coordinates[pos] = coord; } std::array<Real, Dim>& getCoordinates() { return coordinates; } Real& operator[](unsigned int pos){ return coordinates[pos]; } Loading @@ -38,7 +43,7 @@ public: Real normEukleid(); inline Real sumOfSquares() { return inlineScalarProduct<Dim, Real>::computation(coordinates, coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), coordinates.data()); } Vector<Dim, Real> operator-(const Vector<Dim, Real>&) const; Loading Loading @@ -119,7 +124,7 @@ Real Vector<Dim, Real>::normEukleid(){ template <unsigned int Dim, typename Real> Vector<Dim, Real> Vector<Dim, Real>::operator -(const Vector<Dim, Real>& v) const { Vector<Dim, Real> res; inlineSubtraction<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -127,7 +132,7 @@ Vector<Dim, Real> Vector<Dim, Real>::operator -(const Vector<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vector<Dim, Real> Vector<Dim, Real>::operator +(const Vector<Dim, Real>& v) const { Vector<Dim, Real> res; inlineAddition<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -135,7 +140,7 @@ Vector<Dim, Real> Vector<Dim, Real>::operator +(const Vector<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vector<Dim, Real> Vector<Dim, Real>::operator *(const Real& x) const { Vector<Dim, Real> res; inlineMultiplication<Dim, Real>::computation(res.coordinates, this->coordinates, x); inlineMultiplication<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), x); return res; } Loading @@ -152,20 +157,20 @@ Vector<Dim, Real> Vector<Dim, Real>::operator /(const Real& x) const { template<unsigned int Dim, typename Real> Real Vector<Dim, Real>::operator*(const Vector &v) { return inlineScalarProduct<Dim, Real>::computation(coordinates, v.coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); } // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vector<Dim, Real>& Vector<Dim, Real>::operator +=(const Vector<Dim, Real>& v){ inlineAddition<Dim, Real>::computation(coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } // Subtracts value of coordinates of another Point template <unsigned int Dim, typename Real> Vector<Dim, Real>& Vector<Dim, Real>::operator -=(const Vector<Dim, Real>& v){ inlineSubtraction<Dim, Real>::computation(coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } Loading @@ -173,7 +178,7 @@ Vector<Dim, Real>& Vector<Dim, Real>::operator -=(const Vector<Dim, Real>& v){ // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vector<Dim, Real>& Vector<Dim, Real>::operator *=(const Real& x){ inlineMultiplication<Dim, Real>::computation(coordinates, x); inlineMultiplication<Dim, Real>::computation(coordinates.data(), x); return *this; } Loading Unstructured_mesh/Vertex.h +14 −10 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ #include <iostream> #include <initializer_list> #include "InlineArrayOperations.h" #include <array> template <unsigned int Dim, typename Real = double> class Vertex { Loading @@ -12,7 +12,7 @@ class Vertex { * @brief coordinates<HR> * coordinates of the vertex in the space */ Real coordinates[Dim] = {}; std::array<Real, Dim> coordinates = {}; public: Vertex(){} Loading @@ -26,6 +26,10 @@ public: coordinates[pos] = coord; } std::array<Real, Dim>& getCoordinates() { return coordinates; } Real& operator[](unsigned int pos){ return coordinates[pos]; } Loading @@ -37,7 +41,7 @@ public: Real normEukleid(); inline Real sumOfSquares() { return inlineScalarProduct<Dim, Real>::computation(coordinates, coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), coordinates.data()); } Vertex<Dim, Real> operator-(const Vertex<Dim, Real>&) const; Loading Loading @@ -105,7 +109,7 @@ Real Vertex<Dim, Real>::normEukleid(){ template <unsigned int Dim, typename Real> Vertex<Dim, Real> Vertex<Dim, Real>::operator -(const Vertex<Dim, Real>& v) const { Vertex<Dim, Real> res; inlineSubtraction<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -113,7 +117,7 @@ Vertex<Dim, Real> Vertex<Dim, Real>::operator -(const Vertex<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vertex<Dim, Real> Vertex<Dim, Real>::operator +(const Vertex<Dim, Real>& v) const { Vertex<Dim, Real> res; inlineAddition<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -121,7 +125,7 @@ Vertex<Dim, Real> Vertex<Dim, Real>::operator +(const Vertex<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vertex<Dim, Real> Vertex<Dim, Real>::operator *(const Real& x) const { Vertex<Dim, Real> res; inlineMultiplication<Dim, Real>::computation(res.coordinates, this->coordinates, x); inlineMultiplication<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), x); return res; } Loading @@ -136,7 +140,7 @@ Vertex<Dim, Real> Vertex<Dim, Real>::operator /(const Real& x) const { template<unsigned int Dim, typename Real> Real Vertex<Dim, Real>::operator*(const Vertex<Dim, Real> &v) { return inlineScalarProduct<Dim, Real>::computation(coordinates, v.coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); } Loading @@ -144,14 +148,14 @@ Real Vertex<Dim, Real>::operator*(const Vertex<Dim, Real> &v) // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vertex<Dim, Real>& Vertex<Dim, Real>::operator +=(const Vertex<Dim, Real>& v){ inlineAddition<Dim, Real>::computation(coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } // Subtracts value of coordinates of another Point template <unsigned int Dim, typename Real> Vertex<Dim, Real>& Vertex<Dim, Real>::operator -=(const Vertex<Dim, Real>& v){ inlineSubtraction<Dim, Real>::computation(coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } Loading @@ -159,7 +163,7 @@ Vertex<Dim, Real>& Vertex<Dim, Real>::operator -=(const Vertex<Dim, Real>& v){ // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vertex<Dim, Real>& Vertex<Dim, Real>::operator *=(const Real& x){ inlineMultiplication<Dim, Real>::computation(coordinates, x); inlineMultiplication<Dim, Real>::computation(coordinates.data(), x); return *this; } Loading Unstructured_mesh/main.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -695,6 +695,9 @@ void testDebug() { ConsoleLogger::writeVar(__LINE__, __FILE__, "r", r, "i", i, "c", c, "list", list, "vec", vec, "b", b, "map", m); ConsoleLogger::writeVar(__LINE__, __FILE__,"---", {5,4,3,2}); DBGVAR(r, i, c, list, vec, b, m); Vertex<7, double> vert; DBGVAR(vert.getCoordinates()); } Loading @@ -710,6 +713,6 @@ int main() //testTemplate(); //UnstructuredMesh<5, size_t, double, 6,5,4> m; //m.ComputeElementMeasures(); testDebug(); //testDebug(); } debug/consolelogger.h +5 −2 Original line number Diff line number Diff line Loading @@ -76,8 +76,11 @@ class ConsoleLogger { template<typename T> static auto _writeWar(const T &list) -> typename std::enable_if<std::is_class< decltype(std::declval<const T&>().begin())>::value && -> typename std::enable_if< !std::is_same< decltype(std::declval<const T&>().begin()), void >::value && !std::is_same<T, std::string>::value >::type { Loading Loading
Unstructured_mesh/Vector.h +15 −10 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ #include <iostream> #include <initializer_list> #include "InlineArrayOperations.h" #include <array> template <unsigned int Dim, typename Real = double> Loading @@ -13,7 +13,7 @@ class Vector { /** * @brief coordinates */ Real coordinates[Dim] = {}; std::array<Real, Dim> coordinates = {}; public: Vector(){} Loading @@ -27,6 +27,11 @@ public: coordinates[pos] = coord; } std::array<Real, Dim>& getCoordinates() { return coordinates; } Real& operator[](unsigned int pos){ return coordinates[pos]; } Loading @@ -38,7 +43,7 @@ public: Real normEukleid(); inline Real sumOfSquares() { return inlineScalarProduct<Dim, Real>::computation(coordinates, coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), coordinates.data()); } Vector<Dim, Real> operator-(const Vector<Dim, Real>&) const; Loading Loading @@ -119,7 +124,7 @@ Real Vector<Dim, Real>::normEukleid(){ template <unsigned int Dim, typename Real> Vector<Dim, Real> Vector<Dim, Real>::operator -(const Vector<Dim, Real>& v) const { Vector<Dim, Real> res; inlineSubtraction<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -127,7 +132,7 @@ Vector<Dim, Real> Vector<Dim, Real>::operator -(const Vector<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vector<Dim, Real> Vector<Dim, Real>::operator +(const Vector<Dim, Real>& v) const { Vector<Dim, Real> res; inlineAddition<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -135,7 +140,7 @@ Vector<Dim, Real> Vector<Dim, Real>::operator +(const Vector<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vector<Dim, Real> Vector<Dim, Real>::operator *(const Real& x) const { Vector<Dim, Real> res; inlineMultiplication<Dim, Real>::computation(res.coordinates, this->coordinates, x); inlineMultiplication<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), x); return res; } Loading @@ -152,20 +157,20 @@ Vector<Dim, Real> Vector<Dim, Real>::operator /(const Real& x) const { template<unsigned int Dim, typename Real> Real Vector<Dim, Real>::operator*(const Vector &v) { return inlineScalarProduct<Dim, Real>::computation(coordinates, v.coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); } // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vector<Dim, Real>& Vector<Dim, Real>::operator +=(const Vector<Dim, Real>& v){ inlineAddition<Dim, Real>::computation(coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } // Subtracts value of coordinates of another Point template <unsigned int Dim, typename Real> Vector<Dim, Real>& Vector<Dim, Real>::operator -=(const Vector<Dim, Real>& v){ inlineSubtraction<Dim, Real>::computation(coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } Loading @@ -173,7 +178,7 @@ Vector<Dim, Real>& Vector<Dim, Real>::operator -=(const Vector<Dim, Real>& v){ // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vector<Dim, Real>& Vector<Dim, Real>::operator *=(const Real& x){ inlineMultiplication<Dim, Real>::computation(coordinates, x); inlineMultiplication<Dim, Real>::computation(coordinates.data(), x); return *this; } Loading
Unstructured_mesh/Vertex.h +14 −10 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ #include <iostream> #include <initializer_list> #include "InlineArrayOperations.h" #include <array> template <unsigned int Dim, typename Real = double> class Vertex { Loading @@ -12,7 +12,7 @@ class Vertex { * @brief coordinates<HR> * coordinates of the vertex in the space */ Real coordinates[Dim] = {}; std::array<Real, Dim> coordinates = {}; public: Vertex(){} Loading @@ -26,6 +26,10 @@ public: coordinates[pos] = coord; } std::array<Real, Dim>& getCoordinates() { return coordinates; } Real& operator[](unsigned int pos){ return coordinates[pos]; } Loading @@ -37,7 +41,7 @@ public: Real normEukleid(); inline Real sumOfSquares() { return inlineScalarProduct<Dim, Real>::computation(coordinates, coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), coordinates.data()); } Vertex<Dim, Real> operator-(const Vertex<Dim, Real>&) const; Loading Loading @@ -105,7 +109,7 @@ Real Vertex<Dim, Real>::normEukleid(){ template <unsigned int Dim, typename Real> Vertex<Dim, Real> Vertex<Dim, Real>::operator -(const Vertex<Dim, Real>& v) const { Vertex<Dim, Real> res; inlineSubtraction<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -113,7 +117,7 @@ Vertex<Dim, Real> Vertex<Dim, Real>::operator -(const Vertex<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vertex<Dim, Real> Vertex<Dim, Real>::operator +(const Vertex<Dim, Real>& v) const { Vertex<Dim, Real> res; inlineAddition<Dim, Real>::computation(res.coordinates, this->coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), v.coordinates.data()); return res; } Loading @@ -121,7 +125,7 @@ Vertex<Dim, Real> Vertex<Dim, Real>::operator +(const Vertex<Dim, Real>& v) cons template <unsigned int Dim, typename Real> Vertex<Dim, Real> Vertex<Dim, Real>::operator *(const Real& x) const { Vertex<Dim, Real> res; inlineMultiplication<Dim, Real>::computation(res.coordinates, this->coordinates, x); inlineMultiplication<Dim, Real>::computation(res.coordinates.data(), this->coordinates.data(), x); return res; } Loading @@ -136,7 +140,7 @@ Vertex<Dim, Real> Vertex<Dim, Real>::operator /(const Real& x) const { template<unsigned int Dim, typename Real> Real Vertex<Dim, Real>::operator*(const Vertex<Dim, Real> &v) { return inlineScalarProduct<Dim, Real>::computation(coordinates, v.coordinates); return inlineScalarProduct<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); } Loading @@ -144,14 +148,14 @@ Real Vertex<Dim, Real>::operator*(const Vertex<Dim, Real> &v) // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vertex<Dim, Real>& Vertex<Dim, Real>::operator +=(const Vertex<Dim, Real>& v){ inlineAddition<Dim, Real>::computation(coordinates, v.coordinates); inlineAddition<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } // Subtracts value of coordinates of another Point template <unsigned int Dim, typename Real> Vertex<Dim, Real>& Vertex<Dim, Real>::operator -=(const Vertex<Dim, Real>& v){ inlineSubtraction<Dim, Real>::computation(coordinates, v.coordinates); inlineSubtraction<Dim, Real>::computation(coordinates.data(), v.coordinates.data()); return *this; } Loading @@ -159,7 +163,7 @@ Vertex<Dim, Real>& Vertex<Dim, Real>::operator -=(const Vertex<Dim, Real>& v){ // Adds value of coordinates of another Point template <unsigned int Dim, typename Real> Vertex<Dim, Real>& Vertex<Dim, Real>::operator *=(const Real& x){ inlineMultiplication<Dim, Real>::computation(coordinates, x); inlineMultiplication<Dim, Real>::computation(coordinates.data(), x); return *this; } Loading
Unstructured_mesh/main.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -695,6 +695,9 @@ void testDebug() { ConsoleLogger::writeVar(__LINE__, __FILE__, "r", r, "i", i, "c", c, "list", list, "vec", vec, "b", b, "map", m); ConsoleLogger::writeVar(__LINE__, __FILE__,"---", {5,4,3,2}); DBGVAR(r, i, c, list, vec, b, m); Vertex<7, double> vert; DBGVAR(vert.getCoordinates()); } Loading @@ -710,6 +713,6 @@ int main() //testTemplate(); //UnstructuredMesh<5, size_t, double, 6,5,4> m; //m.ComputeElementMeasures(); testDebug(); //testDebug(); }
debug/consolelogger.h +5 −2 Original line number Diff line number Diff line Loading @@ -76,8 +76,11 @@ class ConsoleLogger { template<typename T> static auto _writeWar(const T &list) -> typename std::enable_if<std::is_class< decltype(std::declval<const T&>().begin())>::value && -> typename std::enable_if< !std::is_same< decltype(std::declval<const T&>().begin()), void >::value && !std::is_same<T, std::string>::value >::type { Loading