Changed format of Matrix::vector_scale() to switch arguments

release/4.3a0
Alex Cunningham 2009-12-08 21:10:38 +00:00
parent c2a6a87b81
commit d7c67532bf
5 changed files with 12 additions and 12 deletions

View File

@ -181,7 +181,7 @@ pair<Matrix,Vector> GaussianFactor::matrix(const Ordering& ordering, bool weight
// divide in sigma so error is indeed 0.5*|Ax-b|
if (weight) {
Vector t = ediv(ones(sigmas_.size()),sigmas_);
A = vector_scale(A, t);
A = vector_scale(t, A);
for (int i=0; i<b_.size(); ++i)
b(i) *= t(i);
}

View File

@ -491,7 +491,7 @@ return collect(matrices);
/* ************************************************************************* */
// row scaling
Matrix vector_scale(const Matrix& A, const Vector& v) {
Matrix vector_scale(const Vector& v, const Matrix& A) {
Matrix M(A);
for (int i=0; i<A.size1(); ++i) {
for (int j=0; j<A.size2(); ++j) {
@ -503,7 +503,7 @@ Matrix vector_scale(const Matrix& A, const Vector& v) {
/* ************************************************************************* */
// column scaling
Matrix vector_scale(const Vector& v, const Matrix& A) {
Matrix vector_scale(const Matrix& A, const Vector& v) {
Matrix M(A);
for (int i=0; i<A.size1(); ++i)
for (int j=0; j<A.size2(); ++j)

View File

@ -207,11 +207,11 @@ Matrix collect(size_t nrMatrices, ...);
/**
* scales a matrix row or column by the values in a vector
* Arguments (Matrix, Vector) scales the rows,
* (Vector, Matrix) scales the columns
* Arguments (Matrix, Vector) scales the columns,
* (Vector, Matrix) scales the rows
*/
Matrix vector_scale(const Matrix& A, const Vector& v); // row
Matrix vector_scale(const Vector& v, const Matrix& A); // column
Matrix vector_scale(const Vector& v, const Matrix& A); // row
Matrix vector_scale(const Matrix& A, const Vector& v); // column
/**
* skew symmetric matrix returns this:

View File

@ -121,7 +121,7 @@ NonlinearConstraint1<Config>::linearize(const Config& config, const VectorConfig
Matrix grad = gradG_(config, this->keys());
// construct probabilistic factor
Matrix A1 = vector_scale(grad, lambda);
Matrix A1 = vector_scale(lambda, grad);
GaussianFactor::shared_ptr factor(new
GaussianFactor(key_, A1, this->lagrange_key_, eye(this->p_), zero(this->p_), 1.0));
@ -218,8 +218,8 @@ NonlinearConstraint2<Config>::linearize(const Config& config, const VectorConfig
Matrix grad2 = gradG2_(config, this->keys());
// construct probabilistic factor
Matrix A1 = vector_scale(grad1, lambda);
Matrix A2 = vector_scale(grad2, lambda);
Matrix A1 = vector_scale(lambda, grad1);
Matrix A2 = vector_scale(lambda, grad2);
GaussianFactor::shared_ptr factor(new
GaussianFactor(key1_, A1, key2_, A2,
this->lagrange_key_, eye(this->p_), zero(this->p_), 1.0));

View File

@ -167,7 +167,7 @@ TEST( matrix, scale_columns )
Vector v = Vector_(4, 2., 3., 4., 5.);
Matrix actual = vector_scale(v,A);
Matrix actual = vector_scale(A,v);
Matrix expected(3,4);
expected(0,0) = 2.; expected(0,1) = 3.; expected(0,2)= 4.; expected(0,3)= 5.;
@ -187,7 +187,7 @@ TEST( matrix, scale_rows )
Vector v = Vector_(3, 2., 3., 4.);
Matrix actual = vector_scale(A,v);
Matrix actual = vector_scale(v,A);
Matrix expected(3,4);
expected(0,0) = 2.; expected(0,1) = 2.; expected(0,2)= 2.; expected(0,3)= 2.;