Skylark (Sketching Library)  0.1
/var/lib/jenkins/jobs/Skylark/workspace/sketch/dense_transform.hpp
Go to the documentation of this file.
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