code: def lgamma(
      x: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Compute the natural logarithm of the absolute value of the gamma
      function on x.
  
      Parameters
      ----------
      x
          input array. Should have a floating-point data type.
      out
          optional output array, for writing the result to. It must have a shape that the
          inputs broadcast to.
  
      Returns
      -------
      ret
          an array containing the natural log of Gamma(x) of each element in x.
          The returned array must have a floating-point data type determined
          by :ref:`type-promotion`.
  
      Examples
      --------
      >>> x = ivy.array([1.6, 2.6, 3.5])
      >>> y = x.lgamma()
      >>> print(y)
      ivy.array([-0.11259177,  0.3574118 ,  1.20097363])
  
      >>> x = ivy.array([1., 2., 3. ])
      >>> y = x.lgamma()
      >>> print(y)
      ivy.array([0. ,0. ,0.69314718])
  
      >>> x = ivy.array([4.5, -4, -5.6])
      >>> x.lgamma(out = x)
      >>> print(x)
      ivy.array([2.45373654, inf, -4.6477685 ])
      """
      return ivy.current_backend(x).lgamma(x, out=out)
  
imports: from typing import Optional, Union, Tuple, List, Sequence
  from numbers import Number
  import ivy
  from ivy.func_wrapper import handle_out_argument, to_native_arrays_and_back, handle_nestable, handle_partial_mixed_function, handle_array_like_without_promotion, inputs_to_ivy_arrays, handle_array_function, infer_dtype, handle_device, handle_backend_invalid
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 3 for calling a global function with example usage: lgamma() and returns: ivy