Skylark (Sketching Library)  0.1
Public Types | Public Member Functions
skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType > Struct Template Reference

#include <MMT.hpp>

Inheritance diagram for skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >:
Inheritance graph
[legend]
Collaboration diagram for skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef hash_transform_t
< InputMatrixType,
OutputMatrixType,
boost::random::uniform_int_distribution,
boost::random::cauchy_distribution > 
transform_t
typedef MMT_data_t data_type
typedef data_type::params_t params_t

Public Member Functions

 MMT_t (int N, int S, base::context_t &context)
 MMT_t (int N, int S, const params_t &params, base::context_t &context)
 MMT_t (const boost::property_tree::ptree &pt)
template<typename OtherInputMatrixType , typename OtherOutputMatrixType >
 MMT_t (const MMT_t< OtherInputMatrixType, OtherOutputMatrixType > &other)
 MMT_t (const data_type &other)
void apply (const typename transform_t::matrix_type &A, typename transform_t::output_matrix_type &sketch_of_A, columnwise_tag dimension) const
void apply (const typename transform_t::matrix_type &A, typename transform_t::output_matrix_type &sketch_of_A, rowwise_tag dimension) const
int get_N () const
int get_S () const
const sketch_transform_data_tget_data () const

Detailed Description

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
struct skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >

Meng-Mahoney Transform

Meng-Mahoney Transform is very similar to the Clarkson-Woodruff Transform: it replaces the +1/-1 diagonal with Cauchy random enteries. Thus, it provides a low-distortion of l1-norm subspace embedding.

See Meng and Mahoney's STOC'13 paper.

Definition at line 24 of file MMT.hpp.


Member Typedef Documentation

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
typedef MMT_data_t skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::data_type

Definition at line 35 of file MMT.hpp.

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
typedef data_type::params_t skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::params_t

Definition at line 36 of file MMT.hpp.

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
typedef hash_transform_t< InputMatrixType, OutputMatrixType, boost::random::uniform_int_distribution, boost::random::cauchy_distribution> skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::transform_t

Definition at line 33 of file MMT.hpp.


Constructor & Destructor Documentation

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::MMT_t ( int  N,
int  S,
base::context_t context 
) [inline]

Definition at line 38 of file MMT.hpp.

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::MMT_t ( int  N,
int  S,
const params_t params,
base::context_t context 
) [inline]

Definition at line 43 of file MMT.hpp.

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::MMT_t ( const boost::property_tree::ptree &  pt) [inline]

Definition at line 49 of file MMT.hpp.

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
template<typename OtherInputMatrixType , typename OtherOutputMatrixType >
skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::MMT_t ( const MMT_t< OtherInputMatrixType, OtherOutputMatrixType > &  other) [inline]

Definition at line 56 of file MMT.hpp.

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::MMT_t ( const data_type other) [inline]

Definition at line 61 of file MMT.hpp.


Member Function Documentation

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
void skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::apply ( const typename transform_t::matrix_type A,
typename transform_t::output_matrix_type sketch_of_A,
columnwise_tag  dimension 
) const [inline]

Apply columnwise the sketching transform that is described by the the transform with output sketch_of_A.

Definition at line 70 of file MMT.hpp.

References skylark::sketch::hash_transform_t< InputMatrixType, OutputMatrixType, IdxDistributionType, ValueDistribution >::apply().

Here is the call graph for this function:

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
void skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::apply ( const typename transform_t::matrix_type A,
typename transform_t::output_matrix_type sketch_of_A,
rowwise_tag  dimension 
) const [inline]

Apply rowwise the sketching transform that is described by the the transform with output sketch_of_A.

Definition at line 80 of file MMT.hpp.

References skylark::sketch::hash_transform_t< InputMatrixType, OutputMatrixType, IdxDistributionType, ValueDistribution >::apply().

Here is the call graph for this function:

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
const sketch_transform_data_t* skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::get_data ( ) const [inline, virtual]
template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
int skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::get_N ( ) const [inline, virtual]
template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
int skylark::sketch::MMT_t< InputMatrixType, OutputMatrixType >::get_S ( ) const [inline, virtual]

The documentation for this struct was generated from the following file: