def compute_prior_pseudocounts(vs, rv, pseudocount_base, pseudocount_match):
    """
    Make pseudocounts dict.

    Input:  vs                 a list of votes (domain of prior)
            rv                 a particular vote (e.g. the reported vote)
            pseudocount_base   a prior pseudocount  (e.g. 0.5)
            pseudocount_match  a prior pseudocount  (e.g. 50.0)

    Output: prior_pseudocounts  a dict mapping votes to prior pseudocounts.

    Method: Each entry in dict is pseudocount_base, 
            except that for key rv we have pseudocount_match.

    Remark: This approach of having prior defined by exactly two
            pseudocounts is intended to allow prior to reflect 
            belief that scanners are largely accurate, by having
            pseudocount_match be large, while preserving symmetry 
            among kinds of errors, by having all other entries only
            equal to pseudocount_base.

            Note that vote rv does not need to be in vs, in which 
            case all entries are equal to pseudocount_base.

    Remark: The vote ("-noCVR",) is treated specially, in that a 
            reported vote of ("-noCVR",) is NOT expected to yield
            an actual vote of the same value; all other reported votes
            are expected to yield an actual vote of the same value
            as the reported vote.  This is reflected by having a
            prior-pseudocount of pseudocount base in general, EXCEPT
            whe rv == av and rv != ("-noCVR",).

    """

    prior_pseudocounts = {}
    for av in vs:
        prior_pseudocounts[av] = (pseudocount_match
                                  if av==rv and rv != ("-noCVR",) 
                                  else pseudocount_base)
    return prior_pseudocounts