protected int deltaDBtoDeltaInfIndex(int curDB, int dDB) {
        int dII;
        if (curDB <= 0) {
            if (dDB <= 0) {
                // NEG NEG
                // no penalty
                dII = 0;
            }
            else {
                // NEG POS
                // penalty if dDB is big enough
                dII = (dDB + curDB > 0)? (dDB + curDB) : 0;
            }
        }
        else {
            if (dDB >= 0) {
                // POS POS
                // full penalty
                dII = dDB;
            }
            else {
                // POS NEG
                // full or partial gain
                dII = (dDB + curDB <= 0)? -curDB : dDB;
            }
        }        
        return dII;
    }