91 std::vector<std::vector<double>>
bisection(
const std::vector<double>& position,
const double minimum,
92 const double range,
const double precision);
93 std::vector<std::vector<double>>
calc_uncertainty(
const std::vector<double>& position,
const double minimum);
108 std::transform(velocity.begin(), velocity.end(), velocity.begin(),
109 std::bind(std::multiplies<double>(), mul, std::placeholders::_1));
113 std::vector<double>
vector_add(
const std::vector<double>& v1,
const std::vector<double>& v2){
114 std::vector<double> v3;
115 transform(v1.begin(), v1.end(), v2.begin(), back_inserter(v3), std::plus<double>());
118 std::vector<double>
vector_subtract(
const std::vector<double>& v1,
const std::vector<double>& v2){
119 std::vector<double> v3 ;
120 transform(v1.begin(), v1.end(), v2.begin(), back_inserter(v3), std::minus<double>());
124 const std::vector<double>& vec2,
125 const std::vector<double>& vec3) {
126 for (
size_t i = 0; i < vec1.size(); ++i) {
127 vec1[i] += vec2[i] + vec3[i];
132 const std::vector<double>& vec3,
const std::vector<double>& vec4){
133 for (
size_t i = 0; i < vec1.size(); ++i) {
134 vec1[i] += vec2[i] + vec3[i] + vec4[i];
144 inline std::string
GetName()
const {
return "PSO";};
manager * fitMan
The manager.
Implementation of base Likelihood Fit class, it is mostly responsible for likelihood calculation whil...
Class PSO, consist of a vector of object Class Particle and global best Takes in the size (number of ...
void RunMCMC() override
Actual implementation of PSO Fit algorithm.
virtual ~PSO()
Destructor.
std::vector< double > ranges_max
std::vector< double > three_vector_addition(std::vector< double > vec1, const std::vector< double > &vec2, const std::vector< double > &vec3)
double CalcChi2(const double *x)
Chi2 calculation over all included samples and syst objects.
std::vector< std::vector< double > > bisection(const std::vector< double > &position, const double minimum, const double range, const double precision)
std::vector< double > four_vector_addition(std::vector< double > vec1, const std::vector< double > &vec2, const std::vector< double > &vec3, const std::vector< double > &vec4)
std::vector< double > vector_add(const std::vector< double > &v1, const std::vector< double > &v2)
std::vector< double > vector_subtract(const std::vector< double > &v1, const std::vector< double > &v2)
std::vector< double > vector_multiply(std::vector< double > velocity, const double mul)
std::vector< bool > fixed
std::string GetName() const
Get name of class.
particle * get_best_particle()
std::vector< std::vector< double > > calc_uncertainty(const std::vector< double > &position, const double minimum)
void set_best_particle(particle *n)
std::vector< double * > paramlist
std::vector< particle * > system
double vel[kMaxParticles]
double CalcChi(std::vector< double > x)
std::vector< std::vector< double > > uncertainties
std::vector< double > ranges_min
static constexpr const int kMaxParticles
double rastriginFunc(const double *x)
Evaluates the Rastrigin function for a given parameter values.
std::vector< double > prior
void uncertainty_check(const std::vector< double > &previous_pos)
The manager class is responsible for managing configurations and settings.
Class particle - stores the position, velocity and personal best With functions which move particle a...
void set_personal_best_value(const double new_val)
std::vector< double > position
void set_personal_best_position(const std::vector< double > &new_pos)
virtual ~particle()
Destructor.
std::vector< double > get_personal_best_position()
double get_personal_best_value()
particle(const std::vector< double > &pos, const std::vector< double > &vel)
Constructor.
std::vector< double > velocity
std::vector< double > get_position()
std::vector< double > personal_best_position
void set_position(const std::vector< double > &new_position)
std::vector< double > get_velocity()
double personal_best_value
void set_velocity(const std::vector< double > &new_velocity)
void set_value(const double val)