docs: def predictive_probability_multistate(self, M_c, X_L_list, X_D_list, Y, Q):
          """Calculate probability of cells jointly taking values given a
          latent state.
  
          :param Y: A list of constraints to apply when querying.  Each constraint
              is a triplet of (r,d,v): r is the row index, d is the column
              index and v is the value of the constraint
          :type Y: list of lists
          :param Q: A list of values to query.  Each value is triplet of (r,d,v):
              r is the row index, d is the column index, and v is the value at
              which the density is evaluated.
          :type Q: list of lists
  
          :returns: float -- joint log probabilities of the values specified by Q
          """
          return su.predictive_probability_multistate(
              M_c, X_L_list, X_D_list, Y, Q)