random_positive_definite.h
Go to the documentation of this file.
1 
40 #ifndef HIGH_PRECISION_PSO_FUNCTION_RANDOM_POSITIVE_DEFINITE_H_
41 #define HIGH_PRECISION_PSO_FUNCTION_RANDOM_POSITIVE_DEFINITE_H_
42 
43 #include "function/function.h"
44 
45 namespace highprecisionpso {
46 
51 public:
57  RandomPositiveDefiniteSecondDerivative(std::vector<std::string> rng_description);
76  mpf_t* Eval(const std::vector<mpf_t*> & pos);
77  std::string GetName();
92  mpf_t* DistanceTo1DLocalOptimum(const std::vector<mpf_t*> & pos, int d);
93 
94 private:
95  void InitMatrixCached(const std::vector<mpf_t*> & vec);
96  const std::vector<std::string> rng_description_;
97  std::vector<std::vector<mpf_t*> > matrix_cached_;
98  unsigned int matrix_cached_precision_;
99 };
100 
101 } // namespace highprecisionpso
102 
103 #endif /* HIGH_PRECISION_PSO_FUNCTION_RANDOM_POSITIVE_DEFINITE_H_ */
This file contains abstract classes for function generation.
mpf_t * DistanceTo1DLocalOptimum(const std::vector< mpf_t * > &pos, int d)
Calculates for a position and a dimension the next local optimum if only the value of the position in...
This class represents a function with constant random positive (semi) definite derivative.
Definition: random_positive_definite.h:50
RandomPositiveDefiniteSecondDerivative(std::vector< std::string > rng_description)
The constructor, where the description of the random number generator can be specified.
std::string GetName()
Returns a string representation of this object.
mpf_t * Eval(const std::vector< mpf_t * > &pos)
Returns the product transpose(pos) * A * pos, where A is a random matrix.
This class is an abstract class. It supplies the interface for objective functions.
Definition: function.h:74
base namespace for this project.
Definition: absorption.h:45