Rcpp Version 1.0.9
SugarBlock_1.h
Go to the documentation of this file.
1
// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
2
//
3
// SugarBlock.h: Rcpp R/C++ interface class library -- sugar functions
4
//
5
// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
6
//
7
// This file is part of Rcpp.
8
//
9
// Rcpp is free software: you can redistribute it and/or modify it
10
// under the terms of the GNU General Public License as published by
11
// the Free Software Foundation, either version 2 of the License, or
12
// (at your option) any later version.
13
//
14
// Rcpp is distributed in the hope that it will be useful, but
15
// WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
// GNU General Public License for more details.
18
//
19
// You should have received a copy of the GNU General Public License
20
// along with Rcpp. If not, see <http://www.gnu.org/licenses/>.
21
22
#ifndef RCPP_SUGAR_BLOCK_1_H
23
#define RCPP_SUGAR_BLOCK_1_H
24
25
namespace
Rcpp
{
26
namespace
sugar{
27
28
template
<
bool
NA,
typename
RESULT_TYPE,
typename
U1,
typename
T1>
29
class
SugarBlock_1
:
public
Rcpp::VectorBase
< Rcpp::traits::r_sexptype_traits<RESULT_TYPE>::rtype , NA, SugarBlock_1<NA,RESULT_TYPE,U1,T1> > {
30
public
:
31
typedef
RESULT_TYPE (*
FunPtr
)(U1) ;
32
SugarBlock_1
(
FunPtr
ptr_,
const
T1 & vec_) :
ptr
(ptr_),
vec
(vec_){}
33
34
inline
RESULT_TYPE
operator[]
( R_xlen_t i)
const
{
35
return
ptr
(
vec
[i] ) ;
36
}
37
inline
R_xlen_t
size
()
const
{
return
vec
.size() ; }
38
39
private
:
40
FunPtr
ptr
;
41
const
T1&
vec
;
42
};
43
44
}
// sugar
45
}
// Rcpp
46
47
#define SB1_T VectorBase<REALSXP,NA,T>
48
49
#define SUGAR_BLOCK_1(__NAME__,__SYMBOL__) \
50
namespace Rcpp{ \
51
template <bool NA, typename T> \
52
inline sugar::SugarBlock_1<NA,double,double,SB1_T > \
53
__NAME__( \
54
const SB1_T& t \
55
){ \
56
return sugar::SugarBlock_1<NA,double,double,SB1_T >( \
57
__SYMBOL__ , t \
58
) ; \
59
} \
60
}
61
62
#endif
Rcpp::VectorBase
Definition:
VectorBase.h:29
Rcpp::sugar::SugarBlock_1
Definition:
SugarBlock_1.h:29
Rcpp::sugar::SugarBlock_1::FunPtr
RESULT_TYPE(* FunPtr)(U1)
Definition:
SugarBlock_1.h:31
Rcpp::sugar::SugarBlock_1::ptr
FunPtr ptr
Definition:
SugarBlock_1.h:40
Rcpp::sugar::SugarBlock_1::vec
const T1 & vec
Definition:
SugarBlock_1.h:41
Rcpp::sugar::SugarBlock_1::operator[]
RESULT_TYPE operator[](R_xlen_t i) const
Definition:
SugarBlock_1.h:34
Rcpp::sugar::SugarBlock_1::size
R_xlen_t size() const
Definition:
SugarBlock_1.h:37
Rcpp::sugar::SugarBlock_1::SugarBlock_1
SugarBlock_1(FunPtr ptr_, const T1 &vec_)
Definition:
SugarBlock_1.h:32
Rcpp
Rcpp API.
Definition:
algo.h:28
inst
include
Rcpp
sugar
block
SugarBlock_1.h
Generated on Sat Jul 9 2022 09:14:52 for Rcpp Version 1.0.9 by
1.9.1