Changed format of Matrix::vector_scale() to switch arguments
parent
c2a6a87b81
commit
d7c67532bf
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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.;
|
||||
|
|
Loading…
Reference in New Issue