docs: def Flavio_to_Fierz_nunu(C, ddll, parameters, norm_gf=True):
      """From  Flavio semileptonic basis to semileptonic Fierz basis for Class V.
      C should be the corresponding leptonic Fierz basis and
      `ddll` should be of the form 'sbl_enu_tau', 'dbl_munu_e' etc."""
      p = parameters
      V = ckmutil.ckm.ckm_tree(p["Vus"], p["Vub"], p["Vcb"], p["delta"])
      if ddll[:2] == 'sb':
          xi = V[2, 2] * V[2, 1].conj()
      elif ddll[:2] == 'db':
          xi = V[2, 2] * V[2, 0].conj()
      elif ddll[:2] == 'ds':
          xi = V[2, 1] * V[2, 0].conj()
      else:
          raise ValueError("Unexpected flavours: {}".format(ddll[:2]))
      q1, q2 = ddll[:2]
      l1 = ddll[4:ddll.find('n')]
      l2 = ddll[ddll.find('_', 5) + 1:]
      ind = q1 + q2 + l1 + l2
      # flavio has indices within currents inverted
      indnu = q2 + q1 + 'nu' + l2 + 'nu' + l1
      e = sqrt(4* pi * parameters['alpha_e'])
      dic = {
          'F' + ind + 'nu': C["CL_" + indnu] / ((8 * pi**2) / e**2),
          'F' + ind + 'nup': C["CR_" + indnu] / ((8 * pi**2) / e**2),
      }
      if norm_gf:
          prefactor = sqrt(2)/p['GF']/xi/4
      else:
          prefactor = 1 / xi
      return {k: v / prefactor for k, v in dic.items()}