www.pudn.com > c4[1].5r8.rar > genlogs.c
/*************************************************************************/
/* */
/* Tabluate logs and log factorials (to improve speed) */
/* -------------------------------- */
/* */
/*************************************************************************/
#include "defns.i"
#include "types.i"
#include "extern.i"
float *LogItemNo;
double *LogFact;
/*************************************************************************/
/* */
/* Set up the array LogItemNo to contain the logs of integers and */
/* the array LogFact to contain logs of factorials (all to base 2) */
/* */
/*************************************************************************/
GenerateLogs()
/* ------------ */
{
ItemNo i;
LogItemNo = (float *) malloc((MaxItem+100) * sizeof(float));
LogFact = (double *) malloc((MaxItem+100) * sizeof(double));
LogItemNo[0] = -1E38;
LogItemNo[1] = 0;
LogFact[0] = LogFact[1] = 0;
ForEach(i, 2, MaxItem+99)
{
LogItemNo[i] = log((float) i) / Log2;
LogFact[i] = LogFact[i-1] + LogItemNo[i];
}
}