parameters: (self,
                 num_rows,
                 multiplier,
                 is_non_singular=None,
                 is_self_adjoint=None,
                 is_positive_definite=None,
                 is_square=True,
                 assert_proper_shapes=False,
                 name="LinearOperatorScaledIdentity")
docstring: r"""Initialize a `LinearOperatorScaledIdentity`.
  
      The `LinearOperatorScaledIdentity` is initialized with `num_rows`, which
      determines the size of each identity matrix, and a `multiplier`,
      which defines `dtype`, batch shape, and scale of each matrix.
  
      This operator is able to broadcast the leading (batch) dimensions.
  
      Args:
        num_rows:  Scalar non-negative integer `Tensor`.  Number of rows in the
          corresponding identity matrix.
        multiplier:  `Tensor` of shape `[B1,...,Bb]`, or `[]` (a scalar).
        is_non_singular:  Expect that this operator is non-singular.
        is_self_adjoint:  Expect that this operator is equal to its hermitian
          transpose.
        is_positive_definite:  Expect that this operator is positive definite,
          meaning the quadratic form `x^H A x` has positive real part for all
          nonzero `x`.  Note that we do not require the operator to be
          self-adjoint to be positive-definite.  See:
          https://en.wikipedia.org/wiki/Positive-definite_matrix\
              #Extension_for_non_symmetric_matrices
        is_square:  Expect that this operator acts like square [batch] matrices.
        assert_proper_shapes:  Python `bool`.  If `False`, only perform static
          checks that initialization and method arguments have proper shape.
          If `True`, and static checks are inconclusive, add asserts to the graph.
        name: A name for this `LinearOperator`
  
      Raises:
        ValueError:  If `num_rows` is determined statically to be non-scalar, or
          negative.
docstring_summary: r"""Initialize a `LinearOperatorScaledIdentity`.
docstring_tokens: r Initialize a LinearOperatorScaledIdentity .
function: def __init__(self,
                 num_rows,
                 multiplier,
                 is_non_singular=None,
                 is_self_adjoint=None,
                 is_positive_definite=None,
                 is_square=True,
                 assert_proper_shapes=False,
                 name="LinearOperatorScaledIdentity"):
      r"""Initialize a `LinearOperatorScaledIdentity`.
  
      The `LinearOperatorScaledIdentity` is initialized with `num_rows`, which
      determines the size of each identity matrix, and a `multiplier`,
      which defines `dtype`, batch shape, and scale of each matrix.
  
      This operator is able to broadcast the leading (batch) dimensions.
  
      Args:
        num_rows:  Scalar non-negative integer `Tensor`.  Number of rows in the
          corresponding identity matrix.
        multiplier:  `Tensor` of shape `[B1,...,Bb]`, or `[]` (a scalar).
        is_non_singular:  Expect that this operator is non-singular.
        is_self_adjoint:  Expect that this operator is equal to its hermitian
          transpose.
        is_positive_definite:  Expect that this operator is positive definite,
          meaning the quadratic form `x^H A x` has positive real part for all
          nonzero `x`.  Note that we do not require the operator to be
          self-adjoint to be positive-definite.  See:
          https://en.wikipedia.org/wiki/Positive-definite_matrix\
              #Extension_for_non_symmetric_matrices
        is_square:  Expect that this operator acts like square [batch] matrices.
        assert_proper_shapes:  Python `bool`.  If `False`, only perform static
          checks that initialization and method arguments have proper shape.
          If `True`, and static checks are inconclusive, add asserts to the graph.
        name: A name for this `LinearOperator`
  
      Raises:
        ValueError:  If `num_rows` is determined statically to be non-scalar, or
          negative.
      """
      self._assert_proper_shapes = assert_proper_shapes
  
      if not is_square:
        raise ValueError("A ScaledIdentity operator is always square.")
  
      with ops.name_scope(name, values=[multiplier, num_rows]):
        self._multiplier = ops.convert_to_tensor(multiplier, name="multiplier")
  
        super(LinearOperatorScaledIdentity, self).__init__(
            dtype=self._multiplier.dtype,
            is_non_singular=is_non_singular,
            is_self_adjoint=is_self_adjoint,
            is_positive_definite=is_positive_definite,
            is_square=is_square,
            name=name)
  
        # Shape [B1,...Bb, 1, 1]
        self._multiplier_matrix = array_ops.expand_dims(
            array_ops.expand_dims(self.multiplier, -1), -1)
        self._multiplier_matrix_conj = math_ops.conj(self._multiplier_matrix)
        self._abs_multiplier = math_ops.abs(self.multiplier)
  
        self._num_rows = linear_operator_util.shape_tensor(
            num_rows, name="num_rows")
        self._num_rows_static = tensor_util.constant_value(self._num_rows)
        self._check_num_rows_possibly_add_asserts()
        self._num_rows_cast_to_dtype = math_ops.cast(self._num_rows, self.dtype)
        self._num_rows_cast_to_real_dtype = math_ops.cast(self._num_rows,
                                                          self.dtype.real_dtype)
function_tokens: def __init__ ( self , num_rows , multiplier , is_non_singular = None , is_self_adjoint = None , is_positive_definite = None , is_square = True , assert_proper_shapes = False , name = "LinearOperatorScaledIdentity" ) : self . _assert_proper_shapes = assert_proper_shapes if not is_square : raise ValueError ( "A ScaledIdentity operator is always square." ) with ops . name_scope ( name , values = [ multiplier , num_rows ] ) : self . _multiplier = ops . convert_to_tensor ( multiplier , name = "multiplier" ) super ( LinearOperatorScaledIdentity , self ) . __init__ ( dtype = self . _multiplier . dtype , is_non_singular = is_non_singular , is_self_adjoint = is_self_adjoint , is_positive_definite = is_positive_definite , is_square = is_square , name = name ) # Shape [B1,...Bb, 1, 1] self . _multiplier_matrix = array_ops . expand_dims ( array_ops . expand_dims ( self . multiplier , - 1 ) , - 1 ) self . _multiplier_matrix_conj = math_ops . conj ( self . _multiplier_matrix ) self . _abs_multiplier = math_ops . abs ( self . multiplier ) self . _num_rows = linear_operator_util . shape_tensor ( num_rows , name = "num_rows" ) self . _num_rows_static = tensor_util . constant_value ( self . _num_rows ) self . _check_num_rows_possibly_add_asserts ( ) self . _num_rows_cast_to_dtype = math_ops . cast ( self . _num_rows , self . dtype ) self . _num_rows_cast_to_real_dtype = math_ops . cast ( self . _num_rows , self . dtype . real_dtype )