Program Listing for File optimizationResultWriter.h¶
↰ Return to documentation for file (include/parpeoptimization/optimizationResultWriter.h
)
#ifndef OPTIMIZATIONRESULTWRITER_H
#define OPTIMIZATIONRESULTWRITER_H
#include <string>
#include <H5Cpp.h>
#include <gsl/gsl-lite.hpp>
namespace parpe {
class OptimizationResultWriter {
public:
OptimizationResultWriter(const H5::H5File &file,
std::string rootPath);
OptimizationResultWriter(const std::string &filename,
bool overwrite,
std::string rootPath);
OptimizationResultWriter& operator=(const OptimizationResultWriter& other) = delete;
OptimizationResultWriter(OptimizationResultWriter const& other);
virtual ~OptimizationResultWriter();
virtual void logObjectiveFunctionEvaluation(
gsl::span<const double> parameters,
double objectiveFunctionValue,
gsl::span<const double> objectiveFunctionGradient,
int numIterations,
int numFunctionCalls,
double timeElapsedInSeconds);
virtual void logOptimizerIteration(int numIterations,
gsl::span<const double> parameters,
double objectiveFunctionValue,
gsl::span<const double> gradient,
double wallSeconds,
double cpuSeconds);
void setLoggingEachIteration(bool logGradient);
void setLoggingEachFunctionEvaluation(bool logGradient,
bool logParameters);
virtual void starting(gsl::span<const double> initialParameters);
virtual void saveOptimizerResults(double finalNegLogLikelihood,
gsl::span<const double> optimalParameters,
double wallSec,
double cpuSec,
int exitStatus) const;
H5::H5File const& getH5File() const;
virtual std::string const& getRootPath() const;
bool logParametersEachFunctionEvaluation = true;
bool logGradientEachFunctionEvaluation = true;
bool logGradientEachIteration = true;
void setRootPath(std::string const& path);
protected:
virtual void flushResultWriter() const;
private:
virtual std::string getIterationPath(int iterationIdx) const;
H5::H5File file = 0;
std::string rootPath = "/";
};
} // namespace parpe
#endif // OPTIMIZATIONRESULTWRITER_H