/* ----------------------------------------------------------------------- *//** * * @file EigenIntegration_proto.cpp * *//* ----------------------------------------------------------------------- */ #ifndef MADLIB_POSTGRES_EIGEN_INTEGRATION_PROTO_HPP #define MADLIB_POSTGRES_EIGEN_INTEGRATION_PROTO_HPP namespace madlib { namespace dbal { namespace eigen_integration { // Specializations for DBMS-specific types typedef HandleMap > NativeColumnVector; typedef HandleMap > MutableNativeColumnVector; typedef HandleMap > NativeMatrix; typedef HandleMap > MutableNativeMatrix; typedef HandleMap > NativeIntegerVector; typedef HandleMap > MutableNativeIntegerVector; typedef HandleMap > MappedColumnVector; typedef HandleMap > MutableMappedColumnVector; typedef HandleMap > MappedMatrix; typedef HandleMap > MutableMappedMatrix; typedef HandleMap > MappedIntegerVector; typedef HandleMap > MutableMappedIntegerVector; typedef HandleMap > > MappedVectorXcd; typedef HandleMap > > MutableMappedVectorXcd; } // namespace eigen_integration // DynamicStructType template struct DynamicStructType { typedef typename DynamicStructType::type type; }; } // namespace dbal namespace dbconnector { namespace postgres { Eigen::SparseVector LegacySparseVectorToSparseColumnVector( SvecType* inVec); SvecType* SparseColumnVectorToLegacySparseVector( const Eigen::SparseVector &inVec); template ArrayType* VectorToNativeArray(const Eigen::MatrixBase& inVector); template ArrayType* MatrixToNativeArray(const Eigen::MatrixBase& inMatrix); template MatrixType NativeArrayToMappedMatrix(Datum inDatum, bool inNeedMutableClone); template VectorType NativeArrayToMappedVector(Datum inDatum, bool inNeedMutableClone); } // namespace postgres } // namespace dbconnector } // namespace madlib #endif // defined(MADLIB_POSTGRES_EIGEN_INTEGRATION_PROTO_HPP)