static float *put_vector(vorbis_enc_codebook *book, PutBitContext *pb,

                         float *num)

{

    int i, entry = -1;

    float distance = FLT_MAX;

    assert(book->dimentions);

    for (i = 0; i < book->nentries; i++) {

        float * vec = book->dimentions + i * book->ndimentions, d = book->pow2[i];

        int j;

        if (!book->lens[i])

            continue;

        for (j = 0; j < book->ndimentions; j++)

            d -= vec[j] * num[j];

        if (distance > d) {

            entry    = i;

            distance = d;

        }

    }

    put_codeword(pb, book, entry);

    return &book->dimentions[entry * book->ndimentions];

}

static float *put_vector(vorbis_enc_codebook *book, PutBitContext *pb,

                         float *num)

{

    int i, entry = -1;

    float distance = FLT_MAX;

    assert(book->dimentions);

    for (i = 0; i < book->nentries; i++) {

        float * vec = book->dimentions + i * book->ndimentions, d = book->pow2[i];

        int j;

        if (!book->lens[i])

            continue;

        for (j = 0; j < book->ndimentions; j++)

            d -= vec[j] * num[j];

        if (distance > d) {

            entry    = i;

            distance = d;

        }

    }

    put_codeword(pb, book, entry);

    return &book->dimentions[entry * book->ndimentions];

}

    put_codeword(pb, book, entry);
static float *FUNC_0(vorbis_enc_codebook *VAR_0, PutBitContext *VAR_1,

                         float *VAR_2)

{

    int VAR_3, VAR_4 = -1;

    float VAR_5 = FLT_MAX;

    assert(VAR_0->dimentions);

    for (VAR_3 = 0; VAR_3 < VAR_0->nentries; VAR_3++) {

        float * vec = VAR_0->dimentions + VAR_3 * VAR_0->ndimentions, d = VAR_0->pow2[VAR_3];

        int j;

        if (!VAR_0->lens[VAR_3])

            continue;

        for (j = 0; j < VAR_0->ndimentions; j++)

            d -= vec[j] * VAR_2[j];

        if (VAR_5 > d) {

            VAR_4    = VAR_3;

            VAR_5 = d;

        }

    }

    put_codeword(VAR_1, VAR_0, VAR_4);

    return &VAR_0->dimentions[VAR_4 * VAR_0->ndimentions];

}

static float *FUNC_0(vorbis_enc_codebook *VAR_0, PutBitContext *VAR_1,
float *VAR_2)
{ int VAR_3, VAR_4 = -1; float VAR_5 = FLT_MAX; assert(VAR_0->dimentions); for (VAR_3 = 0; VAR_3 < VAR_0->nentries; VAR_3++) { float * vec = VAR_0->dimentions + VAR_3 * VAR_0->ndimentions, d = VAR_0->pow2[VAR_3]; int j; if (!VAR_0->lens[VAR_3])
continue; for (j = 0; j < VAR_0->ndimentions; j++) d -= vec[j] * VAR_2[j]; if (VAR_5 > d) { VAR_4    = VAR_3; VAR_5 = d; } } put_codeword(VAR_1, VAR_0, VAR_4); return &VAR_0->dimentions[VAR_4 * VAR_0->ndimentions]; }