| /* |
| * 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_ */ |