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 };