84 double a = 1.0 + sqrt(1.0 + 4.0*mConcentrationParameter*mConcentrationParameter);
85 double b = (a - sqrt(2.0*a)) / (2.0*mConcentrationParameter);
86 double r = (1.0 + b*b) / (2.0*b);
96 double z = cos(M_PI*u1);
97 double f = (1.0 + r*z) / (r + z);
98 double c = mConcentrationParameter*(r - f);
100 if (((c*(2.0 - c) - u2) > 0.0) || ((log(c/u2) + 1.0 - c) > 0.0))
102 theta = fmod((Signum(u3 - 0.5)*std::acos(f)) + mMeanParameter, 2*M_PI);
107 c_vector<double, SPACE_DIM> vector;
108 vector(0) = cos(theta);
109 vector(1) = sin(theta);