| 86 | } |
| 87 | |
| 88 | double next_double() |
| 89 | { |
| 90 | int j; |
| 91 | long k; |
| 92 | double temp; |
| 93 | |
| 94 | if (*idum <= 0 || !iy) { |
| 95 | if (-(*idum) < 1) *idum = 1; |
| 96 | else *idum = -(*idum); |
| 97 | for (j = NTAB + 7; j >= 0; j--) { |
| 98 | k = (*idum) / IQ; |
| 99 | *idum = IA*(*idum - k*IQ) - IR*k; |
| 100 | if (*idum < 0) *idum += IM; |
| 101 | if (j < NTAB) iv[j] = *idum; |
| 102 | } |
| 103 | iy = iv[0]; |
| 104 | } |
| 105 | k = (*idum) / IQ; |
| 106 | *idum = IA*(*idum - k*IQ) - IR*k; |
| 107 | if (*idum < 0) *idum += IM; |
| 108 | j = iy / NDIV; |
| 109 | iy = iv[j]; |
| 110 | iv[j] = *idum; |
| 111 | if ((temp = AM*iy) > RNMX) return RNMX; |
| 112 | else return temp; |
| 113 | } |
| 114 | }; |
| 115 | |
| 116 |
nothing calls this directly
no outgoing calls
no test coverage detected