src/main/java/net/sourceforge/jaad/aac/ps/PS.java
private void delta_modulo_decode(boolean enable, int[] index, int[] index_prev,
		boolean dt_flag, int nr_par, int stride,
		int and_modulo) {
		int i;

		if(enable) {
			if(!dt_flag) {
				/* delta coded in frequency direction */
				index[0] = 0+index[0];
				index[0] &= and_modulo;

				for(i = 1; i<nr_par; i++) {
					index[i] = index[i-1]+index[i];
					index[i] &= and_modulo;
				}
			}
			else {
				/* delta coded in time direction */
				for(i = 0; i<nr_par; i++) {
					index[i] = index_prev[i*stride]+index[i];
					index[i] &= and_modulo;
				}
			}
		}
		else {
			/* set indices to zero */
			for(i = 0; i<nr_par; i++) {
				index[i] = 0;
			}
		}

		/* coarse */
		if(stride==2) {
			index[0] = 0;
			for(i = (nr_par<<1)-1; i>0; i--) {
				index[i] = index[i>>1];
			}
		}
	}
private void delta_modulo_decode(boolean enable, int[] index, int[] index_prev,
		boolean dt_flag, int nr_par, int stride,
		int and_modulo) {
		int i;

		if(enable) {
			if(!dt_flag) {
				/* delta coded in frequency direction */
				index[0] = 0+index[0];
				index[0] &= and_modulo;

				for(i = 1; i<nr_par; i++) {
					index[i] = index[i-1]+index[i];
					index[i] &= and_modulo;
				}
			}
			else {
				/* delta coded in time direction */
				for(i = 0; i<nr_par; i++) {
					index[i] = index_prev[i*stride]+index[i];
					index[i] &= and_modulo;
				}
			}
		}
		else {
			/* set indices to zero */
			for(i = 0; i<nr_par; i++) {
				index[i] = 0;
			}
		}

		/* coarse */
		if(stride==2) {
			index[0] = 0;
			for(i = (nr_par<<1)-1; i>0; i--) {
				index[i] = index[i>>1];
			}
		}
	}
private void delta_modulo_decode ( boolean enable , int [ ] index , int [ ] index_prev , boolean dt_flag , int nr_par , int stride , int and_modulo ) { int i ; if ( enable ) { if ( ! dt_flag ) { /* delta coded in frequency direction */ index [ 0 ] = 0 + index [ 0 ] ; index [ 0 ] &= and_modulo ; for ( i = 1 ; i < nr_par ; i ++ ) { index [ i ] = index [ i - 1 ] + index [ i ] ; index [ i ] &= and_modulo ; } } else { /* delta coded in time direction */ for ( i = 0 ; i < nr_par ; i ++ ) { index [ i ] = index_prev [ i * stride ] + index [ i ] ; index [ i ] &= and_modulo ; } } } else { /* set indices to zero */ for ( i = 0 ; i < nr_par ; i ++ ) { index [ i ] = 0 ; } } /* coarse */ if ( stride == 2 ) { index [ 0 ] = 0 ; for ( i = ( nr_par << 1 ) - 1 ; i > 0 ; i -- ) { index [ i ] = index [ i >> 1 ] ; } } }
/* in: log2 value of the modulo value to allow using AND instead of MOD
/ * in : log2 value of the modulo value to allow using AND instead of MOD