Source code for tike.random
"""Provides random number generators for complex data types."""
import logging
import cupy as cp
import numpy as np
import tike.precision
randomizer_np = np.random.default_rng()
logger = logging.getLogger(__name__)
[docs]def numpy_complex(*shape):
"""Return a complex random array in the range [-0.5, 0.5)."""
return (
randomizer_np.random(size=(*shape, 2), dtype=tike.precision.floating) -
0.5).view(tike.precision.cfloating)[..., 0]
[docs]def cupy_complex(*shape):
"""Return a complex random array in the range [-0.5, 0.5)."""
return (
cp.random.random(size=(*shape, 2), dtype=tike.precision.floating) -
0.5).view(tike.precision.cfloating)[..., 0]
[docs]def cluster_wobbly_center(*args, **kwargs):
"""Deprecated alias for :py:func:`tike.cluster.wobbly_center`."""
import warnings
warnings.warn(
'tike.random.cluster_wobbly_center is depreacted. '
'Use tike.cluster.wobbly_center instead.',
DeprecationWarning,
)
import tike.cluster
return tike.cluster.wobbly_center(*args, **kwargs)
[docs]def cluster_compact(*args, **kwargs):
"""Deprecated alias for :py:func:`tike.cluster.compact`."""
import warnings
warnings.warn(
'tike.random.cluster_compact is depreacted. '
'Use tike.cluster.compact instead.',
DeprecationWarning,
)
import tike.cluster
return tike.cluster.compact(*args, **kwargs)