docs: def _update_belief(self, belief_prop, clique, clique_potential, message=None):
          """
          Method for updating the belief.
  
          Parameters:
          ----------
          belief_prop: Belief Propagation
              Belief Propagation which needs to be updated.
  
          in_clique: clique
              The factor which needs to be updated corresponding to the input clique.
  
          out_clique_potential: factor
              Multiplying factor which will be multiplied to the factor corresponding to the clique.
          """
          old_factor = belief_prop.junction_tree.get_factors(clique)
          belief_prop.junction_tree.remove_factors(old_factor)
          if message:
              if message.scope() and clique_potential.scope():
                  new_factor = old_factor * message
                  new_factor = new_factor / clique_potential
              else:
                  new_factor = old_factor
          else:
              new_factor = old_factor * clique_potential
          belief_prop.junction_tree.add_factors(new_factor)
          belief_prop.calibrate()