HMLP: High-performance Machine Learning Primitives
hmlp::VirtualMatrix< DATATYPE, Allocator > Class Template Referenceabstract

VirtualMatrix is the abstract base class for matrix-free access and operations. Most of the public functions will be virtual. To inherit VirtualMatrix, you "must" implement the evaluation operator. Otherwise, the code won't compile. More...

#include <VirtualMatrix.hpp>

Inheritance diagram for hmlp::VirtualMatrix< DATATYPE, Allocator >:
hmlp::SPDMatrixMPISupport< DATATYPE >

Public Types

typedef DATATYPE T
 

Public Member Functions

 VirtualMatrix (size_t m, size_t n)
 
virtual void resize (size_t m, size_t n)
 
size_t row ()
 
size_t col ()
 
virtual T operator() (size_t i, size_t j)=0
 
virtual Data< T > operator() (const vector< size_t > &I, const vector< size_t > &J)
 
Data< T > KernelDistances (const vector< size_t > &I, const vector< size_t > &J)
 
Data< T > AngleDistances (const vector< size_t > &I, const vector< size_t > &J)
 
virtual Data< T > UserDistances (const vector< size_t > &I, const vector< size_t > &J)
 
virtual Data< T > GeometryDistances (const vector< size_t > &I, const vector< size_t > &J)
 
Data< T > Distances (DistanceMetric metric, const vector< size_t > &I, const vector< size_t > &J)
 
virtual Data< pair< T, size_t > > NeighborSearch (DistanceMetric metric, size_t kappa, const vector< size_t > &Q, const vector< size_t > &R, pair< T, size_t > init)
 
virtual Data< T > Diagonal (const vector< size_t > &I)
 
virtual pair< T, size_t > ImportantSample (size_t j)
 
virtual pair< T, int > ImportantSample (int j)
 
- Public Member Functions inherited from hmlp::SPDMatrixMPISupport< DATATYPE >
virtual void SendIndices (vector< size_t > ids, int dest, mpi::Comm comm)
 
virtual void RecvIndices (int src, mpi::Comm comm, mpi::Status *status)
 
virtual void BcastIndices (vector< size_t > ids, int root, mpi::Comm comm)
 
virtual void RequestIndices (const vector< vector< size_t >> &ids)
 

Detailed Description

template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
class hmlp::VirtualMatrix< DATATYPE, Allocator >

VirtualMatrix is the abstract base class for matrix-free access and operations. Most of the public functions will be virtual. To inherit VirtualMatrix, you "must" implement the evaluation operator. Otherwise, the code won't compile.

end class SPDMatrixMPISupport

Member Function Documentation

template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
size_t hmlp::VirtualMatrix< DATATYPE, Allocator >::col ( )
inline

ESSENTIAL: return number of rows

template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
virtual pair<T, int> hmlp::VirtualMatrix< DATATYPE, Allocator >::ImportantSample ( int  j)
inlinevirtual

end ImportantSample()

template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
virtual Data<pair<T, size_t> > hmlp::VirtualMatrix< DATATYPE, Allocator >::NeighborSearch ( DistanceMetric  metric,
size_t  kappa,
const vector< size_t > &  Q,
const vector< size_t > &  R,
pair< T, size_t >  init 
)
inlinevirtual

Compute all pairwise distances.

Sanity check: distance must be >= 0.

Loop over each query.

Sort the query according to distances.

Fill-in the neighbor list.

template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
virtual T hmlp::VirtualMatrix< DATATYPE, Allocator >::operator() ( size_t  i,
size_t  j 
)
pure virtual
template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
virtual Data<T> hmlp::VirtualMatrix< DATATYPE, Allocator >::operator() ( const vector< size_t > &  I,
const vector< size_t > &  J 
)
inlinevirtual
template<typename DATATYPE, class Allocator = std::allocator<DATATYPE>>
size_t hmlp::VirtualMatrix< DATATYPE, Allocator >::row ( )
inline

ESSENTIAL: return number of coumns


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