question: public static void gc2gc ( double c1 [ ] , int m1 , double g1 , double c2 [ ] , int m2 , double g2 ) { double [ ] gc2gc_buff = Arrays . copyOf ( c1 , m1 + 1 ) ; c2 [ 0 ] = gc2gc_buff [ 0 ] ; for ( int i = 1 ; i <= m2 ; i ++ ) { double ss1 = 0.0 ; double ss2 = 0.0 ; int min = m1 < i ? m1 : i - 1 ; for ( int k = 1 ; k <= min ; k ++ ) { int mk = i - k ; double cc = gc2gc_buff [ k ] * c2 [ mk ] ; ss2 += k * cc ; ss1 += mk * cc ; } if ( i <= m1 ) c2 [ i ] = gc2gc_buff [ i ] + ( g2 * ss2 - g1 * ss1 ) / i ; else c2 [ i ] = ( g2 * ss2 - g1 * ss1 ) / i ; } }
target:  gc2gc: generalized cepstral transformation