code: public static boolean enforceAbsoluteQuadraticConstraints( DMatrix4x4 Q , boolean zeroCenter, boolean zeroSkew ) {
  
  		// see if it's potentially just off by a sign
  		if( Q.a33 < 0 )
  			CommonOps_DDF4.scale(-1,Q);
  
  		DecomposeAbsoluteDualQuadratic alg = new DecomposeAbsoluteDualQuadratic();
  		if( !alg.decompose(Q) )
  			return false;
  
  		// force positive definite
  		DMatrix3x3 k = alg.getK();
  
  		if( zeroCenter ) {
  			k.a13 = k.a23 = 0;
  		}
  
  		if( zeroSkew ) {
  			k.a12 = 0;
  		}
  
  		alg.recomputeQ(Q);
  		return true;
  	}
docs: If the solution to the absolute quadratic was computed using a linear methods it will not exactly have
  the required structure. This forces the structure to match.
  <ol>
  <li>Positive diagonal elements</li>
  <li>(Optional) zero principle point</li>
  <li>(Optional) zero skew</li>
  <li>Q = H*diag([1 1 1 0])*H<sup>T</sup> and H = [K 0; -p'*K 1]</li>
  
  </ol>
  
  <ol>
  <li> R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003 </li>
  </ol>
  
  @see DecomposeAbsoluteDualQuadratic
  
  @param Q Approximate solution to absolute quadratic