Károly Balogh 5182dc37af haiku-x86_64: regenerated all Makefiles, take 2 6 ani în urmă
..
examples 5182dc37af haiku-x86_64: regenerated all Makefiles, take 2 6 ani în urmă
src 863ede7dc6 * Add QWord version of Max (Delphi compatibility, bug ID #34364) 6 ani în urmă
Makefile 5182dc37af haiku-x86_64: regenerated all Makefiles, take 2 6 ani în urmă
Makefile.fpc 98f00acb06 * trunk to 3.3.1 7 ani în urmă
Makefile.fpc.fpcmake 98f00acb06 * trunk to 3.3.1 7 ani în urmă
fpmake.pp 98f00acb06 * trunk to 3.3.1 7 ani în urmă
readme be6322be9e * note about location win32 dll 16 ani în urmă

readme

Readme for libgmp.tar.bz2 2009-09-06

= What

Free Pascal interface for the GNU Multiple Precision Arithmetic Library.

= Why

Numeric computing outside the built in types range. AFAIK there is no complete
binding for Free Pascal available yet.

= Files

- gmp_accept_test.pas
"Go/no go" test of the gmp unit against the GMP library on your system.

- gmp.pas
The interface unit.

- gmp_testcase.pas
Put this unit in your uses clause of a fpcunit project.

- gmp_test_impl.inc
- gmp_test_intf.inc
Test classes declarations and implementations. Included by:
* gmp_accept_test.pas
* gmp_testcase

- pidigits_example.pas
Original source from:
shootout.alioth.debian.org/u64/benchmark.php?test=pidigits&lang=fpascal&id=2
Adapted for using the gmp unit.

- pidigits_example2.pas
Modified pidigits_example.pas to demonstrate usage of the gmp extensions.

- printf_example.pas
Demo using the GMP printf

- printf_example2.pas
Dtto with gmp extensions.

- scanf_example.pas
Demo using the GMP scanf.

- scanf_example2.pas
Dtto with gmp extensions.

= Status
- Tested on 64 and 32 bit Linux and on 32 bit Windows.
- Known issues
* There is a link error on Windows with the GMP global variables.
Probably could be solved with someone's better knowledge of the Windows
environment.

= Bindings
- Standard
* Almost full (see comments in gmp.pas) binding of the types and functions
exported from libgmp.

- Extensions
* Based on pseudo value types (in fact interface types) with an automatic
memory management in the spirit of Object Pascal strings - compiler takes
care of initialization/finalization. Copy on write semantics. Can intermix
the standard binding/types with the extended ones. The extended types have
access to a same set of numeric functions as in the standard binding.

- Operators
* Overloaded operators for the extensions value types. Can make programs
significantly more readable/maintainable. See and compare for yourself
in the pidigits examples. BTW, the overhead in this example with
the extended types and operators is less than 10%. Unusable for shootout,
but is probably acceptable in many other areas.

= Tips
- range checks
You should probably want to put asserts with *_fits before conversion to
FPC ordinal types - applies to the assignment operator too.

= License
- FPC developers, you can do anything you see appropriate with the sources.
Review, refactor and/or reject :-)

= Windows

I got the examples running under win32 by getting the mingw-dynamic package
on

http://cs.nyu.edu/exact/core/gmp/

and then renaming it to gmp.dll