cumsum.transform.js (1273B)
1 import { isBigNumber, isCollection, isNumber } from '../../utils/is.js'; 2 import { factory } from '../../utils/factory.js'; 3 import { errorTransform } from './utils/errorTransform.js'; 4 import { createCumSum } from '../../function/statistics/cumsum.js'; 5 /** 6 * Attach a transform function to math.sum 7 * Adds a property transform containing the transform function. 8 * 9 * This transform changed the last `dim` parameter of function sum 10 * from one-based to zero based 11 */ 12 13 var name = 'cumsum'; 14 var dependencies = ['typed', 'add', 'unaryPlus']; 15 export var createCumSumTransform = /* #__PURE__ */factory(name, dependencies, _ref => { 16 var { 17 typed, 18 add, 19 unaryPlus 20 } = _ref; 21 var cumsum = createCumSum({ 22 typed, 23 add, 24 unaryPlus 25 }); 26 return typed(name, { 27 '...any': function any(args) { 28 // change last argument dim from one-based to zero-based 29 if (args.length === 2 && isCollection(args[0])) { 30 var dim = args[1]; 31 32 if (isNumber(dim)) { 33 args[1] = dim - 1; 34 } else if (isBigNumber(dim)) { 35 args[1] = dim.minus(1); 36 } 37 } 38 39 try { 40 return cumsum.apply(null, args); 41 } catch (err) { 42 throw errorTransform(err); 43 } 44 } 45 }); 46 }, { 47 isTransformFunction: true 48 });