Rcpp Version 1.0.9
macros.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define give_log   log_p
 
#define R_D__0   (log_p ? ML_NEGINF : 0.) /* 0 */
 
#define R_D__1   (log_p ? 0. : 1.) /* 1 */
 
#define R_DT_0   (lower_tail ? R_D__0 : R_D__1) /* 0 */
 
#define R_DT_1   (lower_tail ? R_D__1 : R_D__0) /* 1 */
 
#define R_D_Lval(p)   (lower_tail ? (p) : (0.5 - (p) + 0.5)) /* p */
 
#define R_D_Cval(p)   (lower_tail ? (0.5 - (p) + 0.5) : (p)) /* 1 - p */
 
#define R_D_val(x)   (log_p ? ::log(x) : (x)) /* x in pF(x,..) */
 
#define R_D_qIv(p)   (log_p ? ::exp(p) : (p)) /* p in qF(p,..) */
 
#define R_D_exp(x)   (log_p ? (x) : ::exp(x)) /* exp(x) */
 
#define R_D_log(p)   (log_p ? (p) : ::log(p)) /* log(p) */
 
#define R_D_Clog(p)   (log_p ? ::log1p(-(p)) : (0.5 - (p) + 0.5)) /* [log](1-p) */
 
#define R_Log1_Exp(x)   ((x) > -M_LN2 ? ::log(-::expm1(x)) : ::log1p(-::exp(x)))
 
#define R_D_LExp(x)   (log_p ? R_Log1_Exp(x) : ::log1p(-x))
 
#define R_DT_val(x)   (lower_tail ? R_D_val(x) : R_D_Clog(x))
 
#define R_DT_Cval(x)   (lower_tail ? R_D_Clog(x) : R_D_val(x))
 
#define R_DT_qIv(p)
 
#define R_DT_CIv(p)
 
#define R_DT_exp(x)   R_D_exp(R_D_Lval(x)) /* exp(x) */
 
#define R_DT_Cexp(x)   R_D_exp(R_D_Cval(x)) /* exp(1 - x) */
 
#define R_DT_log(p)   (lower_tail? R_D_log(p) : R_D_LExp(p))/* log(p) in qF */
 
#define R_DT_Clog(p)   (lower_tail? R_D_LExp(p): R_D_log(p))/* log(1-p) in qF*/
 
#define R_DT_Log(p)   (lower_tail? (p) : R_Log1_Exp(p))
 
#define R_Q_P01_check(p)
 
#define R_Q_P01_boundaries(p, _LEFT_, _RIGHT_)
 
#define R_P_bounds_01(x, x_min, x_max)
 
#define R_P_bounds_Inf_01(x)
 
#define R_D_fexp(f, x)   (give_log ? -0.5*log(f)+(x) : exp(x)/sqrt(f))
 
#define R_D_forceint(x)   floor((x) + 0.5)
 
#define R_D_nonint(x)   (fabs((x) - floor((x)+0.5)) > 1e-7)
 
#define R_D_negInonint(x)   (x < 0. || R_D_nonint(x))
 
#define R_D_nonint_check(x)
 

Macro Definition Documentation

◆ give_log

#define give_log   log_p

Definition at line 24 of file macros.h.

◆ R_D__0

#define R_D__0   (log_p ? ML_NEGINF : 0.) /* 0 */

Definition at line 27 of file macros.h.

◆ R_D__1

#define R_D__1   (log_p ? 0. : 1.) /* 1 */

Definition at line 28 of file macros.h.

◆ R_D_Clog

#define R_D_Clog (   p)    (log_p ? ::log1p(-(p)) : (0.5 - (p) + 0.5)) /* [log](1-p) */

Definition at line 40 of file macros.h.

◆ R_D_Cval

#define R_D_Cval (   p)    (lower_tail ? (0.5 - (p) + 0.5) : (p)) /* 1 - p */

Definition at line 34 of file macros.h.

◆ R_D_exp

#define R_D_exp (   x)    (log_p ? (x) : ::exp(x)) /* exp(x) */

Definition at line 38 of file macros.h.

◆ R_D_fexp

#define R_D_fexp (   f,
 
)    (give_log ? -0.5*log(f)+(x) : exp(x)/sqrt(f))

Definition at line 116 of file macros.h.

◆ R_D_forceint

#define R_D_forceint (   x)    floor((x) + 0.5)

Definition at line 117 of file macros.h.

◆ R_D_LExp

#define R_D_LExp (   x)    (log_p ? R_Log1_Exp(x) : ::log1p(-x))

Definition at line 46 of file macros.h.

◆ R_D_log

#define R_D_log (   p)    (log_p ? (p) : ::log(p)) /* log(p) */

Definition at line 39 of file macros.h.

◆ R_D_Lval

#define R_D_Lval (   p)    (lower_tail ? (p) : (0.5 - (p) + 0.5)) /* p */

Definition at line 33 of file macros.h.

◆ R_D_negInonint

#define R_D_negInonint (   x)    (x < 0. || R_D_nonint(x))

Definition at line 120 of file macros.h.

◆ R_D_nonint

#define R_D_nonint (   x)    (fabs((x) - floor((x)+0.5)) > 1e-7)

Definition at line 118 of file macros.h.

◆ R_D_nonint_check

#define R_D_nonint_check (   x)
Value:
if(R_D_nonint(x)) { \
MATHLIB_WARNING("non-integer x = %f", x); \
return R_D__0; \
}
#define R_D__0
Definition: macros.h:27
#define R_D_nonint(x)
Definition: macros.h:118

Definition at line 122 of file macros.h.

◆ R_D_qIv

#define R_D_qIv (   p)    (log_p ? ::exp(p) : (p)) /* p in qF(p,..) */

Definition at line 37 of file macros.h.

◆ R_D_val

#define R_D_val (   x)    (log_p ? ::log(x) : (x)) /* x in pF(x,..) */

Definition at line 36 of file macros.h.

◆ R_DT_0

#define R_DT_0   (lower_tail ? R_D__0 : R_D__1) /* 0 */

Definition at line 29 of file macros.h.

◆ R_DT_1

#define R_DT_1   (lower_tail ? R_D__1 : R_D__0) /* 1 */

Definition at line 30 of file macros.h.

◆ R_DT_Cexp

#define R_DT_Cexp (   x)    R_D_exp(R_D_Cval(x)) /* exp(1 - x) */

Definition at line 60 of file macros.h.

◆ R_DT_CIv

#define R_DT_CIv (   p)
Value:
(log_p ? (lower_tail ? -expm1(p) : ::exp(p)) \
: R_D_Cval(p))
double expm1(double x)
void exp(InputIterator begin, InputIterator end, OutputIterator out)
Definition: algorithm.h:474
#define R_D_Cval(p)
Definition: macros.h:34

Definition at line 56 of file macros.h.

◆ R_DT_Clog

#define R_DT_Clog (   p)    (lower_tail? R_D_LExp(p): R_D_log(p))/* log(1-p) in qF*/

Definition at line 63 of file macros.h.

◆ R_DT_Cval

#define R_DT_Cval (   x)    (lower_tail ? R_D_Clog(x) : R_D_val(x))

Definition at line 49 of file macros.h.

◆ R_DT_exp

#define R_DT_exp (   x)    R_D_exp(R_D_Lval(x)) /* exp(x) */

Definition at line 59 of file macros.h.

◆ R_DT_log

#define R_DT_log (   p)    (lower_tail? R_D_log(p) : R_D_LExp(p))/* log(p) in qF */

Definition at line 62 of file macros.h.

◆ R_DT_Log

#define R_DT_Log (   p)    (lower_tail? (p) : R_Log1_Exp(p))

Definition at line 64 of file macros.h.

◆ R_DT_qIv

#define R_DT_qIv (   p)
Value:
(log_p ? (lower_tail ? ::exp(p) : - ::expm1(p)) \
: R_D_Lval(p))
#define R_D_Lval(p)
Definition: macros.h:33

Definition at line 52 of file macros.h.

◆ R_DT_val

#define R_DT_val (   x)    (lower_tail ? R_D_val(x) : R_D_Clog(x))

Definition at line 48 of file macros.h.

◆ R_Log1_Exp

#define R_Log1_Exp (   x)    ((x) > -M_LN2 ? ::log(-::expm1(x)) : ::log1p(-::exp(x)))

Definition at line 43 of file macros.h.

◆ R_P_bounds_01

#define R_P_bounds_01 (   x,
  x_min,
  x_max 
)
Value:
if(x <= x_min) return R_DT_0; \
if(x >= x_max) return R_DT_1
#define R_DT_0
Definition: macros.h:29
#define R_DT_1
Definition: macros.h:30

Definition at line 102 of file macros.h.

◆ R_P_bounds_Inf_01

#define R_P_bounds_Inf_01 (   x)
Value:
if(!R_FINITE(x)) { \
if (x > 0) return R_DT_1; \
/* x < 0 */return R_DT_0; \
}

Definition at line 107 of file macros.h.

◆ R_Q_P01_boundaries

#define R_Q_P01_boundaries (   p,
  _LEFT_,
  _RIGHT_ 
)
Value:
if (log_p) { \
if(p > 0) \
return R_NaN ; \
if(p == 0) /* upper bound*/ \
return lower_tail ? _RIGHT_ : _LEFT_; \
if(p == ML_NEGINF) \
return lower_tail ? _LEFT_ : _RIGHT_; \
} \
else { /* !log_p */ \
if(p < 0 || p > 1) \
return R_NaN ; \
if(p == 0) \
return lower_tail ? _LEFT_ : _RIGHT_; \
if(p == 1) \
return lower_tail ? _RIGHT_ : _LEFT_; \
}
#define ML_NEGINF
Definition: stats.h:28

Definition at line 84 of file macros.h.

◆ R_Q_P01_check

#define R_Q_P01_check (   p)
Value:
if ((log_p && p > 0) || \
(!log_p && (p < 0 || p > 1)) ) \
return R_NaN

Definition at line 68 of file macros.h.