aboutsummaryrefslogtreecommitdiff
path: root/code/sunlab/common/distribution/symmetric_uniform_distribution.py
blob: c3a4db0e9276c04d60b260c8b6e028739fe8e3b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from .adversarial_distribution import *


class SymmetricUniformDistribution(AdversarialDistribution):
    """# Symmetric Uniform Distribution on [-1, 1)"""

    def __init__(self, N):
        """# Symmetric Uniform Distribution Initialization

        Initializes the name and dimensions"""
        super().__init__(N)
        self.full_name = f"{N}-Dimensional Symmetric Uniform Distribution"
        self.name = "SU"

    def __call__(self, *args):
        """# Magic method when calling the distribution

        This method is going to be called when you use suniform(N1,...,Nm)"""
        import numpy as np

        return np.random.rand(*args, self.dims) * 2.0 - 1.0