code: public static boolean decomposeSafe(DecompositionInterface<ZMatrixRMaj> decomposition, ZMatrixRMaj a) {
  
          if( decomposition.inputModified() ) {
              a = a.copy();
          }
          return decomposition.decompose(a);
      }
docs: Decomposes the input matrix 'a' and makes sure it isn't modified.