class_docstr: Base class for Archimedean copulas
  
  Parameters
  ----------
  transform : instance of transformation class
      Archimedean generator with required methods including first and second
      derivatives
  args : tuple
      Optional copula parameters. Copula parameters can be either provided
      when creating the instance or as arguments when calling methods.
  k_dim : int
      Dimension, number of components in the multivariate random variable.
      Currently only bivariate copulas are verified. Support for more than
      2 dimension is incomplete.
class_docstr_tok: ["Base","class","for","Archimedean","copulas","Parameters","--","--","--","--","--","transform",":","instance","of","transformation","class","Archimedean","generator","with","required","methods","including","first","and","second","derivatives","args",":","tuple","Optional","copula","parameters",".","Copula","parameters","can","be","either","provided","when","creating","the","instance","or","as","arguments","when","calling","methods",".","k_dim",":","int","Dimension",",","number","of","components","in","the","multivariate","random","variable",".","Currently","only","bivariate","copulas","are","verified",".","Support","for","more","than","2","dimension","is","incomplete","."]
docstr: Evaluate pdf of Archimedean copula.
docstr_tok: ["Evaluate","pdf","of","Archimedean","copula","."]
code: def pdf(self, u, args=()):
      """Evaluate pdf of Archimedean copula."""
      u = self._handle_u(u)
      args = self._handle_args(args)
      axis = -1
  
      phi_d1 = self.transform.deriv
      if u.shape[-1] == 2:
          psi_d = self.transform.deriv2_inverse
      elif u.shape[-1] == 3:
          psi_d = self.transform.deriv3_inverse
      elif u.shape[-1] == 4:
          psi_d = self.transform.deriv4_inverse
      else:
          # will raise NotImplementedError if not available
          k = u.shape[-1]
  
          def psi_d(*args):
              return self.transform.derivk_inverse(k, *args)
  
      psi = self.transform.evaluate(u, *args).sum(axis)
  
      pdfv = np.prod(phi_d1(u, *args), axis)
      pdfv *= psi_d(psi, *args)
  
      # use abs, I'm not sure yet about where to add signs
      return np.abs(pdfv)
  
imports: import sys
  import numpy
  from scipy import stats, integrate, optimize
  from .None import transforms
  from .copulas import Copula
  from statsmodels.tools.rng_qrng import check_random_state
label_desc: Use image node_id 5 for calling the ArchimedeanCopula obj's underlying member method code with example usage: obj.pdf(u, args) and returns: np, self