code: def circvar(
      samples, high=2 * pi, low=0, axis=None, nan_policy="propagate"
  ):
      """Compute the circular variance for samples assumed to be in a range.
  
      Parameters
      ----------
      samples : array_like
          Input array.
      high : float or int, optional
          High boundary for circular variance range.  Default is ``2*pi``.
      low : float or int, optional
          Low boundary for circular variance range.  Default is 0.
      axis : int, optional
          Axis along which variances are computed.  The default is to compute
          the variance of the flattened array.
      nan_policy : {'propagate', 'raise', 'omit'}, optional
          Defines how to handle when input contains nan. 'propagate' returns nan,
          'raise' throws an error, 'omit' performs the calculations ignoring nan
          values. Default is 'propagate'.
  
      Returns
      -------
      circvar : float
          Circular variance.
  
      Notes
      -----
      This uses a definition of circular variance that in the limit of small
      angles returns a number close to the 'linear' variance.
  
      Examples
      --------
      >>> from scipy.stats import circvar
      >>> circvar([0, 2*np.pi/3, 5*np.pi/3])
      2.19722457734
  
      """
      samples, sin_samp, cos_samp, mask = _circfuncs_common(
          samples, high, low, nan_policy=nan_policy
      )
      if mask is None:
          sin_mean = sin_samp.mean(axis=axis)
          cos_mean = cos_samp.mean(axis=axis)
      else:
          nsum = np.asarray(np.sum(~mask, axis=axis).astype(float))
          nsum[nsum == 0] = np.nan
          sin_mean = sin_samp.sum(axis=axis) / nsum
          cos_mean = cos_samp.sum(axis=axis) / nsum
      # hypot can go slightly above 1 due to rounding errors
      with np.errstate(invalid="ignore"):
          R = np.minimum(1, hypot(sin_mean, cos_mean))
  
      return ((high - low) / 2.0 / pi) ** 2 * -2 * log(R)
  
imports: from __future__ import annotations
  import math
  import warnings
  from collections import namedtuple
  import numpy
  from numpy import isscalar, r_, log, around, unique, asarray, zeros, arange, sort, amin, amax, atleast_1d, sqrt, array, compress, pi, exp, ravel, count_nonzero, sin, cos, arctan2, hypot
  from scipy import optimize
  from scipy import special
  from .None import statlib
  from .None import stats
  from .stats import find_repeats, _contains_nan, _normtest_finish
  from .contingency import chi2_contingency
  from .None import distributions
  from ._distn_infrastructure import rv_generic
  from ._hypotests import _get_wilcoxon_distr
label_desc: Use image node_id 38 for calling a global function with example usage: circvar(samples, high, low, axis, nan_policy) and returns: unknown