SHOGUN  4.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
LogDetEstimator.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Written (W) 2013 Soumyajit De
8  */
9 
10 #ifndef LOG_DET_ESTIMATOR_H_
11 #define LOG_DET_ESTIMATOR_H_
12 
13 #include <shogun/lib/config.h>
14 #include <shogun/base/SGObject.h>
15 #include <shogun/base/Parameter.h>
16 
17 namespace shogun
18 {
19 class CTraceSampler;
20 template<class T> class COperatorFunction;
22 template<class T> class SGVector;
23 template<class T> class SGMatrix;
24 
33 {
34 public:
37 
38 #if defined HAVE_EIGEN3 && HAVE_LAPACK
39 
55 #endif // HAVE_LAPACK && HAVE_EIGEN3
56 
64  CLogDetEstimator(CTraceSampler* trace_sampler,
65  COperatorFunction<float64_t>* operator_log,
66  CIndependentComputationEngine* computation_engine);
67 
69  virtual ~CLogDetEstimator();
70 
78  SGVector<float64_t> sample(index_t num_estimates);
79 
88 
90  virtual const char* get_name() const
91  {
92  return "LogDetEstimator";
93  }
94 
96  CTraceSampler* get_trace_sampler(void) const;
97 
100 
103 
104 private:
106  CTraceSampler* m_trace_sampler;
107 
109  COperatorFunction<float64_t>* m_operator_log;
110 
112  CIndependentComputationEngine* m_computation_engine;
113 
115  void init();
116 };
117 
118 }
119 
120 #endif // LOG_DET_ESTIMATOR_H_
CTraceSampler * get_trace_sampler(void) const
Abstract template base class for computing for a linear operator C and a vector s. submit_jobs method creates a bunch of jobs needed to solve for this particular and attaches one unique job aggregator to each of them, then submits them all to the computation engine.
SGVector< float64_t > sample(index_t num_estimates)
int32_t index_t
Definition: common.h:62
SGMatrix< float64_t > sample_without_averaging(index_t num_estimates)
Class to create unbiased estimators of . For each estimate, it samples trace vectors (one by one) and...
shogun matrix
Definition: Parameter.h:26
virtual const char * get_name() const
Class SGObject is the base class of all shogun objects.
Definition: SGObject.h:112
shogun vector
Definition: Parameter.h:28
CIndependentComputationEngine * get_computation_engine(void) const
COperatorFunction< float64_t > * get_operator_function(void) const
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:18
Abstract base class for solving multiple independent instances of CIndependentJob. It has one method, submit_job, which may add the job to an internal queue and might block if there is yet not space in the queue. After jobs are submitted, it might not yet be ready. wait_for_all waits until all jobs are completed, which must be called to guarantee that all jobs are finished.
Abstract template base class that provides an interface for sampling the trace of a linear operator u...
Definition: TraceSampler.h:23

SHOGUN Machine Learning Toolbox - Documentation