UNPKG

molstar

Version:

A comprehensive macromolecular library.

35 lines 1.25 kB
"use strict"; /** * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateHistogram = void 0; var array_1 = require("../mol-util/array"); function calculateHistogram(data, binCount, options) { if (!options) { var _a = (0, array_1.arrayMinMax)(data), min = _a[0], max = _a[1]; return _calcHistogram(data, binCount, min, max); } else { return _calcHistogram(data, binCount, options.min, options.max); } } exports.calculateHistogram = calculateHistogram; function _calcHistogram(data, binCount, min, max) { var binWidth = (max - min) / binCount; if (binWidth === 0) binWidth = 1; var counts = new Int32Array(binCount); for (var i = 0, _i = data.length; i < _i; i++) { var bin = Math.floor((data[i] - min) / binWidth); if (bin >= binCount) bin = binCount - 1; else if (bin < 0) bin = 0; counts[bin]++; } return { min: min, max: max, binWidth: binWidth, counts: counts }; } //# sourceMappingURL=histogram.js.map