Rev 9615 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
Under Unix, making in this directory will make standalone librarieslibRmath.a and libRmath.so. `make archive' and `make shared' makejust one of them.You may find you need GNU make for full support of VPATH.Under Windows, use make -f Makefile.win. This makes Rmath.dll withimport library libRmath.a.To use the routines in your own C programs, include#define MATHLIB_STANDALONE#include "R_ext/Mathlib.h"and link against -lRmath. The example test.c does nothing useful,but is provided to test the process.A little care is needed to use the random-number routines. You willneed to supply the uniform random number generatordouble unif_rand(void)or use the one supplied (and with a shared library or DLL you willhave to use the one supplied, which is the Marsaglia-multicarry withan entry pointset_seed(unsigned int, unsigned int)to set its seeds).The facilties to change the normal random number generator areavailable through the constant N01_kind. This takes valuesfrom the enumeration typetypedef enum {KINDERMAN_RAMAGE,AHRENS_DIETER,BOX_MULLER} N01type;(and USER_NORM is not available).There is full access to R's handling of NaNs, Inf and -Inf via specialversions of the macros and functionsISNAN, R_FINITE, R_log, R_pow and R_pow_diand (extern) constants R_PosInf, R_NegInf and NA_REAL. Thesefacilities work best on IEEE 754 machines, but are available for all.There is no support for R's notion of missing values, in particularnot for NA_INTEGER nor the distinction between NA and NaN for doubles.