molstar
Version:
A comprehensive macromolecular library.
35 lines • 1.25 kB
JavaScript
/**
* 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
;