Package de.gsi.math

Class ArrayMath


  • public final class ArrayMath
    extends java.lang.Object
    some double array convenience methods
    Author:
    rstein
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ArrayMath.FilterType  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static double[] add​(double[] in, double value)  
      static double[] add​(double[] in, double[] value)  
      static double[] add​(double[] in, double[] value, int length)  
      static double[] add​(double[] in, int length, double value)  
      static double[] addInPlace​(double[] in, double value)  
      static double[] addInPlace​(double[] in, double[] value)  
      static double[] addInPlace​(double[] in, double[] value, int length)  
      static double[] addInPlace​(double[] in, int length, double value)  
      static double[] calculateFilterParameters​(double cutoffFraction, ArrayMath.FilterType filterType, double rippleP, double numberOfPoles, int iteration)
      calculate 2nd-order filter with Butterworth (rippleP=0) or Chebychev filter response (rippleP>0) N.B.
      static double[] decibel​(double[] in)  
      static double[] decibel​(double[] in, int length)  
      static double[] decibelInPlace​(double[] in)  
      static double[] decibelInPlace​(double[] in, int length)  
      static double[] divide​(double[] in, double divisor)  
      static double[] divide​(double[] in, double[] divisor)  
      static double[] divide​(double[] in, double[] divisor, int length)  
      static double[] divide​(double[] in, int length, double divisor)  
      static double[] divideInPlace​(double[] in, double divisor)  
      static double[] divideInPlace​(double[] in, double[] divisor)  
      static double[] divideInPlace​(double[] in, double[] divisor, int length)  
      static double[] divideInPlace​(double[] in, int length, double divisor)  
      static double[] filterSignal​(double[] signal, double[] output, double cutoffFraction, int filterOrder, ArrayMath.FilterType filterType, double ripplePercent)
      filter from: "The Scientist and Engineer's Guide to DSP" Chapter 20
      static double[] inverseDecibel​(double[] in)  
      static double[] inverseDecibel​(double[] in, int length)  
      static double[] inverseDecibelInPlace​(double[] in)  
      static double[] inverseDecibelInPlace​(double[] in, int length)  
      static double[] multiply​(double[] in, double multiplicator)  
      static double[] multiply​(double[] in, double[] multiplicator)  
      static double[] multiply​(double[] in, double[] multiplicator, int length)  
      static double[] multiply​(double[] in, int length, double multiplicator)  
      static double[] multiplyInPlace​(double[] in, double multiplicator)  
      static double[] multiplyInPlace​(double[] in, double[] multiplicator)  
      static double[] multiplyInPlace​(double[] in, double[] multiplicator, int length)  
      static double[] multiplyInPlace​(double[] in, int length, double multiplicator)  
      static double[] notANumber​(double[] in)  
      static double[] notANumber​(double[] in, int length)  
      static double[] notANumberInPlace​(double[] in)  
      static double[] notANumberInPlace​(double[] in, int length)  
      static double[] sqr​(double[] in)  
      static double[] sqr​(double[] in, int length)  
      static double[] sqrInPlace​(double[] in)  
      static double[] sqrInPlace​(double[] in, int length)  
      static double[] sqrt​(double[] in)  
      static double[] sqrt​(double[] in, int length)  
      static double[] sqrtInPlace​(double[] in)  
      static double[] sqrtInPlace​(double[] in, int length)  
      static double[] subtract​(double[] in, double value)  
      static double[] subtract​(double[] in, double[] value)  
      static double[] subtract​(double[] in, double[] value, int length)  
      static double[] subtract​(double[] in, int length, double value)  
      static double[] subtractInPlace​(double[] in, double value)  
      static double[] subtractInPlace​(double[] in, double[] value)  
      static double[] subtractInPlace​(double[] in, double[] value, int length)  
      static double[] subtractInPlace​(double[] in, int length, double value)  
      static double[] tenLog10​(double[] in)  
      static double[] tenLog10​(double[] in, int length)  
      static double[] tenLog10InPlace​(double[] in)  
      static double[] tenLog10InPlace​(double[] in, int length)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • add

        public static double[] add​(double[] in,
                                   double value)
      • add

        public static double[] add​(double[] in,
                                   double[] value)
      • add

        public static double[] add​(double[] in,
                                   double[] value,
                                   int length)
      • add

        public static double[] add​(double[] in,
                                   int length,
                                   double value)
      • addInPlace

        public static double[] addInPlace​(double[] in,
                                          double value)
      • addInPlace

        public static double[] addInPlace​(double[] in,
                                          double[] value)
      • addInPlace

        public static double[] addInPlace​(double[] in,
                                          double[] value,
                                          int length)
      • addInPlace

        public static double[] addInPlace​(double[] in,
                                          int length,
                                          double value)
      • calculateFilterParameters

        public static double[] calculateFilterParameters​(double cutoffFraction,
                                                         ArrayMath.FilterType filterType,
                                                         double rippleP,
                                                         double numberOfPoles,
                                                         int iteration)
        calculate 2nd-order filter with Butterworth (rippleP=0) or Chebychev filter response (rippleP>0) N.B. numerically validated against data set examples in Table 20-6 http://www.dspguide.com/ch20/4.htm
        Parameters:
        cutoffFraction - fractional cut-off
        filterType - LOW_PASS or HIGH_PASS
        rippleP - >0 -> Chebychev design-ripple in percent in the pass-band
        numberOfPoles - number of poles (if combined with 2*n filter stages)
        iteration - (whether this is the i-th filter in the chain)
        Returns:
        array of [A0, A1, A2, B1, B2]
      • decibel

        public static double[] decibel​(double[] in)
      • decibel

        public static double[] decibel​(double[] in,
                                       int length)
      • decibelInPlace

        public static double[] decibelInPlace​(double[] in)
      • decibelInPlace

        public static double[] decibelInPlace​(double[] in,
                                              int length)
      • divide

        public static double[] divide​(double[] in,
                                      double divisor)
      • divide

        public static double[] divide​(double[] in,
                                      double[] divisor)
      • divide

        public static double[] divide​(double[] in,
                                      double[] divisor,
                                      int length)
      • divide

        public static double[] divide​(double[] in,
                                      int length,
                                      double divisor)
      • divideInPlace

        public static double[] divideInPlace​(double[] in,
                                             double divisor)
      • divideInPlace

        public static double[] divideInPlace​(double[] in,
                                             double[] divisor)
      • divideInPlace

        public static double[] divideInPlace​(double[] in,
                                             double[] divisor,
                                             int length)
      • divideInPlace

        public static double[] divideInPlace​(double[] in,
                                             int length,
                                             double divisor)
      • filterSignal

        public static double[] filterSignal​(double[] signal,
                                            double[] output,
                                            double cutoffFraction,
                                            int filterOrder,
                                            ArrayMath.FilterType filterType,
                                            double ripplePercent)
        filter from: "The Scientist and Engineer's Guide to DSP" Chapter 20
        Parameters:
        signal - input signal
        output - output signal (if null a new vector is being allocated)
        cutoffFraction - cutoffFreq must be smaller than half the sample rate
        filterOrder - can be between 2 and 20
        filterType - 0: lowPass 1: highPass
        ripplePercent - ripplePercent is amount of ripple in Chebyshev filter (0-29) (ripplePercent == 0 -> Butterworth)
        Returns:
        filtered output signal
      • inverseDecibel

        public static double[] inverseDecibel​(double[] in)
      • inverseDecibel

        public static double[] inverseDecibel​(double[] in,
                                              int length)
      • inverseDecibelInPlace

        public static double[] inverseDecibelInPlace​(double[] in)
      • inverseDecibelInPlace

        public static double[] inverseDecibelInPlace​(double[] in,
                                                     int length)
      • multiply

        public static double[] multiply​(double[] in,
                                        double multiplicator)
      • multiply

        public static double[] multiply​(double[] in,
                                        double[] multiplicator)
      • multiply

        public static double[] multiply​(double[] in,
                                        double[] multiplicator,
                                        int length)
      • multiply

        public static double[] multiply​(double[] in,
                                        int length,
                                        double multiplicator)
      • multiplyInPlace

        public static double[] multiplyInPlace​(double[] in,
                                               double multiplicator)
      • multiplyInPlace

        public static double[] multiplyInPlace​(double[] in,
                                               double[] multiplicator)
      • multiplyInPlace

        public static double[] multiplyInPlace​(double[] in,
                                               double[] multiplicator,
                                               int length)
      • multiplyInPlace

        public static double[] multiplyInPlace​(double[] in,
                                               int length,
                                               double multiplicator)
      • notANumber

        public static double[] notANumber​(double[] in)
      • notANumber

        public static double[] notANumber​(double[] in,
                                          int length)
      • notANumberInPlace

        public static double[] notANumberInPlace​(double[] in)
      • notANumberInPlace

        public static double[] notANumberInPlace​(double[] in,
                                                 int length)
      • sqr

        public static double[] sqr​(double[] in)
      • sqr

        public static double[] sqr​(double[] in,
                                   int length)
      • sqrInPlace

        public static double[] sqrInPlace​(double[] in)
      • sqrInPlace

        public static double[] sqrInPlace​(double[] in,
                                          int length)
      • sqrt

        public static double[] sqrt​(double[] in)
      • sqrt

        public static double[] sqrt​(double[] in,
                                    int length)
      • sqrtInPlace

        public static double[] sqrtInPlace​(double[] in)
      • sqrtInPlace

        public static double[] sqrtInPlace​(double[] in,
                                           int length)
      • subtract

        public static double[] subtract​(double[] in,
                                        double value)
      • subtract

        public static double[] subtract​(double[] in,
                                        double[] value)
      • subtract

        public static double[] subtract​(double[] in,
                                        double[] value,
                                        int length)
      • subtract

        public static double[] subtract​(double[] in,
                                        int length,
                                        double value)
      • subtractInPlace

        public static double[] subtractInPlace​(double[] in,
                                               double value)
      • subtractInPlace

        public static double[] subtractInPlace​(double[] in,
                                               double[] value)
      • subtractInPlace

        public static double[] subtractInPlace​(double[] in,
                                               double[] value,
                                               int length)
      • subtractInPlace

        public static double[] subtractInPlace​(double[] in,
                                               int length,
                                               double value)
      • tenLog10

        public static double[] tenLog10​(double[] in)
      • tenLog10

        public static double[] tenLog10​(double[] in,
                                        int length)
      • tenLog10InPlace

        public static double[] tenLog10InPlace​(double[] in)
      • tenLog10InPlace

        public static double[] tenLog10InPlace​(double[] in,
                                               int length)