Documentation

Init.Data.FloatArray.Basic

structure FloatArray :
Instances For
    theorem FloatArray.ext {x y : FloatArray} (data : x.data = y.data) :
    x = y
    @[extern lean_mk_empty_float_array]
    Equations
    Instances For
      @[reducible, inline, deprecated FloatArray.emptyWithCapacity (since := "2025-03-12")]
      Equations
      Instances For
        @[extern lean_float_array_push]
        Equations
        Instances For
          @[extern lean_float_array_size]
          Equations
          Instances For
            @[extern lean_sarray_size]
            Equations
            Instances For
              @[extern lean_float_array_uget]
              def FloatArray.uget (a : FloatArray) (i : USize) :
              i.toNat < a.sizeFloat
              Equations
              Instances For
                @[extern lean_float_array_fget]
                def FloatArray.get (ds : FloatArray) (i : Nat) (h : i < ds.size := by get_elem_tactic) :
                Equations
                • { data := ds }.get x✝¹ x✝ = ds[x✝¹]
                Instances For
                  @[extern lean_float_array_get]
                  Equations
                  Instances For
                    Equations
                    Instances For
                      Equations
                      @[extern lean_float_array_uset]
                      Equations
                      • { data := ds }.uset x✝² x✝¹ x✝ = { data := ds.uset x✝² x✝¹ x✝ }
                      Instances For
                        @[extern lean_float_array_fset]
                        def FloatArray.set (ds : FloatArray) (i : Nat) :
                        Float(h : autoParam (i < ds.size) _auto✝) → FloatArray
                        Equations
                        • { data := ds }.set x✝² x✝¹ x✝ = { data := ds.set x✝² x✝¹ x✝ }
                        Instances For
                          @[extern lean_float_array_set]
                          Equations
                          • { data := ds }.set! x✝¹ x✝ = { data := ds.set! x✝¹ x✝ }
                          Instances For
                            Equations
                            Instances For
                              @[inline]
                              unsafe def FloatArray.forInUnsafe {β : Type v} {m : Type v → Type w} [Monad m] (as : FloatArray) (b : β) (f : Floatβm (ForInStep β)) :
                              m β

                              We claim this unsafe implementation is correct because an array cannot have more than usizeSz elements in our runtime. This is similar to the Array version.

                              Equations
                              Instances For
                                @[implemented_by FloatArray.forInUnsafe]
                                def FloatArray.forIn {β : Type v} {m : Type v → Type w} [Monad m] (as : FloatArray) (b : β) (f : Floatβm (ForInStep β)) :
                                m β

                                Reference implementation for forIn

                                Equations
                                Instances For
                                  Equations
                                  @[inline]
                                  unsafe def FloatArray.foldlMUnsafe {β : Type v} {m : Type v → Type w} [Monad m] (f : βFloatm β) (init : β) (as : FloatArray) (start : Nat := 0) (stop : Nat := as.size) :
                                  m β

                                  See comment at forInUnsafe

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    @[implemented_by FloatArray.foldlMUnsafe]
                                    def FloatArray.foldlM {β : Type v} {m : Type v → Type w} [Monad m] (f : βFloatm β) (init : β) (as : FloatArray) (start : Nat := 0) (stop : Nat := as.size) :
                                    m β

                                    Reference implementation for foldlM

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[inline]
                                      def FloatArray.foldl {β : Type v} (f : βFloatβ) (init : β) (as : FloatArray) (start : Nat := 0) (stop : Nat := as.size) :
                                      β
                                      Equations
                                      Instances For

                                        Converts a list of floats into a FloatArray.

                                        Equations
                                        Instances For