class_docstr: Proximal operator of the weighted L1 norm (weighted
  soft-thresholding)
  
  Parameters
  ----------
  strength : `float`
      Level of L1 penalization
  
  weights : `numpy.ndarray`, shape=(n_coeffs,)
      The weights to be used in the L1 penalization
  
  range : `tuple` of two `int`, default=`None`
      Range on which the prox is applied. If `None` then the prox is
      applied on the whole vector
  
  positive : `bool`, default=`False`
      If True, apply L1 penalization together with a projection
      onto the set of vectors with non-negative entries
  
  Attributes
  ----------
  dtype : `{'float64', 'float32'}`
      Type of the arrays used.
class_docstr_tok: ["Proximal","operator","of","the","weighted","L1","norm","(","weighted","soft-thresholding",")","Parameters","--","--","--","--","--","strength",":","`","float","`","Level","of","L1","penalization","weights",":","`","numpy.ndarray","`",",","shape=","(","n_coeffs",",",")","The","weights","to","be","used","in","the","L1","penalization","range",":","`","tuple","`","of","two","`","int","`",",","default=","`","None","`","Range","on","which","the","prox","is","applied",".","If","`","None","`","then","the","prox","is","applied","on","the","whole","vector","positive",":","`","bool","`",",","default=","`","False","`","If","True",",","apply","L1","penalization","together","with","a","projection","onto","the","set","of","vectors","with","non-negative","entries","Attributes","--","--","--","--","--","dtype",":","`","{","'float64","'",",","'float32","'","}","`","Type","of","the","arrays","used","."]
code: def _build_cpp_prox(self, dtype_or_object_with_dtype):
      self.dtype = self._extract_dtype(dtype_or_object_with_dtype)
      prox_class = self._get_typed_class(
          dtype_or_object_with_dtype, dtype_map
      )
  
      weights = self.weights.astype(self.dtype)
      if self.range is None:
          return_prox = prox_class(
              self.strength, weights, self.positive
          )
      else:
          start, end = self.range
          if (end - start) != self.weights.shape[0]:
              raise ValueError(
                  "Size of ``weights`` does not match "
                  "the given ``range``"
              )
          return_prox = prox_class(
              self.strength,
              weights,
              self.range[0],
              self.range[1],
              self.positive,
          )
      return_prox.weights = weights
      return return_prox
  
file_path: tick/tick/prox/prox_l1w.py
imports: import numpy
  from .base import Prox
  from .build.prox import ProxL1wDouble
  from .build.prox import ProxL1wFloat
label_desc: Use image node_id 5 for calling the ProxL1w obj's underlying member method code with example usage: obj._build_cpp_prox(dtype_or_object_with_dtype) and returns: return_prox