docs: static void computePPXP( DMatrixRMaj P , DMatrixRMaj P_plus, DMatrixRMaj X , int offsetX,  DMatrixRMaj output ) {
  		final int N = P.numRows;
  		output.reshape(N,2);
  
  		// diag(X) * P <-- N x 2
  		for (int i = 0, index=0; i < N; i++, index += 2) {
  			double x = -X.data[index+offsetX];
  			output.data[index] = x*P.data[index];
  			output.data[index+1] = x*P.data[index+1];
  		}
  
  		// A = P_plus*( diag(x)*P ) <-- 2 x 2
  		double a00=0,a01=0,a10=0,a11=0;
  		for (int i = 0, index=0; i < N; i++, index += 2) {
  			a00 += P_plus.data[i]*output.data[index];
  			a01 += P_plus.data[i]*output.data[index+1];
  			a10 += P_plus.data[i+N]*output.data[index];
  			a11 += P_plus.data[i+N]*output.data[index+1];
  		}
  
  		// P*A <-- N x 2
  		for (int i = 0, index=0; i < N; i++, index += 2) {
  			output.data[index]   = P.data[index]*a00 + P.data[index+1]*a10;
  			output.data[index+1] = P.data[index]*a01+ P.data[index+1]*a11;
  		}
  	}