Skylark (Sketching Library)
0.1
|
00001 #ifndef SKYLARK_DENSE_TRANSFORM_HPP 00002 #define SKYLARK_DENSE_TRANSFORM_HPP 00003 00004 #ifndef SKYLARK_SKETCH_HPP 00005 #error "Include top-level sketch.hpp instead of including individuals headers" 00006 #endif 00007 00008 namespace skylark { namespace sketch { 00009 00010 template < typename InputMatrixType, 00011 typename OutputMatrixType, 00012 template <typename> class ValueDistribution> 00013 class dense_transform_t : 00014 public dense_transform_data_t<ValueDistribution> { 00015 00016 typedef InputMatrixType matrix_type; 00017 typedef OutputMatrixType output_matrix_type; 00018 typedef dense_transform_data_t<ValueDistribution> data_type; 00019 00020 dense_transform_t(int N, int S, base::context_t& context) 00021 : data_type(N, S, context) { 00022 SKYLARK_THROW_EXCEPTION ( 00023 base::sketch_exception() 00024 << base::error_msg( 00025 "This combination has not yet been implemented for DenseTransform")); 00026 } 00027 00028 dense_transform_t(const data_type& other_data) 00029 : data_type(other_data) { 00030 SKYLARK_THROW_EXCEPTION ( 00031 base::sketch_exception() 00032 << base::error_msg( 00033 "This combination has not yet been implemented for DenseTransform")); 00034 } 00035 00036 dense_transform_t(const boost::property_tree::ptree &pt) 00037 : data_type(pt) { 00038 SKYLARK_THROW_EXCEPTION ( 00039 base::sketch_exception() 00040 << base::error_msg( 00041 "This combination has not yet been implemented for DenseTransform")); 00042 } 00043 00044 void apply (const matrix_type& A, 00045 output_matrix_type& sketch_of_A, 00046 columnwise_tag dimension) const { 00047 SKYLARK_THROW_EXCEPTION ( 00048 base::sketch_exception() 00049 << base::error_msg( 00050 "This combination has not yet been implemented for DenseTransform")); 00051 } 00052 00053 void apply (const matrix_type& A, 00054 output_matrix_type& sketch_of_A, 00055 rowwise_tag dimension) const { 00056 SKYLARK_THROW_EXCEPTION ( 00057 base::sketch_exception() 00058 << base::error_msg( 00059 "This combination has not yet been implemented for DenseTransform")); 00060 } 00061 }; 00062 00063 00064 } } 00066 #if SKYLARK_HAVE_ELEMENTAL 00067 #include "dense_transform_Elemental.hpp" 00068 #endif 00069 00070 #endif // SKYLARK_DENSE_TRANSFORM_HPP