// Path: vorbis-support/src/main/java/com/github/trilarion/sound/util/Util.java
// public final class Util {
// 
//     private static final Logger LOG = Logger.getLogger(Util.class.getName());
// 
//     /**
//      *
//      * @param v
//      * @return
//      */
//     public static int ilog(int v) {
//         int ret = 0;
//         while (v != 0) {
//             ret++;
//             v >>>= 1;
//         }
//         return ret;
//     }
// 
//     /**
//      *
//      * @param v
//      * @return
//      */
//     public static int ilog2(int v) {
//         int ret = 0;
//         while (v > 1) {
//             ret++;
//             v >>>= 1;
//         }
//         return ret;
//     }
// 
//     /**
//      *
//      * @param v
//      * @return
//      */
//     public static int icount(int v) {
//         int ret = 0;
//         while (v != 0) {
//             ret += (v & 1);
//             v >>>= 1;
//         }
//         return ret;
//     }
// }


import java.util.logging.Logger;
import com.github.trilarion.sound.util.Util;
                    x = (float) Math.sin(x);
                    ret[i + leftbegin] = x;
                }

                for (int i = leftbegin + left; i < rightbegin; i++) {
                    ret[i] = 1.f;
                }

                for (int i = 0; i < right; i++) {
                    float x = (float) ((right - i - .5) / right * M_PI / 2.);
                    x = (float) Math.sin(x);
                    x *= x;
                    x *= M_PI / 2.;
                    x = (float) Math.sin(x);
                    ret[i + rightbegin] = x;
                }
            }
            break;
            default:
                //free(ret);
                return (null);
        }
        return (ret);
    }

    // Analysis side code, but directly related to blocking.  Thus it's
    // here and not in analysis.c (which is for analysis transforms only).
    // The init is here because some of it is shared
    final int init(Info vi, boolean encp) {
        this.vi = vi;
// Path: vorbis-support/src/main/java/com/github/trilarion/sound/util/Util.java
// public final class Util {
// 
//     private static final Logger LOG = Logger.getLogger(Util.class.getName());
// 
//     /**
//      *
//      * @param v
//      * @return
//      */
//     public static int ilog(int v) {
//         int ret = 0;
//         while (v != 0) {
//             ret++;
//             v >>>= 1;
//         }
//         return ret;
//     }
// 
//     /**
//      *
//      * @param v
//      * @return
//      */
//     public static int ilog2(int v) {
//         int ret = 0;
//         while (v > 1) {
//             ret++;
//             v >>>= 1;
//         }
//         return ret;
//     }
// 
//     /**
//      *
//      * @param v
//      * @return
//      */
//     public static int icount(int v) {
//         int ret = 0;
//         while (v != 0) {
//             ret += (v & 1);
//             v >>>= 1;
//         }
//         return ret;
//     }
// }


// Path: vorbis-support/src/main/java/com/github/trilarion/sound/vorbis/jcraft/jorbis/DspState.java
import java.util.logging.Logger;
import com.github.trilarion.sound.util.Util;

                    x = (float) Math.sin(x);
                    ret[i + leftbegin] = x;
                }

                for (int i = leftbegin + left; i < rightbegin; i++) {
                    ret[i] = 1.f;
                }

                for (int i = 0; i < right; i++) {
                    float x = (float) ((right - i - .5) / right * M_PI / 2.);
                    x = (float) Math.sin(x);
                    x *= x;
                    x *= M_PI / 2.;
                    x = (float) Math.sin(x);
                    ret[i + rightbegin] = x;
                }
            }
            break;
            default:
                //free(ret);
                return (null);
        }
        return (ret);
    }

    // Analysis side code, but directly related to blocking.  Thus it's
    // here and not in analysis.c (which is for analysis transforms only).
    // The init is here because some of it is shared
    final int init(Info vi, boolean encp) {
        this.vi = vi;
        modebits = Util.ilog2(vi.modes);