Reverted interface changes that are unnecessary to make the code compile
							parent
							
								
									a0ae31f0d4
								
							
						
					
					
						commit
						5a44974785
					
				|  | @ -149,6 +149,20 @@ void SubgraphPreconditioner::multiplyInPlace(const VectorValues& y, Errors& e) c | |||
|   Ab2_.multiplyInPlace(x, ei);                  // use iterator version
 | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| // Apply operator A', A'*e = [I inv(R1')*A2']*e = e1 + inv(R1')*A2'*e2
 | ||||
| VectorValues SubgraphPreconditioner::operator^(const Errors& e) const { | ||||
| 
 | ||||
|   Errors::const_iterator it = e.begin(); | ||||
|   VectorValues y = zero(); | ||||
|   for(auto& key_value: y) { | ||||
|     key_value.second = *it; | ||||
|     ++it; | ||||
|   } | ||||
|   transposeMultiplyAdd2(1.0, it, e.end(), y); | ||||
|   return y; | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| // y += alpha*A'*e
 | ||||
| void SubgraphPreconditioner::transposeMultiplyAdd | ||||
|  |  | |||
|  | @ -125,6 +125,9 @@ namespace gtsam { | |||
|     /** Apply operator A in place: needs e allocated already */ | ||||
|     void multiplyInPlace(const VectorValues& y, Errors& e) const; | ||||
| 
 | ||||
|     /** Apply operator A' */ | ||||
|     VectorValues operator^(const Errors& e) const; | ||||
| 
 | ||||
|     /**
 | ||||
|     * Add A'*e to y | ||||
|     *  y += alpha*A'*[e1;e2] = [alpha*e1; alpha*inv(R1')*A2'*e2] | ||||
|  |  | |||
|  | @ -59,6 +59,11 @@ namespace gtsam { | |||
|     /** Access b vector */ | ||||
|     const Vector& b() const { return b_; } | ||||
| 
 | ||||
|     /** Apply operator A'*e */ | ||||
|     Vector operator^(const Vector& e) const { | ||||
|       return A_.transpose() * e; | ||||
|     } | ||||
| 
 | ||||
|     /**
 | ||||
|      * Print with optional string | ||||
|      */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue