gcc-4.5.1 porting changes: strict aliasing
This commit is contained in:
parent
2fe293b0a1
commit
7eb1b7c884
5 changed files with 14 additions and 43 deletions
|
@ -185,19 +185,19 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return local Cartesian x-axis
|
//- Return local Cartesian x-axis
|
||||||
const vector e1() const
|
vector e1() const
|
||||||
{
|
{
|
||||||
return tensor::T().x();
|
return tensor::T().x();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return local Cartesian y-axis
|
//- Return local Cartesian y-axis
|
||||||
const vector e2() const
|
vector e2() const
|
||||||
{
|
{
|
||||||
return tensor::T().y();
|
return tensor::T().y();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return local Cartesian z-axis
|
//- Return local Cartesian z-axis
|
||||||
const vector e3() const
|
vector e3() const
|
||||||
{
|
{
|
||||||
return tensor::T().z();
|
return tensor::T().z();
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,26 +348,26 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return local Cartesian x-axis
|
//- Return local Cartesian x-axis
|
||||||
const vector e1() const
|
vector e1() const
|
||||||
{
|
{
|
||||||
return Rtr_.x();
|
return Rtr_.x();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return local Cartesian y-axis
|
//- Return local Cartesian y-axis
|
||||||
const vector e2() const
|
vector e2() const
|
||||||
{
|
{
|
||||||
return Rtr_.y();
|
return Rtr_.y();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return local Cartesian z-axis
|
//- Return local Cartesian z-axis
|
||||||
const vector e3() const
|
vector e3() const
|
||||||
{
|
{
|
||||||
return Rtr_.z();
|
return Rtr_.z();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return axis (e3: local Cartesian z-axis)
|
//- Return axis (e3: local Cartesian z-axis)
|
||||||
// @deprecated method e3 is preferred
|
// @deprecated method e3 is preferred
|
||||||
const vector axis() const
|
vector axis() const
|
||||||
{
|
{
|
||||||
return Rtr_.z();
|
return Rtr_.z();
|
||||||
}
|
}
|
||||||
|
|
|
@ -269,6 +269,9 @@ tensor eigenVectors(const tensor& t)
|
||||||
|
|
||||||
// Modification for strict-aliasing compliance.
|
// Modification for strict-aliasing compliance.
|
||||||
// Sandeep Menon, 01/Dec/2010
|
// Sandeep Menon, 01/Dec/2010
|
||||||
|
|
||||||
|
// Test for null eigen values to return a not null eigen vector
|
||||||
|
// Jovani Favero, 18/Nov/2009
|
||||||
tensor evs
|
tensor evs
|
||||||
(
|
(
|
||||||
(mag(evals.x()) < SMALL) ? vector(0, 0, 1) : eigenVector(t, evals.x()),
|
(mag(evals.x()) < SMALL) ? vector(0, 0, 1) : eigenVector(t, evals.x()),
|
||||||
|
@ -276,37 +279,6 @@ tensor eigenVectors(const tensor& t)
|
||||||
(mag(evals.z()) < SMALL) ? vector(1, 0, 0) : eigenVector(t, evals.z())
|
(mag(evals.z()) < SMALL) ? vector(1, 0, 0) : eigenVector(t, evals.z())
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
|
||||||
// Test for null eigen values to return a not null eigen vector
|
|
||||||
// Jovani Favero, 18/Nov/2009
|
|
||||||
if (mag(evals.x()) < SMALL)
|
|
||||||
{
|
|
||||||
evs.x() = vector(0, 0, 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evs.x() = eigenVector(t, evals.x());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mag(evals.y()) < SMALL)
|
|
||||||
{
|
|
||||||
evs.y() = vector(0, 1, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evs.y() = eigenVector(t, evals.y());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mag(evals.z()) < SMALL)
|
|
||||||
{
|
|
||||||
evs.z() = vector(1, 0, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evs.z() = eigenVector(t, evals.z());
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
return evs;
|
return evs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -126,10 +126,9 @@ public:
|
||||||
inline Cmpt& yy();
|
inline Cmpt& yy();
|
||||||
|
|
||||||
// Access vector components.
|
// Access vector components.
|
||||||
// Note: returning const only to find out lhs usage
|
|
||||||
|
|
||||||
inline const Vector2D<Cmpt> x() const;
|
inline Vector2D<Cmpt> x() const;
|
||||||
inline const Vector2D<Cmpt> y() const;
|
inline Vector2D<Cmpt> y() const;
|
||||||
|
|
||||||
//- Transpose
|
//- Transpose
|
||||||
inline Tensor2D<Cmpt> T() const;
|
inline Tensor2D<Cmpt> T() const;
|
||||||
|
|
|
@ -85,13 +85,13 @@ inline Tensor2D<Cmpt>::Tensor2D(Istream& is)
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template <class Cmpt>
|
template <class Cmpt>
|
||||||
inline const Vector2D<Cmpt> Tensor2D<Cmpt>::x() const
|
inline Vector2D<Cmpt> Tensor2D<Cmpt>::x() const
|
||||||
{
|
{
|
||||||
return Vector2D<Cmpt>(this->v_[XX], this->v_[XY]);
|
return Vector2D<Cmpt>(this->v_[XX], this->v_[XY]);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Cmpt>
|
template <class Cmpt>
|
||||||
inline const Vector2D<Cmpt> Tensor2D<Cmpt>::y() const
|
inline Vector2D<Cmpt> Tensor2D<Cmpt>::y() const
|
||||||
{
|
{
|
||||||
return Vector2D<Cmpt>(this->v_[YX], this->v_[YY]);
|
return Vector2D<Cmpt>(this->v_[YX], this->v_[YY]);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue