/usr/include/ossim/base/ossimGDoptimizer.h is in libossim-dev 2.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | /**
* @author Dylan Thomas Cannisi
* @date 07/24/2017
*
* @brief Simple Gradient Descent optimizer for ossim.
*
* See top level LICENSE.txt file.
*/
#ifndef OSSIM_GDOPTIMIZER_H
#define OSSIM_GDOPTIMIZER_H
#include <ossim/base/ossimConstants.h>
#include <ossim/base/ossimTerm.h>
#include <vector>
class OSSIMDLLEXPORT ossimGDoptimizer{
public:
/**
* @brief Public Copy constructor
*/
ossimGDoptimizer();
/**
* @brief Public Copy constructor
*
* @param[in] src The object to be copied (copies pointer not a copy of function)
*/
ossimGDoptimizer(const ossimGDoptimizer& src);
/**
* @brief Destroys the object !DOES NOT DELETE FUNCTION!
*/
~ossimGDoptimizer();
/**
* @brief Public Constructor with a preset function
*
* @param function The function to be optimized
*/
ossimGDoptimizer(ossimTerm* function);
/**
* @brief Sets the function to be optimized
*
* @param function The function to be optimized
*
* @return whether or not the optimizer already contained a function
*/
bool setFunction(ossimTerm* function);
/**
* @brief Optimizes the function
*
* @param[in] startPoint The start point at which the algorithm starts its descent
* @param[in] gamma Determins the step size as a function of the gradient
* @param[in] precision The stopping point at which the algorithm will no longer descend
* @param[in] maxEpoch The stopping point to limit infinite loops.
*
* @return the optimial minima
*/
std::vector<ossim_float64> optimize(std::vector<ossim_float64> startPoint, ossim_float64 gamma = 0.001, ossim_float64 precision = 0.0001, ossim_uint32 maxEpoch = 10000) const;
private:
// Stores the multivariant function to be optimized.
ossimTerm* m_func;
};
#endif // OSSIM_GDOPTIMIZER_H
|