replaced fabs with c++11 std::abs
parent
033a3074a1
commit
ff1f37c26f
|
@ -90,7 +90,7 @@ bool equal_with_abs_tol(const Eigen::DenseBase<MATRIX>& A, const Eigen::DenseBas
|
|||
for(size_t j=0; j<n1; j++) {
|
||||
if(boost::math::isnan(A(i,j)) ^ boost::math::isnan(B(i,j)))
|
||||
return false;
|
||||
else if(fabs(A(i,j) - B(i,j)) > tol)
|
||||
else if(std::abs(A(i,j) - B(i,j)) > tol)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -84,7 +84,7 @@ bool equal_with_abs_tol(const Vector& vec1, const Vector& vec2, double tol) {
|
|||
for(size_t i=0; i<m; ++i) {
|
||||
if(std::isnan(vec1[i]) ^ std::isnan(vec2[i]))
|
||||
return false;
|
||||
if(fabs(vec1[i] - vec2[i]) > tol)
|
||||
if(std::abs(vec1[i] - vec2[i]) > tol)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -97,7 +97,7 @@ bool equal_with_abs_tol(const SubVector& vec1, const SubVector& vec2, double tol
|
|||
for(size_t i=0; i<m; ++i) {
|
||||
if(std::isnan(vec1[i]) ^ std::isnan(vec2[i]))
|
||||
return false;
|
||||
if(fabs(vec1[i] - vec2[i]) > tol)
|
||||
if(std::abs(vec1[i] - vec2[i]) > tol)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -145,14 +145,14 @@ bool linear_dependent(const Vector& vec1, const Vector& vec2, double tol) {
|
|||
bool flag = false; double scale = 1.0;
|
||||
size_t m = vec1.size();
|
||||
for(size_t i=0; i<m; i++) {
|
||||
if((fabs(vec1[i])>tol&&fabs(vec2[i])<tol) || (fabs(vec1[i])<tol&&fabs(vec2[i])>tol))
|
||||
if((std::abs(vec1[i])>tol && std::abs(vec2[i])<tol) || (std::abs(vec1[i])<tol && std::abs(vec2[i])>tol))
|
||||
return false;
|
||||
if(vec1[i] == 0 && vec2[i] == 0) continue;
|
||||
if (!flag) {
|
||||
scale = vec1[i] / vec2[i];
|
||||
flag = true ;
|
||||
}
|
||||
else if (fabs(vec1[i] - vec2[i]*scale) > tol) return false;
|
||||
else if (std::abs(vec1[i] - vec2[i]*scale) > tol) return false;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ double weightedPseudoinverse(const Vector& a, const Vector& weights,
|
|||
|
||||
// Check once for zero entries of a. TODO: really needed ?
|
||||
vector<bool> isZero;
|
||||
for (size_t i = 0; i < m; ++i) isZero.push_back(fabs(a[i]) < 1e-9);
|
||||
for (size_t i = 0; i < m; ++i) isZero.push_back(std::abs(a[i]) < 1e-9);
|
||||
|
||||
// If there is a valid (a!=0) constraint (sigma==0) return the first one
|
||||
for (size_t i = 0; i < m; ++i) {
|
||||
|
|
|
@ -53,7 +53,7 @@ namespace gtsam {
|
|||
std::cout << name << ": " << d_ << std::endl;
|
||||
}
|
||||
bool equals(const LieScalar& expected, double tol = 1e-5) const {
|
||||
return fabs(expected.d_ - d_) <= tol;
|
||||
return std::abs(expected.d_ - d_) <= tol;
|
||||
}
|
||||
/// @}
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ TEST(Vector, weightedPseudoinverse )
|
|||
|
||||
// verify
|
||||
EXPECT(assert_equal(expected,actual));
|
||||
EXPECT(fabs(expPrecision-precision) < 1e-5);
|
||||
EXPECT(std::abs(expPrecision-precision) < 1e-5);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -79,7 +79,7 @@ namespace gtsam {
|
|||
bool equals(const Node& q, double tol) const {
|
||||
const Leaf* other = dynamic_cast<const Leaf*> (&q);
|
||||
if (!other) return false;
|
||||
return fabs(double(this->constant_ - other->constant_)) < tol;
|
||||
return std::abs(double(this->constant_ - other->constant_)) < tol;
|
||||
}
|
||||
|
||||
/** print */
|
||||
|
|
|
@ -59,9 +59,9 @@ void Cal3Bundler::print(const std::string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Cal3Bundler::equals(const Cal3Bundler& K, double tol) const {
|
||||
if (fabs(f_ - K.f_) > tol || fabs(k1_ - K.k1_) > tol
|
||||
|| fabs(k2_ - K.k2_) > tol || fabs(u0_ - K.u0_) > tol
|
||||
|| fabs(v0_ - K.v0_) > tol)
|
||||
if (std::abs(f_ - K.f_) > tol || std::abs(k1_ - K.k1_) > tol
|
||||
|| std::abs(k2_ - K.k2_) > tol || std::abs(u0_ - K.u0_) > tol
|
||||
|| std::abs(v0_ - K.v0_) > tol)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -30,9 +30,9 @@ void Cal3DS2::print(const std::string& s_) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Cal3DS2::equals(const Cal3DS2& K, double tol) const {
|
||||
if (fabs(fx_ - K.fx_) > tol || fabs(fy_ - K.fy_) > tol || fabs(s_ - K.s_) > tol ||
|
||||
fabs(u0_ - K.u0_) > tol || fabs(v0_ - K.v0_) > tol || fabs(k1_ - K.k1_) > tol ||
|
||||
fabs(k2_ - K.k2_) > tol || fabs(p1_ - K.p1_) > tol || fabs(p2_ - K.p2_) > tol)
|
||||
if (std::abs(fx_ - K.fx_) > tol || std::abs(fy_ - K.fy_) > tol || std::abs(s_ - K.s_) > tol ||
|
||||
std::abs(u0_ - K.u0_) > tol || std::abs(v0_ - K.v0_) > tol || std::abs(k1_ - K.k1_) > tol ||
|
||||
std::abs(k2_ - K.k2_) > tol || std::abs(p1_ - K.p1_) > tol || std::abs(p2_ - K.p2_) > tol)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -49,9 +49,9 @@ void Cal3DS2_Base::print(const std::string& s_) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Cal3DS2_Base::equals(const Cal3DS2_Base& K, double tol) const {
|
||||
if (fabs(fx_ - K.fx_) > tol || fabs(fy_ - K.fy_) > tol || fabs(s_ - K.s_) > tol ||
|
||||
fabs(u0_ - K.u0_) > tol || fabs(v0_ - K.v0_) > tol || fabs(k1_ - K.k1_) > tol ||
|
||||
fabs(k2_ - K.k2_) > tol || fabs(p1_ - K.p1_) > tol || fabs(p2_ - K.p2_) > tol)
|
||||
if (std::abs(fx_ - K.fx_) > tol || std::abs(fy_ - K.fy_) > tol || std::abs(s_ - K.s_) > tol ||
|
||||
std::abs(u0_ - K.u0_) > tol || std::abs(v0_ - K.v0_) > tol || std::abs(k1_ - K.k1_) > tol ||
|
||||
std::abs(k2_ - K.k2_) > tol || std::abs(p1_ - K.p1_) > tol || std::abs(p2_ - K.p2_) > tol)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -43,10 +43,10 @@ void Cal3Unified::print(const std::string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Cal3Unified::equals(const Cal3Unified& K, double tol) const {
|
||||
if (fabs(fx_ - K.fx_) > tol || fabs(fy_ - K.fy_) > tol || fabs(s_ - K.s_) > tol ||
|
||||
fabs(u0_ - K.u0_) > tol || fabs(v0_ - K.v0_) > tol || fabs(k1_ - K.k1_) > tol ||
|
||||
fabs(k2_ - K.k2_) > tol || fabs(p1_ - K.p1_) > tol || fabs(p2_ - K.p2_) > tol ||
|
||||
fabs(xi_ - K.xi_) > tol)
|
||||
if (std::abs(fx_ - K.fx_) > tol || std::abs(fy_ - K.fy_) > tol || std::abs(s_ - K.s_) > tol ||
|
||||
std::abs(u0_ - K.u0_) > tol || std::abs(v0_ - K.v0_) > tol || std::abs(k1_ - K.k1_) > tol ||
|
||||
std::abs(k2_ - K.k2_) > tol || std::abs(p1_ - K.p1_) > tol || std::abs(p2_ - K.p2_) > tol ||
|
||||
std::abs(xi_ - K.xi_) > tol)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -64,15 +64,15 @@ void Cal3_S2::print(const std::string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Cal3_S2::equals(const Cal3_S2& K, double tol) const {
|
||||
if (fabs(fx_ - K.fx_) > tol)
|
||||
if (std::abs(fx_ - K.fx_) > tol)
|
||||
return false;
|
||||
if (fabs(fy_ - K.fy_) > tol)
|
||||
if (std::abs(fy_ - K.fy_) > tol)
|
||||
return false;
|
||||
if (fabs(s_ - K.s_) > tol)
|
||||
if (std::abs(s_ - K.s_) > tol)
|
||||
return false;
|
||||
if (fabs(u0_ - K.u0_) > tol)
|
||||
if (std::abs(u0_ - K.u0_) > tol)
|
||||
return false;
|
||||
if (fabs(v0_ - K.v0_) > tol)
|
||||
if (std::abs(v0_ - K.v0_) > tol)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ void Cal3_S2Stereo::print(const std::string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Cal3_S2Stereo::equals(const Cal3_S2Stereo& other, double tol) const {
|
||||
if (fabs(b_ - other.b_) > tol) return false;
|
||||
if (std::abs(b_ - other.b_) > tol) return false;
|
||||
return K_.equals(other.K_,tol);
|
||||
}
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ public:
|
|||
|
||||
/// The equals function with tolerance
|
||||
bool equals(const OrientedPlane3& s, double tol = 1e-9) const {
|
||||
return (n_.equals(s.n_, tol) && (fabs(d_ - s.d_) < tol));
|
||||
return (n_.equals(s.n_, tol) && (std::abs(d_ - s.d_) < tol));
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace gtsam {
|
|||
double norm2(const Point2& p, OptionalJacobian<1,2> H) {
|
||||
double r = std::sqrt(p.x() * p.x() + p.y() * p.y());
|
||||
if (H) {
|
||||
if (fabs(r) > 1e-10)
|
||||
if (std::abs(r) > 1e-10)
|
||||
*H << p.x() / r, p.y() / r;
|
||||
else
|
||||
*H << 1, 1; // really infinity, why 1 ?
|
||||
|
@ -59,7 +59,7 @@ void Point2::print(const string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Point2::equals(const Point2& q, double tol) const {
|
||||
return (fabs(x() - q.x()) < tol && fabs(y() - q.y()) < tol);
|
||||
return (std::abs(x() - q.x()) < tol && std::abs(y() - q.y()) < tol);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -24,8 +24,8 @@ namespace gtsam {
|
|||
|
||||
#ifndef GTSAM_TYPEDEF_POINTS_TO_VECTORS
|
||||
bool Point3::equals(const Point3 &q, double tol) const {
|
||||
return (fabs(x() - q.x()) < tol && fabs(y() - q.y()) < tol &&
|
||||
fabs(z() - q.z()) < tol);
|
||||
return (std::abs(x() - q.x()) < tol && std::abs(y() - q.y()) < tol &&
|
||||
std::abs(z() - q.z()) < tol);
|
||||
}
|
||||
|
||||
void Point3::print(const string& s) const {
|
||||
|
@ -98,7 +98,7 @@ double distance3(const Point3 &p1, const Point3 &q, OptionalJacobian<1, 3> H1,
|
|||
double norm3(const Point3 &p, OptionalJacobian<1, 3> H) {
|
||||
double r = sqrt(p.x() * p.x() + p.y() * p.y() + p.z() * p.z());
|
||||
if (H) {
|
||||
if (fabs(r) > 1e-10)
|
||||
if (std::abs(r) > 1e-10)
|
||||
*H << p.x() / r, p.y() / r, p.z() / r;
|
||||
else
|
||||
*H << 1, 1, 1; // really infinity, why 1 ?
|
||||
|
|
|
@ -142,7 +142,7 @@ Matrix3 Pose2::adjointMap(const Vector3& v) {
|
|||
Matrix3 Pose2::ExpmapDerivative(const Vector3& v) {
|
||||
double alpha = v[2];
|
||||
Matrix3 J;
|
||||
if (fabs(alpha) > 1e-5) {
|
||||
if (std::abs(alpha) > 1e-5) {
|
||||
// Chirikjian11book2, pg. 36
|
||||
/* !!!Warning!!! Compare Iserles05an, formula 2.42 and Chirikjian11book2 pg.26
|
||||
* Iserles' right-trivialization dexpR is actually the left Jacobian J_l in Chirikjian's notation
|
||||
|
@ -174,7 +174,7 @@ Matrix3 Pose2::LogmapDerivative(const Pose2& p) {
|
|||
Vector3 v = Logmap(p);
|
||||
double alpha = v[2];
|
||||
Matrix3 J;
|
||||
if (fabs(alpha) > 1e-5) {
|
||||
if (std::abs(alpha) > 1e-5) {
|
||||
double alphaInv = 1/alpha;
|
||||
double halfCotHalfAlpha = 0.5*sin(alpha)/(1-cos(alpha));
|
||||
double v1 = v[0], v2 = v[1];
|
||||
|
|
|
@ -221,7 +221,7 @@ static Matrix3 computeQforExpmapDerivative(const Vector6& xi) {
|
|||
#else
|
||||
// The closed-form formula in Barfoot14tro eq. (102)
|
||||
double phi = w.norm();
|
||||
if (fabs(phi)>1e-5) {
|
||||
if (std::abs(phi)>1e-5) {
|
||||
const double sinPhi = sin(phi), cosPhi = cos(phi);
|
||||
const double phi2 = phi * phi, phi3 = phi2 * phi, phi4 = phi3 * phi, phi5 = phi4 * phi;
|
||||
// Invert the sign of odd-order terms to have the right Jacobian
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace gtsam {
|
|||
|
||||
/* ************************************************************************* */
|
||||
Rot2 Rot2::fromCosSin(double c, double s) {
|
||||
if (fabs(c * c + s * s - 1.0) > 1e-9) {
|
||||
if (std::abs(c * c + s * s - 1.0) > 1e-9) {
|
||||
double norm_cs = sqrt(c*c + s*s);
|
||||
c = c/norm_cs;
|
||||
s = s/norm_cs;
|
||||
|
@ -46,13 +46,13 @@ void Rot2::print(const string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Rot2::equals(const Rot2& R, double tol) const {
|
||||
return fabs(c_ - R.c_) <= tol && fabs(s_ - R.s_) <= tol;
|
||||
return std::abs(c_ - R.c_) <= tol && std::abs(s_ - R.s_) <= tol;
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
Rot2& Rot2::normalize() {
|
||||
double scale = c_*c_ + s_*s_;
|
||||
if(fabs(scale-1.0)>1e-10) {
|
||||
if(std::abs(scale-1.0)>1e-10) {
|
||||
scale = pow(scale, -0.5);
|
||||
c_ *= scale;
|
||||
s_ *= scale;
|
||||
|
@ -115,7 +115,7 @@ Point2 Rot2::unrotate(const Point2& p,
|
|||
/* ************************************************************************* */
|
||||
Rot2 Rot2::relativeBearing(const Point2& d, OptionalJacobian<1, 2> H) {
|
||||
double x = d.x(), y = d.y(), d2 = x * x + y * y, n = sqrt(d2);
|
||||
if(fabs(n) > 1e-5) {
|
||||
if(std::abs(n) > 1e-5) {
|
||||
if (H) {
|
||||
*H << -y / d2, x / d2;
|
||||
}
|
||||
|
|
|
@ -62,8 +62,8 @@ public:
|
|||
|
||||
/** equals */
|
||||
bool equals(const StereoPoint2& q, double tol = 1e-9) const {
|
||||
return (fabs(uL_ - q.uL_) < tol && fabs(uR_ - q.uR_) < tol
|
||||
&& fabs(v_ - q.v_) < tol);
|
||||
return (std::abs(uL_ - q.uL_) < tol && std::abs(uR_ - q.uR_) < tol
|
||||
&& std::abs(v_ - q.v_) < tol);
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
|
|
@ -68,7 +68,7 @@ Unit3 Unit3::Random(boost::mt19937 & rng) {
|
|||
/* ************************************************************************* */
|
||||
// Get the axis of rotation with the minimum projected length of the point
|
||||
static Point3 CalculateBestAxis(const Point3& n) {
|
||||
double mx = fabs(n.x()), my = fabs(n.y()), mz = fabs(n.z());
|
||||
double mx = std::abs(n.x()), my = std::abs(n.y()), mz = std::abs(n.z());
|
||||
if ((mx <= my) && (mx <= mz)) {
|
||||
return Point3(1.0, 0.0, 0.0);
|
||||
} else if ((my <= mx) && (my <= mz)) {
|
||||
|
|
|
@ -218,10 +218,10 @@ TEST (EssentialMatrix, epipoles) {
|
|||
}
|
||||
|
||||
// check rank 2 constraint
|
||||
CHECK(fabs(S(2))<1e-10);
|
||||
CHECK(std::abs(S(2))<1e-10);
|
||||
|
||||
// check epipoles not at infinity
|
||||
CHECK(fabs(U(2,2))>1e-10 && fabs(V(2,2))>1e-10);
|
||||
CHECK(std::abs(U(2,2))>1e-10 && std::abs(V(2,2))>1e-10);
|
||||
|
||||
// Check epipoles
|
||||
|
||||
|
|
|
@ -847,7 +847,7 @@ void GemanMcClure::print(const std::string &s="") const {
|
|||
bool GemanMcClure::equals(const Base &expected, double tol) const {
|
||||
const GemanMcClure* p = dynamic_cast<const GemanMcClure*>(&expected);
|
||||
if (p == NULL) return false;
|
||||
return fabs(c_ - p->c_) < tol;
|
||||
return std::abs(c_ - p->c_) < tol;
|
||||
}
|
||||
|
||||
GemanMcClure::shared_ptr GemanMcClure::Create(double c, const ReweightScheme reweight) {
|
||||
|
@ -879,7 +879,7 @@ void DCS::print(const std::string &s="") const {
|
|||
bool DCS::equals(const Base &expected, double tol) const {
|
||||
const DCS* p = dynamic_cast<const DCS*>(&expected);
|
||||
if (p == NULL) return false;
|
||||
return fabs(c_ - p->c_) < tol;
|
||||
return std::abs(c_ - p->c_) < tol;
|
||||
}
|
||||
|
||||
DCS::shared_ptr DCS::Create(double c, const ReweightScheme reweight) {
|
||||
|
@ -903,7 +903,7 @@ void L2WithDeadZone::print(const std::string &s="") const {
|
|||
bool L2WithDeadZone::equals(const Base &expected, double tol) const {
|
||||
const L2WithDeadZone* p = dynamic_cast<const L2WithDeadZone*>(&expected);
|
||||
if (p == NULL) return false;
|
||||
return fabs(k_ - p->k_) < tol;
|
||||
return std::abs(k_ - p->k_) < tol;
|
||||
}
|
||||
|
||||
L2WithDeadZone::shared_ptr L2WithDeadZone::Create(double k, const ReweightScheme reweight) {
|
||||
|
|
|
@ -750,7 +750,7 @@ namespace gtsam {
|
|||
|
||||
Fair(double c = 1.3998, const ReweightScheme reweight = Block);
|
||||
double weight(double error) const {
|
||||
return 1.0 / (1.0 + fabs(error) / c_);
|
||||
return 1.0 / (1.0 + std::abs(error) / c_);
|
||||
}
|
||||
void print(const std::string &s) const;
|
||||
bool equals(const Base& expected, double tol=1e-8) const;
|
||||
|
@ -832,7 +832,7 @@ namespace gtsam {
|
|||
|
||||
Tukey(double c = 4.6851, const ReweightScheme reweight = Block);
|
||||
double weight(double error) const {
|
||||
if (std::fabs(error) <= c_) {
|
||||
if (std::abs(error) <= c_) {
|
||||
double xc2 = error*error/csquared_;
|
||||
return (1.0-xc2)*(1.0-xc2);
|
||||
}
|
||||
|
@ -952,14 +952,14 @@ namespace gtsam {
|
|||
|
||||
L2WithDeadZone(double k, const ReweightScheme reweight = Block);
|
||||
double residual(double error) const {
|
||||
const double abs_error = fabs(error);
|
||||
const double abs_error = std::abs(error);
|
||||
return (abs_error < k_) ? 0.0 : 0.5*(k_-abs_error)*(k_-abs_error);
|
||||
}
|
||||
double weight(double error) const {
|
||||
// note that this code is slightly uglier than above, because there are three distinct
|
||||
// cases to handle (left of deadzone, deadzone, right of deadzone) instead of the two
|
||||
// cases (deadzone, non-deadzone) above.
|
||||
if (fabs(error) <= k_) return 0.0;
|
||||
if (std::abs(error) <= k_) return 0.0;
|
||||
else if (error > k_) return (-k_+error)/error;
|
||||
else return (k_+error)/error;
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ void ManifoldPreintegration::resetIntegration() {
|
|||
//------------------------------------------------------------------------------
|
||||
bool ManifoldPreintegration::equals(const ManifoldPreintegration& other,
|
||||
double tol) const {
|
||||
return p_->equals(*other.p_, tol) && fabs(deltaTij_ - other.deltaTij_) < tol
|
||||
return p_->equals(*other.p_, tol) && std::abs(deltaTij_ - other.deltaTij_) < tol
|
||||
&& biasHat_.equals(other.biasHat_, tol)
|
||||
&& deltaXij_.equals(other.deltaXij_, tol)
|
||||
&& equal_with_abs_tol(delRdelBiasOmega_, other.delRdelBiasOmega_, tol)
|
||||
|
|
|
@ -65,7 +65,7 @@ bool PreintegratedRotation::equals(const PreintegratedRotation& other,
|
|||
double tol) const {
|
||||
return this->matchesParamsWith(other)
|
||||
&& deltaRij_.equals(other.deltaRij_, tol)
|
||||
&& fabs(deltaTij_ - other.deltaTij_) < tol
|
||||
&& std::abs(deltaTij_ - other.deltaTij_) < tol
|
||||
&& equal_with_abs_tol(delRdelBiasOmega_, other.delRdelBiasOmega_, tol);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ void TangentPreintegration::resetIntegration() {
|
|||
//------------------------------------------------------------------------------
|
||||
bool TangentPreintegration::equals(const TangentPreintegration& other,
|
||||
double tol) const {
|
||||
return p_->equals(*other.p_, tol) && fabs(deltaTij_ - other.deltaTij_) < tol
|
||||
return p_->equals(*other.p_, tol) && std::abs(deltaTij_ - other.deltaTij_) < tol
|
||||
&& biasHat_.equals(other.biasHat_, tol)
|
||||
&& equal_with_abs_tol(preintegrated_, other.preintegrated_, tol)
|
||||
&& equal_with_abs_tol(preintegrated_H_biasAcc_,
|
||||
|
|
|
@ -177,7 +177,7 @@ typename DoglegOptimizerImpl::IterationResult DoglegOptimizerImpl::Iterate(
|
|||
gttic(adjust_delta);
|
||||
// Compute gain ratio. Here we take advantage of the invariant that the
|
||||
// Bayes' net error at zero is equal to the nonlinear error
|
||||
const double rho = fabs(f_error - result.f_error) < 1e-15 || fabs(M_error - new_M_error) < 1e-15 ?
|
||||
const double rho = std::abs(f_error - result.f_error) < 1e-15 || std::abs(M_error - new_M_error) < 1e-15 ?
|
||||
0.5 :
|
||||
(f_error - result.f_error) / (M_error - new_M_error);
|
||||
|
||||
|
@ -191,7 +191,7 @@ typename DoglegOptimizerImpl::IterationResult DoglegOptimizerImpl::Iterate(
|
|||
if(mode == ONE_STEP_PER_ITERATION || mode == SEARCH_REDUCE_ONLY)
|
||||
stay = false; // If not searching, just return with the new delta
|
||||
else if(mode == SEARCH_EACH_ITERATION) {
|
||||
if(fabs(newDelta - delta) < 1e-15 || lastAction == DECREASED_DELTA)
|
||||
if(std::abs(newDelta - delta) < 1e-15 || lastAction == DECREASED_DELTA)
|
||||
stay = false; // Searching, but Newton's solution is within trust region so keep the same trust region
|
||||
else {
|
||||
stay = true; // Searching and increased delta, so try again to increase delta
|
||||
|
|
|
@ -201,9 +201,9 @@ bool LevenbergMarquardtOptimizer::tryLambda(const GaussianFactorGraph& linear,
|
|||
|
||||
double minAbsoluteTolerance = params_.relativeErrorTol * currentState->error;
|
||||
// if the change is small we terminate
|
||||
if (fabs(costChange) < minAbsoluteTolerance) {
|
||||
if (std::abs(costChange) < minAbsoluteTolerance) {
|
||||
if (verbose)
|
||||
cout << "fabs(costChange)=" << fabs(costChange)
|
||||
cout << "abs(costChange)=" << std::abs(costChange)
|
||||
<< " minAbsoluteTolerance=" << minAbsoluteTolerance
|
||||
<< " (relativeErrorTol=" << params_.relativeErrorTol << ")" << endl;
|
||||
stopSearchingLambda = true;
|
||||
|
|
|
@ -107,7 +107,7 @@ double lineSearch(const S &system, const V currentValues, const W &gradient) {
|
|||
newStep - resphi * (newStep - minStep);
|
||||
|
||||
if ((maxStep - minStep)
|
||||
< tau * (std::fabs(testStep) + std::fabs(newStep))) {
|
||||
< tau * (std::abs(testStep) + std::abs(newStep))) {
|
||||
return 0.5 * (minStep + maxStep);
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ class Class : public Point3 {
|
|||
return norm3(*this, H);
|
||||
}
|
||||
bool equals(const Class &q, double tol) const {
|
||||
return (fabs(x() - q.x()) < tol && fabs(y() - q.y()) < tol && fabs(z() - q.z()) < tol);
|
||||
return (std::abs(x() - q.x()) < tol && std::abs(y() - q.y()) < tol && std::abs(z() - q.z()) < tol);
|
||||
}
|
||||
void print(const string& s) const { cout << s << *this << endl;}
|
||||
};
|
||||
|
|
|
@ -146,7 +146,7 @@ namespace gtsam {
|
|||
/** Syntactic sugar for constrained version */
|
||||
BetweenConstraint(const VALUE& measured, Key key1, Key key2, double mu = 1000.0) :
|
||||
BetweenFactor<VALUE>(key1, key2, measured,
|
||||
noiseModel::Constrained::All(traits<VALUE>::GetDimension(measured), fabs(mu)))
|
||||
noiseModel::Constrained::All(traits<VALUE>::GetDimension(measured), std::abs(mu)))
|
||||
{}
|
||||
|
||||
private:
|
||||
|
|
|
@ -61,7 +61,7 @@ public:
|
|||
return f && Base::equals(e) &&
|
||||
equal_with_abs_tol(accel_, f->accel_, tol) &&
|
||||
equal_with_abs_tol(gyro_, f->gyro_, tol) &&
|
||||
fabs(dt_ - f->dt_) < tol;
|
||||
std::abs(dt_ - f->dt_) < tol;
|
||||
}
|
||||
|
||||
void print(const std::string& s="", const gtsam::KeyFormatter& formatter = gtsam::DefaultKeyFormatter) const {
|
||||
|
|
|
@ -54,7 +54,7 @@ public:
|
|||
return f && Base::equals(e) &&
|
||||
equal_with_abs_tol(accel_, f->accel_, tol) &&
|
||||
equal_with_abs_tol(gyro_, f->gyro_, tol) &&
|
||||
fabs(dt_ - f->dt_) < tol;
|
||||
std::abs(dt_ - f->dt_) < tol;
|
||||
}
|
||||
|
||||
void print(const std::string& s="", const gtsam::KeyFormatter& formatter = gtsam::DefaultKeyFormatter) const {
|
||||
|
|
|
@ -37,7 +37,7 @@ public:
|
|||
|
||||
///Constructor. k1: q_{k+1}, k: q_k, velKey: velocity variable depending on the chosen method, h: time step
|
||||
PendulumFactor1(Key k1, Key k, Key velKey, double h, double mu = 1000.0)
|
||||
: Base(noiseModel::Constrained::All(1, fabs(mu)), k1, k, velKey), h_(h) {}
|
||||
: Base(noiseModel::Constrained::All(1, std::abs(mu)), k1, k, velKey), h_(h) {}
|
||||
|
||||
/// @return a deep copy of this factor
|
||||
virtual gtsam::NonlinearFactor::shared_ptr clone() const {
|
||||
|
@ -85,7 +85,7 @@ public:
|
|||
|
||||
///Constructor. vk1: v_{k+1}, vk: v_k, qkey: q's key depending on the chosen method, h: time step
|
||||
PendulumFactor2(Key vk1, Key vk, Key qkey, double h, double r = 1.0, double g = 9.81, double mu = 1000.0)
|
||||
: Base(noiseModel::Constrained::All(1, fabs(mu)), vk1, vk, qkey), h_(h), g_(g), r_(r) {}
|
||||
: Base(noiseModel::Constrained::All(1, std::abs(mu)), vk1, vk, qkey), h_(h), g_(g), r_(r) {}
|
||||
|
||||
/// @return a deep copy of this factor
|
||||
virtual gtsam::NonlinearFactor::shared_ptr clone() const {
|
||||
|
@ -135,7 +135,7 @@ public:
|
|||
///Constructor
|
||||
PendulumFactorPk(Key pKey, Key qKey, Key qKey1,
|
||||
double h, double m = 1.0, double r = 1.0, double g = 9.81, double alpha = 0.0, double mu = 1000.0)
|
||||
: Base(noiseModel::Constrained::All(1, fabs(mu)), pKey, qKey, qKey1),
|
||||
: Base(noiseModel::Constrained::All(1, std::abs(mu)), pKey, qKey, qKey1),
|
||||
h_(h), m_(m), r_(r), g_(g), alpha_(alpha) {}
|
||||
|
||||
/// @return a deep copy of this factor
|
||||
|
@ -191,7 +191,7 @@ public:
|
|||
///Constructor
|
||||
PendulumFactorPk1(Key pKey1, Key qKey, Key qKey1,
|
||||
double h, double m = 1.0, double r = 1.0, double g = 9.81, double alpha = 0.0, double mu = 1000.0)
|
||||
: Base(noiseModel::Constrained::All(1, fabs(mu)), pKey1, qKey, qKey1),
|
||||
: Base(noiseModel::Constrained::All(1, std::abs(mu)), pKey1, qKey, qKey1),
|
||||
h_(h), m_(m), r_(r), g_(g), alpha_(alpha) {}
|
||||
|
||||
/// @return a deep copy of this factor
|
||||
|
|
|
@ -99,7 +99,7 @@ PoseRTV PoseRTV::flyingDynamics(
|
|||
double yaw2 = r2.yaw();
|
||||
double pitch2 = r2.pitch();
|
||||
double forward_accel = -thrust * sin(pitch2); // r2, pitch (in global frame?) controls forward force
|
||||
double loss_lift = lift*fabs(sin(pitch2));
|
||||
double loss_lift = lift*std::abs(sin(pitch2));
|
||||
Rot3 yaw_correction_bn = Rot3::Yaw(yaw2);
|
||||
Point3 forward(forward_accel, 0.0, 0.0);
|
||||
Vector Acc_n =
|
||||
|
|
|
@ -27,7 +27,7 @@ public:
|
|||
|
||||
///TODO: comment
|
||||
VelocityConstraint3(Key key1, Key key2, Key velKey, double dt, double mu = 1000.0)
|
||||
: Base(noiseModel::Constrained::All(1, fabs(mu)), key1, key2, velKey), dt_(dt) {}
|
||||
: Base(noiseModel::Constrained::All(1, std::abs(mu)), key1, key2, velKey), dt_(dt) {}
|
||||
virtual ~VelocityConstraint3() {}
|
||||
|
||||
/// @return a deep copy of this factor
|
||||
|
|
|
@ -198,7 +198,7 @@ int main(int argc, char** argv) {
|
|||
rangeNoise);
|
||||
// Throw out obvious outliers based on current landmark estimates
|
||||
Vector error = factor.unwhitenedError(landmarkEstimates);
|
||||
if (k <= 200 || fabs(error[0]) < 5)
|
||||
if (k <= 200 || std::abs(error[0]) < 5)
|
||||
newFactors.push_back(factor);
|
||||
}
|
||||
totalCount += 1;
|
||||
|
|
|
@ -167,7 +167,7 @@ int main(int argc, char** argv) {
|
|||
RangeFactor<Pose2, Point2> factor(i, symbol('L', j), range, rangeNoise);
|
||||
// Throw out obvious outliers based on current landmark estimates
|
||||
Vector error = factor.unwhitenedError(landmarkEstimates);
|
||||
if (k <= 200 || fabs(error[0]) < 5)
|
||||
if (k <= 200 || std::abs(error[0]) < 5)
|
||||
newFactors.push_back(factor);
|
||||
k = k + 1;
|
||||
countK = countK + 1;
|
||||
|
|
|
@ -44,7 +44,7 @@ void Pose3Upright::print(const std::string& s) const {
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool Pose3Upright::equals(const Pose3Upright& x, double tol) const {
|
||||
return T_.equals(x.T_, tol) && fabs(z_ - x.z_) < tol;
|
||||
return T_.equals(x.T_, tol) && std::abs(z_ - x.z_) < tol;
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -77,7 +77,7 @@ bool SimPolygon2D::contains(const Point2& c) const {
|
|||
Point2 dab = ab.b() - ab.a();
|
||||
Point2 dac = c - ab.a();
|
||||
double cross = dab.x() * dac.y() - dab.y() * dac.x();
|
||||
if (fabs(cross) < 1e-6) // check for on one of the edges
|
||||
if (std::abs(cross) < 1e-6) // check for on one of the edges
|
||||
return true;
|
||||
bool side = cross > 0;
|
||||
// save the first side found
|
||||
|
@ -241,14 +241,14 @@ double SimPolygon2D::randomDistance(double mu, double sigma, double min_dist) {
|
|||
boost::variate_generator<boost::minstd_rand&, boost::normal_distribution<double> > gen_d(rng, norm_dist);
|
||||
double d = -10.0;
|
||||
for (size_t i=0; i<max_it; ++i) {
|
||||
d = fabs(gen_d());
|
||||
d = std::abs(gen_d());
|
||||
if (d > min_dist)
|
||||
return d;
|
||||
}
|
||||
cout << "Non viable distance: " << d << " with mu = " << mu << " sigma = " << sigma
|
||||
<< " min_dist = " << min_dist << endl;
|
||||
throw runtime_error("Failed to find a viable distance");
|
||||
return fabs(norm_dist(rng));
|
||||
return std::abs(norm_dist(rng));
|
||||
}
|
||||
|
||||
/* ***************************************************************** */
|
||||
|
@ -313,7 +313,7 @@ Pose2 SimPolygon2D::randomFreePose(double boundary_size, const vector<SimPolygon
|
|||
|
||||
/* ***************************************************************** */
|
||||
bool SimPolygon2D::insideBox(double s, const Point2& p) {
|
||||
return fabs(p.x()) < s/2.0 && fabs(p.y()) < s/2.0;
|
||||
return std::abs(p.x()) < s/2.0 && std::abs(p.y()) < s/2.0;
|
||||
}
|
||||
|
||||
/* ***************************************************************** */
|
||||
|
|
|
@ -61,7 +61,7 @@ bool SimWall2D::intersects(const SimWall2D& B, boost::optional<Point2&> pt) cons
|
|||
}
|
||||
|
||||
// handle vertical case to avoid calculating slope
|
||||
if (fabs(Ba.x() - Bb.x()) < 1e-5) {
|
||||
if (std::abs(Ba.x() - Bb.x()) < 1e-5) {
|
||||
if (debug) cout << "vertical line" << endl;
|
||||
if (Ba.x() < len && Ba.x() > 0.0) {
|
||||
if (pt) *pt = transform.transformFrom(Point2(Ba.x(), 0.0));
|
||||
|
@ -88,7 +88,7 @@ bool SimWall2D::intersects(const SimWall2D& B, boost::optional<Point2&> pt) cons
|
|||
// find x-intercept
|
||||
double slope = (high.y() - low.y())/(high.x() - low.x());
|
||||
if (debug) cout << "slope " << slope << endl;
|
||||
double xint = (low.x() < high.x()) ? low.x() + fabs(low.y())/slope : high.x() - fabs(high.y())/slope;
|
||||
double xint = (low.x() < high.x()) ? low.x() + std::abs(low.y())/slope : high.x() - std::abs(high.y())/slope;
|
||||
if (debug) cout << "xintercept " << xint << endl;
|
||||
if (xint > 0.0 && xint < len) {
|
||||
if (pt) *pt = transform.transformFrom(Point2(xint, 0.0));
|
||||
|
|
|
@ -252,7 +252,7 @@ Template InequalityFactorGraph This::identifyActiveConstraints(
|
|||
double error = workingFactor->error(initialValues);
|
||||
// Safety guard. This should not happen unless users provide a bad init
|
||||
if (error > 0) throw InfeasibleInitialValues();
|
||||
if (fabs(error) < 1e-7)
|
||||
if (std::abs(error) < 1e-7)
|
||||
workingFactor->activate();
|
||||
else
|
||||
workingFactor->inactivate();
|
||||
|
|
|
@ -38,7 +38,7 @@ void FixedLagSmoother::print(const std::string& s, const KeyFormatter& keyFormat
|
|||
|
||||
/* ************************************************************************* */
|
||||
bool FixedLagSmoother::equals(const FixedLagSmoother& rhs, double tol) const {
|
||||
return std::fabs(smootherLag_ - rhs.smootherLag_) < tol
|
||||
return std::abs(smootherLag_ - rhs.smootherLag_) < tol
|
||||
&& std::equal(timestampKeyMap_.begin(), timestampKeyMap_.end(), rhs.timestampKeyMap_.begin());
|
||||
}
|
||||
|
||||
|
|
|
@ -152,7 +152,7 @@ bool AHRS::isAidingAvailable(const Mechanization_bRn2& mech,
|
|||
|
||||
double mu_f = f_.norm() - ge; // accelerometer same magnitude as local gravity ?
|
||||
double mu_u = u_.norm(); // gyro says we are not maneuvering ?
|
||||
return (fabs(mu_f)<0.5 && mu_u < 5.0 / 180.0 * M_PI);
|
||||
return (std::abs(mu_f)<0.5 && mu_u < 5.0 / 180.0 * M_PI);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -38,7 +38,7 @@ Vector RelativeElevationFactor::evaluateError(const Pose3& pose, const Point3& p
|
|||
/* ************************************************************************* */
|
||||
bool RelativeElevationFactor::equals(const NonlinearFactor& expected, double tol) const {
|
||||
const This *e = dynamic_cast<const This*> (&expected);
|
||||
return e != NULL && Base::equals(*e, tol) && fabs(this->measured_ - e->measured_) < tol;
|
||||
return e != NULL && Base::equals(*e, tol) && std::abs(this->measured_ - e->measured_) < tol;
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
|
Loading…
Reference in New Issue