def METHOD_NAME(ctx: FunctionCtx, dout_dmu: Tensor, dout_dL: Tensor) -> Tuple[Tensor, Tensor]:
    mu, L, C = ctx.saved_tensors
    dout_dnat1, dout_dnat2 = _NaturalToMuVarSqrt._backward(dout_dmu, dout_dL, mu, L, C)
    """
    Now we need to do the Jacobian-Vector Product for the transformation:
    L = inv(chol(inv(-2 theta_cov)))
    C^T C = -2 theta_cov
    so we need to do forward differentiation, starting with sensitivity (sensitivities marked with .dots.)
    .theta_cov. = dout_dnat2
    and ending with sensitivity .C.
    if B = inv(-2 theta_cov) then:
    .B.  =  d inv(-2 theta_cov)/dtheta_cov * .theta_cov.  =  -B (-2 .theta_cov.) B
    if L = chol(B), B = LL^T then (https://homepages.inf.ed.ac.uk/imurray2/pub/16choldiff/choldiff.pdf):
    .L. = L phi(L^{-1} .B. (L^{-1})^T) = L phi(2 L^T .theta_cov. L)
    Then C = inv(L), so
    .C. = -C .L. C = phi(-2 L^T .theta_cov. L)C
    """
    A = L.transpose(-2, -1) @ dout_dnat2 @ L
    phi = _phi_for_cholesky_(A.mul_(-2))
    dout_dtril = phi @ C
    return dout_dnat1, dout_dtril