Documentation

Interval.Interval.Pow

Interval powers #

These are easy on top of exp and log.

@[irreducible]

x^y = exp (x.log * y)

Equations
Instances For
    theorem Interval.pow_def {x y : Interval} :
    x ^ y = (x.log * y).exp
    theorem Interval.approx_pow {x y : Interval} {x' y' : } (xm : approx x x') (ym : approx y y') :
    approx (x ^ y) (x' ^ y')

    Interval.pow is conservative

    theorem Interval.approx_pow_nat {x : Interval} {x' : } {n : } (xm : approx x x') :
    approx (x ^ n) (x' ^ n)

    Interval.pow is conservative for powers

    @[simp]
    theorem Interval.nan_pow {y : Interval} :

    Interval.pow propagates nan

    @[simp]
    theorem Interval.pow_nan {x : Interval} :

    Interval.pow propagates nan

    Interval ^ ℕ powers #

    @[irreducible]

    For use within Interval.powNat for large n (not very optimised)

    Equations
    Instances For
      @[irreducible]

      Special case low powers, and use Floating.powNatSlow for larger n

      Equations
      Instances For
        theorem Interval.powNat_def {x : Interval} {n : } :
        x ^ n = x.powNat n
        theorem Floating.approx_powNatSlow {x' : } {x : Floating} (xm : approx x x') (n : ) :
        approx (x.powNatSlow n) (x' ^ n)

        Floating.powNatSlow is conservative

        @[simp]
        theorem Floating.nan_powNatSlow {n : } (n0 : n 0) :
        theorem Interval.approx_powNat {x : Interval} {x' : } {n : } (xm : approx x x') :
        approx (x ^ n) (x' ^ n)

        Interval ^ ℕ is conservative

        Interval ^ ℤ powers #

        @[irreducible]
        Equations
        Instances For
          theorem Interval.powInt_def {x : Interval} {n : } :
          x ^ n = x.powInt n
          theorem Interval.approx_powInt {x : Interval} {x' : } {n : } (xm : approx x x') :
          approx (x ^ n) (x' ^ n)

          Interval.powInt is conservative