about summary refs log tree commit diff
path: root/sourcecodes/localscore/Rmath.h
diff options
context:
space:
mode:
authorziejd22017-09-14 15:39:41 -0500
committerziejd22017-09-14 15:57:50 -0500
commitc4f926438dcb8abe805e910399940f79ff643c4b (patch)
tree3146d05ada5cf4b48d9bdd16c1baa498e8df7192 /sourcecodes/localscore/Rmath.h
parent57ebf49403b75dcf8482d174b59f7fd2a961d98e (diff)
downloadBNW-c4f926438dcb8abe805e910399940f79ff643c4b.tar.gz
Add files via upload
Diffstat (limited to 'sourcecodes/localscore/Rmath.h')
-rw-r--r--sourcecodes/localscore/Rmath.h657
1 files changed, 657 insertions, 0 deletions
diff --git a/sourcecodes/localscore/Rmath.h b/sourcecodes/localscore/Rmath.h
new file mode 100644
index 00000000..1acd1dbb
--- /dev/null
+++ b/sourcecodes/localscore/Rmath.h
@@ -0,0 +1,657 @@
+/* -*- C -*-
+ *  Mathlib : A C Library of Special Functions
+ *  Copyright (C) 1998-2011  The R Core Team
+ *  Copyright (C) 2004       The R Foundation
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  http://www.r-project.org/Licenses/
+ *
+
+ * Rmath.h  should contain ALL headers from R's C code in `src/nmath'
+   -------  such that ``the Math library'' can be used by simply
+
+   ``#include <Rmath.h> ''
+
+   and nothing else.
+
+   It is part of the API and supports 'standalone Rmath'.
+
+*/
+#ifndef RMATH_H
+#define RMATH_H
+
+/* Note that on some systems we need to include math.h before the
+   defines below, to avoid redefining ftrunc */
+#ifndef NO_C_HEADERS
+# include <math.h>
+#endif
+
+/*-- Mathlib as part of R --  define this for standalone : */
+/* #undef MATHLIB_STANDALONE */
+
+#define R_VERSION_STRING "2.15.2"
+
+#ifndef HAVE_EXPM1
+# define HAVE_EXPM1 1
+#endif
+
+#ifndef HAVE_HYPOT
+# define HAVE_HYPOT 1
+#endif
+
+#ifndef HAVE_LOG1P
+# define HAVE_LOG1P 1
+#endif
+
+#ifndef HAVE_WORKING_LOG1P
+# define HAVE_WORKING_LOG1P 1
+#endif
+
+#if defined(HAVE_LOG1P) && !defined(HAVE_WORKING_LOG1P)
+/* remap to avoid problems with getting the right entry point */
+double  Rlog1p(double);
+#define log1p Rlog1p
+#endif
+
+
+	/* Undo SGI Madness */
+
+#ifdef ftrunc
+# undef ftrunc
+#endif
+#ifdef qexp
+# undef qexp
+#endif
+#ifdef qgamma
+# undef qgamma
+#endif
+
+
+/* ----- The following constants and entry points are part of the R API ---- */
+
+/* 30 Decimal-place constants */
+/* Computed with bc -l (scale=32; proper round) */
+
+/* SVID & X/Open Constants */
+/* Names from Solaris math.h */
+
+#ifndef M_E
+#define M_E		2.718281828459045235360287471353	/* e */
+#endif
+
+#ifndef M_LOG2E
+#define M_LOG2E		1.442695040888963407359924681002	/* log2(e) */
+#endif
+
+#ifndef M_LOG10E
+#define M_LOG10E	0.434294481903251827651128918917	/* log10(e) */
+#endif
+
+#ifndef M_LN2
+#define M_LN2		0.693147180559945309417232121458	/* ln(2) */
+#endif
+
+#ifndef M_LN10
+#define M_LN10		2.302585092994045684017991454684	/* ln(10) */
+#endif
+
+#ifndef M_PI
+#define M_PI		3.141592653589793238462643383280	/* pi */
+#endif
+
+#ifndef M_2PI
+#define M_2PI		6.283185307179586476925286766559	/* 2*pi */
+#endif
+
+#ifndef M_PI_2
+#define M_PI_2		1.570796326794896619231321691640	/* pi/2 */
+#endif
+
+#ifndef M_PI_4
+#define M_PI_4		0.785398163397448309615660845820	/* pi/4 */
+#endif
+
+#ifndef M_1_PI
+#define M_1_PI		0.318309886183790671537767526745	/* 1/pi */
+#endif
+
+#ifndef M_2_PI
+#define M_2_PI		0.636619772367581343075535053490	/* 2/pi */
+#endif
+
+#ifndef M_2_SQRTPI
+#define M_2_SQRTPI	1.128379167095512573896158903122	/* 2/sqrt(pi) */
+#endif
+
+#ifndef M_SQRT2
+#define M_SQRT2		1.414213562373095048801688724210	/* sqrt(2) */
+#endif
+
+#ifndef M_SQRT1_2
+#define M_SQRT1_2	0.707106781186547524400844362105	/* 1/sqrt(2) */
+#endif
+
+/* R-Specific Constants */
+
+#ifndef M_SQRT_3
+#define M_SQRT_3	1.732050807568877293527446341506	/* sqrt(3) */
+#endif
+
+#ifndef M_SQRT_32
+#define M_SQRT_32	5.656854249492380195206754896838	/* sqrt(32) */
+#endif
+
+#ifndef M_LOG10_2
+#define M_LOG10_2	0.301029995663981195213738894724	/* log10(2) */
+#endif
+
+#ifndef M_SQRT_PI
+#define M_SQRT_PI	1.772453850905516027298167483341	/* sqrt(pi) */
+#endif
+
+#ifndef M_1_SQRT_2PI
+#define M_1_SQRT_2PI	0.398942280401432677939946059934	/* 1/sqrt(2pi) */
+#endif
+
+#ifndef M_SQRT_2dPI
+#define M_SQRT_2dPI	0.797884560802865355879892119869	/* sqrt(2/pi) */
+#endif
+
+
+#ifndef M_LN_SQRT_PI
+#define M_LN_SQRT_PI	0.572364942924700087071713675677	/* log(sqrt(pi))
+								   == log(pi)/2 */
+#endif
+
+#ifndef M_LN_SQRT_2PI
+#define M_LN_SQRT_2PI	0.918938533204672741780329736406	/* log(sqrt(2*pi))
+								 == log(2*pi)/2 */
+#endif
+
+#ifndef M_LN_SQRT_PId2
+#define M_LN_SQRT_PId2	0.225791352644727432363097614947	/* log(sqrt(pi/2)) */
+#endif
+
+
+#ifdef MATHLIB_STANDALONE
+# ifndef R_EXT_BOOLEAN_H_
+/* "copy-paste" R_ext/Boolean.h if not already included: */
+ #define R_EXT_BOOLEAN_H_
+ #undef FALSE
+ #undef TRUE
+ typedef enum { FALSE = 0, TRUE } Rboolean;
+# endif
+#else
+# include "Boolean.h"
+#endif
+
+
+#ifndef MATHLIB_STANDALONE
+#define bessel_i	Rf_bessel_i
+#define bessel_j	Rf_bessel_j
+#define bessel_k	Rf_bessel_k
+#define bessel_y	Rf_bessel_y
+#define bessel_i_ex	Rf_bessel_i_ex
+#define bessel_j_ex	Rf_bessel_j_ex
+#define bessel_k_ex	Rf_bessel_k_ex
+#define bessel_y_ex	Rf_bessel_y_ex
+#define beta		Rf_beta
+#define choose		Rf_choose
+#define dbeta		Rf_dbeta
+#define dbinom		Rf_dbinom
+#define dcauchy		Rf_dcauchy
+#define dchisq		Rf_dchisq
+#define dexp		Rf_dexp
+#define df		Rf_df
+#define dgamma		Rf_dgamma
+#define dgeom		Rf_dgeom
+#define dhyper		Rf_dhyper
+#define digamma		Rf_digamma
+#define dlnorm		Rf_dlnorm
+#define dlogis		Rf_dlogis
+#define dnbeta		Rf_dnbeta
+#define dnbinom		Rf_dnbinom
+#define dnchisq		Rf_dnchisq
+#define dnf		Rf_dnf
+#define dnorm4		Rf_dnorm4
+#define dnt		Rf_dnt
+#define dpois		Rf_dpois
+#define dpsifn		Rf_dpsifn
+#define dsignrank	Rf_dsignrank
+#define dt		Rf_dt
+#define dtukey		Rf_dtukey
+#define dunif		Rf_dunif
+#define dweibull	Rf_dweibull
+#define dwilcox		Rf_dwilcox
+#define fmax2		Rf_fmax2
+#define fmin2		Rf_fmin2
+#define fprec		Rf_fprec
+#define fround		Rf_fround
+#define ftrunc		Rf_ftrunc
+#define fsign		Rf_fsign
+#define gammafn		Rf_gammafn
+#define imax2		Rf_imax2
+#define imin2		Rf_imin2
+#define lbeta		Rf_lbeta
+#define lchoose		Rf_lchoose
+#define lgammafn	Rf_lgammafn
+#define lgammafn_sign	Rf_lgammafn_sign
+#define lgamma1p	Rf_lgamma1p
+#define log1pmx		Rf_log1pmx
+#define logspace_add	Rf_logspace_add
+#define logspace_sub	Rf_logspace_sub
+#define pbeta		Rf_pbeta
+#define pbeta_raw	Rf_pbeta_raw
+#define pbinom		Rf_pbinom
+#define pcauchy		Rf_pcauchy
+#define pchisq		Rf_pchisq
+#define pentagamma	Rf_pentagamma
+#define pexp		Rf_pexp
+#define pf		Rf_pf
+#define pgamma		Rf_pgamma
+#define pgeom		Rf_pgeom
+#define phyper		Rf_phyper
+#define plnorm		Rf_plnorm
+#define plogis		Rf_plogis
+#define pnbeta		Rf_pnbeta
+#define pnbinom		Rf_pnbinom
+#define pnchisq		Rf_pnchisq
+#define pnf		Rf_pnf
+#define pnorm5		Rf_pnorm5
+#define pnorm_both	Rf_pnorm_both
+#define pnt		Rf_pnt
+#define ppois		Rf_ppois
+#define psignrank	Rf_psignrank
+#define psigamma	Rf_psigamma
+#define pt		Rf_pt
+#define ptukey		Rf_ptukey
+#define punif		Rf_punif
+#define pythag		Rf_pythag
+#define pweibull	Rf_pweibull
+#define pwilcox		Rf_pwilcox
+#define qbeta		Rf_qbeta
+#define qbinom		Rf_qbinom
+#define qcauchy		Rf_qcauchy
+#define qchisq		Rf_qchisq
+#define qchisq_appr	Rf_qchisq_appr
+#define qexp		Rf_qexp
+#define qf		Rf_qf
+#define qgamma		Rf_qgamma
+#define qgeom		Rf_qgeom
+#define qhyper		Rf_qhyper
+#define qlnorm		Rf_qlnorm
+#define qlogis		Rf_qlogis
+#define qnbeta		Rf_qnbeta
+#define qnbinom		Rf_qnbinom
+#define qnchisq		Rf_qnchisq
+#define qnf		Rf_qnf
+#define qnorm5		Rf_qnorm5
+#define qnt		Rf_qnt
+#define qpois		Rf_qpois
+#define qsignrank	Rf_qsignrank
+#define qt		Rf_qt
+#define qtukey		Rf_qtukey
+#define qunif		Rf_qunif
+#define qweibull	Rf_qweibull
+#define qwilcox		Rf_qwilcox
+#define rbeta		Rf_rbeta
+#define rbinom		Rf_rbinom
+#define rcauchy		Rf_rcauchy
+#define rchisq		Rf_rchisq
+#define rexp		Rf_rexp
+#define rf		Rf_rf
+#define rgamma		Rf_rgamma
+#define rgeom		Rf_rgeom
+#define rhyper		Rf_rhyper
+#define rlnorm		Rf_rlnorm
+#define rlogis		Rf_rlogis
+#define rnbeta		Rf_rnbeta
+#define rnbinom		Rf_rnbinom
+#define rnchisq		Rf_rnchisq
+#define rnf		Rf_rnf
+#define rnorm		Rf_rnorm
+#define rnt		Rf_rnt
+#define rpois		Rf_rpois
+#define rsignrank	Rf_rsignrank
+#define rt		Rf_rt
+#define rtukey		Rf_rtukey
+#define runif		Rf_runif
+#define rweibull	Rf_rweibull
+#define rwilcox		Rf_rwilcox
+#define sign		Rf_sign
+#define tetragamma	Rf_tetragamma
+#define trigamma	Rf_trigamma
+#endif
+
+#define	rround	fround
+#define	prec	fprec
+#undef trunc
+#define	trunc	ftrunc
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+	/* R's versions with !R_FINITE checks */
+
+double R_pow(double x, double y);
+double R_pow_di(double, int);
+
+	/* Random Number Generators */
+
+double	norm_rand(void);
+double	unif_rand(void);
+double	exp_rand(void);
+#ifdef MATHLIB_STANDALONE
+void	set_seed(unsigned int, unsigned int);
+void	get_seed(unsigned int *, unsigned int *);
+#endif
+
+	/* Normal Distribution */
+
+#define pnorm pnorm5
+#define qnorm qnorm5
+#define dnorm dnorm4
+
+double	dnorm(double, double, double, int);
+double	pnorm(double, double, double, int, int);
+double	qnorm(double, double, double, int, int);
+double	rnorm(double, double);
+void	pnorm_both(double, double *, double *, int, int);/* both tails */
+
+	/* Uniform Distribution */
+
+double	dunif(double, double, double, int);
+double	punif(double, double, double, int, int);
+double	qunif(double, double, double, int, int);
+double	runif(double, double);
+
+	/* Gamma Distribution */
+
+double	dgamma(double, double, double, int);
+double	pgamma(double, double, double, int, int);
+double	qgamma(double, double, double, int, int);
+double	rgamma(double, double);
+
+double  log1pmx(double);
+double  log1pexp(double); // <-- ../nmath/plogis.c
+double  lgamma1p(double);
+double  logspace_add(double, double);
+double  logspace_sub(double, double);
+
+	/* Beta Distribution */
+
+double	dbeta(double, double, double, int);
+double	pbeta(double, double, double, int, int);
+double	qbeta(double, double, double, int, int);
+double	rbeta(double, double);
+
+	/* Lognormal Distribution */
+
+double	dlnorm(double, double, double, int);
+double	plnorm(double, double, double, int, int);
+double	qlnorm(double, double, double, int, int);
+double	rlnorm(double, double);
+
+	/* Chi-squared Distribution */
+
+double	dchisq(double, double, int);
+double	pchisq(double, double, int, int);
+double	qchisq(double, double, int, int);
+double	rchisq(double);
+
+	/* Non-central Chi-squared Distribution */
+
+double	dnchisq(double, double, double, int);
+double	pnchisq(double, double, double, int, int);
+double	qnchisq(double, double, double, int, int);
+double	rnchisq(double, double);
+
+	/* F Distibution */
+
+double	df(double, double, double, int);
+double	pf(double, double, double, int, int);
+double	qf(double, double, double, int, int);
+double	rf(double, double);
+
+	/* Student t Distibution */
+
+double	dt(double, double, int);
+double	pt(double, double, int, int);
+double	qt(double, double, int, int);
+double	rt(double);
+
+	/* Binomial Distribution */
+
+double	dbinom(double, double, double, int);
+double	pbinom(double, double, double, int, int);
+double	qbinom(double, double, double, int, int);
+double	rbinom(double, double);
+
+	/* Multnomial Distribution */
+
+void	rmultinom(int, double*, int, int*);
+
+	/* Cauchy Distribution */
+
+double	dcauchy(double, double, double, int);
+double	pcauchy(double, double, double, int, int);
+double	qcauchy(double, double, double, int, int);
+double	rcauchy(double, double);
+
+	/* Exponential Distribution */
+
+double	dexp(double, double, int);
+double	pexp(double, double, int, int);
+double	qexp(double, double, int, int);
+double	rexp(double);
+
+	/* Geometric Distribution */
+
+double	dgeom(double, double, int);
+double	pgeom(double, double, int, int);
+double	qgeom(double, double, int, int);
+double	rgeom(double);
+
+	/* Hypergeometric Distibution */
+
+double	dhyper(double, double, double, double, int);
+double	phyper(double, double, double, double, int, int);
+double	qhyper(double, double, double, double, int, int);
+double	rhyper(double, double, double);
+
+	/* Negative Binomial Distribution */
+
+double	dnbinom(double, double, double, int);
+double	pnbinom(double, double, double, int, int);
+double	qnbinom(double, double, double, int, int);
+double	rnbinom(double, double);
+
+double	dnbinom_mu(double, double, double, int);
+double	pnbinom_mu(double, double, double, int, int);
+double	qnbinom_mu(double, double, double, int, int);
+double	rnbinom_mu(double, double);
+
+	/* Poisson Distribution */
+
+double	dpois(double, double, int);
+double	ppois(double, double, int, int);
+double	qpois(double, double, int, int);
+double	rpois(double);
+
+	/* Weibull Distribution */
+
+double	dweibull(double, double, double, int);
+double	pweibull(double, double, double, int, int);
+double	qweibull(double, double, double, int, int);
+double	rweibull(double, double);
+
+	/* Logistic Distribution */
+
+double	dlogis(double, double, double, int);
+double	plogis(double, double, double, int, int);
+double	qlogis(double, double, double, int, int);
+double	rlogis(double, double);
+
+	/* Non-central Beta Distribution */
+
+double	dnbeta(double, double, double, double, int);
+double	pnbeta(double, double, double, double, int, int);
+double	qnbeta(double, double, double, double, int, int);
+double	rnbeta(double, double, double);
+
+	/* Non-central F Distribution */
+
+double  dnf(double, double, double, double, int);
+double	pnf(double, double, double, double, int, int);
+double	qnf(double, double, double, double, int, int);
+
+	/* Non-central Student t Distribution */
+
+double	dnt(double, double, double, int);
+double	pnt(double, double, double, int, int);
+double	qnt(double, double, double, int, int);
+
+	/* Studentized Range Distribution */
+
+double	ptukey(double, double, double, double, int, int);
+double	qtukey(double, double, double, double, int, int);
+
+	/* Wilcoxon Rank Sum Distribution */
+
+double dwilcox(double, double, double, int);
+double pwilcox(double, double, double, int, int);
+double qwilcox(double, double, double, int, int);
+double rwilcox(double, double);
+
+	/* Wilcoxon Signed Rank Distribution */
+
+double dsignrank(double, double, int);
+double psignrank(double, double, int, int);
+double qsignrank(double, double, int, int);
+double rsignrank(double);
+
+	/* Gamma and Related Functions */
+double	gammafn(double);
+double	lgammafn(double);
+double	lgammafn_sign(double, int*);
+void    dpsifn(double, int, int, int, double*, int*, int*);
+double	psigamma(double, double);
+double	digamma(double);
+double	trigamma(double);
+double	tetragamma(double);
+double	pentagamma(double);
+
+double	beta(double, double);
+double	lbeta(double, double);
+
+double	choose(double, double);
+double	lchoose(double, double);
+
+	/* Bessel Functions */
+
+double	bessel_i(double, double, double);
+double	bessel_j(double, double);
+double	bessel_k(double, double, double);
+double	bessel_y(double, double);
+double	bessel_i_ex(double, double, double, double *);
+double	bessel_j_ex(double, double, double *);
+double	bessel_k_ex(double, double, double, double *);
+double	bessel_y_ex(double, double, double *);
+
+
+	/* General Support Functions */
+
+#ifndef HAVE_HYPOT
+double 	hypot(double, double);
+#endif
+double 	pythag(double, double);
+#ifndef HAVE_EXPM1
+double  expm1(double); /* = exp(x)-1 {care for small x} */
+#endif
+#ifndef HAVE_LOG1P
+double  log1p(double); /* = log(1+x) {care for small x} */
+#endif
+int	imax2(int, int);
+int	imin2(int, int);
+double	fmax2(double, double);
+double	fmin2(double, double);
+double	sign(double);
+double	fprec(double, double);
+double	fround(double, double);
+double	fsign(double, double);
+double	ftrunc(double);
+
+double  log1pmx(double); /* Accurate log(1+x) - x, {care for small x} */
+double  lgamma1p(double);/* accurate log(gamma(x+1)), small x (0 < x < 0.5) */
+
+/* Compute the log of a sum or difference from logs of terms, i.e.,
+ *
+ *     log (exp (logx) + exp (logy))
+ * or  log (exp (logx) - exp (logy))
+ *
+ * without causing overflows or throwing away too much accuracy:
+ */
+double  logspace_add(double logx, double logy);
+double  logspace_sub(double logx, double logy);
+
+
+
+
+/* ----------------- Private part of the header file ------------------- */
+
+	/* old-R Compatibility */
+
+#ifdef OLD_RMATH_COMPAT
+# define snorm	norm_rand
+# define sunif	unif_rand
+# define sexp	exp_rand
+#endif
+
+#if defined(MATHLIB_STANDALONE) && !defined(MATHLIB_PRIVATE_H)
+/* second is defined by nmath.h */
+
+/* If isnan is a macro, as C99 specifies, the C++
+   math header will undefine it. This happens on OS X */
+# ifdef __cplusplus
+  int R_isnancpp(double); /* in mlutils.c */
+#  define ISNAN(x)     R_isnancpp(x)
+# else
+#  define ISNAN(x)     (isnan(x)!=0)
+# endif
+
+# define R_FINITE(x)    R_finite(x)
+int R_finite(double);
+
+# ifdef WIN32  /* not Win32 as no config information */
+#  ifdef RMATH_DLL
+#   define R_EXTERN extern __declspec(dllimport)
+#  else
+#   define R_EXTERN extern
+#  endif
+R_EXTERN double NA_REAL;
+R_EXTERN double R_PosInf;
+R_EXTERN double R_NegInf;
+R_EXTERN int N01_kind;
+#  undef R_EXTERN
+#else
+extern int N01_kind;
+# endif
+
+#endif /* MATHLIB_STANDALONE */
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* RMATH_H */