MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / next_double

Method next_double

Source/Utils/diamondsquare.hpp:88–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected