mingodad 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
..
Makefile 64f69a763f Add Makefiles to compile on command line with make 12 년 전
README.txt 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
basearith.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
basearith.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
bits.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
constants.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
constants.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
context.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
convolute.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
convolute.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
crt.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
crt.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
difradix2.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
difradix2.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
fnt.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
fnt.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
fourstep.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
fourstep.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
io.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
io.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
memory.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
memory.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal.32.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal.64.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal.cbp 771b861392 Changes to make it compile on linux 64bits. 12 년 전
mpdecimal.depend 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal.layout 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal32vc.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal64vc.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpdecimal_build_log.html 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mpsignal.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
mptest.h 7a3c5c06b3 Repository reorganization 13 년 전
mptypes.h 7a3c5c06b3 Repository reorganization 13 년 전
numbertheory.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
numbertheory.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
sixstep.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
sixstep.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
transpose.c 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
transpose.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
typearith.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
umodarith.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
vccompat.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
vcdiv64.asm 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전
vcstdint.h 1511e15cd4 Update mpdecimal, sqlite3 and some fixes to build by make. 11 년 전

README.txt



libmpdec
========

libmpdec is a fast C/C++ library for correctly-rounded arbitrary precision
decimal floating point arithmetic. It is a complete implementation of
Mike Cowlishaw/IBM's General Decimal Arithmetic Specification.


Core files for small and medium precision arithmetic
----------------------------------------------------

basearith.{c,h} -> Core arithmetic in base 10**9 or 10**19.
bits.h -> Portable detection of least/most significant one-bit.
constants.{c,h} -> Constants that are used in multiple files.
context.c -> Context functions.
io.{c,h} -> Conversions between mpd_t and ASCII strings,
mpd_t formatting (allows UTF-8 fill character).
memory.{c,h} -> Allocation handlers with overflow detection
and functions for switching between static
and dynamic mpd_t.
mpdecimal.{c,h} -> All (quiet) functions of the specification.
typearith.h -> Fast primitives for double word multiplication,
division etc.

Visual Studio only:
~~~~~~~~~~~~~~~~~~~
vccompat.h -> snprintf <==> sprintf_s and similar things.
vcstdint.h -> stdint.h (included in VS 2010 but not in VS 2008).
vcdiv64.asm -> Double word division used in typearith.h. VS 2008 does
not allow inline asm for x64. Also, it does not provide
an intrinsic for double word division.

Files for bignum arithmetic:
----------------------------

The following files implement the Fast Number Theoretic Transform
used for multiplying coefficients with more than 1024 words (see
mpdecimal.c: _mpd_fntmul()).

umodarith.h -> Fast low level routines for unsigned modular arithmetic.
numbertheory.{c,h} -> Routines for setting up the Number Theoretic Transform.
difradix2.{c,h} -> Decimation in frequency transform, used as the
"base case" by the following three files:

fnt.{c,h} -> Transform arrays up to 4096 words.
sixstep.{c,h} -> Transform larger arrays of length 2**n.
fourstep.{c,h} -> Transform larger arrays of length 3 * 2**n.

convolute.{c,h} -> Fast convolution using one of the three transform
functions.
transpose.{c,h} -> Transpositions needed for the sixstep algorithm.
crt.{c,h} -> Chinese Remainder Theorem: use information from three
transforms modulo three different primes to get the
final result.


Pointers to literature, proofs and more
=======================================

literature/
-----------

REFERENCES.txt -> List of relevant papers.
bignum.txt -> Explanation of the Fast Number Theoretic Transform (FNT).
fnt.py -> Verify constants used in the FNT; Python demo for the
O(N**2) discrete transform.

matrix-transform.txt -> Proof for the Matrix Fourier Transform used in
fourstep.c.
six-step.txt -> Show that the algorithm used in sixstep.c is
a variant of the Matrix Fourier Transform.
mulmod-64.txt -> Proof for the mulmod64 algorithm from
umodarith.h.
mulmod-ppro.txt -> Proof for the x87 FPU modular multiplication
from umodarith.h.
umodarith.lisp -> ACL2 proofs for many functions from umodarith.h.


Library Author
==============

Stefan Krah