Mercurial > hg > ugly-duckling
annotate src/app/services/feature-extraction/FeatureReducers.ts @ 509:041468f553e1 tip master
Merge pull request #57 from LucasThompson/fix/session-stack-max-call-stack
Fix accidental recursion in PersistentStack
author | Lucas Thompson <LucasThompson@users.noreply.github.com> |
---|---|
date | Mon, 27 Nov 2017 11:04:30 +0000 |
parents | c39df81c4dae |
children |
rev | line source |
---|---|
dev@241 | 1 /** |
dev@241 | 2 * Created by lucast on 26/04/2017. |
dev@241 | 3 */ |
dev@497 | 4 import {StreamingResponse} from 'piper-js/streaming'; |
dev@241 | 5 |
dev@241 | 6 export const arrayReducer = <T>(acc: T[], val: T[]): T[] => { |
dev@316 | 7 const len = val.length; |
dev@316 | 8 for (let i = 0; i < len; ++i) { |
dev@302 | 9 acc.push(val[i]); |
dev@302 | 10 } |
dev@241 | 11 return acc; |
dev@241 | 12 }; |
dev@241 | 13 |
dev@241 | 14 export const typedArrayReducer = (acc: Float32Array, |
dev@241 | 15 val: Float32Array): Float32Array => { |
dev@241 | 16 return Float32Array.of(...acc, ...val); |
dev@241 | 17 }; |
dev@241 | 18 |
dev@241 | 19 const inPlaceTypedArrayReducer = (acc: Float32Array, |
dev@241 | 20 val: Float32Array, |
dev@241 | 21 i: number): Float32Array => { |
dev@241 | 22 acc.set(val, i); |
dev@241 | 23 return acc; |
dev@241 | 24 }; |
dev@241 | 25 |
dev@241 | 26 export const streamingResponseReducer = (acc: StreamingResponse, |
dev@302 | 27 val: StreamingResponse): |
dev@302 | 28 StreamingResponse => { |
dev@302 | 29 acc.progress = val.progress; |
dev@302 | 30 if (val.configuration) { |
dev@302 | 31 acc.configuration = val.configuration; |
dev@302 | 32 } |
dev@302 | 33 arrayReducer(acc.features, val.features); |
dev@302 | 34 return acc; |
dev@302 | 35 }; |