virtual std::unique_ptr< PostProcessor > make_processor(const std::shared_ptr< objective::Objective > &objective) const =0
virtual ~PostProcessFactory()=default
virtual ~PostProcessor()=default
virtual void process(label_id_t label_id, Eigen::Ref< DenseRealVector > weight_vector, solvers::MinimizationResult &result)=0
Apply post-processing for the weight_vector corresponding to the label label_id.
FactoryPtr create_combined(std::vector< FactoryPtr > processor)
std::shared_ptr< PostProcessFactory > FactoryPtr
FactoryPtr create_reordering(Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic, int > ordering)
FactoryPtr create_identity()
FactoryPtr create_sparsify(real_t tolerance)
FactoryPtr create_culling(real_t eps)