def reduce_run
stelliferous@0.0.2.0 · tensor_access.bend:109
import stelliferous@0.0.2.0/tensor_access.bend as TensorAccess
import Base
import stelliferous@0.0.2.0/tensor_view.bend as Views
import stelliferous@0.0.2.0/traversal_array.bend as Traversal
import stelliferous@0.0.2.0/tensor_cursor.bend as Cursor
109def reduce_run(~Element: Data,~Accumulator: Data,~operation: Accumulator -> Element -> Accumulator,
110 fast: Bool,count: Nat,view: Views.View,storage: Array<Element>,initial: Accumulator) -> Array<Element> & Accumulator:
111 match fast:
112 case True{}:
113 Views.View{axes,offset} = view
114 Traversal.fold(~Array<Element>,~Element,~Accumulator,~Traversal.Offsets,~Traversal.source_offset(~Element),~operation,
115 count,0,storage,initial,Traversal.Offsets{offset,0})
116 case False{}:
117 Traversal.finish_fold(~Array<Element>,~Accumulator,~Cursor.Cursor,
118 Traversal.visit_fold(~Array<Element>,~Element,~Accumulator,~Cursor.Cursor,~Cursor.read(~Element),~operation,count,
119 Traversal.State{storage,initial,0,Cursor.prepare(view)}))