UNPKG

1.06 kBJavaScriptView Raw
1'use strict';
2
3var errorTransform = require('./error.transform').transform;
4
5var isCollection = require('../../utils/collection/isCollection');
6/**
7 * Attach a transform function to math.mean
8 * Adds a property transform containing the transform function.
9 *
10 * This transform changed the last `dim` parameter of function mean
11 * from one-based to zero based
12 */
13
14
15function factory(type, config, load, typed) {
16 var mean = load(require('../../function/statistics/mean'));
17 return typed('mean', {
18 '...any': function any(args) {
19 // change last argument dim from one-based to zero-based
20 if (args.length === 2 && isCollection(args[0])) {
21 var dim = args[1];
22
23 if (type.isNumber(dim)) {
24 args[1] = dim - 1;
25 } else if (type.isBigNumber(dim)) {
26 args[1] = dim.minus(1);
27 }
28 }
29
30 try {
31 return mean.apply(null, args);
32 } catch (err) {
33 throw errorTransform(err);
34 }
35 }
36 });
37}
38
39exports.name = 'mean';
40exports.path = 'expression.transform';
41exports.factory = factory;
\No newline at end of file