parameters: (self, mu, kappa)
return_statement: return theta
docstring: Circular data distribution.
  
          mu is the mean angle, expressed in radians between 0 and 2*pi, and
          kappa is the concentration parameter, which must be greater than or
          equal to zero.  If kappa is equal to zero, this distribution reduces
          to a uniform random angle over the range 0 to 2*pi.
docstring_summary: Circular data distribution.
docstring_tokens: Circular data distribution .
function: def vonmisesvariate(self, mu, kappa):
          """Circular data distribution.
  
          mu is the mean angle, expressed in radians between 0 and 2*pi, and
          kappa is the concentration parameter, which must be greater than or
          equal to zero.  If kappa is equal to zero, this distribution reduces
          to a uniform random angle over the range 0 to 2*pi.
  
          """
          # mu:    mean angle (in radians between 0 and 2*pi)
          # kappa: concentration parameter kappa (>= 0)
          # if kappa = 0 generate uniform random angle
  
          # Based upon an algorithm published in: Fisher, N.I.,
          # "Statistical Analysis of Circular Data", Cambridge
          # University Press, 1993.
  
          # Thanks to Magnus Kessler for a correction to the
          # implementation of step 4.
  
          random = self.random
          if kappa <= 1e-6:
              return TWOPI * random()
  
          a = 1.0 + _sqrt(1.0 + 4.0 * kappa * kappa)
          b = (a - _sqrt(2.0 * a))/(2.0 * kappa)
          r = (1.0 + b * b)/(2.0 * b)
  
          while 1:
              u1 = random()
  
              z = _cos(_pi * u1)
              f = (1.0 + r * z)/(r + z)
              c = kappa * (r - f)
  
              u2 = random()
  
              if u2 < c * (2.0 - c) or u2 <= c * _exp(1.0 - c):
                  break
  
          u3 = random()
          if u3 > 0.5:
              theta = (mu % TWOPI) + _acos(f)
          else:
              theta = (mu % TWOPI) - _acos(f)
  
          return theta
function_tokens: def vonmisesvariate ( self , mu , kappa ) : # mu:    mean angle (in radians between 0 and 2*pi) # kappa: concentration parameter kappa (>= 0) # if kappa = 0 generate uniform random angle # Based upon an algorithm published in: Fisher, N.I., # "Statistical Analysis of Circular Data", Cambridge # University Press, 1993. # Thanks to Magnus Kessler for a correction to the # implementation of step 4. random = self . random if kappa <= 1e-6 : return TWOPI * random ( ) a = 1.0 + _sqrt ( 1.0 + 4.0 * kappa * kappa ) b = ( a - _sqrt ( 2.0 * a ) ) / ( 2.0 * kappa ) r = ( 1.0 + b * b ) / ( 2.0 * b ) while 1 : u1 = random ( ) z = _cos ( _pi * u1 ) f = ( 1.0 + r * z ) / ( r + z ) c = kappa * ( r - f ) u2 = random ( ) if u2 < c * ( 2.0 - c ) or u2 <= c * _exp ( 1.0 - c ) : break u3 = random ( ) if u3 > 0.5 : theta = ( mu % TWOPI ) + _acos ( f ) else : theta = ( mu % TWOPI ) - _acos ( f ) return theta