Comment cleanup to /** style and adding global print functions

release/4.3a0
Richard Roberts 2010-01-10 22:41:23 +00:00
parent 78a579a24a
commit 1dcc864d97
8 changed files with 72 additions and 63 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8"?>
<?fileVersion 4.0.0?> <?fileVersion 4.0.0?>
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> <cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
@ -298,22 +298,6 @@
</storageModule> </storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"> <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
<buildTargets> <buildTargets>
<target name="install" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>install</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="check" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>check</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="check" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <target name="check" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand> <buildCommand>make</buildCommand>
<buildArguments>-k</buildArguments> <buildArguments>-k</buildArguments>
@ -468,7 +452,7 @@
</target> </target>
<target name="testBayesTree.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <target name="testBayesTree.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand> <buildCommand>make</buildCommand>
<buildArguments/> <buildArguments></buildArguments>
<buildTarget>testBayesTree.run</buildTarget> <buildTarget>testBayesTree.run</buildTarget>
<stopOnError>true</stopOnError> <stopOnError>true</stopOnError>
<useDefaultCommand>false</useDefaultCommand> <useDefaultCommand>false</useDefaultCommand>
@ -483,7 +467,7 @@
</target> </target>
<target name="testSymbolicFactorGraph.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <target name="testSymbolicFactorGraph.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand> <buildCommand>make</buildCommand>
<buildArguments/> <buildArguments></buildArguments>
<buildTarget>testSymbolicFactorGraph.run</buildTarget> <buildTarget>testSymbolicFactorGraph.run</buildTarget>
<stopOnError>true</stopOnError> <stopOnError>true</stopOnError>
<useDefaultCommand>false</useDefaultCommand> <useDefaultCommand>false</useDefaultCommand>
@ -719,18 +703,10 @@
<useDefaultCommand>true</useDefaultCommand> <useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders> <runAllBuilders>true</runAllBuilders>
</target> </target>
<target name="testPose3Config.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <target name="testLieConfig.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand> <buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments> <buildArguments>-j2</buildArguments>
<buildTarget>testPose3Config.run</buildTarget> <buildTarget>testLieConfig.run</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="testPose3Graph.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>testPose3Graph.run</buildTarget>
<stopOnError>true</stopOnError> <stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand> <useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders> <runAllBuilders>true</runAllBuilders>
@ -759,6 +735,22 @@
<useDefaultCommand>true</useDefaultCommand> <useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders> <runAllBuilders>true</runAllBuilders>
</target> </target>
<target name="install" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>install</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="check" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>check</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
</buildTargets> </buildTargets>
</storageModule> </storageModule>
</cconfiguration> </cconfiguration>

View File

@ -75,7 +75,7 @@ namespace gtsam {
/** Call equal on the object without tolerance (use default tolerance) */ /** Call equal on the object without tolerance (use default tolerance) */
template<class T> template<class T>
inline bool equal(const T& obj1, const T& obj2) { inline bool equal(const T& obj1, const T& obj2) {
return obj1.equal(obj2); return obj1.equals(obj2);
} }
// Vector Group operations // Vector Group operations

View File

@ -62,18 +62,22 @@ namespace gtsam {
} }
}; };
// Lie group functions /** Lie group functions */
// Dimensionality of the tangent space /** Global print calls member function */
inline void print(const Point2& p, std::string& s) { p.print(s); }
inline void print(const Point2& p) { p.print(); }
/** Dimensionality of the tangent space */
inline size_t dim(const Point2& obj) { return 2; } inline size_t dim(const Point2& obj) { return 2; }
// Exponential map around identity - just create a Point2 from a vector /** Exponential map around identity - just create a Point2 from a vector */
template<> inline Point2 expmap(const Vector& dp) { return Point2(dp); } template<> inline Point2 expmap(const Vector& dp) { return Point2(dp); }
// Log map around identity - just return the Point2 as a vector /** Log map around identity - just return the Point2 as a vector */
inline Vector logmap(const Point2& dp) { return Vector_(2, dp.x(), dp.y()); } inline Vector logmap(const Point2& dp) { return Vector_(2, dp.x(), dp.y()); }
// "Compose", just adds the coordinates of two points. /** "Compose", just adds the coordinates of two points. */
inline Point2 compose(const Point2& p1, const Point2& p0) { return p0+p1; } inline Point2 compose(const Point2& p1, const Point2& p0) { return p0+p1; }
inline Matrix Dcompose1(const Point2& p1, const Point2& p0) { inline Matrix Dcompose1(const Point2& p1, const Point2& p0) {
return Matrix_(2,2, return Matrix_(2,2,
@ -84,7 +88,7 @@ namespace gtsam {
1.0, 0.0, 1.0, 0.0,
0.0, 1.0); } 0.0, 1.0); }
// "Inverse" - negates each coordinate such that compose(p,inverse(p))=Point2() /** "Inverse" - negates each coordinate such that compose(p,inverse(p))=Point2() */
inline Point2 inverse(const Point2& p) { return Point2(-p.x(), -p.y()); } inline Point2 inverse(const Point2& p) { return Point2(-p.x(), -p.y()); }
} }

View File

@ -78,18 +78,20 @@ namespace gtsam {
}; };
/** return DOF, dimensionality of tangent space */ /** Global print calls member function */
inline void print(const Point3& p, std::string& s) { p.print(s); }
inline void print(const Point3& p) { p.print(); }
// Dimensionality of the tangent space /** return DOF, dimensionality of tangent space */
inline size_t dim(const Point3&) { return 3; } inline size_t dim(const Point3&) { return 3; }
// Exponential map at identity - just create a Point3 from x,y,z /** Exponential map at identity - just create a Point3 from x,y,z */
template<> inline Point3 expmap(const Vector& dp) { return Point3(dp); } template<> inline Point3 expmap(const Vector& dp) { return Point3(dp); }
// Log map at identity - return the x,y,z of this point /** Log map at identity - return the x,y,z of this point */
inline Vector logmap(const Point3& dp) { return Vector_(3, dp.x(), dp.y(), dp.z()); } inline Vector logmap(const Point3& dp) { return Vector_(3, dp.x(), dp.y(), dp.z()); }
// "Compose" - just adds coordinates of two points /** "Compose" - just adds coordinates of two points */
inline Point3 compose(const Point3& p1, const Point3& p0) { return p0+p1; } inline Point3 compose(const Point3& p1, const Point3& p0) { return p0+p1; }
inline Matrix Dcompose1(const Point3& p1, const Point3& p0) { inline Matrix Dcompose1(const Point3& p1, const Point3& p0) {
return Matrix_(3,3, return Matrix_(3,3,
@ -104,11 +106,11 @@ namespace gtsam {
0.0, 0.0, 1.0); 0.0, 0.0, 1.0);
} }
// "Inverse" - negates the coordinates such that compose(p, inverse(p)) = Point3() /** "Inverse" - negates the coordinates such that compose(p, inverse(p)) = Point3() */
inline Point3 inverse(const Point3& p) { return Point3(-p.x(), -p.y(), -p.z()); } inline Point3 inverse(const Point3& p) { return Point3(-p.x(), -p.y(), -p.z()); }
// Syntactic sugar for multiplying coordinates by a scalar s*p /** Syntactic sugar for multiplying coordinates by a scalar s*p */
inline Point3 operator*(double s, const Point3& p) { return p*s;} inline Point3 operator*(double s, const Point3& p) { return p*s;}
/** add two points, add(p,q) is same as p+q */ /** add two points, add(p,q) is same as p+q */

View File

@ -68,42 +68,42 @@ namespace gtsam {
} }
}; // Pose3 class }; // Pose3 class
// global print /** global print */
inline void print(const Pose3& p, const std::string& s = "") { p.print(s);} inline void print(const Pose3& p, const std::string& s = "") { p.print(s);}
// Dimensionality of the tangent space /** Dimensionality of the tangent space */
inline size_t dim(const Pose3&) { return 6; } inline size_t dim(const Pose3&) { return 6; }
// Compose two poses /** Compose two poses */
inline Pose3 compose(const Pose3& p0, const Pose3& p1) { inline Pose3 compose(const Pose3& p0, const Pose3& p1) {
return Pose3(p0.rotation()*p1.rotation(), return Pose3(p0.rotation()*p1.rotation(),
p0.translation() + p0.rotation()*p1.translation()); p0.translation() + p0.rotation()*p1.translation());
} }
// Find the inverse pose s.t. inverse(p)*p = Pose3() /** Find the inverse pose s.t. inverse(p)*p = Pose3() */
inline Pose3 inverse(const Pose3& p) { inline Pose3 inverse(const Pose3& p) {
Rot3 Rt = inverse(p.rotation()); Rot3 Rt = inverse(p.rotation());
return Pose3(Rt, Rt*(-p.translation())); return Pose3(Rt, Rt*(-p.translation()));
} }
// Exponential map at identity - create a pose with a translation and /** Exponential map at identity - create a pose with a translation and
// rotation (in canonical coordinates) * rotation (in canonical coordinates). */
template<> Pose3 expmap(const Vector& d); template<> Pose3 expmap(const Vector& d);
// Log map at identity - return the translation and canonical rotation /** Log map at identity - return the translation and canonical rotation
// coordinates of a pose. * coordinates of a pose. */
Vector logmap(const Pose3& p); Vector logmap(const Pose3& p);
// todo: these are the "old-style" expmap and logmap about the specified /** todo: these are the "old-style" expmap and logmap about the specified
// pose. * pose.
// Increments the offset and rotation independently given a translation and * Increments the offset and rotation independently given a translation and
// canonical rotation coordinates * canonical rotation coordinates */
template<> inline Pose3 expmap<Pose3>(const Pose3& p0, const Vector& d) { template<> inline Pose3 expmap<Pose3>(const Pose3& p0, const Vector& d) {
return Pose3(expmap(p0.rotation(), sub(d, 0, 3)), return Pose3(expmap(p0.rotation(), sub(d, 0, 3)),
expmap(p0.translation(), sub(d, 3, 6))); expmap(p0.translation(), sub(d, 3, 6)));
} }
// Independently computes the logmap of the translation and rotation. /** Independently computes the logmap of the translation and rotation. */
template<> inline Vector logmap<Pose3>(const Pose3& p0, const Pose3& pp) { template<> inline Vector logmap<Pose3>(const Pose3& p0, const Pose3& pp) {
const Vector r(logmap(p0.rotation(), pp.rotation())), const Vector r(logmap(p0.rotation(), pp.rotation())),
t(logmap(p0.translation(), pp.translation())); t(logmap(p0.translation(), pp.translation()));

View File

@ -77,36 +77,40 @@ namespace gtsam {
// Lie group functions // Lie group functions
// Dimensionality of the tangent space /** Global print calls member function */
inline void print(const Rot2& r, std::string& s) { r.print(s); }
inline void print(const Rot2& r) { r.print(); }
/** Dimensionality of the tangent space */
inline size_t dim(const Rot2&) { return 1; } inline size_t dim(const Rot2&) { return 1; }
// Expmap around identity - create a rotation from an angle /** Expmap around identity - create a rotation from an angle */
template<> inline Rot2 expmap(const Vector& v) { template<> inline Rot2 expmap(const Vector& v) {
if (zero(v)) return (Rot2()); if (zero(v)) return (Rot2());
else return Rot2(v(0)); else return Rot2(v(0));
} }
// Logmap around identity - return the angle of the rotation /** Logmap around identity - return the angle of the rotation */
inline Vector logmap(const Rot2& r) { inline Vector logmap(const Rot2& r) {
return Vector_(1, r.theta()); return Vector_(1, r.theta());
} }
// Compose - make a new rotation by adding angles /** Compose - make a new rotation by adding angles */
inline Rot2 compose(const Rot2& r0, const Rot2& r1) { inline Rot2 compose(const Rot2& r0, const Rot2& r1) {
return Rot2( return Rot2(
r0.c() * r1.c() - r0.s() * r1.s(), r0.c() * r1.c() - r0.s() * r1.s(),
r0.s() * r1.c() + r0.c() * r1.s()); r0.s() * r1.c() + r0.c() * r1.s());
} }
// Syntactic sugar R1*R2 = compose(R1,R2) /** Syntactic sugar R1*R2 = compose(R1,R2) */
inline Rot2 operator*(const Rot2& r0, const Rot2& r1) { inline Rot2 operator*(const Rot2& r0, const Rot2& r1) {
return compose(r0, r1); return compose(r0, r1);
} }
// The inverse rotation - negative angle /** The inverse rotation - negative angle */
inline Rot2 inverse(const Rot2& r) { return Rot2(r.c(), -r.s());} inline Rot2 inverse(const Rot2& r) { return Rot2(r.c(), -r.s());}
// Shortcut to compose the inverse: invcompose(R0,R1) = inverse(R0)*R1 /** Shortcut to compose the inverse: invcompose(R0,R1) = inverse(R0)*R1 */
inline Rot2 invcompose(const Rot2& r0, const Rot2& r1) { inline Rot2 invcompose(const Rot2& r0, const Rot2& r1) {
return Rot2( return Rot2(
r0.c() * r1.c() + r0.s() * r1.s(), r0.c() * r1.c() + r0.s() * r1.s(),

View File

@ -117,6 +117,9 @@ namespace gtsam {
} }
}; };
/** Global print calls member function */
inline void print(const Rot3& r, std::string& s) { r.print(s); }
inline void print(const Rot3& r) { r.print(); }
/** /**
* Rodriguez' formula to compute an incremental rotation matrix * Rodriguez' formula to compute an incremental rotation matrix

View File

@ -110,11 +110,15 @@ TEST(LieConfig, expmap_d)
config0.insert("v1", Vector_(3, 1.0, 2.0, 3.0)); config0.insert("v1", Vector_(3, 1.0, 2.0, 3.0));
config0.insert("v2", Vector_(3, 5.0, 6.0, 7.0)); config0.insert("v2", Vector_(3, 5.0, 6.0, 7.0));
//config0.print("config0"); //config0.print("config0");
CHECK(equal(config0, config0));
CHECK(config0.equals(config0));
LieConfig<Pose2> poseconfig; LieConfig<Pose2> poseconfig;
poseconfig.insert("p1", Pose2(1,2,3)); poseconfig.insert("p1", Pose2(1,2,3));
poseconfig.insert("p2", Pose2(0.3, 0.4, 0.5)); poseconfig.insert("p2", Pose2(0.3, 0.4, 0.5));
//poseconfig.print("poseconfig"); //poseconfig.print("poseconfig");
CHECK(equal(config0, config0));
CHECK(config0.equals(config0));
} }
/* ************************************************************************* */ /* ************************************************************************* */