def __init__(self,<EOL>df,<EOL>scale_operator,<EOL>input_output_cholesky=False,<EOL>validate_args=False,<EOL>allow_nan_stats=True,<EOL>name=None):
parameters = dict(locals())<EOL>self._input_output_cholesky = input_output_cholesky<EOL>with tf.name_scope(name) as name:<EOL><INDENT>with tf.name_scope("<STR_LIT>"):<EOL><INDENT>if not dtype_util.is_floating(scale_operator.dtype):<EOL><INDENT>raise TypeError(<EOL>"<STR_LIT>" %<EOL>scale_operator.dtype)<EOL><DEDENT>if not scale_operator.is_square:<EOL><INDENT>print(scale_operator.to_dense().eval())<EOL>raise ValueError("<STR_LIT>")<EOL><DEDENT>self._scale_operator = scale_operator<EOL>self._df = tf.convert_to_tensor(<EOL>value=df, dtype=scale_operator.dtype, name="<STR_LIT>")<EOL>dtype_util.assert_same_float_dtype([self._df, self._scale_operator])<EOL>if tf.compat.dimension_value(self._scale_operator.shape[-<NUM_LIT:1>]) is None:<EOL><INDENT>self._dimension = tf.cast(<EOL>self._scale_operator.domain_dimension_tensor(),<EOL>dtype=self._scale_operator.dtype,<EOL>name="<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>self._dimension = tf.convert_to_tensor(<EOL>value=tf.compat.dimension_value(self._scale_operator.shape[-<NUM_LIT:1>]),<EOL>dtype=self._scale_operator.dtype,<EOL>name="<STR_LIT>")<EOL><DEDENT>df_val = tf.get_static_value(self._df)<EOL>dim_val = tf.get_static_value(self._dimension)<EOL>if df_val is not None and dim_val is not None:<EOL><INDENT>df_val = np.asarray(df_val)<EOL>if not df_val.shape:<EOL><INDENT>df_val = [df_val]<EOL><DEDENT>if np.any(df_val < dim_val):<EOL><INDENT>raise ValueError(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>% (df_val, dim_val))<EOL><DEDENT><DEDENT>elif validate_args:<EOL><INDENT>assertions = assert_util.assert_less_equal(<EOL>self._dimension,<EOL>self._df,<EOL>message=("<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>" % (self._dimension, self._df)))<EOL>self._df = distribution_util.with_dependencies(<EOL>[assertions], self._df)<EOL><DEDENT><DEDENT><DEDENT>super(_WishartLinearOperator, self).__init__(<EOL>dtype=self._scale_operator.dtype,<EOL>validate_args=validate_args,<EOL>allow_nan_stats=allow_nan_stats,<EOL>reparameterization_type=reparameterization.FULLY_REPARAMETERIZED,<EOL>parameters=parameters,<EOL>graph_parents=(<EOL>[self._df, self._dimension] + self._scale_operator.graph_parents),<EOL>name=name)<EOL>
Construct Wishart distributions.

        Args:
          df: `float` or `double` tensor, the degrees of freedom of the
            distribution(s). `df` must be greater than or equal to `k`.
          scale_operator: `float` or `double` instance of `LinearOperator`.
          input_output_cholesky: Python `bool`. If `True`, functions whose input or
            output have the semantics of samples assume inputs are in Cholesky form
            and return outputs in Cholesky form. In particular, if this flag is
            `True`, input to `log_prob` is presumed of Cholesky form and output from
            `sample`, `mean`, and `mode` are of Cholesky form.  Setting this
            argument to `True` is purely a computational optimization and does not
            change the underlying distribution; for instance, `mean` returns the
            Cholesky of the mean, not the mean of Cholesky factors. The `variance`
            and `stddev` methods are unaffected by this flag.
            Default value: `False` (i.e., input/output does not have Cholesky
            semantics).
          validate_args: Python `bool`, default `False`. When `True` distribution
            parameters are checked for validity despite possibly degrading runtime
            performance. When `False` invalid inputs may silently render incorrect
            outputs.
          allow_nan_stats: Python `bool`, default `True`. When `True`, statistics
            (e.g., mean, mode, variance) use the value "`NaN`" to indicate the
            result is undefined. When `False`, an exception is raised if one or
            more of the statistic's batch members are undefined.
          name: Python `str` name prefixed to Ops created by this class.

        Raises:
          TypeError: if scale is not floating-type
          TypeError: if scale.dtype != df.dtype
          ValueError: if df < k, where scale operator event shape is
            `(k, k)`