10 #ifndef PROBING_SAMPLER_H_
11 #define PROBING_SAMPLER_H_
28 DYNAMIC_LARGEST_FIRST,
29 DISTANCE_TWO_LARGEST_FIRST,
31 DISTANCE_TWO_SMALLEST_LAST,
33 DISTANCE_TWO_INCIDENCE_DEGREE,
42 ACYCLIC_FOR_INDIRECT_RECOVERY,
48 template<
class T>
class SGVector;
49 template<
class T>
class SGString;
50 template<
class T>
class CSparseMatrixOperator;
56 class CProbingSampler :
public CTraceSampler
71 CProbingSampler(CSparseMatrixOperator<float64_t>* matrix_operator,
72 int64_t power=1, EOrderingVariant ordering=NATURAL,
73 EColoringVariant coloring=DISTANCE_TWO);
76 virtual ~CProbingSampler();
79 SGVector<int32_t> get_coloring_vector()
const;
87 virtual SGVector<float64_t> sample(
index_t idx)
const;
90 virtual void precompute();
93 virtual const char* get_name()
const
95 return "ProbingSampler";
100 CSparseMatrixOperator<float64_t>* m_matrix_operator;
106 SGVector<int32_t> m_coloring_vector;
109 SGString<char> m_ordering;
112 SGString<char> m_coloring;
121 #endif // HAVE_EIGEN3
122 #endif // HAVE_COLPACK
123 #endif // PROBING_SAMPLER_H_