Alien-Judy

 view release on metacpan or  search on metacpan

src/judy-1.0.5/test/Judy1LHTime.c  view on Meta::CPAN

            if (Rc != 1)
                FAILURE("JudyLDel ret Rcode != 1", Rc);
        }
        ENDTm(DeltaUSecL);
        DeltaUSecL /= Elements;
    }

    if (JHFlag)
    {
        MalFlag = JudyMalHS;
        STARTTm;
        for (Seed1 = Seed, elm = 0; elm < Elements; elm++)
        {
            Seed1 = GetNextIndex(Seed1);

            if (DFlag)
                TstIndex = Swizzle(Seed1);
            else
                TstIndex = Seed1;

            JHSD(Rc, *JH, &TstIndex, sizeof(Word_t));
            if (Rc != 1)
                FAILURE("JudyHSDel ret Rcode != 1", Rc);
        }
        ENDTm(DeltaUSecHS);
        DeltaUSecHS /= Elements;
    }
    return (0);
}

// Routine to get next size of Indexes
int                                     // return 1 if last number
NextNumb(Word_t *PNumber,               // pointer to returned next number
         double *PDNumb,                // Temp double of above
         double DMult,                  // Multiplier
         Word_t MaxNumb)                // Max number to return
{
//  Save prev number
    double    PrevPDNumb = *PDNumb;
    double    DDiff;

//  Calc next number >= 1.0 beyond previous
    do
    {
        *PDNumb *= DMult;
        DDiff = *PDNumb - PrevPDNumb;

    } while (DDiff < 0.5);

//  Return it in integer format
    if (DDiff < 100.0)
        *PNumber += (Word_t)(DDiff + 0.5);
    else
        *PNumber = *PDNumb + 0.5;

//  Verify it did not exceed max number
    if (*PNumber >= MaxNumb)
    {
//      it did, so return max
        *PNumber = MaxNumb;
        return (1);                     // flag it
    }
    return (0);                         // more available
}



( run in 1.988 second using v1.01-cache-2.11-cpan-140bd7fdf52 )