Cholesky unit test works now

release/4.3a0
Frank Dellaert 2010-11-08 20:34:45 +00:00
parent 93deac972c
commit 364a522382
1 changed files with 16 additions and 16 deletions

View File

@ -20,6 +20,7 @@
#include <iostream> #include <iostream>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
#include <boost/numeric/ublas/triangular.hpp>
#include <boost/assign/std/vector.hpp> #include <boost/assign/std/vector.hpp>
using namespace boost::assign; using namespace boost::assign;
@ -31,6 +32,7 @@ using namespace boost::assign;
using namespace std; using namespace std;
using namespace gtsam; using namespace gtsam;
using namespace noiseModel; using namespace noiseModel;
namespace ublas = boost::numeric::ublas;
static double sigma = 2, s_1=1.0/sigma, var = sigma*sigma, prc = 1.0/var; static double sigma = 2, s_1=1.0/sigma, var = sigma*sigma, prc = 1.0/var;
static Matrix R = Matrix_(3, 3, static Matrix R = Matrix_(3, 3,
@ -196,7 +198,7 @@ TEST( NoiseModel, QR )
CHECK(linear_dependent(expectedRd2,Ab2,1e-6)); // Ab was modified in place !!! CHECK(linear_dependent(expectedRd2,Ab2,1e-6)); // Ab was modified in place !!!
} }
///* ************************************************************************* */ /* ************************************************************************* */
//TEST( NoiseModel, QRColumnWise ) //TEST( NoiseModel, QRColumnWise )
//{ //{
// // Call Gaussian version // // Call Gaussian version
@ -206,26 +208,24 @@ TEST( NoiseModel, QR )
// SharedDiagonal actual = exampleQR::diagonal->QRColumnWise(Ab,firstZeroRows); // SharedDiagonal actual = exampleQR::diagonal->QRColumnWise(Ab,firstZeroRows);
// SharedDiagonal expected = noiseModel::Unit::Create(4); // SharedDiagonal expected = noiseModel::Unit::Create(4);
// CHECK(assert_equal(*expected,*actual)); // CHECK(assert_equal(*expected,*actual));
// Matrix AbResized = sub(Ab, 0, actual->dim(), 0, Ab.size2()); // Matrix AbResized = ublas::triangular_adaptor<MatrixColMajor, ublas::upper>(Ab);
// print(exampleQR::Rd, "Rd: "); // print(exampleQR::Rd, "Rd: ");
// print(Ab, "Ab: "); // print(Ab, "Ab: ");
// print(AbResized, "AbResized: "); // print(AbResized, "AbResized: ");
// CHECK(linear_dependent(exampleQR::Rd,AbResized,1e-4)); // Ab was modified in place !!! // CHECK(linear_dependent(exampleQR::Rd,AbResized,1e-4)); // Ab was modified in place !!!
//} //}
//
///* ************************************************************************* */ /* ************************************************************************* */
//TEST(NoiseModel, Cholesky) TEST(NoiseModel, Cholesky)
//{ {
// MatrixColMajor Ab = exampleQR::Ab; // otherwise overwritten ! MatrixColMajor Ab = exampleQR::Ab; // otherwise overwritten !
// SharedDiagonal actual = exampleQR::diagonal->Cholesky(Ab); SharedDiagonal actual = exampleQR::diagonal->Cholesky(Ab);
// SharedDiagonal expected = noiseModel::Unit::Create(4); SharedDiagonal expected = noiseModel::Unit::Create(4);
// EXPECT(assert_equal(*expected,*actual)); EXPECT(assert_equal(*expected,*actual));
// Matrix AbResized = sub(Ab, 0, actual->dim(), 0, Ab.size2()); // Ab was modified in place !!!
// print(exampleQR::Rd, "Rd: "); Matrix actualRd = ublas::triangular_adaptor<MatrixColMajor, ublas::upper>(Ab);
// print(Ab, "Ab: "); EXPECT(linear_dependent(exampleQR::Rd,actualRd,1e-4));
// print(AbResized, "AbResized: "); }
// EXPECT(linear_dependent(exampleQR::Rd,AbResized,1e-4)); // Ab was modified in place !!!
//}
/* ************************************************************************* */ /* ************************************************************************* */
TEST(NoiseModel, QRNan ) TEST(NoiseModel, QRNan )