public static DMatrixRMaj addOuterProd(DMatrixRMaj A , double scalar , GeoTuple3D_F64 b, GeoTuple3D_F64 c, DMatrixRMaj ret) {
    """
	Adds the outer product of two vectors onto a matrix:<br>
	ret = A + scalar*a*b<sup>T</sup>
	
	@param A 3x3 matrix
	@param b 3D vector
	@param c 3D vector
	@param ret 3 x 3 matrix or null.
	@return outer product of two 3d vectors
    """
		if( ret == null )
			ret = new DMatrixRMaj(3,3);

		ret.data[0] = A.data[0] + scalar*b.x*c.x;
		ret.data[1] = A.data[1] + scalar*b.x*c.y;
		ret.data[2] = A.data[2] + scalar*b.x*c.z;
		ret.data[3] = A.data[3] + scalar*b.y*c.x;
		ret.data[4] = A.data[4] + scalar*b.y*c.y;
		ret.data[5] = A.data[5] + scalar*b.y*c.z;
		ret.data[6] = A.data[6] + scalar*b.z*c.x;
		ret.data[7] = A.data[7] + scalar*b.z*c.y;
		ret.data[8] = A.data[8] + scalar*b.z*c.z;

		return ret;
	}
public static DMatrixRMaj addOuterProd(DMatrixRMaj A , double scalar , GeoTuple3D_F64 b, GeoTuple3D_F64 c, DMatrixRMaj ret) {
		if( ret == null )
			ret = new DMatrixRMaj(3,3);

		ret.data[0] = A.data[0] + scalar*b.x*c.x;
		ret.data[1] = A.data[1] + scalar*b.x*c.y;
		ret.data[2] = A.data[2] + scalar*b.x*c.z;
		ret.data[3] = A.data[3] + scalar*b.y*c.x;
		ret.data[4] = A.data[4] + scalar*b.y*c.y;
		ret.data[5] = A.data[5] + scalar*b.y*c.z;
		ret.data[6] = A.data[6] + scalar*b.z*c.x;
		ret.data[7] = A.data[7] + scalar*b.z*c.y;
		ret.data[8] = A.data[8] + scalar*b.z*c.z;

		return ret;
	}
public static DMatrixRMaj addOuterProd ( DMatrixRMaj A , double scalar , GeoTuple3D_F64 b , GeoTuple3D_F64 c , DMatrixRMaj ret ) { if ( ret == null ) ret = new DMatrixRMaj ( 3 , 3 ) ; ret . data [ 0 ] = A . data [ 0 ] + scalar * b . x * c . x ; ret . data [ 1 ] = A . data [ 1 ] + scalar * b . x * c . y ; ret . data [ 2 ] = A . data [ 2 ] + scalar * b . x * c . z ; ret . data [ 3 ] = A . data [ 3 ] + scalar * b . y * c . x ; ret . data [ 4 ] = A . data [ 4 ] + scalar * b . y * c . y ; ret . data [ 5 ] = A . data [ 5 ] + scalar * b . y * c . z ; ret . data [ 6 ] = A . data [ 6 ] + scalar * b . z * c . x ; ret . data [ 7 ] = A . data [ 7 ] + scalar * b . z * c . y ; ret . data [ 8 ] = A . data [ 8 ] + scalar * b . z * c . z ; return ret ; }
Adds the outer product of two vectors onto a matrix:<br>
ret = A + scalar*a*b<sup>T</sup>

@param A 3x3 matrix
@param b 3D vector
@param c 3D vector
@param ret 3 x 3 matrix or null.
@return outer product of two 3d vectors
Adds the outer product of two vectors onto a matrix : <br > ret = A + scalar * a * b<sup > T< / sup >