main/src/georegression/geometry/GeometryMath_F64.java
public static <T extends GeoTuple3D_F64> T mult( DMatrixRMaj M, T pt, T result ) {
		if( M.numRows != 3 || M.numCols != 3 )
			throw new IllegalArgumentException( "Input matrix must be 3 by 3, not " + M.numRows + " " + M.numCols );

		if( result == null ) {
			result = (T) pt.createNewInstance();
		}

		double x = pt.x;
		double y = pt.y;
		double z = pt.z;

		result.x = (double) ( M.data[0] * x + M.data[1] * y + M.data[2] * z );
		result.y = (double) ( M.data[3] * x + M.data[4] * y + M.data[5] * z );
		result.z = (double) ( M.data[6] * x + M.data[7] * y + M.data[8] * z );

		return (T) result;
	}
public static <T extends GeoTuple3D_F64> T mult( DMatrixRMaj M, T pt, T result ) {
		if( M.numRows != 3 || M.numCols != 3 )
			throw new IllegalArgumentException( "Input matrix must be 3 by 3, not " + M.numRows + " " + M.numCols );

		if( result == null ) {
			result = (T) pt.createNewInstance();
		}

		double x = pt.x;
		double y = pt.y;
		double z = pt.z;

		result.x = (double) ( M.data[0] * x + M.data[1] * y + M.data[2] * z );
		result.y = (double) ( M.data[3] * x + M.data[4] * y + M.data[5] * z );
		result.z = (double) ( M.data[6] * x + M.data[7] * y + M.data[8] * z );

		return (T) result;
	}
mod = M*pt
<p>
pt and mod can be the same reference.
</p>

@param M
@param pt
@param result Storage for output.  Can be the same instance as param 'pt'.  Modified.