/** * Initializes the decomposer. Computes the extended residue table. This have to be done only one time for * a given alphabet, independently from the masses you want to decompose. This method is called automatically * if you compute the decompositions, so call it only if you want to control the time of the initialisation. */ private void init() { if (ERTs != null) return; synchronized (this) { if (ERTs != null) return; discretizeMasses(); divideByGCD(); computeLCMs(); calcERT(); computeErrors(); } }