/* * R : A Computer Language for Statistical Data Analysis * Copyright (C) 2000-2016 The R Core Team. * * This header file 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 file is part of R. R is distributed under the terms of the * GNU General Public License, either Version 2, June 1991 or Version 3, * June 2007. See doc/COPYRIGHTS for details of the copyright status of R. * * 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 * https://www.R-project.org/Licenses/ */ #ifndef R_R_H #define R_R_H #ifndef USING_R # define USING_R #endif /* same as Rmath.h: needed for cospi etc */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 #endif /* The C++ headers in Solaris Studio are strict C++98, and 100+ packages would fail because of not using e.g. std::floor or using C99 functions such as erf exmp1 floorf fmin fminf fmax lgamma lround loglp round snprintf strcasecmp trunc We workaround the first, here and in Rmath.h. DO_NOT_USE_CXX_HEADERS is legacy, left as a last resort. */ #if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS) # include # include # include # include # ifdef __SUNPRO_CC using namespace std; # endif #else # include /* Not used by R itself, but widely assumed in packages */ # include /* Used by ca 200 packages, but not in R itself */ # include /* for INT_MAX */ # include #endif /* math.h is also included by R_ext/Arith.h, except in C++ code stddef.h (or cstddef) is included by R_ext/Memory.h string.h (or cstring) is included by R_ext/RS.h */ #if defined(__sun) /* Solaris' stdlib.h includes a header which defines these (and more) */ # undef CS # undef DO # undef DS # undef ES # undef FS # undef GS # undef SO # undef SS #endif #ifdef NO_C_HEADERS # warning "use of NO_C_HEADERS is defunct and will be ignored" #endif #include #include /* R_FINITE, ISNAN, ... */ #include /* Rboolean type */ #include /* Rcomplex type */ #include /* PI, DOUBLE_EPS, etc */ #include /* error and warning */ #include /* R_alloc and S_alloc */ #include /* Rprintf etc */ #include /* RNG interface */ #include /* sort routines et al */ #include /* for PROBLEM ... Calloc, Realloc, Free, Memcpy, F77_xxxx */ typedef double Sfloat; typedef int Sint; #define SINT_MAX INT_MAX #define SINT_MIN INT_MIN #ifdef __cplusplus extern "C" { #endif void R_FlushConsole(void); /* always declared, but only usable under Win32 and Aqua */ void R_ProcessEvents(void); #ifdef Win32 void R_WaitEvent(void); #endif #ifdef __cplusplus } #endif #endif /* !R_R_H */