public static Matrix pseudoInverse(Vector caller) {
		double threshold = 1E-15;
		double lenSq = 0;
		for (int i = 0; i < caller.getDimension(); i++)
			lenSq += caller.getCoordQuick(i) * caller.getCoordQuick(i);
		Matrix result = MatrixFactory.createMatrix(1, caller.getDimension());
		if (lenSq < threshold)
			return result;
		for (int i = 0; i < caller.getDimension(); i++)
			result.set(0, i, caller.getCoordQuick(i) / lenSq);
		return result;
	}
public static Matrix pseudoInverse ( Vector caller ) { double threshold = 1E-15 ; double lenSq = 0 ; for ( int i = 0 ; i < caller . getDimension ( ) ; i ++ ) lenSq += caller . getCoordQuick ( i ) * caller . getCoordQuick ( i ) ; Matrix result = MatrixFactory . createMatrix ( 1 , caller . getDimension ( ) ) ; if ( lenSq < threshold ) return result ; for ( int i = 0 ; i < caller . getDimension ( ) ; i ++ ) result . set ( 0 , i , caller . getCoordQuick ( i ) / lenSq ) ; return result ; }
@see Matrix#pseudoInverse()