HMLP: High-performance Machine Learning Primitives
hmlp::SPDMatrix< T > Class Template Reference

This class does not need to inherit hmlp::Data<T>, but it should support two interfaces for data fetching. More...

#include <SPDMatrix.hpp>

Inheritance diagram for hmlp::SPDMatrix< T >:
hmlp::VirtualMatrix< T > hmlp::SPDMatrixMPISupport< T >

Public Member Functions

 SPDMatrix (size_t m, size_t n)
 
 SPDMatrix (size_t m, size_t n, string filename)
 
void resize (size_t m, size_t n)
 
template<bool USE_LOWRANK = true>
void randspd (T a, T b)
 
void read (size_t m, size_t n, string &filename)
 
operator() (size_t i, size_t j)
 
Data< T > operator() (const vector< size_t > &I, const vector< size_t > &J)
 
T * data () noexcept
 
const T * data () const noexcept
 
- Public Member Functions inherited from hmlp::VirtualMatrix< T >
 VirtualMatrix (size_t m, size_t n)
 
size_t row ()
 
size_t col ()
 
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< T >
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)
 

Additional Inherited Members

- Public Types inherited from hmlp::VirtualMatrix< T >
typedef T T
 

Detailed Description

template<typename T>
class hmlp::SPDMatrix< T >

This class does not need to inherit hmlp::Data<T>, but it should support two interfaces for data fetching.

Member Function Documentation

template<typename T>
T hmlp::SPDMatrix< T >::operator() ( size_t  i,
size_t  j 
)
inlinevirtual

ESSENTIAL: this is an abstract function

Implements hmlp::VirtualMatrix< T >.

template<typename T>
Data<T> hmlp::SPDMatrix< T >::operator() ( const vector< size_t > &  I,
const vector< size_t > &  J 
)
inlinevirtual

ESSENTIAL: return a submatrix

Reimplemented from hmlp::VirtualMatrix< T >.


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