code: def inverse(self):
          
          # threshold : threshold of brut revenue
          # net_threshold: threshold of net revenue
          # theta : ordonnée à l'origine des segments des différents seuils dans une
          #         représentation du revenu imposable comme fonction linéaire par
          #         morceaux du revenu brut
          # Actually 1 / (1- global_rate)
          inverse = self.__class__(name = self.name + "'", option = self.option, unit = self.unit)
          net_threshold = 0
          for threshold, rate in zip(self.thresholds, self.rates):
              if threshold == 0:
                  previous_rate = 0
                  theta = 0
              # On calcule le seuil de revenu imposable de la tranche considérée.
              net_threshold = (1 - previous_rate) * threshold + theta
              inverse.add_bracket(net_threshold, 1 / (1 - rate))
              theta = (rate - previous_rate) * threshold + theta
              previous_rate = rate
          return inverse
docs: Returns a new instance of MarginalRateTaxScale
  
          Invert a taxscale:
              Assume tax_scale composed of bracket which thresholds are expressed in term of brut revenue.
              The inverse is another MarginalTaxSclae which thresholds are expressed in terms of net revenue.
              If net  = revbrut - tax_scale.calc(revbrut) then brut = tax_scale.inverse().calc(net)