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

#include <WZT.hpp>

Inheritance diagram for skylark::sketch::WZT_t< InputMatrixType, OutputMatrixType >:
Inheritance graph
[legend]
Collaboration diagram for skylark::sketch::WZT_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::exponential_distribution > 
transform_t
typedef WZT_data_t data_type
typedef data_type::params_t params_t

Public Member Functions

 WZT_t (int N, int S, double p, base::context_t &context)
 WZT_t (int N, int S, const params_t &params, base::context_t &context)
 WZT_t (const boost::property_tree::ptree &pt)
template<typename OtherInputMatrixType , typename OtherOutputMatrixType >
 WZT_t (const WZT_t< OtherInputMatrixType, OtherOutputMatrixType > &other)
 WZT_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::WZT_t< InputMatrixType, OutputMatrixType >

Woodruff-Zhang Transform (data)

Woodruff-Zhang Transform is very similar to the Clarkson-Woodruff Transform: it replaces the +1/-1 diagonal with reciprocal exponentia random enteries. It is sutiable for lp regression with 1 <= p <= 2.

Reference: D. Woodruff and Q. Zhang Subspace Embeddings and L_p Regression Using Exponential Random COLT 2013

TODO current implementation is only one sketch index, when for 1 <= p <= 2 you want more than one.

Definition at line 30 of file WZT.hpp.


Member Typedef Documentation

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
typedef WZT_data_t skylark::sketch::WZT_t< InputMatrixType, OutputMatrixType >::data_type

Definition at line 41 of file WZT.hpp.

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

Definition at line 42 of file WZT.hpp.

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

Definition at line 39 of file WZT.hpp.


Constructor & Destructor Documentation

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

Definition at line 44 of file WZT.hpp.

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

Definition at line 49 of file WZT.hpp.

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

Definition at line 55 of file WZT.hpp.

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

Definition at line 62 of file WZT.hpp.

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

Definition at line 67 of file WZT.hpp.


Member Function Documentation

template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
void skylark::sketch::WZT_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 76 of file WZT.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::WZT_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 86 of file WZT.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::WZT_t< InputMatrixType, OutputMatrixType >::get_data ( ) const [inline, virtual]
template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
int skylark::sketch::WZT_t< InputMatrixType, OutputMatrixType >::get_N ( ) const [inline, virtual]
template<typename InputMatrixType, typename OutputMatrixType = InputMatrixType>
int skylark::sketch::WZT_t< InputMatrixType, OutputMatrixType >::get_S ( ) const [inline, virtual]

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