def vectorstrength(events, period):
events = asarray(events)<EOL>period = asarray(period)<EOL>if events.ndim > <NUM_LIT:1>:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>if period.ndim > <NUM_LIT:1>:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>scalarperiod = not period.ndim<EOL>events = atleast_2d(events)<EOL>period = atleast_2d(period)<EOL>if (period <= <NUM_LIT:0>).any():<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>vectors = exp(dot(<NUM_LIT>*pi/period.T, events))<EOL>vectormean = mean(vectors, axis=<NUM_LIT:1>)<EOL>strength = abs(vectormean)<EOL>phase = angle(vectormean)<EOL>if scalarperiod:<EOL><INDENT>strength = strength[<NUM_LIT:0>]<EOL>phase = phase[<NUM_LIT:0>]<EOL><DEDENT>return strength, phase<EOL>
Determine the vector strength of the events corresponding to the given
period.

The vector strength is a measure of phase synchrony, how well the
timing of the events is synchronized to a single period of a periodic
signal.

If multiple periods are used, calculate the vector strength of each.
This is called the "resonating vector strength".

Parameters
----------
events : 1D array_like
    An array of time points containing the timing of the events.
period : float or array_like
    The period of the signal that the events should synchronize to.
    The period is in the same units as `events`.  It can also be an array
    of periods, in which case the outputs are arrays of the same length.

Returns
-------
strength : float or 1D array
    The strength of the synchronization.  1.0 is perfect synchronization
    and 0.0 is no synchronization.  If `period` is an array, this is also
    an array with each element containing the vector strength at the
    corresponding period.
phase : float or array
    The phase that the events are most strongly synchronized to in radians.
    If `period` is an array, this is also an array with each element
    containing the phase for the corresponding period.

References
----------
van Hemmen, JL, Longtin, A, and Vollmayr, AN. Testing resonating vector
    strength: Auditory system, electric fish, and noise.
    Chaos 21, 047508 (2011);
    doi: 10.1063/1.3670512
van Hemmen, JL.  Vector strength after Goldberg, Brown, and von Mises:
    biological and mathematical perspectives.  Biol Cybern.
    2013 Aug;107(4):385-96. doi: 10.1007/s00422-013-0561-7.
van Hemmen, JL and Vollmayr, AN.  Resonating vector strength: what happens
    when we vary the "probing" frequency while keeping the spike times
    fixed.  Biol Cybern. 2013 Aug;107(4):491-94.
    doi: 10.1007/s00422-013-0560-8