Serhiy Storchaka added the comment:

Sorry, I was wrong. I missed that z is in range -1..1. Original report is 
invalid, random.vonmisesvariate() always returns a value on the full circle.

However there is some inconsistency. For small kappa (<= 1e-6) result range is 
0 to 2pi, for other kappa it is (mu%2pi)-pi to (mu%2pi)+pi. For consistency we 
should either shift a range for small kappa:

        if kappa <= 1e-6:
            return (mu % TWOPI) - _pi + TWOPI * random()

or normalize a result in another case:

        if u3 > 0.5:
            theta = (mu + _acos(f)) % TWOPI
        else:
            theta = (mu - _acos(f)) % TWOPI

----------
title: random.vonmisesvariate() returns a value only on the half-circle -> 
random.vonmisesvariate() results range is inconsistent for small and not small 
kappa

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17149>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to