How to use GMM++ with QD type (double-double and quad-double)
The QD library (see
http://www.cs.berkeley.edu/~yozo or
http://www.nersc.gov/~dhb/mpdist/mpdist.html) is an
efficient library for double-double (32 decimal digits) and
quad-double (approx. 64 decimal digits). Once you installed this
library on your system you have to link your program with QD
library (with -lqd). In your program, include the header files of
QD with
#include <qd/dd.h> #include <qd/qd.h> #include <qd/fpu.h>
Then the two type dd_real and
qd_real will be usable with GMM++ .
You will also be able to use std::complex<dd_real> and std::complex<qdreal>
IMPORTANT : do not forget to initialize QD before using it with the
following call
unsigned int old_cw; fpu_fix_start(&old_cw);
This disables the 80 bits precision of x86 processors which conflicts with QD. Once you finished to use QD you can reactivate it with
fpu_fix_end(&old_cw);
(see the QD documentation for more details).
