private int invWmTransform(double alpha,double f1,double f2,double f3){
  double s=alpha * Math.abs(f3 - f1) / 2.0;
  double l=f1;
  int x=0;
  while (l < f2) {
    l+=s;
    x++;
  }
  if (Math.abs(l - s - f2) < Math.abs(l - f2)) {
    return (x + 1) % 2;
  }
 else {
    return x % 2;
  }
}

private int invWmTransform ( double alpha , double f1 , double f2 , double f3 ) { double s = alpha * Math . abs ( f3 - f1 ) / 2.0 ; double l = f1 ; int x = 0 ; while ( l < f2 ) { l += s ; x ++ ; } if ( Math . abs ( l - s - f2 ) < Math . abs ( l - f2 ) ) { return ( x + 1 ) % 2 ; } else { return x % 2 ; } }
inverse watermarking transformation , extract embedded bit , check quantization boundaries
