/*!\brief Ziggurat random number generator based on rejection sampling. It returns a pseudorandom normally distributed double number between -4.5 and 4.5*/
//Procedure to create tables for normal distribution kn,wn and fn
/*!\brief Ziggurat random number generator based on rejection sampling. It returns a pseudorandom normally distributed double number between -4.5 and 4.5*/
doubleziggurat()
doubleziggurat(doublemean,doublevariance)
{
//double nor=NOR;
//printf("NOR %e\n",nor);
returnNOR;
}
/*
@defgroup _gaussdouble Gaussian random number generator based on modified Box-Muller transformation.
@ingroup numerical
*/
/*!\brief Gaussian random number generator based on modified Box-Muller transformation.Returns a double-precision floating-point number. */
#define random_SSE
//#define random_SSE
#ifdef random_SSE
doublegaussdouble(doublemean,doublevariance)//It is necessary to improve the function. However if we enable SSE the gain in time it is not too much.
doublegaussdouble(doublemean,doublevariance)//It is necessary to improve the function.
printf("UE_freq_channel time is %f s, AVERAGE time is %f s, count %d, sum %e\n",(float) (stop-start)/CLOCKS_PER_SEC,(float) (sum+stop-start)/(count*CLOCKS_PER_SEC),count,sum+stop-start);