Class DefaultBigDecimalMath


  • public class DefaultBigDecimalMath
    extends java.lang.Object
    A wrapper around BigDecimalMath that passes a current MathContext to the functions that need a MathContext argument.

    The initial default MathContext is equivalent to MathContext.DECIMAL128 but this can be overridden by setting the following system properties:

    • ch.obermuhlner.math.big.default.precision to a positive integer precision (default=34)
    • ch.obermuhlner.math.big.default.rounding to a RoundingMode name (default=HALF_UP)

    It is also possible to programmatically set the default MathContext using setDefaultMathContext(MathContext). It is recommended to set the desired precision in the MathContext very early in the startup of the application and to not change it afterwards.

    Important: Avoid the pitfall of setting the precision temporarily using setDefaultMathContext(MathContext) for a calculation. This can lead to race conditions and calculations with the wrong precision if other threads in your application do the same thing.

    To set a temporary MathContext you have to choice to use either:

    • DefaultBigDecimalMath.createLocalMathContext() in a try-with-resources statement
    • DefaultBigDecimalMath.withLocalMathContext() with a lambda function
    Example code using DefaultBigDecimalMath.createLocalMathContext():
    System.out.println("Pi[default]: " + DefaultBigDecimalMath.pi());
    try (DefaultBigDecimalMath.LocalMathContext context = DefaultBigDecimalMath.createLocalMathContext(5)) {
        System.out.println("Pi[5]: " + DefaultBigDecimalMath.pi());
        try (DefaultBigDecimalMath.LocalMathContext context2 = DefaultBigDecimalMath.createLocalMathContext(10)) {
            System.out.println("Pi[10]: " + DefaultBigDecimalMath.pi());
        }
        System.out.println("Pi[5]: " + DefaultBigDecimalMath.pi());
    }
    System.out.println("Pi[default]: " + DefaultBigDecimalMath.pi());
     
    Example code using DefaultBigDecimalMath.withLocalMathContext():
    System.out.println("Pi[default]: " + DefaultBigDecimalMath.pi());
    DefaultBigDecimalMath.withPrecision(5, () -> {
        System.out.println("Pi[5]: " + DefaultBigDecimalMath.pi());
        DefaultBigDecimalMath.withPrecision(10, () -> {
            System.out.println("Pi[10]: " + DefaultBigDecimalMath.pi());
        });
        System.out.println("Pi[5]: " + DefaultBigDecimalMath.pi());
    });
    System.out.println("Pi[default]: " + DefaultBigDecimalMath.pi());
    
    Both snippets with give the following ouput:
    Pi[default]: 3.141592653589793238462643383279503
    Pi[5]: 3.1416
    Pi[10]: 3.141592654
    Pi[5]: 3.1416
    Pi[default]: 3.141592653589793238462643383279503
    

    The temporary MathContext are stored in ThreadLocal variables and will therefore not conflict with each other when used in multi-threaded use case.

    Important: Due to the ThreadLocal variables the local MathContext will not be available in other threads. This includes streams using parallel(), thread pools and manually started threads. If you need temporary MathContext for calculations then you must set the local MathContext inside every separate thread.

    try (DefaultBigDecimalMath.LocalMathContext context = DefaultBigDecimalMath.createLocalMathContext(5)) {
        BigDecimalStream.range(0.0, 1.0, 0.01, DefaultBigDecimalMath.currentMathContext())
            .map(b -> DefaultBigDecimalMath.cos(b))
            .map(b -> "sequential " + Thread.currentThread().getName() + " [5]: " + b)
            .forEach(System.out::println);
    
        BigDecimalStream.range(0.0, 1.0, 0.01, DefaultBigDecimalMath.currentMathContext())
            .parallel()
            .map(b -> {
                try (DefaultBigDecimalMath.LocalMathContext context2 = DefaultBigDecimalMath.createLocalMathContext(5)) {
                    return DefaultBigDecimalMath.cos(b);
                }
            })
            .map(b -> "parallel " + Thread.currentThread().getName() + " [5]: " + b)
            .forEach(System.out::println);
    }
    
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  DefaultBigDecimalMath.LocalMathContext
      The local context used to push and pop a MathContext on the stack.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.math.MathContext defaultMathContext  
      private static java.lang.ThreadLocal<java.util.Deque<java.math.MathContext>> mathContextStack  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.math.BigDecimal acos​(java.math.BigDecimal x)
      Calculates the arc cosine (inverted cosine) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal acosh​(java.math.BigDecimal x)
      Calculates the arc hyperbolic cosine (inverse hyperbolic cosine) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal acot​(java.math.BigDecimal x)
      Calculates the inverse cotangens (arc cotangens) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal acoth​(java.math.BigDecimal x)
      Calculates the arc hyperbolic cotangens (inverse hyperbolic cotangens) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal add​(java.math.BigDecimal x, java.math.BigDecimal y)
      Returns the BigDecimal that is x + y using the current MathContext.
      static java.math.BigDecimal asin​(java.math.BigDecimal x)
      Calculates the arc sine (inverted sine) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal asinh​(java.math.BigDecimal x)
      Calculates the arc hyperbolic sine (inverse hyperbolic sine) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal atan​(java.math.BigDecimal x)
      Calculates the arc tangens (inverted tangens) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal atan2​(java.math.BigDecimal y, java.math.BigDecimal x)
      Calculates the arc tangens (inverted tangens) of BigDecimal y / x in the range -pi to pi using the current MathContext.
      static java.math.BigDecimal atanh​(java.math.BigDecimal x)
      Calculates the arc hyperbolic tangens (inverse hyperbolic tangens) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal bernoulli​(int n)
      Calculates the Bernoulli number for the specified index using the current MathContext.
      static java.math.BigDecimal cos​(java.math.BigDecimal x)
      Calculates the cosine (cosinus) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal cosh​(java.math.BigDecimal x)
      Calculates the hyperbolic cosine of BigDecimal x using the current MathContext.
      static java.math.BigDecimal cot​(java.math.BigDecimal x)
      Calculates the cotangens of BigDecimal x using the current MathContext.
      static java.math.BigDecimal coth​(java.math.BigDecimal x)
      Calculates the hyperbolic cotangens of BigDecimal x using the current MathContext.
      private static java.math.MathContext createDefaultMathContext()  
      static DefaultBigDecimalMath.LocalMathContext createLocalMathContext​(int precision)
      Executes the given Runnable using the specified precision.
      static DefaultBigDecimalMath.LocalMathContext createLocalMathContext​(int precision, java.math.RoundingMode roundingMode)
      Executes the given Runnable using the specified precision and RoundingMode.
      static DefaultBigDecimalMath.LocalMathContext createLocalMathContext​(java.math.MathContext mathContext)
      Executes the given Runnable using the specified MathContext.
      static java.math.MathContext currentMathContext()
      Returns the current MathContext used for all mathematical functions in this class.
      static java.math.BigDecimal divide​(java.math.BigDecimal x, java.math.BigDecimal y)
      Returns the BigDecimal that is x / y using the current MathContext.
      static java.math.BigDecimal e()
      Returns the number e using the current MathContext.
      static java.math.BigDecimal exp​(java.math.BigDecimal x)
      Calculates the natural exponent of BigDecimal x (ex) using the current MathContext.
      static java.math.BigDecimal factorial​(java.math.BigDecimal x)
      Calculates the factorial of the specified BigDecimal using the current MathContext.
      static java.math.BigDecimal gamma​(java.math.BigDecimal x)
      Calculates the gamma function of the specified BigDecimal using the current MathContext.
      static java.math.MathContext getDefaultMathContext()
      Returns the default MathContext used for all mathematical functions in this class.
      private static int getIntSystemProperty​(java.lang.String propertyKey, int defaultValue)  
      private static java.math.RoundingMode getRoundingModeSystemProperty​(java.lang.String propertyKey, java.math.RoundingMode defaultValue)  
      static java.math.BigDecimal log​(java.math.BigDecimal x)
      Calculates the natural logarithm of BigDecimal x using the current MathContext.
      static java.math.BigDecimal log10​(java.math.BigDecimal x)
      Calculates the logarithm of BigDecimal x to the base 10 using the current MathContext.
      static java.math.BigDecimal log2​(java.math.BigDecimal x)
      Calculates the logarithm of BigDecimal x to the base 2 using the current MathContext.
      static java.math.BigDecimal multiply​(java.math.BigDecimal x, java.math.BigDecimal y)
      Returns the BigDecimal that is x * y using the current MathContext.
      static java.math.BigDecimal pi()
      Returns the number pi using the current MathContext.
      private static java.math.MathContext popMathContext()  
      static java.math.BigDecimal pow​(java.math.BigDecimal x, long y)
      Calculates BigDecimal x to the power of long y (xy) using the current MathContext.
      static java.math.BigDecimal pow​(java.math.BigDecimal x, java.math.BigDecimal y)
      Calculates BigDecimal x to the power of BigDecimal y (xy) using the current MathContext.
      private static <T> T propertyException​(java.lang.String propertyKey, java.lang.String propertyValue, T defaultValue)  
      private static void pushMathContext​(java.math.MathContext mathContext)  
      static java.math.BigDecimal reciprocal​(java.math.BigDecimal x)
      Calculates the reciprocal of the specified BigDecimal using the current MathContext.
      static java.math.BigDecimal remainder​(java.math.BigDecimal x, java.math.BigDecimal y)
      Returns the BigDecimal that is x % y using the current MathContext.
      static java.math.BigDecimal root​(java.math.BigDecimal x, java.math.BigDecimal n)
      Calculates the n'th root of BigDecimal x using the current MathContext.
      static java.math.BigDecimal round​(java.math.BigDecimal value)
      Rounds the specified BigDecimal to the precision of the current MathContext.
      static java.math.BigDecimal roundWithTrailingZeroes​(java.math.BigDecimal value)
      Rounds the specified BigDecimal to the precision of the current MathContext including trailing zeroes.
      static void setDefaultMathContext​(java.math.MathContext defaultMathContext)
      Sets the default MathContext used if no other MathContext is defined using withLocalMathContext(MathContext, Runnable).
      static java.math.BigDecimal sin​(java.math.BigDecimal x)
      Calculates the sine (sinus) of BigDecimal x using the current MathContext.
      static java.math.BigDecimal sinh​(java.math.BigDecimal x)
      Calculates the hyperbolic sine of BigDecimal x using the current MathContext.
      static java.math.BigDecimal sqrt​(java.math.BigDecimal x)
      Calculates the square root of BigDecimal x using the current MathContext.
      static java.math.BigDecimal subtract​(java.math.BigDecimal x, java.math.BigDecimal y)
      Returns the BigDecimal that is x - y using the current MathContext.
      static java.math.BigDecimal tan​(java.math.BigDecimal x)
      Calculates the tangens of BigDecimal x using the current MathContext.
      static java.math.BigDecimal tanh​(java.math.BigDecimal x)
      Calculates the hyperbolic tangens of BigDecimal x using the current MathContext.
      static void withLocalMathContext​(int precision, java.lang.Runnable runnable)
      Executes the given Runnable using the specified precision.
      static void withLocalMathContext​(int precision, java.math.RoundingMode roundingMode, java.lang.Runnable runnable)
      Executes the given Runnable using the specified precision and RoundingMode.
      static void withLocalMathContext​(java.math.MathContext mathContext, java.lang.Runnable runnable)
      Executes the given Runnable using the specified MathContext.
      • Methods inherited from class java.lang.Object

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

      • defaultMathContext

        private static java.math.MathContext defaultMathContext
      • mathContextStack

        private static java.lang.ThreadLocal<java.util.Deque<java.math.MathContext>> mathContextStack
    • Constructor Detail

      • DefaultBigDecimalMath

        public DefaultBigDecimalMath()
    • Method Detail

      • createDefaultMathContext

        private static java.math.MathContext createDefaultMathContext()
      • pushMathContext

        private static void pushMathContext​(java.math.MathContext mathContext)
      • popMathContext

        private static java.math.MathContext popMathContext()
      • getIntSystemProperty

        private static int getIntSystemProperty​(java.lang.String propertyKey,
                                                int defaultValue)
      • getRoundingModeSystemProperty

        private static java.math.RoundingMode getRoundingModeSystemProperty​(java.lang.String propertyKey,
                                                                            java.math.RoundingMode defaultValue)
      • propertyException

        private static <T> T propertyException​(java.lang.String propertyKey,
                                               java.lang.String propertyValue,
                                               T defaultValue)
      • getDefaultMathContext

        public static java.math.MathContext getDefaultMathContext()
        Returns the default MathContext used for all mathematical functions in this class.
        Returns:
        the default MathContext
      • withLocalMathContext

        public static void withLocalMathContext​(int precision,
                                                java.lang.Runnable runnable)
        Executes the given Runnable using the specified precision.
        Parameters:
        precision - the precision to use for calculations in the runnable
        runnable - the Runnable to execute
      • withLocalMathContext

        public static void withLocalMathContext​(int precision,
                                                java.math.RoundingMode roundingMode,
                                                java.lang.Runnable runnable)
        Executes the given Runnable using the specified precision and RoundingMode.
        Parameters:
        precision - the precision to use for calculations in the runnable
        roundingMode - the RoundingMode to use for calculations in the runnable
        runnable - the Runnable to execute
      • withLocalMathContext

        public static void withLocalMathContext​(java.math.MathContext mathContext,
                                                java.lang.Runnable runnable)
        Executes the given Runnable using the specified MathContext.
        Parameters:
        mathContext - the MathContext to use for calculations in the runnable
        runnable - the Runnable to execute
      • createLocalMathContext

        public static DefaultBigDecimalMath.LocalMathContext createLocalMathContext​(int precision,
                                                                                    java.math.RoundingMode roundingMode)
        Executes the given Runnable using the specified precision and RoundingMode.
        Parameters:
        precision - the precision to use for calculations
        roundingMode - the RoundingMode to use for calculations in the runnable
        Returns:
        the created DefaultBigDecimalMath.LocalMathContext to be used in a try-with-resources statement
      • roundWithTrailingZeroes

        public static java.math.BigDecimal roundWithTrailingZeroes​(java.math.BigDecimal value)
        Rounds the specified BigDecimal to the precision of the current MathContext including trailing zeroes.
        Parameters:
        value - the BigDecimal to round
        Returns:
        the rounded BigDecimal value including trailing zeroes
        See Also:
        currentMathContext(), BigDecimalMath.roundWithTrailingZeroes(BigDecimal, MathContext)
      • add

        public static java.math.BigDecimal add​(java.math.BigDecimal x,
                                               java.math.BigDecimal y)
        Returns the BigDecimal that is x + y using the current MathContext.
        Parameters:
        x - the x value
        y - the y value to add
        Returns:
        the resulting BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimal.add(BigDecimal, MathContext)
      • subtract

        public static java.math.BigDecimal subtract​(java.math.BigDecimal x,
                                                    java.math.BigDecimal y)
        Returns the BigDecimal that is x - y using the current MathContext.
        Parameters:
        x - the x value
        y - the y value to subtract
        Returns:
        the resulting BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimal.subtract(BigDecimal, MathContext)
      • multiply

        public static java.math.BigDecimal multiply​(java.math.BigDecimal x,
                                                    java.math.BigDecimal y)
        Returns the BigDecimal that is x * y using the current MathContext.
        Parameters:
        x - the x value
        y - the y value to multiply
        Returns:
        the resulting BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimal.multiply(BigDecimal, MathContext)
      • divide

        public static java.math.BigDecimal divide​(java.math.BigDecimal x,
                                                  java.math.BigDecimal y)
        Returns the BigDecimal that is x / y using the current MathContext.
        Parameters:
        x - the x value
        y - the y value to divide
        Returns:
        the resulting BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimal.divide(BigDecimal, MathContext)
      • remainder

        public static java.math.BigDecimal remainder​(java.math.BigDecimal x,
                                                     java.math.BigDecimal y)
        Returns the BigDecimal that is x % y using the current MathContext.
        Parameters:
        x - the x value
        y - the y value to divide
        Returns:
        the resulting BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimal.remainder(BigDecimal, MathContext)
      • reciprocal

        public static java.math.BigDecimal reciprocal​(java.math.BigDecimal x)
        Calculates the reciprocal of the specified BigDecimal using the current MathContext.
        Parameters:
        x - the BigDecimal
        Returns:
        the reciprocal BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.reciprocal(BigDecimal, MathContext)
      • factorial

        public static java.math.BigDecimal factorial​(java.math.BigDecimal x)
        Calculates the factorial of the specified BigDecimal using the current MathContext.
        Parameters:
        x - the BigDecimal
        Returns:
        the factorial BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.factorial(BigDecimal, MathContext)
      • gamma

        public static java.math.BigDecimal gamma​(java.math.BigDecimal x)
        Calculates the gamma function of the specified BigDecimal using the current MathContext.
        Parameters:
        x - the BigDecimal
        Returns:
        the gamma BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.gamma(BigDecimal, MathContext)
      • bernoulli

        public static java.math.BigDecimal bernoulli​(int n)
        Calculates the Bernoulli number for the specified index using the current MathContext.
        Parameters:
        n - the index of the Bernoulli number to be calculated (starting at 0)
        Returns:
        the Bernoulli number for the specified index with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.bernoulli(int, MathContext)
      • pow

        public static java.math.BigDecimal pow​(java.math.BigDecimal x,
                                               java.math.BigDecimal y)
        Calculates BigDecimal x to the power of BigDecimal y (xy) using the current MathContext.
        Parameters:
        x - the BigDecimal value to take to the power
        y - the BigDecimal value to serve as exponent
        Returns:
        the calculated x to the power of y with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.pow(BigDecimal, BigDecimal, MathContext)
      • pow

        public static java.math.BigDecimal pow​(java.math.BigDecimal x,
                                               long y)
        Calculates BigDecimal x to the power of long y (xy) using the current MathContext.
        Parameters:
        x - the BigDecimal value to take to the power
        y - the long value to serve as exponent
        Returns:
        the calculated x to the power of y with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.pow(BigDecimal, long, MathContext)
      • sqrt

        public static java.math.BigDecimal sqrt​(java.math.BigDecimal x)
        Calculates the square root of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal value to calculate the square root
        Returns:
        the calculated square root of x with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.sqrt(BigDecimal, MathContext)
      • root

        public static java.math.BigDecimal root​(java.math.BigDecimal x,
                                                java.math.BigDecimal n)
        Calculates the n'th root of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal value to calculate the n'th root
        n - the BigDecimal defining the root
        Returns:
        the calculated n'th root of x with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.root(BigDecimal, BigDecimal, MathContext)
      • log

        public static java.math.BigDecimal log​(java.math.BigDecimal x)
        Calculates the natural logarithm of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the natural logarithm for
        Returns:
        the calculated natural logarithm BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.log(BigDecimal, MathContext)
      • log2

        public static java.math.BigDecimal log2​(java.math.BigDecimal x)
        Calculates the logarithm of BigDecimal x to the base 2 using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the logarithm base 2 for
        Returns:
        the calculated natural logarithm BigDecimal to the base 2 with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.log2(BigDecimal, MathContext)
      • log10

        public static java.math.BigDecimal log10​(java.math.BigDecimal x)
        Calculates the logarithm of BigDecimal x to the base 10 using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the logarithm base 10 for
        Returns:
        the calculated natural logarithm BigDecimal to the base 10 with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.log10(BigDecimal, MathContext)
      • exp

        public static java.math.BigDecimal exp​(java.math.BigDecimal x)
        Calculates the natural exponent of BigDecimal x (ex) using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the exponent for
        Returns:
        the calculated exponent BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.exp(BigDecimal, MathContext)
      • sin

        public static java.math.BigDecimal sin​(java.math.BigDecimal x)
        Calculates the sine (sinus) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the sine for
        Returns:
        the calculated sine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.sin(BigDecimal, MathContext)
      • asin

        public static java.math.BigDecimal asin​(java.math.BigDecimal x)
        Calculates the arc sine (inverted sine) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc sine for
        Returns:
        the calculated arc sine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.asin(BigDecimal, MathContext)
      • cos

        public static java.math.BigDecimal cos​(java.math.BigDecimal x)
        Calculates the cosine (cosinus) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the cosine for
        Returns:
        the calculated cosine BigDecimal with the precision specified in the current MathContext
      • acos

        public static java.math.BigDecimal acos​(java.math.BigDecimal x)
        Calculates the arc cosine (inverted cosine) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc cosine for
        Returns:
        the calculated arc sine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.acos(BigDecimal, MathContext)
      • tan

        public static java.math.BigDecimal tan​(java.math.BigDecimal x)
        Calculates the tangens of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the tangens for
        Returns:
        the calculated tangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.tan(BigDecimal, MathContext)
      • atan

        public static java.math.BigDecimal atan​(java.math.BigDecimal x)
        Calculates the arc tangens (inverted tangens) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc tangens for
        Returns:
        the calculated arc tangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.atan(BigDecimal, MathContext)
      • atan2

        public static java.math.BigDecimal atan2​(java.math.BigDecimal y,
                                                 java.math.BigDecimal x)
        Calculates the arc tangens (inverted tangens) of BigDecimal y / x in the range -pi to pi using the current MathContext.
        Parameters:
        y - the BigDecimal
        x - the BigDecimal
        Returns:
        the calculated arc tangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), atan2(BigDecimal, BigDecimal)
      • cot

        public static java.math.BigDecimal cot​(java.math.BigDecimal x)
        Calculates the cotangens of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the cotangens for
        Returns:
        the calculated cotanges BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.cot(BigDecimal, MathContext)
      • acot

        public static java.math.BigDecimal acot​(java.math.BigDecimal x)
        Calculates the inverse cotangens (arc cotangens) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc cotangens for
        Returns:
        the calculated arc cotangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.acot(BigDecimal, MathContext)
      • sinh

        public static java.math.BigDecimal sinh​(java.math.BigDecimal x)
        Calculates the hyperbolic sine of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the hyperbolic sine for
        Returns:
        the calculated hyperbolic sine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.sinh(BigDecimal, MathContext)
      • cosh

        public static java.math.BigDecimal cosh​(java.math.BigDecimal x)
        Calculates the hyperbolic cosine of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the hyperbolic cosine for
        Returns:
        the calculated hyperbolic cosine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.cosh(BigDecimal, MathContext)
      • tanh

        public static java.math.BigDecimal tanh​(java.math.BigDecimal x)
        Calculates the hyperbolic tangens of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the hyperbolic tangens for
        Returns:
        the calculated hyperbolic tangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.tanh(BigDecimal, MathContext)
      • coth

        public static java.math.BigDecimal coth​(java.math.BigDecimal x)
        Calculates the hyperbolic cotangens of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the hyperbolic cotangens for
        Returns:
        the calculated hyperbolic cotangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.coth(BigDecimal, MathContext)
      • asinh

        public static java.math.BigDecimal asinh​(java.math.BigDecimal x)
        Calculates the arc hyperbolic sine (inverse hyperbolic sine) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc hyperbolic sine for
        Returns:
        the calculated arc hyperbolic sine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.asinh(BigDecimal, MathContext)
      • acosh

        public static java.math.BigDecimal acosh​(java.math.BigDecimal x)
        Calculates the arc hyperbolic cosine (inverse hyperbolic cosine) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc hyperbolic cosine for
        Returns:
        the calculated arc hyperbolic cosine BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.acosh(BigDecimal, MathContext)
      • atanh

        public static java.math.BigDecimal atanh​(java.math.BigDecimal x)
        Calculates the arc hyperbolic tangens (inverse hyperbolic tangens) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc hyperbolic tangens for
        Returns:
        the calculated arc hyperbolic tangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.atanh(BigDecimal, MathContext)
      • acoth

        public static java.math.BigDecimal acoth​(java.math.BigDecimal x)
        Calculates the arc hyperbolic cotangens (inverse hyperbolic cotangens) of BigDecimal x using the current MathContext.
        Parameters:
        x - the BigDecimal to calculate the arc hyperbolic cotangens for
        Returns:
        the calculated arc hyperbolic cotangens BigDecimal with the precision specified in the current MathContext
        See Also:
        currentMathContext(), BigDecimalMath.acoth(BigDecimal, MathContext)