[Rcpp-commits] r3136 - pkg/RcppEigen/inst/include
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Wed Jul 13 12:24:33 CEST 2011
Author: romain
Date: 2011-07-13 12:24:32 +0200 (Wed, 13 Jul 2011)
New Revision: 3136
Modified:
pkg/RcppEigen/inst/include/RcppEigenForward.h
pkg/RcppEigen/inst/include/RcppEigenWrap.h
Log:
comment non generic implementations
Modified: pkg/RcppEigen/inst/include/RcppEigenForward.h
===================================================================
--- pkg/RcppEigen/inst/include/RcppEigenForward.h 2011-07-13 10:13:43 UTC (rev 3135)
+++ pkg/RcppEigen/inst/include/RcppEigenForward.h 2011-07-13 10:24:32 UTC (rev 3136)
@@ -32,18 +32,20 @@
/* forward declarations */
namespace Rcpp {
/* support for wrap */
- template<typename Derived> SEXP wrap(const Eigen::EigenBase<Derived>&);
+
+ // [romain] : don't need all this anymore
+ // template<typename Derived> SEXP wrap(const Eigen::EigenBase<Derived>&);
// template<typename T> SEXP wrap(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>&);
// template<typename T> SEXP wrap(const Eigen::Matrix<T, Eigen::Dynamic, 1>&);
// template<typename T> SEXP wrap(const Eigen::Matrix<T, 1, Eigen::Dynamic>&);
- template<typename T> SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic>&);
- template<typename T> SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, 1>&);
- template<typename T> SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> >&);
- template<typename T> SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> >&);
- template<typename T> SEXP wrap(const Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> >&);
- template<typename T> SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> >&);
- template<typename T> SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> >&);
- template<typename T> SEXP wrap(const Eigen::SparseMatrix<T>&);
+ // template<typename T> SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic>&);
+ // template<typename T> SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, 1>&);
+ // template<typename T> SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> >&);
+ // template<typename T> SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> >&);
+ // template<typename T> SEXP wrap(const Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> >&);
+ // template<typename T> SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> >&);
+ // template<typename T> SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> >&);
+ // template<typename T> SEXP wrap(const Eigen::SparseMatrix<T>&);
template<typename T> SEXP wrap(const Eigen::Map<Eigen::SparseMatrix<T> >&);
namespace traits {
Modified: pkg/RcppEigen/inst/include/RcppEigenWrap.h
===================================================================
--- pkg/RcppEigen/inst/include/RcppEigenWrap.h 2011-07-13 10:13:43 UTC (rev 3135)
+++ pkg/RcppEigen/inst/include/RcppEigenWrap.h 2011-07-13 10:24:32 UTC (rev 3136)
@@ -57,6 +57,7 @@
// so the first thing we need to do is to find out so that we don't evaluate if we don't need to
template <typename T>
inline SEXP eigen_wrap( const T& obj ){
+ Rprintf( "eigen wrap\n" ) ;
return eigen_wrap_is_plain( obj,
typename is_plain<T>::type()
) ;
@@ -72,16 +73,17 @@
} /* namespace RcppEigen */
- /* wrap */
- template <typename Derived>
- SEXP wrap(const Eigen::EigenBase<Derived>& object) {
-//FIXME: Check IsRowMajor and transpose if needed
- ::Rcpp::RObject x = ::Rcpp::wrap(object.data(), object.data() + object.size());
- if (object.ColsAtCompileTime == 1) return x; // represented as a vector
- x.attr("dim") = ::Rcpp::Dimension(object.rows(), object.cols());
- }
-
- // template <typename T>
+ // /* wrap */
+ // [romain] : no longer necessary
+ // template <typename Derived>
+ // SEXP wrap(const Eigen::EigenBase<Derived>& object) {
+ // //FIXME: Check IsRowMajor and transpose if needed
+ // ::Rcpp::RObject x = ::Rcpp::wrap(object.data(), object.data() + object.size());
+ // if (object.ColsAtCompileTime == 1) return x; // represented as a vector
+ // x.attr("dim") = ::Rcpp::Dimension(object.rows(), object.cols());
+ // }
+ //
+ // template <typename T>
// SEXP wrap(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& data) {
// return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
// }
@@ -95,43 +97,44 @@
// SEXP wrap( const Eigen::Matrix<T, 1, Eigen::Dynamic>& data ){
// return RcppEigen::Eigen_wrap(data, Dimension(1, data.size()));
// }
-
- template <typename T>
- SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic>& data) {
- return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
- }
-
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic>& data) {
+ // return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
+ // }
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, 1>& object ){
+ // return ::Rcpp::wrap(object.data(), object.data() + object.size());
+ // }
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> >& data) {
+ // return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
+ // }
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> >& object ){
+ // return ::Rcpp::wrap(object.data(), object.data() + object.size());
+ // }
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> >& data ){
+ // return RcppEigen::Eigen_wrap(data, Dimension(1, data.size()));
+ // }
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> >& data) {
+ // return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
+ // }
+ //
+ // template <typename T>
+ // SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> >& object ){
+ // return ::Rcpp::wrap(object.data(), object.data() + object.size());
+ // }
+
+ // we can probably deal with sparse stuff more generically
template <typename T>
- SEXP wrap(const Eigen::Array<T, Eigen::Dynamic, 1>& object ){
- return ::Rcpp::wrap(object.data(), object.data() + object.size());
- }
-
- template <typename T>
- SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> >& data) {
- return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
- }
-
- template <typename T>
- SEXP wrap(const Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> >& object ){
- return ::Rcpp::wrap(object.data(), object.data() + object.size());
- }
-
- template <typename T>
- SEXP wrap(const Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> >& data ){
- return RcppEigen::Eigen_wrap(data, Dimension(1, data.size()));
- }
-
- template <typename T>
- SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> >& data) {
- return RcppEigen::Eigen_wrap(data, Dimension(data.rows(), data.cols()));
- }
-
- template <typename T>
- SEXP wrap(const Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> >& object ){
- return ::Rcpp::wrap(object.data(), object.data() + object.size());
- }
-
- template <typename T>
SEXP wrap(const Eigen::Map<Eigen::SparseMatrix<T> >& object ) {
int nnz = object.nonZeros(), p = object.outerSize();
Dimension dim(object.innerSize(), p);
More information about the Rcpp-commits
mailing list