| /* | |
| * R : A Computer Language for Statistical Data Analysis | |
| * Copyright (C) 1998-2017 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/ | |
| * | |
| * | |
| * Generally useful UTILITIES *NOT* relying on R internals (from Defn.h) | |
| */ | |
| /* Included by R.h: API */ | |
| #ifndef R_EXT_UTILS_H_ | |
| #define R_EXT_UTILS_H_ | |
| #include <R_ext/Boolean.h> | |
| #include <R_ext/Complex.h> | |
| #if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS) | |
| # include <cstddef> | |
| # define R_SIZE_T std::size_t | |
| #else | |
| # include <stddef.h> | |
| # define R_SIZE_T size_t | |
| #endif | |
| #define revsort Rf_revsort | |
| #define iPsort Rf_iPsort | |
| #define rPsort Rf_rPsort | |
| #define cPsort Rf_cPsort | |
| #define IndexWidth Rf_IndexWidth | |
| #define setIVector Rf_setIVector | |
| #define setRVector Rf_setRVector | |
| #define StringFalse Rf_StringFalse | |
| #define StringTrue Rf_StringTrue | |
| #define isBlankString Rf_isBlankString | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /* ../../main/sort.c : */ | |
| void R_isort(int*, int); | |
| void R_rsort(double*, int); | |
| void R_csort(Rcomplex*, int); | |
| void rsort_with_index(double *, int *, int); | |
| void revsort(double*, int*, int);/* reverse; sort i[] alongside */ | |
| void iPsort(int*, int, int); | |
| void rPsort(double*, int, int); | |
| void cPsort(Rcomplex*, int, int); | |
| /* ../../main/qsort.c : */ | |
| /* dummy renamed to II to avoid problems with g++ on Solaris */ | |
| void R_qsort (double *v, R_SIZE_T i, R_SIZE_T j); | |
| void R_qsort_I (double *v, int *II, int i, int j); | |
| void R_qsort_int (int *iv, R_SIZE_T i, R_SIZE_T j); | |
| void R_qsort_int_I(int *iv, int *II, int i, int j); | |
| #ifdef R_RS_H | |
| void F77_NAME(qsort4)(double *v, int *indx, int *ii, int *jj); | |
| void F77_NAME(qsort3)(double *v, int *ii, int *jj); | |
| #endif | |
| /* ../../main/util.c and others : */ | |
| const char *R_ExpandFileName(const char *); | |
| #ifdef Win32 | |
| const char *R_ExpandFileNameUTF8(const char *); | |
| #endif | |
| void setIVector(int*, int, int); | |
| void setRVector(double*, int, double); | |
| Rboolean StringFalse(const char *); | |
| Rboolean StringTrue(const char *); | |
| Rboolean isBlankString(const char *); | |
| /* These two are guaranteed to use '.' as the decimal point, | |
| and to accept "NA". | |
| */ | |
| double R_atof(const char *str); | |
| double R_strtod(const char *c, char **end); | |
| char *R_tmpnam(const char *prefix, const char *tempdir); | |
| char *R_tmpnam2(const char *prefix, const char *tempdir, const char *fileext); | |
| void R_CheckUserInterrupt(void); | |
| void R_CheckStack(void); | |
| void R_CheckStack2(R_SIZE_T); | |
| /* ../../appl/interv.c: also in Applic.h */ | |
| int findInterval(double *xt, int n, double x, | |
| Rboolean rightmost_closed, Rboolean all_inside, int ilo, | |
| int *mflag); | |
| int findInterval2(double *xt, int n, double x, | |
| Rboolean rightmost_closed, Rboolean all_inside, Rboolean left_open, | |
| int ilo, int *mflag); | |
| #ifdef R_RS_H | |
| int F77_SUB(interv)(double *xt, int *n, double *x, | |
| Rboolean *rightmost_closed, Rboolean *all_inside, | |
| int *ilo, int *mflag); | |
| #endif | |
| void find_interv_vec(double *xt, int *n, double *x, int *nx, | |
| int *rightmost_closed, int *all_inside, int *indx); | |
| /* ../../appl/maxcol.c: also in Applic.h */ | |
| void R_max_col(double *matrix, int *nr, int *nc, int *maxes, int *ties_meth); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* R_EXT_UTILS_H_ */ |