ediv_ is same as ediv except returns 0 for 0/0 division, needed for dealing with constraints
							parent
							
								
									3fbc857a9e
								
							
						
					
					
						commit
						f7d5b517a4
					
				|  | @ -174,6 +174,18 @@ namespace gtsam { | |||
| 		return c; | ||||
| 		} | ||||
| 
 | ||||
|   /* ************************************************************************* */ | ||||
|   Vector ediv_(const Vector &a, const Vector &b) { | ||||
|   	size_t n = a.size(); | ||||
| 		assert (b.size()==n); | ||||
| 		Vector c(n); | ||||
| 		for( size_t i = 0; i < n; i++ ) { | ||||
| 			double ai = a(i), bi = b(i); | ||||
| 			c(i) = (bi==0.0 && ai==0.0) ? 0.0 : a(i)/b(i); | ||||
| 		} | ||||
| 		return c; | ||||
| 		} | ||||
| 
 | ||||
|   /* ************************************************************************* */ | ||||
|   double sum(const Vector &a) { | ||||
|   	double result = 0.0; | ||||
|  |  | |||
|  | @ -141,6 +141,14 @@ Vector emul(const Vector &a, const Vector &b); | |||
|  */ | ||||
| Vector ediv(const Vector &a, const Vector &b); | ||||
| 
 | ||||
| /**
 | ||||
|  * elementwise division, but 0/0 = 0, not inf | ||||
|  * @param a first vector | ||||
|  * @param b second vector | ||||
|  * @return vector [a(i)/b(i)] | ||||
|  */ | ||||
| Vector ediv_(const Vector &a, const Vector &b); | ||||
| 
 | ||||
| /**
 | ||||
|  * sum vector elements | ||||
|  * @param a vector | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue