docs: def update_anomalous_score(self):
          """Update anomalous score.
  
          New anomalous score is the summation of weighted differences
          between current summary and reviews. The weights come from credibilities.
  
          Therefore, the new anomalous score is defined as
  
          .. math::
  
              {\\rm anomalous}(r)
              = \\sum_{p \\in P} \\mbox{review}(p) \\times \\mbox{credibility}(p) - 0.5
  
          where :math:`P` is a set of products reviewed by this reviewer,
          review(:math:`p`) and credibility(:math:`p`) are
          review and credibility of product :math:`p`, respectively.
  
          Returns:
            absolute difference between old anomalous score and updated one.
          """
          old = self.anomalous_score
  
          products = self._graph.retrieve_products(self)
          self.anomalous_score = sum(
              p.summary.difference(
                  self._graph.retrieve_review(self, p)) * self._credibility(p) - 0.5
              for p in products
          )
  
          return abs(self.anomalous_score - old)