Package org.apfloat.samples
Class Pi
- java.lang.Object
-
- org.apfloat.samples.Pi
-
- Direct Known Subclasses:
PiParallel
public class Pi extends Object
Calculates pi using four different algorithms.- Version:
- 1.8.2
- Author:
- Mikko Tommila
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
Pi.AbstractBinarySplittingSeries
Abstract base class for the binary splitting series.protected static class
Pi.BinarySplittingPiCalculator
Class for implementing the binary splitting algorithm.static class
Pi.BinarySplittingProgressIndicator
Indicates progress of the pi calculation using the binary splitting algorithm.protected static interface
Pi.BinarySplittingSeries
Terms for the binary splitting series.static class
Pi.BorweinPiCalculator
Calculates pi using the Borweins' quartic algorithm.protected static class
Pi.ChudnovskyBinarySplittingSeries
Chudnovskys' algorithm terms for the binary splitting series.static class
Pi.ChudnovskyPiCalculator
Basic class for calculating pi using the Chudnovskys' binary splitting algorithm.static class
Pi.GaussLegendrePiCalculator
Calculates pi using the Gauss-Legendre algorithm.protected static class
Pi.RamanujanBinarySplittingSeries
Ramanujan's algorithm terms for the binary splitting series.static class
Pi.RamanujanPiCalculator
Basic class for calculating pi using the Ramanujan binary splitting algorithm.
-
Field Summary
Fields Modifier and Type Field Description protected static PrintWriter
err
Output stream for status messages printout.protected static PrintWriter
out
Output stream for the result printout.
-
Method Summary
Modifier and Type Method Description protected static void
checkAlive()
Check whether the program should stop executing.static PrintWriter
getErr()
Get the output stream for status messages printout.protected static int
getInt(String arg, String name, int minValue, int maxValue)
Parse an integer from an argument.protected static long
getLong(String arg, String name, long minValue, long maxValue)
Parse a long from an argument.static PrintWriter
getOut()
Get the output stream for the result printout.protected static long
getPrecision(String arg)
Parse the precision from an argument.protected static int
getRadix(String arg)
Parse the radix from an argument.static void
main(String[] args)
Command-line entry point.static void
run(long precision, int radix, Operation<Apfloat> operation)
Execute an operation and display some additional information.static void
setAlive(boolean isAlive)
Set whether the program should stop executing.static void
setErr(PrintWriter err)
Set the output stream for status messages printout.static void
setOut(PrintWriter out)
Set the output stream for the result printout.
-
-
-
Field Detail
-
out
protected static PrintWriter out
Output stream for the result printout.
-
err
protected static PrintWriter err
Output stream for status messages printout.
-
-
Method Detail
-
getLong
protected static long getLong(String arg, String name, long minValue, long maxValue)
Parse a long from an argument.- Parameters:
arg
- The string to be parsed.name
- Description of the argument.minValue
- Minimum allowed value.maxValue
- Maximum allowed value.- Returns:
- Valid
long
.
-
getInt
protected static int getInt(String arg, String name, int minValue, int maxValue)
Parse an integer from an argument.- Parameters:
arg
- The string to be parsed.name
- Description of the argument.minValue
- Minimum allowed value.maxValue
- Maximum allowed value.- Returns:
- Valid integer.
-
getPrecision
protected static long getPrecision(String arg)
Parse the precision from an argument.- Parameters:
arg
- The string to be parsed.- Returns:
- Valid precision.
-
getRadix
protected static int getRadix(String arg)
Parse the radix from an argument.- Parameters:
arg
- The string to be parsed.- Returns:
- Valid radix.
-
run
public static void run(long precision, int radix, Operation<Apfloat> operation) throws IOException, ApfloatRuntimeException
Execute an operation and display some additional information. The return value of the operation is written toout
.- Parameters:
precision
- The precision to be used.radix
- The radix to be used.operation
- The operation to execute.- Throws:
IOException
- In case writing the output fails.ApfloatRuntimeException
-
setOut
public static void setOut(PrintWriter out)
Set the output stream for the result printout.- Parameters:
out
- The output stream.
-
getOut
public static PrintWriter getOut()
Get the output stream for the result printout.- Returns:
- The output stream.
-
setErr
public static void setErr(PrintWriter err)
Set the output stream for status messages printout.- Parameters:
err
- The output stream.
-
getErr
public static PrintWriter getErr()
Get the output stream for status messages printout.- Returns:
- The output stream.
-
setAlive
public static void setAlive(boolean isAlive)
Set whether the program should stop executing.- Parameters:
isAlive
-true
to keep running the program,false
to stop.
-
main
public static void main(String[] args) throws IOException, ApfloatRuntimeException
Command-line entry point.- Parameters:
args
- Command-line parameters.- Throws:
IOException
- In case writing the output fails.ApfloatRuntimeException
-
checkAlive
protected static void checkAlive()
Check whether the program should stop executing.- Throws:
ThreadDeath
- in casesetAlive(boolean)
has been set tofalse
.
-
-