diff --git a/examples/quad-test/Quadcpp.cpp b/examples/quad-test/Quadcpp.cpp index b5dc91d01e71c6682678d3d9d45ff817cc0e2032..7e83bb5bf1dfcd3b11d6baed0f4d599927bc4852 100644 --- a/examples/quad-test/Quadcpp.cpp +++ b/examples/quad-test/Quadcpp.cpp @@ -7,13 +7,20 @@ QuadDouble::QuadDouble() { zeroQuad(data); } -QuadDouble::QuadDouble(double value) { +QuadDouble::QuadDouble(const double& value) { data[0] = value; data[1] = 0; data[2] = 0; data[3] = 0; } +QuadDouble::QuadDouble(int value) { + data[0] = (double)value; + data[1] = 0; + data[2] = 0; + data[3] = 0; +} + QuadDouble::QuadDouble(const QuadDouble& other) { data[0] = other[0]; data[1] = other[1]; @@ -67,7 +74,7 @@ QuadDouble& QuadDouble::operator /=(const QuadDouble& rhs) { return *this; } -QuadDouble& QuadDouble::operator =(double rhs) { +QuadDouble& QuadDouble::operator =(const double& rhs) { data[0] = rhs; data[1] = 0; data[2] = 0; @@ -75,22 +82,22 @@ QuadDouble& QuadDouble::operator =(double rhs) { return *this; } -QuadDouble& QuadDouble::operator +=(double rhs) { +QuadDouble& QuadDouble::operator +=(const double& rhs) { doublePlusQuad(rhs, data, data); return *this; } -QuadDouble& QuadDouble::operator -=(double rhs) { +QuadDouble& QuadDouble::operator -=(const double& rhs) { doublePlusQuad(-rhs, data, data); return *this; } -QuadDouble& QuadDouble::operator *=(double rhs) { +QuadDouble& QuadDouble::operator *=(const double& rhs) { doubleTimesQuad(rhs, data, data); return *this; } -QuadDouble& QuadDouble::operator /=(double rhs) { +QuadDouble& QuadDouble::operator /=(const double& rhs) { quadDivDouble(data, rhs, data); return *this; } @@ -231,25 +238,25 @@ QuadDouble::operator double() const{ return data[0]; } -QuadDouble operator+(double v1, const QuadDouble& v2) { +QuadDouble operator+(const double& v1, const QuadDouble& v2) { QuadDouble qd(v1); qd += v2; return qd; } -QuadDouble operator-(double v1, const QuadDouble& v2) { +QuadDouble operator-(const double& v1, const QuadDouble& v2) { QuadDouble qd(v1); qd -= v2; return qd; } -QuadDouble operator*(double v1, const QuadDouble& v2) { +QuadDouble operator*(const double& v1, const QuadDouble& v2) { QuadDouble qd(v1); qd *= v2; return qd; } -QuadDouble operator/(double v1, const QuadDouble& v2) { +QuadDouble operator/(const double& v1, const QuadDouble& v2) { QuadDouble qd(v1); qd /= v2; return qd; diff --git a/examples/quad-test/Quadcpp.h b/examples/quad-test/Quadcpp.h index b469816788fe8bc20dbc769834faf264aa3bd38e..7b87ea52bdca83b5185d47657fcd2ff935015066 100644 --- a/examples/quad-test/Quadcpp.h +++ b/examples/quad-test/Quadcpp.h @@ -3,8 +3,11 @@ private: public: double data[4]; QuadDouble(); - explicit QuadDouble(double); + explicit QuadDouble(const double&); + explicit QuadDouble(int); + //QuadDouble(double); QuadDouble(const QuadDouble&); + //QuadDouble(double*); double& operator[](int); const double& operator[](int) const; @@ -13,11 +16,11 @@ public: QuadDouble& operator -=(const QuadDouble&); QuadDouble& operator *=(const QuadDouble&); QuadDouble& operator /=(const QuadDouble&); - QuadDouble& operator =(double); - QuadDouble& operator +=(double); - QuadDouble& operator -=(double); - QuadDouble& operator *=(double); - QuadDouble& operator /=(double); + QuadDouble& operator =(const double&); + QuadDouble& operator +=(const double&); + QuadDouble& operator -=(const double&); + QuadDouble& operator *=(const double&); + QuadDouble& operator /=(const double&); QuadDouble operator +(const QuadDouble&) const; QuadDouble operator -(const QuadDouble&) const; QuadDouble operator *(const QuadDouble&) const; diff --git a/src/matrix/tnlCSRMatrix.h b/src/matrix/tnlCSRMatrix.h index bf694991b3b31332e7f00b1e7da0bd5e08fb2a40..80584d3c113c0e988eb11aa4ca13d66ee0221c58 100644 --- a/src/matrix/tnlCSRMatrix.h +++ b/src/matrix/tnlCSRMatrix.h @@ -307,7 +307,7 @@ bool tnlCSRMatrix< Real, Device, Index > :: setNonzeroElements( Index elements ) { if( ! nonzero_elements. setSize( elements ) ) return false; - nonzero_elements. setValue( 0 ); + nonzero_elements. setValue( (Real) 0 ); if( ! columns. setSize( elements ) ) return false; columns. setValue( -1 );