15 #if EIGEN_VERSION_AT_LEAST(3,1,0)
16 #include <unsupported/Eigen/MatrixFunctions>
17 #endif // EIGEN_VERSION_AT_LEAST(3,1,0)
27 using namespace Eigen;
32 CDenseMatrixExactLog::CDenseMatrixExactLog()
51 #if EIGEN_VERSION_AT_LEAST(3,1,0)
59 REQUIRE(op,
"Operator not an instance of DenseMatrixOperator!\n");
65 Map<MatrixXd> log_mat(log_m.matrix, log_m.num_rows, log_m.num_cols);
81 #endif // EIGEN_VERSION_AT_LEAST(3,1,0)
105 #endif // HAVE_EIGEN3
SGMatrix< T > get_matrix_operator() const
CIndependentComputationEngine * m_computation_engine
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.
Class that represents the job of applying the log of a CDenseMatrixOperator on a real vector...
virtual ~CDenseMatrixExactLog()
virtual void precompute()
Template class that aggregates scalar job results in each submit_result call, finalize then transform...
Abstract base class that provides an interface for computing an aggeregation of the job results of in...
virtual const char * get_name() const
all of classes and functions are contained in the shogun namespace
CLinearOperator< float64_t > * m_linear_operator
Abstract template base class that represents a linear operator, e.g. a matrix.
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.
virtual void submit_job(CIndependentJob *job)=0
virtual CJobResultAggregator * submit_jobs(SGVector< float64_t > sample)