docs: def mapper_from_gaussian_tuples(self, tuples, a=None, r=None):
          """
          Creates a new model mapper from a list of floats describing the mean values of gaussian priors. The widths \
          of the new priors are taken from the width_config. The new gaussian priors must be provided in the same \
          order as the priors associated with model.
  
          If a is not None then all priors are created with an absolute width of a.
  
          If r is not None then all priors are created with a relative width of r.
  
          Parameters
          ----------
          r
              The relative width to be assigned to gaussian priors
          a
              The absolute width to be assigned to gaussian priors
          tuples
              A list of tuples each containing the mean and width of a prior
  
          Returns
          -------
          mapper: ModelMapper
              A new model mapper with all priors replaced by gaussian priors.
          """
  
          prior_tuples = self.prior_tuples_ordered_by_id
          prior_class_dict = self.prior_class_dict
          arguments = {}
  
          for i, prior_tuple in enumerate(prior_tuples):
              prior = prior_tuple.prior
              cls = prior_class_dict[prior]
              mean = tuples[i][0]
              if a is not None and r is not None:
                  raise exc.PriorException("Width of new priors cannot be both relative and absolute.")
              if a is not None:
                  width_type = "a"
                  value = a
              elif r is not None:
                  width_type = "r"
                  value = r
              else:
                  width_type, value = conf.instance.prior_width.get_for_nearest_ancestor(cls, prior_tuple.name)
              if width_type == "r":
                  width = value * mean
              elif width_type == "a":
                  width = value
              else:
                  raise exc.PriorException("Prior widths must be relative 'r' or absolute 'a' e.g. a, 1.0")
              if isinstance(prior, GaussianPrior):
                  limits = (prior.lower_limit, prior.upper_limit)
              else:
                  limits = conf.instance.prior_limit.get_for_nearest_ancestor(cls, prior_tuple.name)
              arguments[prior] = GaussianPrior(mean, max(tuples[i][1], width), *limits)
  
          return self.mapper_from_prior_arguments(arguments)