Skip to content
Snippets Groups Projects
Select Git revision
  • e1efe21897b39de3e7ec37e2b17917ab8ca03dd5
  • master default protected
  • rednatco-v2
  • base-pairs-ladder
  • rednatco
  • test
  • ntc-tube-uniform-color
  • ntc-tube-missing-atoms
  • restore-vertex-array-per-program
  • watlas2
  • dnatco_new
  • cleanup-old-nodejs
  • webmmb
  • fix_auth_seq_id
  • update_deps
  • ext_dev
  • ntc_balls
  • nci-2
  • plugin
  • bugfix-0.4.5
  • nci
  • v0.5.0-dev.1
  • v0.4.5
  • v0.4.4
  • v0.4.3
  • v0.4.2
  • v0.4.1
  • v0.4.0
  • v0.3.12
  • v0.3.11
  • v0.3.10
  • v0.3.9
  • v0.3.8
  • v0.3.7
  • v0.3.6
  • v0.3.5
  • v0.3.4
  • v0.3.3
  • v0.3.2
  • v0.3.1
  • v0.3.0
41 results

array.ts

Blame
  • array.ts 1.67 KiB
    /**
     * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
     *
     * @author Alexander Rose <alexander.rose@weirdbyte.de>
     */
    
    // TODO move to mol-math as Vector???
    
    /** Get the maximum value in an array */
    export function arrayMax(array: Helpers.NumberArray) {
        let max = -Infinity
        for (let i = 0, il = array.length; i < il; ++i) {
            if (array[i] > max) max = array[i]
        }
        return max
    }
    
    /** Get the minimum value in an array */
    export function arrayMin(array: Helpers.NumberArray) {
        let min = Infinity
        for (let i = 0, il = array.length; i < il; ++i) {
            if (array[i] < min) min = array[i]
        }
        return min
    }
    
    /** Get the sum of values in an array */
    export function arraySum(array: Helpers.NumberArray, stride = 1, offset = 0) {
        const n = array.length
        let sum = 0
        for (let i = offset; i < n; i += stride) {
            sum += array[i]
        }
        return sum
    }
    
    /** Get the mean of values in an array */
    export function arrayMean(array: Helpers.NumberArray, stride = 1, offset = 0) {
        return arraySum(array, stride, offset) / (array.length / stride)
    }
    
    /** Get the root mean square of values in an array */
    export function arrayRms(array: Helpers.NumberArray) {
        const n = array.length
        let sumSq = 0
        for (let i = 0; i < n; ++i) {
            const di = array[i]
            sumSq += di * di
        }
        return Math.sqrt(sumSq / n)
    }
    
    /** Fill an array with serial numbers starting from 0 until n - 1 (defaults to array.length) */
    export function fillSerial<T extends Helpers.NumberArray> (array: T, n?: number) {
        for (let i = 0, il = n ? Math.min(n, array.length) : array.length; i < il; ++i) array[ i ] = i
        return array
    }