class_docstr: An abstract base class for a proximal operator
  
  Parameters
  ----------
  range : `tuple` of two `int`, default=`None`
      Range on which the prox is applied
  
  Attributes
  ----------
  dtype : `{'float64', 'float32'}`
      Type of the arrays used.
docstr: Apply proximal operator on a vector.
  It computes:
  
  .. math::
      argmin_x \big( f(x) + \frac{1}{2} \|x - v\|_2^2 \big)
  
  Parameters
  ----------
  coeffs : `numpy.ndarray`, shape=(n_coeffs,)
      Input vector on which is applied the proximal operator
  
  step : `float` or `np.array`, default=1.
      The amount of penalization is multiplied by this amount
  
      * If `float`, the amount of penalization is multiplied by
        this amount
      * If `np.array`, then each coordinate of coeffs (within
        the given range), receives an amount of penalization
        multiplied by t (available only for separable prox)
  
  out : `numpy.ndarray`, shape=(n_params,), default=None
      If not `None`, the output is stored in the given ``out``.
      Otherwise, a new vector is created.
  
  Returns
  -------
  output : `numpy.ndarray`, shape=(n_coeffs,)
      Same object as out
  
  Notes
  -----
  ``step`` must have the same size as ``coeffs`` whenever range is
  `None`, or a size matching the one given by the range
  otherwise
docstr_tok: ["Apply","proximal","operator","on","a","vector",".","It","computes",":","..","math",":",":","argmin_x","\\big","(","f","(","x",")","+","\\frac","{","1","}","{","2","}","\\|x","-","v\\|_2^2","\\big",")","Parameters","--","--","--","--","--","coeffs",":","`","numpy.ndarray","`",",","shape=","(","n_coeffs",",",")","Input","vector","on","which","is","applied","the","proximal","operator","step",":","`","float","`","or","`","np.array","`",",","default=1",".","The","amount","of","penalization","is","multiplied","by","this","amount","*","If","`","float","`",",","the","amount","of","penalization","is","multiplied","by","this","amount","*","If","`","np.array","`",",","then","each","coordinate","of","coeffs","(","within","the","given","range",")",",","receives","an","amount","of","penalization","multiplied","by","t","(","available","only","for","separable","prox",")","out",":","`","numpy.ndarray","`",",","shape=","(","n_params",",",")",",","default=None","If","not","`","None","`",",","the","output","is","stored","in","the","given","``","out","``",".","Otherwise",",","a","new","vector","is","created",".","Returns","--","--","--","-","output",":","`","numpy.ndarray","`",",","shape=","(","n_coeffs",",",")","Same","object","as","out","Notes","--","--","-","``","step","``","must","have","the","same","size","as","``","coeffs","``","whenever","range","is","`","None","`",",","or","a","size","matching","the","one","given","by","the","range","otherwise"]
code: def call(self, coeffs, step=1.0, out=None):
      """Apply proximal operator on a vector.
      It computes:
  
      .. math::
          argmin_x \\big( f(x) + \\frac{1}{2} \|x - v\|_2^2 \\big)
  
      Parameters
      ----------
      coeffs : `numpy.ndarray`, shape=(n_coeffs,)
          Input vector on which is applied the proximal operator
  
      step : `float` or `np.array`, default=1.
          The amount of penalization is multiplied by this amount
  
          * If `float`, the amount of penalization is multiplied by
            this amount
          * If `np.array`, then each coordinate of coeffs (within
            the given range), receives an amount of penalization
            multiplied by t (available only for separable prox)
  
      out : `numpy.ndarray`, shape=(n_params,), default=None
          If not `None`, the output is stored in the given ``out``.
          Otherwise, a new vector is created.
  
      Returns
      -------
      output : `numpy.ndarray`, shape=(n_coeffs,)
          Same object as out
  
      Notes
      -----
      ``step`` must have the same size as ``coeffs`` whenever range is
      `None`, or a size matching the one given by the range
      otherwise
      """
      if out is None:
          # We don't have an output vector, we create a fresh copy
          out = coeffs.copy()
      else:
          # We do an inplace copy of coeffs into out
          out[:] = coeffs
      # Apply the proximal, the output is in out
      self._call(coeffs, step, out)
      return out
  
file_path: tick/tick/prox/base/prox.py
imports: import numpy
  from abc import ABC, abstractmethod
  from tick.base import Base
label_desc: Use image node_id 4 for calling the Prox obj's underlying member method code with example usage: obj.call(coeffs, step, out) and returns: out