[Rcpp-commits] r2025 - in pkg/Rcpp/inst/include/Rcpp/sugar: . block functions

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Mon Aug 16 13:39:19 CEST 2010


Author: romain
Date: 2010-08-16 13:39:18 +0200 (Mon, 16 Aug 2010)
New Revision: 2025

Added:
   pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarBlock_1.h
   pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarMath.h
   pkg/Rcpp/inst/include/Rcpp/sugar/block/block.h
Removed:
   pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarBlock.h
   pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarMath.h
Modified:
   pkg/Rcpp/inst/include/Rcpp/sugar/functions/functions.h
   pkg/Rcpp/inst/include/Rcpp/sugar/sugar.h
Log:
moving things around

Copied: pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarBlock_1.h (from rev 2023, pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarBlock.h)
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarBlock_1.h	                        (rev 0)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarBlock_1.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -0,0 +1,188 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// SugarBlock.h: Rcpp R/C++ interface class library -- sugar functions
+//
+// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_SUGAR_BLOCK_1H
+#define RCPP_SUGAR_BLOCK_1H
+
+namespace Rcpp{
+namespace sugar{
+
+template <bool NA, typename OUT, typename U1, typename T1>
+class SugarBlock_1 : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_1<NA,OUT,U1,T1> > {
+public:
+	typedef OUT (*FunPtr)(U1) ;
+	SugarBlock_1( FunPtr ptr_, const T1 & vec_) : ptr(ptr_), vec(vec_){}
+	
+	inline OUT operator[]( int i) const { 
+		return ptr( vec[i] ) ;
+	}
+	inline int size() const { return vec.size() ; }
+	
+private:
+	FunPtr ptr ;
+	const T1& vec ;
+};
+
+template <bool NA, typename OUT, typename U1, typename T1, typename U2, typename T2>
+class SugarBlock_2 : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_2<NA,OUT,U1,T1,U2,T2> > {
+public:
+	typedef OUT (*FunPtr)(U1,U2) ;
+	SugarBlock_2( FunPtr ptr_, const T1 & x_, const T2& y_ ) : 
+		ptr(ptr_), x(x_), y(y_){
+			// TODO: check that x and y have same size	
+	}
+	
+	inline OUT operator[]( int i) const { 
+		return ptr( x[i], y[i] ) ;
+	}
+	inline int size() const { return x.size() ; }
+	
+private:
+	FunPtr ptr ;
+	const T1& x ;
+	const T2& y ;
+};
+
+
+template <bool NA, typename OUT, typename U1, typename T1, typename U2>
+class SugarBlock_2__VP : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_2__VP<NA,OUT,U1,T1,U2> > {
+public:
+	typedef OUT (*FunPtr)(U1,U2) ;
+	SugarBlock_2__VP( FunPtr ptr_, const T1 & x_, U2 u2 ) : 
+		ptr(ptr_), x(x_), y(u2){}
+	
+	inline OUT operator[]( int i) const { 
+		return ptr( x[i], y ) ;
+	}
+	inline int size() const { return x.size() ; }
+	
+private:
+	FunPtr ptr ;
+	const T1& x ;
+	U2 y ;
+};
+
+template <bool NA, typename OUT, typename U1, typename U2, typename T2>
+class SugarBlock_2__PV : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_2__PV<NA,OUT,U1,U2,T2> > {
+public:
+	typedef OUT (*FunPtr)(U1,U2) ;
+	SugarBlock_2__PV( FunPtr ptr_, U1 u1, const T2& y_ ) : 
+		ptr(ptr_), x(u1), y(y_){}
+	
+	inline OUT operator[]( int i) const { 
+		return ptr( x, y[i] ) ;
+	}
+	inline int size() const { return y.size() ; }
+	
+private:
+	FunPtr ptr ;
+	U1 x ;
+	const T2& y ;
+};
+
+
+} // sugar
+} // Rcpp
+                                                            
+#define SUGAR_BLOCK_1(__NAME__,__SYMBOL__)                                                \
+	namespace Rcpp{                                                                       \
+	template <bool NA, typename T>                                                        \
+	inline sugar::SugarBlock_1<NA,double,double,T>                                        \
+	__NAME__(                                                                             \
+		const VectorBase<REALSXP,NA,T>& t                                                 \
+	){                                                                                    \
+		return sugar::SugarBlock_1<NA,double,double,T>(                                   \
+			__SYMBOL__ , t                                                                \
+		) ;                                                                               \
+	}                                                                                     \
+	}
+
+#define SUGAR_BLOCK_2(__NAME__,__SYMBOL__)                                                \
+	namespace Rcpp{                                                                       \
+	template <bool LHS_NA, typename LHS_T, bool RHS_NA, typename RHS_T >                  \
+	inline sugar::SugarBlock_2< (LHS_NA||RHS_NA) ,double,double,LHS_T,double,RHS_T>       \
+	__NAME__(                                                                             \
+		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
+		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
+	){                                                                                    \
+		return sugar::SugarBlock_2< (LHS_NA||RHS_NA) ,double,double,LHS_T,double,RHS_T>(  \
+			__SYMBOL__ , lhs, rhs                                                         \
+		) ;                                                                               \
+	}                                                                                     \
+	template <bool LHS_NA, typename LHS_T>                                                \
+	inline sugar::SugarBlock_2__VP<LHS_NA,double,double,LHS_T,double>                     \
+	__NAME__(                                                                             \
+		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
+		double rhs                                                                        \
+	){                                                                                    \
+		return sugar::SugarBlock_2__VP<LHS_NA,double,double,LHS_T,double>(                \
+			__SYMBOL__ , lhs, rhs                                                         \
+		) ;                                                                               \
+	}                                                                                     \
+	template <bool RHS_NA, typename RHS_T>                                                \
+	inline sugar::SugarBlock_2__PV<RHS_NA,double,double,double,RHS_T>                     \
+	__NAME__(                                                                             \
+		double lhs,                                                                       \
+		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
+	){                                                                                    \
+		return sugar::SugarBlock_2__PV<RHS_NA,double,double,double,RHS_T>(                \
+			__SYMBOL__ , lhs, rhs                                                         \
+		) ;                                                                               \
+	}                                                                                     \
+	}
+
+	
+#define SUGAR_BLOCK_2_NA(__NAME__,__SYMBOL__,__NA__)                                      \
+	namespace Rcpp{                                                                       \
+	template <bool LHS_NA, typename LHS_T, bool RHS_NA, typename RHS_T >                  \
+	inline sugar::SugarBlock_2< __NA__ ,double,double,LHS_T,double,RHS_T>       \
+	__NAME__(                                                                             \
+		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
+		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
+	){                                                                                    \
+		return sugar::SugarBlock_2< __NA__ ,double,double,LHS_T,double,RHS_T>(  \
+			__SYMBOL__ , lhs, rhs                                                         \
+		) ;                                                                               \
+	}                                                                                     \
+	template <bool LHS_NA, typename LHS_T>                                                \
+	inline sugar::SugarBlock_2__VP<__NA__,double,double,LHS_T,double>                     \
+	__NAME__(                                                                             \
+		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
+		double rhs                                                                        \
+	){                                                                                    \
+		return sugar::SugarBlock_2__VP<__NA__,double,double,LHS_T,double>(                \
+			__SYMBOL__ , lhs, rhs                                                         \
+		) ;                                                                               \
+	}                                                                                     \
+	template <bool RHS_NA, typename RHS_T>                                                \
+	inline sugar::SugarBlock_2__PV<__NA__,double,double,double,RHS_T>                     \
+	__NAME__(                                                                             \
+		double lhs,                                                                       \
+		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
+	){                                                                                    \
+		return sugar::SugarBlock_2__PV<__NA__,double,double,double,RHS_T>(                \
+			__SYMBOL__ , lhs, rhs                                                         \
+		) ;                                                                               \
+	}                                                                                     \
+	}
+	
+	
+#endif

Copied: pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarMath.h (from rev 2023, pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarMath.h)
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarMath.h	                        (rev 0)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/block/SugarMath.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -0,0 +1,124 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// SugarBlock.h: Rcpp R/C++ interface class library -- sugar functions
+//
+// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_SUGAR_SUGARMATH_H
+#define RCPP_SUGAR_SUGARMATH_H
+
+namespace Rcpp{
+namespace sugar{
+	
+template <bool NA, typename OUT, typename U1, typename T1, typename FunPtr>
+class SugarMath_1 : public Rcpp::VectorBase< 
+	Rcpp::traits::r_sexptype_traits<OUT>::rtype , 
+	NA, 
+	SugarMath_1<NA,OUT,U1,T1,FunPtr>
+	> {
+public:
+	
+	typedef Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype ,NA,T1> VEC_TYPE ;
+	
+	SugarMath_1( FunPtr ptr_, const VEC_TYPE & vec_) : ptr(ptr_), vec(vec_){}
+	
+	inline OUT operator[]( int i) const { 
+		U1 x = vec[i] ;
+		if( ISNAN(x) ) return x;
+		return ptr( x ) ;
+	}
+	inline int size() const { return vec.size() ; }
+	
+private:
+	FunPtr ptr ;
+	const VEC_TYPE& vec ;
+};
+
+template <bool NA, typename OUT, typename T1, typename FunPtr>
+class SugarMath_1<NA,OUT,int,T1,FunPtr> : public Rcpp::VectorBase< 
+	Rcpp::traits::r_sexptype_traits<OUT>::rtype , 
+	NA, 
+	SugarMath_1<NA,OUT,int,T1,FunPtr>
+	> {
+public:
+	typedef Rcpp::VectorBase< INTSXP ,NA,T1> VEC_TYPE ;
+	
+	SugarMath_1( FunPtr ptr_, const VEC_TYPE & vec_) : ptr(ptr_), vec(vec_){}
+	
+	inline OUT operator[]( int i) const { 
+		int x = vec[i] ;
+		if( Rcpp::traits::is_na<INTSXP>(x) ) return Rcpp::traits::get_na<REALSXP>( ) ;
+		return ptr( x ) ;
+	}
+	inline int size() const { return vec.size() ; }
+	
+private:
+	FunPtr ptr ;
+	const VEC_TYPE& vec ;
+};
+
+template <typename OUT, typename T1, typename FunPtr>
+class SugarMath_1<false,OUT,int,T1,FunPtr> : public 
+Rcpp::VectorBase< 
+	Rcpp::traits::r_sexptype_traits<OUT>::rtype , 
+	false, 
+	SugarMath_1<false,OUT,int,T1,FunPtr>
+> {
+public:
+	typedef Rcpp::VectorBase< INTSXP ,false,T1> VEC_TYPE ;
+	SugarMath_1( FunPtr ptr_, const VEC_TYPE & vec_) : ptr(ptr_), vec(vec_){}
+	
+	inline OUT operator[]( int i) const { 
+		return ptr( vec[i] ) ;
+	}
+	inline int size() const { return vec.size() ; }
+	
+private:
+	FunPtr ptr ;
+	const VEC_TYPE& vec ;
+};
+
+
+} // sugar
+} // Rcpp
+
+#define SUGAR_MATH_1(__NAME__,__SYMBOL__)                                    \
+	namespace Rcpp{                                                          \
+	template <bool NA, typename T>                                           \
+	inline sugar::SugarMath_1<NA,double,double,T, double (*)(double) >       \
+	__NAME__(                                                                \
+		const VectorBase<REALSXP,NA,T>& t                                    \
+	){                                                                       \
+		return sugar::SugarMath_1<NA,double,double,T, double (*)(double)>(   \
+			&__SYMBOL__ , t                                                   \
+		) ;                                                                  \
+	}                                                                        \
+	template <bool NA, typename T>                                           \
+	inline sugar::SugarMath_1<NA,double,int,T, double (*)(double) >          \
+	__NAME__(                                                                \
+		const VectorBase<INTSXP,NA,T>& t                                     \
+	){                                                                       \
+		return sugar::SugarMath_1<NA,double,int,T, double (*)(double)>(      \
+			&__SYMBOL__ , t                                                   \
+		) ;                                                                  \
+	}                                                                        \
+	}
+
+	
+
+#endif

Added: pkg/Rcpp/inst/include/Rcpp/sugar/block/block.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/block/block.h	                        (rev 0)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/block/block.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// block.h: Rcpp R/C++ interface class library -- sugar blocks
+//
+// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__block__block_h
+#define Rcpp__sugar__block__block_h
+
+#include <Rcpp/sugar/block/SugarBlock_1.h>
+#include <Rcpp/sugar/block/SugarMath.h>
+
+#endif

Deleted: pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarBlock.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarBlock.h	2010-08-16 11:35:44 UTC (rev 2024)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarBlock.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -1,188 +0,0 @@
-// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
-//
-// SugarBlock.h: Rcpp R/C++ interface class library -- sugar functions
-//
-// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
-//
-// This file is part of Rcpp.
-//
-// Rcpp is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 2 of the License, or
-// (at your option) any later version.
-//
-// Rcpp 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 General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef RCPP_SUGAR_BLOCK_H
-#define RCPP_SUGAR_BLOCK_H
-
-namespace Rcpp{
-namespace sugar{
-
-template <bool NA, typename OUT, typename U1, typename T1>
-class SugarBlock_1 : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_1<NA,OUT,U1,T1> > {
-public:
-	typedef OUT (*FunPtr)(U1) ;
-	SugarBlock_1( FunPtr ptr_, const T1 & vec_) : ptr(ptr_), vec(vec_){}
-	
-	inline OUT operator[]( int i) const { 
-		return ptr( vec[i] ) ;
-	}
-	inline int size() const { return vec.size() ; }
-	
-private:
-	FunPtr ptr ;
-	const T1& vec ;
-};
-
-template <bool NA, typename OUT, typename U1, typename T1, typename U2, typename T2>
-class SugarBlock_2 : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_2<NA,OUT,U1,T1,U2,T2> > {
-public:
-	typedef OUT (*FunPtr)(U1,U2) ;
-	SugarBlock_2( FunPtr ptr_, const T1 & x_, const T2& y_ ) : 
-		ptr(ptr_), x(x_), y(y_){
-			// TODO: check that x and y have same size	
-	}
-	
-	inline OUT operator[]( int i) const { 
-		return ptr( x[i], y[i] ) ;
-	}
-	inline int size() const { return x.size() ; }
-	
-private:
-	FunPtr ptr ;
-	const T1& x ;
-	const T2& y ;
-};
-
-
-template <bool NA, typename OUT, typename U1, typename T1, typename U2>
-class SugarBlock_2__VP : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_2__VP<NA,OUT,U1,T1,U2> > {
-public:
-	typedef OUT (*FunPtr)(U1,U2) ;
-	SugarBlock_2__VP( FunPtr ptr_, const T1 & x_, U2 u2 ) : 
-		ptr(ptr_), x(x_), y(u2){}
-	
-	inline OUT operator[]( int i) const { 
-		return ptr( x[i], y ) ;
-	}
-	inline int size() const { return x.size() ; }
-	
-private:
-	FunPtr ptr ;
-	const T1& x ;
-	U2 y ;
-};
-
-template <bool NA, typename OUT, typename U1, typename U2, typename T2>
-class SugarBlock_2__PV : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype , NA, SugarBlock_2__PV<NA,OUT,U1,U2,T2> > {
-public:
-	typedef OUT (*FunPtr)(U1,U2) ;
-	SugarBlock_2__PV( FunPtr ptr_, U1 u1, const T2& y_ ) : 
-		ptr(ptr_), x(u1), y(y_){}
-	
-	inline OUT operator[]( int i) const { 
-		return ptr( x, y[i] ) ;
-	}
-	inline int size() const { return y.size() ; }
-	
-private:
-	FunPtr ptr ;
-	U1 x ;
-	const T2& y ;
-};
-
-
-} // sugar
-} // Rcpp
-                                                            
-#define SUGAR_BLOCK_1(__NAME__,__SYMBOL__)                                                \
-	namespace Rcpp{                                                                       \
-	template <bool NA, typename T>                                                        \
-	inline sugar::SugarBlock_1<NA,double,double,T>                                        \
-	__NAME__(                                                                             \
-		const VectorBase<REALSXP,NA,T>& t                                                 \
-	){                                                                                    \
-		return sugar::SugarBlock_1<NA,double,double,T>(                                   \
-			__SYMBOL__ , t                                                                \
-		) ;                                                                               \
-	}                                                                                     \
-	}
-
-#define SUGAR_BLOCK_2(__NAME__,__SYMBOL__)                                                \
-	namespace Rcpp{                                                                       \
-	template <bool LHS_NA, typename LHS_T, bool RHS_NA, typename RHS_T >                  \
-	inline sugar::SugarBlock_2< (LHS_NA||RHS_NA) ,double,double,LHS_T,double,RHS_T>       \
-	__NAME__(                                                                             \
-		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
-		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
-	){                                                                                    \
-		return sugar::SugarBlock_2< (LHS_NA||RHS_NA) ,double,double,LHS_T,double,RHS_T>(  \
-			__SYMBOL__ , lhs, rhs                                                         \
-		) ;                                                                               \
-	}                                                                                     \
-	template <bool LHS_NA, typename LHS_T>                                                \
-	inline sugar::SugarBlock_2__VP<LHS_NA,double,double,LHS_T,double>                     \
-	__NAME__(                                                                             \
-		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
-		double rhs                                                                        \
-	){                                                                                    \
-		return sugar::SugarBlock_2__VP<LHS_NA,double,double,LHS_T,double>(                \
-			__SYMBOL__ , lhs, rhs                                                         \
-		) ;                                                                               \
-	}                                                                                     \
-	template <bool RHS_NA, typename RHS_T>                                                \
-	inline sugar::SugarBlock_2__PV<RHS_NA,double,double,double,RHS_T>                     \
-	__NAME__(                                                                             \
-		double lhs,                                                                       \
-		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
-	){                                                                                    \
-		return sugar::SugarBlock_2__PV<RHS_NA,double,double,double,RHS_T>(                \
-			__SYMBOL__ , lhs, rhs                                                         \
-		) ;                                                                               \
-	}                                                                                     \
-	}
-
-	
-#define SUGAR_BLOCK_2_NA(__NAME__,__SYMBOL__,__NA__)                                      \
-	namespace Rcpp{                                                                       \
-	template <bool LHS_NA, typename LHS_T, bool RHS_NA, typename RHS_T >                  \
-	inline sugar::SugarBlock_2< __NA__ ,double,double,LHS_T,double,RHS_T>       \
-	__NAME__(                                                                             \
-		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
-		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
-	){                                                                                    \
-		return sugar::SugarBlock_2< __NA__ ,double,double,LHS_T,double,RHS_T>(  \
-			__SYMBOL__ , lhs, rhs                                                         \
-		) ;                                                                               \
-	}                                                                                     \
-	template <bool LHS_NA, typename LHS_T>                                                \
-	inline sugar::SugarBlock_2__VP<__NA__,double,double,LHS_T,double>                     \
-	__NAME__(                                                                             \
-		const VectorBase<REALSXP,LHS_NA,LHS_T>& lhs,                                      \
-		double rhs                                                                        \
-	){                                                                                    \
-		return sugar::SugarBlock_2__VP<__NA__,double,double,LHS_T,double>(                \
-			__SYMBOL__ , lhs, rhs                                                         \
-		) ;                                                                               \
-	}                                                                                     \
-	template <bool RHS_NA, typename RHS_T>                                                \
-	inline sugar::SugarBlock_2__PV<__NA__,double,double,double,RHS_T>                     \
-	__NAME__(                                                                             \
-		double lhs,                                                                       \
-		const VectorBase<REALSXP,RHS_NA,RHS_T>& rhs                                       \
-	){                                                                                    \
-		return sugar::SugarBlock_2__PV<__NA__,double,double,double,RHS_T>(                \
-			__SYMBOL__ , lhs, rhs                                                         \
-		) ;                                                                               \
-	}                                                                                     \
-	}
-	
-	
-#endif

Deleted: pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarMath.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarMath.h	2010-08-16 11:35:44 UTC (rev 2024)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/functions/SugarMath.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -1,124 +0,0 @@
-// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
-//
-// SugarBlock.h: Rcpp R/C++ interface class library -- sugar functions
-//
-// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
-//
-// This file is part of Rcpp.
-//
-// Rcpp is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 2 of the License, or
-// (at your option) any later version.
-//
-// Rcpp 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 General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef RCPP_SUGAR_SUGARMATH_H
-#define RCPP_SUGAR_SUGARMATH_H
-
-namespace Rcpp{
-namespace sugar{
-	
-template <bool NA, typename OUT, typename U1, typename T1, typename FunPtr>
-class SugarMath_1 : public Rcpp::VectorBase< 
-	Rcpp::traits::r_sexptype_traits<OUT>::rtype , 
-	NA, 
-	SugarMath_1<NA,OUT,U1,T1,FunPtr>
-	> {
-public:
-	
-	typedef Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits<OUT>::rtype ,NA,T1> VEC_TYPE ;
-	
-	SugarMath_1( FunPtr ptr_, const VEC_TYPE & vec_) : ptr(ptr_), vec(vec_){}
-	
-	inline OUT operator[]( int i) const { 
-		U1 x = vec[i] ;
-		if( ISNAN(x) ) return x;
-		return ptr( x ) ;
-	}
-	inline int size() const { return vec.size() ; }
-	
-private:
-	FunPtr ptr ;
-	const VEC_TYPE& vec ;
-};
-
-template <bool NA, typename OUT, typename T1, typename FunPtr>
-class SugarMath_1<NA,OUT,int,T1,FunPtr> : public Rcpp::VectorBase< 
-	Rcpp::traits::r_sexptype_traits<OUT>::rtype , 
-	NA, 
-	SugarMath_1<NA,OUT,int,T1,FunPtr>
-	> {
-public:
-	typedef Rcpp::VectorBase< INTSXP ,NA,T1> VEC_TYPE ;
-	
-	SugarMath_1( FunPtr ptr_, const VEC_TYPE & vec_) : ptr(ptr_), vec(vec_){}
-	
-	inline OUT operator[]( int i) const { 
-		int x = vec[i] ;
-		if( Rcpp::traits::is_na<INTSXP>(x) ) return Rcpp::traits::get_na<REALSXP>( ) ;
-		return ptr( x ) ;
-	}
-	inline int size() const { return vec.size() ; }
-	
-private:
-	FunPtr ptr ;
-	const VEC_TYPE& vec ;
-};
-
-template <typename OUT, typename T1, typename FunPtr>
-class SugarMath_1<false,OUT,int,T1,FunPtr> : public 
-Rcpp::VectorBase< 
-	Rcpp::traits::r_sexptype_traits<OUT>::rtype , 
-	false, 
-	SugarMath_1<false,OUT,int,T1,FunPtr>
-> {
-public:
-	typedef Rcpp::VectorBase< INTSXP ,false,T1> VEC_TYPE ;
-	SugarMath_1( FunPtr ptr_, const VEC_TYPE & vec_) : ptr(ptr_), vec(vec_){}
-	
-	inline OUT operator[]( int i) const { 
-		return ptr( vec[i] ) ;
-	}
-	inline int size() const { return vec.size() ; }
-	
-private:
-	FunPtr ptr ;
-	const VEC_TYPE& vec ;
-};
-
-
-} // sugar
-} // Rcpp
-
-#define SUGAR_MATH_1(__NAME__,__SYMBOL__)                                    \
-	namespace Rcpp{                                                          \
-	template <bool NA, typename T>                                           \
-	inline sugar::SugarMath_1<NA,double,double,T, double (*)(double) >       \
-	__NAME__(                                                                \
-		const VectorBase<REALSXP,NA,T>& t                                    \
-	){                                                                       \
-		return sugar::SugarMath_1<NA,double,double,T, double (*)(double)>(   \
-			&__SYMBOL__ , t                                                   \
-		) ;                                                                  \
-	}                                                                        \
-	template <bool NA, typename T>                                           \
-	inline sugar::SugarMath_1<NA,double,int,T, double (*)(double) >          \
-	__NAME__(                                                                \
-		const VectorBase<INTSXP,NA,T>& t                                     \
-	){                                                                       \
-		return sugar::SugarMath_1<NA,double,int,T, double (*)(double)>(      \
-			&__SYMBOL__ , t                                                   \
-		) ;                                                                  \
-	}                                                                        \
-	}
-
-	
-
-#endif

Modified: pkg/Rcpp/inst/include/Rcpp/sugar/functions/functions.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/functions/functions.h	2010-08-16 11:35:44 UTC (rev 2024)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/functions/functions.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -25,8 +25,6 @@
 /* for exp( double ) */
 #include <cmath>
 
-#include <Rcpp/sugar/functions/SugarBlock.h>
-#include <Rcpp/sugar/functions/SugarMath.h>
 #include <Rcpp/sugar/functions/math.h>
 
 #include <Rcpp/sugar/functions/complex.h>

Modified: pkg/Rcpp/inst/include/Rcpp/sugar/sugar.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/sugar/sugar.h	2010-08-16 11:35:44 UTC (rev 2024)
+++ pkg/Rcpp/inst/include/Rcpp/sugar/sugar.h	2010-08-16 11:39:18 UTC (rev 2025)
@@ -22,6 +22,8 @@
 #ifndef RCPP_SUGAR_H
 #define RCPP_SUGAR_H
 
+#include <Rcpp/sugar/block/block.h>
+
 #include <Rcpp/sugar/operators/operators.h>
 #include <Rcpp/sugar/functions/functions.h>
 #include <Rcpp/sugar/matrix/matrix_functions.h>



More information about the Rcpp-commits mailing list