code: private Matrix3d getMInv() {
  		if (Minv!=null) {
  			return Minv;
  		}
  
  		// see eq. 2.30 Giacovazzo
  		Minv =  new Matrix3d(                    this.a,                                           0,              0,
  							  this.b*Math.cos(gammaRad),                   this.b*Math.sin(gammaRad),              0,
  							  this.c*Math.cos(betaRad) , -this.c*Math.sin(betaRad)*getCosAlphaStar(),  1.0/getCstar());
  		return Minv;
  	}
docs: Returns the change of basis (crystal to orthonormal) transform matrix, that is
  M inverse in the notation of Giacovazzo.
  Using the PDB axes convention
  (CCP4 uses NCODE identifiers to distinguish the different conventions, the PDB one is called NCODE=1)
  The matrix is only calculated upon first call of this method, thereafter it is cached.
  See "Fundamentals of Crystallography" C. Giacovazzo, section 2.5 (eq 2.30)
  
  The non-standard orthogonalisation codes (NCODE for ccp4) are flagged in REMARK 285 after 2011's remediation
  with text: "THE ENTRY COORDINATES ARE NOT PRESENTED IN THE STANDARD CRYSTAL FRAME". There were only 148 PDB
  entries with non-standard code in 2011. See:
  http://www.wwpdb.org/documentation/2011remediation_overview-061711.pdf
  The SCALE1,2,3 records contain the correct transformation matrix (what Giacovazzo calls M matrix).
  In those cases if we calculate the M matrix following Giacovazzo's equations here, we get an entirely wrong one.
  Examples of PDB with non-standard orthogonalisation are 1bab and 1bbb.
  @return