class_docstr: Interface of Distribution
  
  :class:`Distribution` is a bass class for dealing with probability
  distributions.
  
  This class provides the following capabilities.
  
  1. Sampling random points.
  
  2. Evaluating a probability-related function at a given realization     value. (e.g., probability density function, probability mass function)
  
  3. Obtaining properties of distributions. (e.g., mean, variance)
  
  Note that every method and property that computes them from
  :class:`chainer.Variable` can basically be differentiated.
  
  In this class, sampled random points and realization values given in
  probability-related function is called *sample*.  Sample consists of
  *batches*, and each batch consists of independent *events*. Each event
  consists of values, and each value in an event cannot be sampled
  independently in general. Each event in a batch is independent while it is
  not sampled from an identical distribution. And each batch in sample is
  sampled from an identical distribution.
  
  Each part of the sample-batch-event hierarchy has its own shape, which is
  called ``sample_shape``, ``batch_shape``, and ``event_shape``,
  respectively.
  
  On initialization, it takes distribution-specific parameters as inputs.
  :attr:`batch_shape` and :attr:`event_shape` is decided by the shape of
  the parameter when generating an instance of a class.
  
  .. admonition:: Example
  
      The following code is an example of sample-batch-event hierarchy on
      using :class:`~distributions.MultivariateNormal` distribution. This
      makes 2d normal distributions. ``dist`` consists of 12(4 * 3)
      independent 2d normal distributions. And on initialization,
      :attr:`batch_shape` and :attr:`event_shape` is decided.
  
      >>> import chainer
      >>> import chainer.distributions as D
      >>> import numpy as np
      >>> d = 2
      >>> shape = (4, 3)
      >>> loc = np.random.normal(
      ...     size=shape + (d,)).astype(np.float32)
      >>> cov = np.random.normal(size=shape + (d, d)).astype(np.float32)
      >>> cov = np.matmul(cov, np.rollaxis(cov, -1, -2))
      >>> l = np.linalg.cholesky(cov)
      >>> dist = D.MultivariateNormal(loc, scale_tril=l)
      >>> dist.event_shape
      (2,)
      >>> dist.batch_shape
      (4, 3)
      >>> sample = dist.sample(sample_shape=(6, 5))
      >>> sample.shape
      (6, 5, 4, 3, 2)
  
  Every probability-related function takes realization value whose shape is
  the concatenation of ``sample_shape``, ``batch_shape``, and
  ``event_shape`` and returns an evaluated value whose shape is the
  concatenation of ``sample_shape``, and ``batch_shape``.
class_docstr_tok: ["Interface","of","Distribution",":","class",":","`","Distribution","`","is","a","bass","class","for","dealing","with","probability","distributions",".","This","class","provides","the","following","capabilities",".","1",".","Sampling","random","points",".","2",".","Evaluating","a","probability-related","function","at","a","given","realization","value",".","(","e.g.",",","probability","density","function",",","probability","mass","function",")","3",".","Obtaining","properties","of","distributions",".","(","e.g.",",","mean",",","variance",")","Note","that","every","method","and","property","that","computes","them","from",":","class",":","`","chainer.Variable","`","can","basically","be","differentiated",".","In","this","class",",","sampled","random","points","and","realization","values","given","in","probability-related","function","is","called","*","sample","*",".","Sample","consists","of","*","batches","*",",","and","each","batch","consists","of","independent","*","events","*",".","Each","event","consists","of","values",",","and","each","value","in","an","event","can","not","be","sampled","independently","in","general",".","Each","event","in","a","batch","is","independent","while","it","is","not","sampled","from","an","identical","distribution",".","And","each","batch","in","sample","is","sampled","from","an","identical","distribution",".","Each","part","of","the","sample-batch-event","hierarchy","has","its","own","shape",",","which","is","called","``","sample_shape","``",",","``","batch_shape","``",",","and","``","event_shape","``",",","respectively",".","On","initialization",",","it","takes","distribution-specific","parameters","as","inputs",".",":","attr",":","`","batch_shape","`","and",":","attr",":","`","event_shape","`","is","decided","by","the","shape","of","the","parameter","when","generating","an","instance","of","a","class",".","..","admonition",":",":","Example","The","following","code","is","an","example","of","sample-batch-event","hierarchy","on","using",":","class",":","`","~distributions.MultivariateNormal","`","distribution",".","This","makes","2d","normal","distributions",".","``","dist","``","consists","of","12","(","4","*","3",")","independent","2d","normal","distributions",".","And","on","initialization",",",":","attr",":","`","batch_shape","`","and",":","attr",":","`","event_shape","`","is","decided",".",">",">",">","import","chainer",">",">",">","import","chainer.distributions","as","D",">",">",">","import","numpy","as","np",">",">",">","d","=","2",">",">",">","shape","=","(","4",",","3",")",">",">",">","loc","=","np.random.normal","(","...","size=shape","+","(","d",",",")",")",".astype","(","np.float32",")",">",">",">","cov","=","np.random.normal","(","size=shape","+","(","d",",","d",")",")",".astype","(","np.float32",")",">",">",">","cov","=","np.matmul","(","cov",",","np.rollaxis","(","cov",",","-1",",","-2",")",")",">",">",">","l","=","np.linalg.cholesky","(","cov",")",">",">",">","dist","=","D.MultivariateNormal","(","loc",",","scale_tril=l",")",">",">",">","dist.event_shape","(","2",",",")",">",">",">","dist.batch_shape","(","4",",","3",")",">",">",">","sample","=","dist.sample","(","sample_shape=","(","6",",","5",")",")",">",">",">","sample.shape","(","6",",","5",",","4",",","3",",","2",")","Every","probability-related","function","takes","realization","value","whose","shape","is","the","concatenation","of","``","sample_shape","``",",","``","batch_shape","``",",","and","``","event_shape","``","and","returns","an","evaluated","value","whose","shape","is","the","concatenation","of","``","sample_shape","``",",","and","``","batch_shape","``","."]
docstr: Returns the support of the distribution.
  
  Returns:
      str: String that means support of this distribution.
docstr_tok: ["Returns","the","support","of","the","distribution",".","Returns",":","str",":","String","that","means","support","of","this","distribution","."]
code: def support(self):
      """Returns the support of the distribution.
  
      Returns:
          str: String that means support of this distribution.
  
      """
      raise NotImplementedError
  
imports: import copy
  from chainer import backend
label_desc: Use image node_id 19 for calling the Distribution obj's underlying member method code with example usage: obj.support() without return types