docs: def cudnnActivationBackward(handle, mode, alpha, srcDesc, srcData, srcDiffDesc, srcDiffData,
                              destDesc, destData, beta, destDiffDesc, destDiffData):
      """"
      Gradient of activation function.
  
      This routine computes the gradient of a neuron activation function.
  
      In-place operation is allowed for this routine; i.e., srcData and destData
      pointers may be equal and srcDiffData and destDiffData pointers may be equal.
      However, this requires the corresponding tensor descriptors to be identical
      (particularly, the strides of the input and output must match for in-place operation
      to be allowed).
  
      Parameters
      ----------
      handle : cudnnHandle
          Handle to a previously created cuDNN context.
      mode : cudnnActivationMode
          Enumerant to specify the activation mode.
      alpha: float
          Scaling factor with which every element of the input tensor is multiplied.
      srcDesc : cudnnTensorDescriptor
          Handle to the previously initialized input tensor descriptor.
      srcData : void_p
          Data pointer to GPU memory associated with the tensor descriptor
          srcDesc.
      srcDiffDesc : cudnnTensorDescriptor
          Handle to the previously initialized input differential tensor descriptor.
      srcDiffData : void_p
          Data pointer to GPU memory associated with the tensor descriptor
          srcDiffData.
      destDesc : cudnnTensorDescriptor
          Handle to the previously initialized output tensor descriptor.
      destData : void_p
          Data pointer to GPU memory associated with the output tensor descriptor
          destDesc.
      beta: float
          Scaling factor which is applied on every element of the output tensor prior
          to adding the result of the activation gradient. Note that if beta is zero, the
          output is not read and can contain any uninitialized data (including Nan numbers).
      destDiffDesc : cudnnTensorDescriptor
          Handle to the previously initialized output differential tensor descriptor.
      destDiffData : void_p
          Data pointer to GPU memory associated with the output tensor descriptor
          destDiffDesc.
      """
  
      dataType = cudnnGetTensor4dDescriptor(destDesc)[0]
      if dataType == cudnnDataType['CUDNN_DATA_DOUBLE']:
          alphaRef = ctypes.byref(ctypes.c_double(alpha))
          betaRef = ctypes.byref(ctypes.c_double(beta))
      else:
          alphaRef = ctypes.byref(ctypes.c_float(alpha))
          betaRef = ctypes.byref(ctypes.c_float(beta))
  
      status = _libcudnn.cudnnActivationBackward(handle, mode, alphaRef, srcDesc, srcData,
                                                 srcDiffDesc, srcDiffData,
                                                 destDesc, destData, betaRef,
                                                 destDiffDesc, destDiffData)
      cudnnCheckStatus(status)