|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object uk.ac.leeds.ccg.andyt.generic.math.Generic_Number uk.ac.leeds.ccg.andyt.generic.math.Generic_BigDecimal
public class Generic_BigDecimal
For BigDecimal arithmetic. For the time being it is expected that BigDecimal numbers will not have a precision or scale greater than Integer.MAX_VALUE. Some of the functionality provided in this class may exist in third party libraries with appropriate licenses, but at the time of writing, I have not found them. The aim is for accuracy within a fixed number of decimal places. All methods need to be fully tested to ensure compliance...
Field Summary | |
---|---|
Generic_BigInteger |
_Generic_BigInteger
A Generic_BigInteger is often wanted (such as in Taylor Series calculations). |
static java.math.BigDecimal |
ELEVEN
The number 11 is often used so is made available as a constant. |
static java.math.BigDecimal |
HALF
The number 0.5 is often used so is made available as a constant. |
static java.math.BigDecimal |
TWO
The number 2 is often used so is made available as a constant. |
Fields inherited from class uk.ac.leeds.ccg.andyt.generic.math.Generic_Number |
---|
_RandomArray |
Constructor Summary | |
---|---|
Generic_BigDecimal()
Creates a new instance of Generic_BigDecimal initialising _Generic_BigInteger with 1000 entries and initialising _E to 1000 decimal places. |
|
Generic_BigDecimal(Generic_BigDecimal _Generic_BigDecimal)
Creates a new instance of Generic_BigDecimal based on _Generic_BigDecimal |
|
Generic_BigDecimal(int n)
Creates a new instance of Generic_BigDecimal initialising _Generic_BigInteger with n entries and initialising _E to n decimal places. |
Method Summary | |
---|---|
static java.math.BigDecimal |
ceilingSignificantDigit(java.math.BigDecimal x)
|
static java.math.BigDecimal |
divideNoRounding(java.math.BigDecimal x,
java.math.BigDecimal y)
|
static java.math.BigDecimal |
divideNoRounding(java.math.BigDecimal x,
java.math.BigInteger y)
|
static java.math.BigDecimal |
divideNoRounding(java.math.BigInteger x,
java.math.BigDecimal y)
|
static java.math.BigDecimal |
divideNoRounding(java.math.BigInteger x,
java.math.BigInteger y)
|
static java.util.ArrayList<java.math.BigDecimal> |
divideRoundIfNecessary(java.util.ArrayList<java.math.BigDecimal> list,
java.math.BigDecimal divisor,
int decimalPlaces,
java.math.RoundingMode roundingMode)
Creates and returns a new list containing all the numbers in list divided by divisor using decimalPlaces and roundingMode and rounding if necessary. |
static java.math.BigDecimal |
divideRoundIfNecessary(java.math.BigDecimal x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundIfNecessary(java.math.BigDecimal x,
java.math.BigDecimal y,
java.math.MathContext a_MathContext)
|
static java.math.BigDecimal |
divideRoundIfNecessary(java.math.BigDecimal x,
java.math.BigInteger y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundIfNecessary(java.math.BigInteger x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundIfNecessary(java.math.BigInteger x,
java.math.BigInteger y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundToFixedDecimalPlaces(java.math.BigDecimal x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundToFixedDecimalPlaces(java.math.BigDecimal x,
java.math.BigInteger y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundToFixedDecimalPlaces(java.math.BigInteger x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
divideRoundToFixedDecimalPlaces(java.math.BigInteger x,
java.math.BigInteger y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
exp(java.math.BigDecimal y,
Generic_BigDecimal a_Generic_BigDecimal,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
e^y = 1 + y/1! + y^2/2! + y^3/3! +... |
static java.math.BigDecimal |
floorSignificantDigit(java.math.BigDecimal x)
|
java.math.BigDecimal |
get_PI()
|
java.math.RoundingMode |
get_RoundingMode()
|
static int |
getDecimalPlacePrecision(java.math.BigDecimal value,
int significantDigits)
|
java.math.BigDecimal |
getEulerConstantToAFixedDecimalPlacePrecision(int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
If _E has enough precision, this is rounded and returned otherwise _E is calculated to the required precision, stored and a copy returned. |
java.math.BigDecimal |
getEulerConstantToAMinimumDecimalPlacePrecision(int decimalPlaces)
If _E has at least decimalPlaces decimal place accuracy, then a copy created using new BigDecimal(_E.toString()) is returned otherwise the Euler constant is recalculated using get calculated to the required precision, stored and a copy returned. |
static java.math.BigDecimal |
getRandom(Generic_BigInteger a_Generic_BigInteger,
int decimalPlaces,
java.math.BigDecimal lowerLimit,
java.math.BigDecimal upperLimit)
|
static java.math.BigDecimal |
getRandom(Generic_BigInteger a_Generic_BigInteger,
java.util.Random random,
int decimalPlaces,
java.math.BigDecimal lowerLimit,
java.math.BigDecimal upperLimit)
|
static java.math.BigDecimal |
getRandom(Generic_Number a_Generic_Number,
int decimalPlaces)
Provided for convenience. |
static boolean |
isEven(java.math.BigDecimal x)
|
static java.math.BigDecimal |
ln(java.math.BigDecimal x,
Generic_BigDecimal a_Generic_BigDecimal,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Compute and return the natural logarithm of x accurate to decimalPlaces decimal place precision using Newton's algorithm. |
static java.math.BigDecimal |
log(java.math.BigDecimal base,
java.math.BigDecimal x,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Only works for x > 0. |
static java.math.BigDecimal |
log(int base_int,
java.math.BigDecimal x,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Adapted from http://stackoverflow.com/questions/739532/logarithm-of-a-bigdecimal "Pseudocode algorithm for doing a logarithm. |
static int |
magnitude(java.math.BigDecimal x)
Returns the number of digits to the left of the decimal point |
static void |
main(java.lang.String[] args)
|
static java.math.BigDecimal |
max(java.util.ArrayList<java.math.BigDecimal> list)
Returns a copy of the maximum BigDecimal in the list. |
static java.math.BigDecimal |
max(java.math.BigDecimal x,
java.math.BigDecimal y)
|
static java.math.BigDecimal |
max(java.math.BigDecimal x,
java.math.BigInteger y)
|
static java.math.BigDecimal |
min(java.math.BigDecimal x,
java.math.BigDecimal y)
|
static java.math.BigDecimal |
min(java.math.BigDecimal x,
java.math.BigInteger y)
|
static java.math.BigDecimal |
multiplyRoundIfNecessary(java.math.BigDecimal x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
This is immutable. |
static java.math.BigDecimal |
multiplyRoundIfNecessary(java.math.BigDecimal x,
java.math.BigDecimal y,
java.math.MathContext a_MathContext,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
This is immutable. |
static java.math.BigDecimal |
multiplyRoundIfNecessary(java.math.BigDecimal x,
java.math.BigInteger y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
x*y If rounding is not wanted, use x.multiply(y1) |
static java.math.BigDecimal |
multiplyRoundIfNecessary(java.math.BigDecimal x,
java.math.BigInteger y,
java.math.MathContext a_MathContext,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
x*y If sure that a_MathContext is sufficgfhgshsdfgfdrounding is not wanted, use x.multiply(y1) |
protected static java.math.BigDecimal |
multiplyRoundIfNecessaryNoSpecialCaseCheck(java.math.BigDecimal x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
protected static java.math.BigDecimal |
multiplyRoundIfNecessaryNoSpecialCaseCheck(java.math.BigDecimal x,
java.math.BigDecimal y,
java.math.MathContext a_MathContext,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
If a_MathContext has the right precision for rounding, it is used, otherwise rounding is done if necessary using decimalPlaces and a_RoundingMode. |
static java.math.BigDecimal |
multiplyRoundToFixedDecimalPlaces(java.math.BigDecimal x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
The calculation could be divided into parts using the following algebra: (a + b) * (c + d) = (a * c) + (a * d) + (b * c) + (b * d) Consider that a is the integer part of x and b is the remainder and similarly that c is the integer part of y and d is the remainder. |
static int |
positionSignificantDigit(java.math.BigDecimal x)
If most (biggest) significant digit is right of decimal point then this is positive. |
static java.math.BigDecimal |
power(java.math.BigDecimal x,
java.math.BigDecimal y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
x^y = e^(y * ln(x)) x^(a+b) = (x^a)*(x^b) |
static java.math.BigDecimal |
power(java.math.BigDecimal x,
java.math.BigInteger y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Calculates and returns x raised to the power of y accurate to decimalPlaces number of decimal places. |
static java.math.BigDecimal |
power(java.math.BigDecimal x,
int y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Calculates and returns x raised to the power of y accurate to decimalPlaces number of decimal places. |
static java.math.BigDecimal |
power(java.math.BigDecimal x,
long y,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
powerNoRounding(java.math.BigDecimal x,
java.math.BigDecimal y)
Immutable |
static java.math.BigDecimal |
powerNoRounding(java.math.BigDecimal x,
java.math.BigInteger y,
int div)
In the case of y being positive. |
static java.math.BigDecimal |
powerNoRounding(java.math.BigDecimal x,
int y)
Calculates and returns an accurate representation of x^y. |
static java.math.BigDecimal |
powerNoRounding(java.math.BigDecimal x,
int y,
int div)
Calculates and returns x raised to the power of y accurate to decimalPlaces number of decimal places. |
static java.math.BigDecimal |
powerNoSpecialCaseCheck(java.math.BigDecimal x,
java.math.BigInteger y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Calculates and returns x raised to the power of y accurate to decimalPlaces number of decimal places. |
static java.math.BigDecimal |
powerNoSpecialCaseCheckNoRounding(java.math.BigDecimal x,
java.math.BigInteger y,
int div)
|
static boolean |
powerTestAbove(java.math.BigDecimal compare,
java.math.BigDecimal x,
java.math.BigInteger y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static boolean |
powerTestAbove(java.math.BigDecimal compare,
java.math.BigDecimal x,
int y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Deprecated. |
static boolean |
powerTestAboveNoRounding(java.math.BigDecimal compare,
java.math.BigDecimal x,
java.math.BigInteger y,
int div)
|
static boolean |
powerTestBelow(java.math.BigDecimal compare,
java.math.BigDecimal x,
java.math.BigInteger y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static boolean |
powerTestBelow(java.math.BigDecimal compare,
java.math.BigDecimal x,
int y,
int div,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Deprecated. |
static boolean |
powerTestBelowNoRounding(java.math.BigDecimal compare,
java.math.BigDecimal x,
java.math.BigInteger y,
int div)
|
static java.math.BigDecimal |
powerUnscaled1Precision1(java.math.BigDecimal x,
int y)
x.unscaledValue() == 1 x.precision == 1 |
static boolean |
randomUniformTest(java.util.Random a_Random,
java.math.BigDecimal probability,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Effectively this is the same as generating a random number between 0 and 1 and comparing it with probability and if it were higher then return false and otherwise return true |
static boolean |
randomUniformTest(java.util.Random a_Random,
java.math.BigDecimal probability,
java.math.MathContext a_MathContext)
Effectively this is the same as generating a random number between 0 and 1 and comparing it with probability and if it were higher then return false and otherwise return true |
static boolean |
randomUniformTest(java.util.Random a_Random,
java.math.BigDecimal probability,
java.math.RoundingMode a_RoundingMode)
Effectively this is the same as generating a random number between 0 and 1 and comparing it with probability and if it were higher then return false and otherwise return true |
static java.math.BigDecimal |
reciprocal(java.math.BigDecimal x,
int decimalPlace,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
reciprocalWillBeIntegerReturnBigDecimal(java.math.BigDecimal x)
|
static java.math.BigInteger |
reciprocalWillBeIntegerReturnBigInteger(java.math.BigDecimal x)
|
static java.math.BigDecimal |
rootNoRounding(java.math.BigDecimal x,
java.math.BigInteger root)
|
static java.math.BigDecimal |
rootNoRounding(java.math.BigDecimal x,
int root)
|
static java.math.BigDecimal |
rootRoundIfNecessary(java.math.BigDecimal x,
java.math.BigInteger root,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
rootRoundIfNecessary(java.math.BigDecimal x,
int root,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
roundIfNecessary(java.math.BigDecimal x,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
This is not necessarily an immutable operation as x may be returned! |
static java.math.BigDecimal |
roundStrippingTrailingZeros(java.math.BigDecimal x,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
roundToAndSetDecimalPlaces(java.math.BigDecimal x,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
|
void |
set_RoundingMode(java.math.RoundingMode a_RoundingMode)
|
static java.math.BigDecimal |
sqrt(java.math.BigDecimal x,
int decimalPlaces,
java.math.RoundingMode a_RoundingMode)
Returns the square rootRoundIfNecessary of x as a BigDecimal rounded to decimalPlaces decimal places. |
Methods inherited from class uk.ac.leeds.ccg.andyt.generic.math.Generic_Number |
---|
get_RandomArray, get_RandomArray, get_RandomArrayMinLength, init_RandomArrayMinLength, timeReport |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public Generic_BigInteger _Generic_BigInteger
public static final java.math.BigDecimal TWO
public static final java.math.BigDecimal HALF
public static final java.math.BigDecimal ELEVEN
Constructor Detail |
---|
public Generic_BigDecimal()
public Generic_BigDecimal(Generic_BigDecimal _Generic_BigDecimal)
public Generic_BigDecimal(int n)
Method Detail |
---|
public java.math.RoundingMode get_RoundingMode()
public void set_RoundingMode(java.math.RoundingMode a_RoundingMode)
RoundingMode
- the _RoundingMode to setpublic static void main(java.lang.String[] args)
args
- the command line argumentspublic static int magnitude(java.math.BigDecimal x)
x
-
public static java.math.BigDecimal multiplyRoundIfNecessary(java.math.BigDecimal x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal multiplyRoundIfNecessary(java.math.BigDecimal x, java.math.BigDecimal y, java.math.MathContext a_MathContext, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
protected static java.math.BigDecimal multiplyRoundIfNecessaryNoSpecialCaseCheck(java.math.BigDecimal x, java.math.BigDecimal y, java.math.MathContext a_MathContext, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- a_MathContext
- MathContext with some precision and a_RoundingMode
RoundingModedecimalPlaces
- decimalPlaces > -1a_RoundingMode
-
protected static java.math.BigDecimal multiplyRoundIfNecessaryNoSpecialCaseCheck(java.math.BigDecimal x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal multiplyRoundToFixedDecimalPlaces(java.math.BigDecimal x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal multiplyRoundIfNecessary(java.math.BigDecimal x, java.math.BigInteger y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal multiplyRoundIfNecessary(java.math.BigDecimal x, java.math.BigInteger y, java.math.MathContext a_MathContext, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideRoundIfNecessary(java.math.BigDecimal x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideRoundIfNecessary(java.math.BigDecimal x, java.math.BigDecimal y, java.math.MathContext a_MathContext)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideRoundToFixedDecimalPlaces(java.math.BigDecimal x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideNoRounding(java.math.BigDecimal x, java.math.BigDecimal y)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.util.ArrayList<java.math.BigDecimal> divideRoundIfNecessary(java.util.ArrayList<java.math.BigDecimal> list, java.math.BigDecimal divisor, int decimalPlaces, java.math.RoundingMode roundingMode)
public static java.math.BigDecimal divideRoundIfNecessary(java.math.BigDecimal x, java.math.BigInteger y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideRoundToFixedDecimalPlaces(java.math.BigDecimal x, java.math.BigInteger y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideNoRounding(java.math.BigDecimal x, java.math.BigInteger y)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal divideRoundIfNecessary(java.math.BigInteger x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
public static java.math.BigDecimal divideRoundToFixedDecimalPlaces(java.math.BigInteger x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
public static java.math.BigDecimal divideNoRounding(java.math.BigInteger x, java.math.BigDecimal y)
public static java.math.BigDecimal divideRoundIfNecessary(java.math.BigInteger x, java.math.BigInteger y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
public static java.math.BigDecimal divideRoundToFixedDecimalPlaces(java.math.BigInteger x, java.math.BigInteger y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
public static java.math.BigDecimal divideNoRounding(java.math.BigInteger x, java.math.BigInteger y)
public static boolean powerTestAbove(java.math.BigDecimal compare, java.math.BigDecimal x, java.math.BigInteger y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
compare
- x
- x > 1y
- y > 1div
- Optimisation parameter...decimalPlaces
- The number of decimal places rounded to if rounding
is necessary.a_RoundingMode
- The RoundingMode used in the case rounding is
necessary.
public static boolean powerTestAboveNoRounding(java.math.BigDecimal compare, java.math.BigDecimal x, java.math.BigInteger y, int div)
compare
- x
- x > 1y
- y > 1div
- Optimisation parameter...decimalPlaces
- The number of decimal places rounded to if rounding
is necessary.a_RoundingMode
- The RoundingMode used in the case rounding is
necessary.
public static boolean powerTestBelow(java.math.BigDecimal compare, java.math.BigDecimal x, java.math.BigInteger y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
compare
- x
- x > 0y
- y > 1div
- Optimisation parameter...decimalPlaces
- The number of decimal places rounded to if rounding
is necessary.a_RoundingMode
- The RoundingMode used in the case rounding is
necessary.
public static boolean powerTestBelowNoRounding(java.math.BigDecimal compare, java.math.BigDecimal x, java.math.BigInteger y, int div)
compare
- x
- x > 0y
- y > 1div
- Optimisation parameter...decimalPlaces
- The number of decimal places rounded to if rounding
is necessary.a_RoundingMode
- The RoundingMode used in the case rounding is
necessary.
@Deprecated public static boolean powerTestAbove(java.math.BigDecimal compare, java.math.BigDecimal x, int y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- x > 1y1
- x > 1div
- If < 3 this is set to 2. If > 256 set to 256decimalPlaces
- a_RoundingMode
-
@Deprecated public static boolean powerTestBelow(java.math.BigDecimal compare, java.math.BigDecimal x, int y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- x > 0y1
- x > 1div
- If < 3 this is set to 2. If > 256 set to 256decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal power(java.math.BigDecimal x, java.math.BigDecimal y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- a_Generic_BigDecimal
- this may be null. If a Generic_BigDecimal is
required for the calculation though one will be created if null is passed
in. So for efficiency it is recommended to pass one in if it exists or is
otherwise needed.decimalPlaces
- The number of decimal places the toCompare must be
accurate and rounded to if necessary.
public static java.math.BigDecimal powerNoRounding(java.math.BigDecimal x, java.math.BigDecimal y)
x
- y
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal power(java.math.BigDecimal x, long y, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y1
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal power(java.math.BigDecimal x, int y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- div
- If div < 2 it is set to 2. If div > 256 it is set to
256. div is used to divide the calculation up if y is less than div, it
is all done in one step. Otherwise it is broken into parts.decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal powerNoRounding(java.math.BigDecimal x, int y, int div)
x
- y
- div
- If div < 2 it is set to 2. If div > 256 it is set to
256. div is used to divide the calculation up if y is less than div, it
is all done in one step. Otherwise it is broken into parts.decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal powerUnscaled1Precision1(java.math.BigDecimal x, int y)
x
- y
- y >=0
public static java.math.BigDecimal power(java.math.BigDecimal x, java.math.BigInteger y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- div
- If div < 2 it is set to 2. If div > 256 it is set to
256.decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal powerNoRounding(java.math.BigDecimal x, java.math.BigInteger y, int div)
x
- y
- div
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal powerNoSpecialCaseCheck(java.math.BigDecimal x, java.math.BigInteger y, int div, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- y
- div
- If div < 2 it is set to 2. If div > 256 it is set to
256.decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal powerNoSpecialCaseCheckNoRounding(java.math.BigDecimal x, java.math.BigInteger y, int div)
public static java.math.BigDecimal powerNoRounding(java.math.BigDecimal x, int y)
powerNoRounding(BigDecimal,int,int)
. Values of x that are
greater than one and have a scale greater than will have a both increased
scale and magnitude and the result gets effectively increments the scale
and magnitude with each multiplication. Consequently, this may not be the
most appropriate multiplication method to use. If the precision of the
result required in terms of significant digits or decimal places can be
specified then these parameters can be passed to other methods will
return the result faster albeit it rounded to the specified precision
using either a default or input RoundingMode. The scale of the result is
y times the scale of x.
x
- y
-
public static java.math.BigDecimal reciprocal(java.math.BigDecimal x, int decimalPlace, java.math.RoundingMode a_RoundingMode)
x
- decimalPlace
- a_RoundingMode
-
public static java.math.BigInteger reciprocalWillBeIntegerReturnBigInteger(java.math.BigDecimal x)
x
-
public static java.math.BigDecimal reciprocalWillBeIntegerReturnBigDecimal(java.math.BigDecimal x)
x
-
public static java.math.BigDecimal log(int base_int, java.math.BigDecimal x, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
public static java.math.BigDecimal log(java.math.BigDecimal base, java.math.BigDecimal x, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
base
- x
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal roundToAndSetDecimalPlaces(java.math.BigDecimal x, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal roundStrippingTrailingZeros(java.math.BigDecimal x, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal roundIfNecessary(java.math.BigDecimal x, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- decimalPlaces
- a_RoundingMode
-
public static int getDecimalPlacePrecision(java.math.BigDecimal value, int significantDigits)
value
- significantDigits
-
public java.math.BigDecimal get_PI()
public java.math.BigDecimal getEulerConstantToAMinimumDecimalPlacePrecision(int decimalPlaces)
decimalPlaces
-
public java.math.BigDecimal getEulerConstantToAFixedDecimalPlacePrecision(int decimalPlaces, java.math.RoundingMode a_RoundingMode)
decimalPlaces
-
public static java.math.BigDecimal exp(java.math.BigDecimal y, Generic_BigDecimal a_Generic_BigDecimal, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
y
- a_Generic_BigDecimal
- may be null. Passing a Generic_BigDecimal in
can save computation. The Euler constant is used in most invocations.decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal ln(java.math.BigDecimal x, Generic_BigDecimal a_Generic_BigDecimal, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- a_Generic_BigDecimal
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal max(java.math.BigDecimal x, java.math.BigDecimal y)
x
- y1
-
public static java.math.BigDecimal max(java.util.ArrayList<java.math.BigDecimal> list)
public static java.math.BigDecimal max(java.math.BigDecimal x, java.math.BigInteger y)
x
- y1
-
public static java.math.BigDecimal min(java.math.BigDecimal x, java.math.BigDecimal y)
x
- y1
-
public static java.math.BigDecimal min(java.math.BigDecimal x, java.math.BigInteger y)
x
- y1
-
public static int positionSignificantDigit(java.math.BigDecimal x)
x
-
public static java.math.BigDecimal floorSignificantDigit(java.math.BigDecimal x)
x
-
public static java.math.BigDecimal ceilingSignificantDigit(java.math.BigDecimal x)
x
-
public static java.math.BigDecimal rootRoundIfNecessary(java.math.BigDecimal x, java.math.BigInteger root, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- rootRoundIfNecessary
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal rootNoRounding(java.math.BigDecimal x, java.math.BigInteger root)
x
- rootRoundIfNecessary
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal rootRoundIfNecessary(java.math.BigDecimal x, int root, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- x >= 0rootRoundIfNecessary
- decimalPlaces
- a_RoundingMode
-
public static java.math.BigDecimal rootNoRounding(java.math.BigDecimal x, int root)
public static java.math.BigDecimal sqrt(java.math.BigDecimal x, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
x
- decimalPlaces
-
public static boolean randomUniformTest(java.util.Random a_Random, java.math.BigDecimal probability, java.math.RoundingMode a_RoundingMode)
a_Random
- probability
- 0 <= probability <=1
public static boolean randomUniformTest(java.util.Random a_Random, java.math.BigDecimal probability, int decimalPlaces, java.math.RoundingMode a_RoundingMode)
a_Random
- probability
- 0 <= probability <=1
public static boolean randomUniformTest(java.util.Random a_Random, java.math.BigDecimal probability, java.math.MathContext a_MathContext)
a_Random
- probability
- 0 <= probability <=1
public static java.math.BigDecimal getRandom(Generic_BigInteger a_Generic_BigInteger, int decimalPlaces, java.math.BigDecimal lowerLimit, java.math.BigDecimal upperLimit)
a_Generic_BigInteger
- this contains the random and the powers of
two and is passed in for efficiency.decimalPlaces
- lowerLimit
- upperLimit
-
public static java.math.BigDecimal getRandom(Generic_BigInteger a_Generic_BigInteger, java.util.Random random, int decimalPlaces, java.math.BigDecimal lowerLimit, java.math.BigDecimal upperLimit)
public static java.math.BigDecimal getRandom(Generic_Number a_Generic_Number, int decimalPlaces)
a_Generic_BigDecimal
- decimalPlaces
-
public static boolean isEven(java.math.BigDecimal x)
x
-
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |