fp Plugin

Using my own fp multi-precision engine, fp Plugin for REALbasic adds two new data types. They are:

BigInteger
BigFloat

Except for available memory, there is no limitation on the size of a BigInteger. So you can multiply a 100 digit integer by another 100 digit integer giving the exact 200 digit integer.

BigFloat is a multi--precision floating point number. You can set both the internal precision and the decimal output precision for BigFloat, with no limitation except for available memory. It might take awhile, but you can now calculate pi in a REALbasic program to a million decimal places, or more. The power of 10 for BigFloat can range from about -600,000,000 to +600,000,000 as compared to -308 to +308 for a Double.

fp Plugin itself allows you to construct programs which can handle the two new data types much like doubles and integers are handled. To a large extent the new data types can be freely used with the +, -, *, and / operators, and can be used in comparisons. And most of REALbasic's functions have been overloaded to take the new data types, where it makes sense to do so.

I am releasing fp Plugin without a restrictive license. It is unconditionally available for any use, but is without warranty.

Version 1.1 adds fpNthRoot and fpIsItEven for BigIntegers, and adds fpIsItInteger for BigFloat.

Version 1.2 adds fpFactorial(x) for BigFloat. Depending on the value of x, this is either x! or Gamma(x+1).

Version 1.2.1 adds fpFactorial(x) for BigInteger. The plugin computes x! using its definition. The result is always exact, unless there is overflow.

Version 1.3 has a much faster conversion of a large BigInteger to a String.

Version 1.4 adds the ability for BigIntegers to mix with the types INT64 and UINT64 for arithmetic operations and comparisons.

Version 1.5 adds the ability for BigIntegers to mix with the types INT64, UINT64, UINT32, INT16, UINT16, INT8, and UINT8 for arithmetic operations and comparisons. Many fpEquate functions have been added for conversions between BigIntegers and the REALbasic numeric types, with an exception raised when the conversion is invalid.

Version 1.6 corrects a rare subtraction bug.

Version 2.0 adds Euler's Constant and the Bessel functions for both integer and non-integer orders.

Version 2.1 adds support for Linux.

Version 2.5 adds the Beta Function, the Incomplete Beta Function, the Error Functions, the Exponential Integral, the Fresnel Integrals, and the Confluent Hypergeometric Function.

fp Plugin is compiled for Mac OS X (Universal), Windows, and Linux.


fp Plugin was programmed in C++ and compiled with Xcode 3.0 for the Mac, MinGW and MSYS for Windows, and Ubuntu 9.04 for Linux.

Freeware.


Download fp Plugin v 2.5 The download includes documentation and REALbasic projects for testing the plugin.

fpPlugin.zip (736 KB)

The xCode project for fp Plugin can be downloaded here:
fpPluginSource.zip (128 KB)


Back To Bob Delaney's Home Page