require( inline ) require( Rcpp ) inc <- ' SEXP direct__( SEXP x_, SEXP y_ ){ NumericVector x( x_ ), y( y_ ), z( x.size() ) ; int n = x.size() ; for( int i=0; i fx(x), fy(y), fz(z) ; int n = x.size() ; for( int i=0; i nx(x), ny(y) ; NumericVector z = nx * ny ; return z ; } ' fx <- cxxfunction( list( direct = signature( x_ = "numeric", y_ = "numeric" ), extractor = signature( x_ = "numeric", y_ = "numeric" ), sugar_nona = signature( x_ = "numeric", y_ = "numeric" ), assign_direct = signature( x_ = "numeric", y_ = "numeric" ), assign_extractor = signature( x_ = "numeric", y_ = "numeric" ), assign_sugar_nona = signature( x_ = "numeric", y_ = "numeric" ) ) , list( direct = ' SEXP res = R_NilValue ; for( int j=0; j<1000; j++) res = direct__( x_, y_ ) ; return res ; ', extractor = ' SEXP res = R_NilValue ; for( int j=0; j<1000; j++) res = extractors__( x_, y_ ) ; return res ; ', sugar_nona = ' SEXP res = R_NilValue ; for( int j=0; j<1000; j++) res = sugar_nona__( x_, y_ ) ; return res ; ', assign_direct = ' NumericVector x( x_ ), y( y_ ), z( x.size() ) ; int n = x.size() ; for( int j=0; j<1000; j++) for( int i=0; i