Skylark (Sketching Library)  0.1
/var/lib/jenkins/jobs/Skylark/workspace/base/query.hpp
Go to the documentation of this file.
00001 #ifndef SKYLARK_QUERY_HPP
00002 #define SKYLARK_QUERY_HPP
00003 
00004 // Defines a generic basic queries (Height, Width, etc.) on matrices
00005 
00006 namespace skylark { namespace base {
00007 
00008 template<typename T>
00009 int Height(const sparse_matrix_t<T>& A) {
00010     return A.height();
00011 }
00012 
00013 template<typename T>
00014 int Width(const sparse_matrix_t<T>& A) {
00015     return A.width();
00016 }
00017 
00018 #if SKYLARK_HAVE_ELEMENTAL
00019 
00020 template<typename T>
00021 int Height(const elem::Matrix<T>& A) {
00022     return A.Height();
00023 }
00024 
00025 template<typename T>
00026 int Width(const elem::Matrix<T>& A) {
00027     return A.Width();
00028 }
00029 
00030 template<typename T, elem::Distribution U, elem::Distribution V>
00031 int Height(const elem::DistMatrix<T, U, V>& A) {
00032     return A.Height();
00033 }
00034 
00035 template<typename T, elem::Distribution U, elem::Distribution V>
00036 int Width(const elem::DistMatrix<T, U, V>& A) {
00037     return A.Width();
00038 }
00039 
00040 #endif // SKYLARK_HAVE_ELEMENTAL
00041 
00042 #if 0
00043 #if SKYLARK_HAVE_COMBBLAS
00044 
00045 template<typename IT, typename VT>
00046 IT Height(const SpParMat<IT, VT, SpDCCols<IT, VT> >& A) {
00047     return A.getnrow();
00048 }
00049 
00050 template<typename IT, typename VT>
00051 IT Width(const SpParMat<IT, VT, SpDCCols<IT, VT> >& A) {
00052     return A.getncol();
00053 }
00054 
00055 template<typename IT, typename VT>
00056 IT Height(const FullyDistMultiVec<IT, VT>& A) {
00057     return A.dim;
00058 }
00059 
00060 template<typename IT, typename VT>
00061 IT Width(const FullyDistMultiVec<IT, VT>& A) {
00062     return A.size;
00063 }
00064 
00065 #endif // SKYLARK_HAVE_COMBBLAS
00066 
00067 #endif
00068 
00069 } } // namespace skylark::base
00070 
00071 #endif // SKYLARK_QUERY_HPP