Class SeriesCalculator

    • Field Detail

      • calculateInPairs

        private final boolean calculateInPairs
      • factors

        private final java.util.List<BigRational> factors
    • Constructor Detail

      • SeriesCalculator

        protected SeriesCalculator()
        Constructs a SeriesCalculator that calculates single terms.
      • SeriesCalculator

        protected SeriesCalculator​(boolean calculateInPairs)
        Constructs a SeriesCalculator with control over whether the sum terms are calculated in pairs.

        Calculation of pairs is useful for taylor series where the terms alternate the sign. In these cases it is more efficient to calculate two terms at once check then whether the acceptable error has been reached.

        Parameters:
        calculateInPairs - true to calculate the terms in pairs, false to calculate single terms
    • Method Detail

      • calculate

        public java.math.BigDecimal calculate​(java.math.BigDecimal x,
                                              java.math.MathContext mathContext)
        Calculates the series for the specified value x and the precision defined in the MathContext.
        Parameters:
        x - the value x
        mathContext - the MathContext
        Returns:
        the calculated result
      • createPowerIterator

        protected abstract PowerIterator createPowerIterator​(java.math.BigDecimal x,
                                                             java.math.MathContext mathContext)
        Creates the PowerIterator used for this series.
        Parameters:
        x - the value x
        mathContext - the MathContext
        Returns:
        the PowerIterator
      • getFactor

        protected BigRational getFactor​(int index)
        Returns the factor of the term with specified index. All mutable state of this class (and all its subclasses) must be modified in this method. This method is synchronized to allow thread-safe usage of this class.
        Parameters:
        index - the index (starting with 0)
        Returns:
        the factor of the specified term
      • addFactor

        private void addFactor​(BigRational factor)
      • getCurrentFactor

        protected abstract BigRational getCurrentFactor()
        Returns the factor of the highest term already calculated.

        When called for the first time will return the factor of the first term (index 0).

        After this call the method calculateNextFactor() will be called to prepare for the next term.

        Returns:
        the factor of the highest term
      • calculateNextFactor

        protected abstract void calculateNextFactor()
        Calculates the factor of the next term.