Documentation

Init.Data.FloatArray.Basic

structure FloatArray :
Type
Instances For
    @[extern lean_mk_empty_float_array]
    Equations
    @[extern lean_float_array_push]
    Equations
    @[extern lean_float_array_size]
    Equations
    @[extern lean_float_array_uget]
    Equations
    • FloatArray.uget _fun_discr _fun_discr _fun_discr = match _fun_discr, _fun_discr, _fun_discr with | { data := ds }, i, h => ds[i]
    @[extern lean_float_array_fget]
    Equations
    @[extern lean_float_array_get]
    Equations
    Equations
    @[extern lean_float_array_uset]
    Equations
    • FloatArray.uset _fun_discr _fun_discr _fun_discr _fun_discr = match _fun_discr, _fun_discr, _fun_discr, _fun_discr with | { data := ds }, i, v, h => { data := Array.uset ds i v h }
    @[extern lean_float_array_fset]
    Equations
    • FloatArray.set _fun_discr _fun_discr _fun_discr = match _fun_discr, _fun_discr, _fun_discr with | { data := ds }, i, d => { data := Array.set ds i d }
    @[extern lean_float_array_set]
    Equations
    • FloatArray.set! _fun_discr _fun_discr _fun_discr = match _fun_discr, _fun_discr, _fun_discr with | { data := ds }, i, d => { data := Array.set! ds i d }
    @[inline]
    unsafe def FloatArray.forInUnsafe {β : Type v} {m : Type vType w} [inst : 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
    @[specialize #[]]
    unsafe def FloatArray.forInUnsafe.loop {β : Type v} {m : Type vType w} [inst : Monad m] (as : FloatArray) (f : Floatβm (ForInStep β)) (sz : USize) (i : USize) (b : β) :
    m β
    Equations
    • One or more equations did not get rendered due to their size.
    @[implementedBy FloatArray.forInUnsafe]
    def FloatArray.forIn {β : Type v} {m : Type vType w} [inst : Monad m] (as : FloatArray) (b : β) (f : Floatβm (ForInStep β)) :
    m β

    Reference implementation for forIn

    Equations
    def FloatArray.forIn.loop {β : Type v} {m : Type vType w} [inst : Monad m] (as : FloatArray) (f : Floatβm (ForInStep β)) (i : Nat) (h : i FloatArray.size as) (b : β) :
    m β
    Equations
    instance FloatArray.instForInFloatArrayFloat {m : Type u_1Type u_2} :
    Equations
    • FloatArray.instForInFloatArrayFloat = { forIn := fun {β} [Monad m] => FloatArray.forIn }
    @[inline]
    unsafe def FloatArray.foldlMUnsafe {β : Type v} {m : Type vType w} [inst : Monad m] (f : βFloatm β) (init : β) (as : FloatArray) (start : optParam Nat 0) (stop : optParam Nat (FloatArray.size as)) :
    m β

    See comment at forInUnsafe

    Equations
    • One or more equations did not get rendered due to their size.
    @[specialize #[]]
    unsafe def FloatArray.foldlMUnsafe.fold {β : Type v} {m : Type vType w} [inst : Monad m] (f : βFloatm β) (as : FloatArray) (i : USize) (stop : USize) (b : β) :
    m β
    Equations
    • One or more equations did not get rendered due to their size.
    @[implementedBy FloatArray.foldlMUnsafe]
    def FloatArray.foldlM {β : Type v} {m : Type vType w} [inst : Monad m] (f : βFloatm β) (init : β) (as : FloatArray) (start : optParam Nat 0) (stop : optParam Nat (FloatArray.size as)) :
    m β

    Reference implementation for foldlM

    Equations
    • One or more equations did not get rendered due to their size.
    def FloatArray.foldlM.loop {β : Type v} {m : Type vType w} [inst : Monad m] (f : βFloatm β) (as : FloatArray) (stop : Nat) (h : stop FloatArray.size as) (i : Nat) (j : Nat) (b : β) :
    m β
    Equations
    • One or more equations did not get rendered due to their size.
    @[inline]
    def FloatArray.foldl {β : Type v} (f : βFloatβ) (init : β) (as : FloatArray) (start : optParam Nat 0) (stop : optParam Nat (FloatArray.size as)) :
    β
    Equations