一个关于结构体的问题
有如下两个结构体
struct Ran { //均匀分布随机数生成器 Ullong u,v,w; Ran(Ullong j) : v(4101842887655102017LL), w(1) {//Constructor. Call with any integer seed (except value of v above). u = j ^ v; int64(); v = u; int64(); w = v; int64(); } //Return 64-bit random integer inline Ullong int64() { u = u * 2862933555777941757LL + 7046029254386353087LL; v ^= v >> 17; v ^= v << 31; v ^= v >> 8; w = 4294957665U*(w & 0xffffffff) + (w >> 32); Ullong x = u ^ (u << 21); x ^= x >> 35; x ^= x << 4; return (x + v) ^ w; } //Return random double-precision floating value in the range 0. to 1 inline Doub doub() { return 5.42101086242752217E-20 * int64(); } //Return 32-bit random integer. inline Uint int32() { return (Uint)int64(); }};struct Normaldev : Ran { //高斯分布随机数生成器 Doub mu,sig; //sig 标准差 Normaldev(Doub mmu, Doub ssig, Ullong i) : Ran(i), mu(mmu), sig(ssig){} Doub dev() { Doub u,v,x,y,q; do { u = doub(); v = 1.7156*(doub()-0.5); x=u- 0.449871; y = fabs(v) + 0.386595; q = SQR(x) + y*(0.19600*y-0.25472*x); } while (q > 0.27597&& (q > 0.27846 || SQR(v) > -4.*log(u)*SQR(u))); return mu + sig*v/u; }};