Skylark (Sketching Library)
0.1
|
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