def METHOD_NAME(cmaker, ctxt, imti, imlsNP, tom, _c=None):
    """
    Compute the contributions to the conditional spectra, in a form
    suitable for later composition.
    NB: at the present if works only for poissonian contexts
    :param ctxt:
       a context array
    :param imti:
        IMT index in the range 0..M-1
    :param imls:
        (N, P) intensity measure levels for the IMT specified by the index;
        they are in correspondence with the probabilities in cmaker.poes
    :param tom:
        a temporal occurrence model
    :param _c:
        The previously computed contribution. This is used for the
        calculation of the stddev contribution.
    :returns:
        a dictionary g -> array where g is an index and the array has shape
        (M, N, O, P) with O=3
    """
    N, P = imlsNP.shape
    assert P == len(cmaker.poes), (len(cmaker.poes), P)
    M = len(cmaker.imtls)
    # This is the output dictionary as explained above
    out = outdict(M, N, P, cmaker.gid.min(), cmaker.gid.max() + 1)
    imt_ref = cmaker.imts[imti]
    rho = numpy.array([cmaker.cross_correl.get_correlation(imt_ref, imt)
                       for imt in cmaker.imts])
    for sid, imls in enumerate(imlsNP):
        ctx = ctxt[ctxt.sids == sid]
        mean_stds = cmaker.get_mean_stds([ctx])  # (4, G, M, U)
        # This computes the probability of at least one occurrence
        # probs = 1 - exp(-occurrence_rates*time_span). NOTE that we
        # assume the contexts here are homogenous i.e. they either use
        # the occurrence rate or the probability of occurrence in the
        # investigation time
        if len(ctx.probs_occur[0]):
            probs = numpy.array([numpy.sum(p[1:]) for p in ctx.probs_occur])
        else:
            probs = tom.get_probability_one_or_more_occurrences(
                ctx.occurrence_rate)  # shape U
        # For every GMM
        for c, g in enumerate(cmaker.gid):
            i = c % len(cmaker.gsims)
            _cs_out(mean_stds[:, i], probs, rho, imti, imls, cmaker.poes,
                    cmaker.phi_b, cmaker.investigation_time,
                    out[g][:, sid], _c[:, sid] if _c is not None else None)
    return out