@@ -224,25 +224,35 @@ void avoid_openmp_hang_within_fork(void);
224224typedef enum { // adding rolling functions here and in frollfunR in frollR.c
225225 MEAN = 0 ,
226226 SUM = 1 ,
227- MAX = 2
227+ MAX = 2 ,
228+ MIN = 3 ,
229+ PROD = 4
228230} rollfun_t ;
229231// froll.c
230- void frollfun (rollfun_t rfun , unsigned int algo , double * x , uint64_t nx , ans_t * ans , int k , int align , double fill , bool narm , int hasnf , bool verbose );
231- void frollmeanFast (double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
232- void frollmeanExact (double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
233- void frollsumFast (double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
234- void frollsumExact (double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
235- void frollmaxFast (double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
236- void frollmaxExact (double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
232+ void frollfun (rollfun_t rfun , unsigned int algo , const double * x , uint64_t nx , ans_t * ans , int k , int align , double fill , bool narm , int hasnf , bool verbose );
233+ void frollmeanFast (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
234+ void frollmeanExact (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
235+ void frollsumFast (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
236+ void frollsumExact (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
237+ void frollmaxFast (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
238+ void frollmaxExact (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
239+ void frollminFast (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
240+ void frollminExact (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
241+ void frollprodFast (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
242+ void frollprodExact (const double * x , uint64_t nx , ans_t * ans , int k , double fill , bool narm , int hasnf , bool verbose );
237243
238244// frolladaptive.c
239- void frolladaptivefun (rollfun_t rfun , unsigned int algo , double * x , uint64_t nx , ans_t * ans , int * k , double fill , bool narm , int hasnf , bool verbose );
240- void frolladaptivemeanFast (double * x , uint64_t nx , ans_t * ans , int * k , double fill , bool narm , int hasnf , bool verbose );
241- void frolladaptivemeanExact (double * x , uint64_t nx , ans_t * ans , int * k , double fill , bool narm , int hasnf , bool verbose );
242- void frolladaptivesumFast (double * x , uint64_t nx , ans_t * ans , int * k , double fill , bool narm , int hasnf , bool verbose );
243- void frolladaptivesumExact (double * x , uint64_t nx , ans_t * ans , int * k , double fill , bool narm , int hasnf , bool verbose );
244- //void frolladaptivemaxFast(double *x, uint64_t nx, ans_t *ans, int *k, double fill, bool narm, int hasnf, bool verbose); // does not exists as of now
245- void frolladaptivemaxExact (double * x , uint64_t nx , ans_t * ans , int * k , double fill , bool narm , int hasnf , bool verbose );
245+ void frolladaptivefun (rollfun_t rfun , unsigned int algo , const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
246+ void frolladaptivemeanFast (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
247+ void frolladaptivemeanExact (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
248+ void frolladaptivesumFast (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
249+ void frolladaptivesumExact (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
250+ //void frolladaptivemaxFast(const double *x, uint64_t nx, ans_t *ans, const int *k, double fill, bool narm, int hasnf, bool verbose); // does not exists as of now
251+ void frolladaptivemaxExact (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
252+ //void frolladaptiveminFast(const double *x, uint64_t nx, ans_t *ans, const int *k, double fill, bool narm, int hasnf, bool verbose); // does not exists as of now
253+ void frolladaptiveminExact (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
254+ void frolladaptiveprodFast (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
255+ void frolladaptiveprodExact (const double * x , uint64_t nx , ans_t * ans , const int * k , double fill , bool narm , int hasnf , bool verbose );
246256
247257// frollR.c
248258SEXP frollfunR (SEXP fun , SEXP xobj , SEXP kobj , SEXP fill , SEXP algo , SEXP align , SEXP narm , SEXP hasnf , SEXP adaptive );
0 commit comments