93 std::vector<std::vector<double>>
bisection(
const std::vector<double>& position,
const double minimum,
94 const double range,
const double precision);
95 std::vector<std::vector<double>>
calc_uncertainty(
const std::vector<double>& position,
const double minimum);
102 double CalcChi2(
const double* x)
override;
110 std::transform(velocity.begin(), velocity.end(), velocity.begin(),
111 std::bind(std::multiplies<double>(), mul, std::placeholders::_1));
115 std::vector<double>
vector_add(
const std::vector<double>& v1,
const std::vector<double>& v2){
116 std::vector<double> v3;
117 transform(v1.begin(), v1.end(), v2.begin(), back_inserter(v3), std::plus<double>());
120 std::vector<double>
vector_subtract(
const std::vector<double>& v1,
const std::vector<double>& v2){
121 std::vector<double> v3 ;
122 transform(v1.begin(), v1.end(), v2.begin(), back_inserter(v3), std::minus<double>());
126 const std::vector<double>& vec2,
127 const std::vector<double>& vec3) {
128 for (
size_t i = 0; i < vec1.size(); ++i) {
129 vec1[i] += vec2[i] + vec3[i];
134 const std::vector<double>& vec3,
const std::vector<double>& vec4){
135 for (
size_t i = 0; i < vec1.size(); ++i) {
136 vec1[i] += vec2[i] + vec3[i] + vec4[i];
Manager * fitMan
The manager for configuration handling.
Implementation of base Likelihood Fit class, it is mostly responsible for likelihood calculation whil...
The manager class is responsible for managing configurations and settings.
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 > vector_subtract(const std::vector< double > &v1, const std::vector< double > &v2)
std::vector< std::vector< double > > bisection(const std::vector< double > &position, const double minimum, const double range, const double precision)
std::vector< double > vector_multiply(std::vector< double > velocity, const double mul)
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)
particle * get_best_particle()
std::vector< bool > fixed
double CalcChi2(const double *x) override
Chi2 calculation over all included samples and syst objects.
std::vector< std::vector< double > > calc_uncertainty(const std::vector< double > &position, const double minimum)
std::vector< double > three_vector_addition(std::vector< double > vec1, const std::vector< double > &vec2, const std::vector< double > &vec3)
void set_best_particle(particle *n)
std::vector< double * > paramlist
std::vector< particle * > system
double vel[kMaxParticles]
PSO(Manager *const fitMan)
constructor
constexpr static const int kMaxParticles
double CalcChi(std::vector< double > x)
std::vector< double > vector_add(const std::vector< double > &v1, const std::vector< double > &v2)
std::vector< std::vector< double > > uncertainties
std::vector< double > ranges_min
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)
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)
std::vector< double > get_velocity()
virtual ~particle()
Destructor.
double get_personal_best_value()
particle(const std::vector< double > &pos, const std::vector< double > &vel)
Constructor.
std::vector< double > velocity
std::vector< double > personal_best_position
std::vector< double > get_personal_best_position()
std::vector< double > get_position()
void set_position(const std::vector< double > &new_position)
double personal_best_value
void set_velocity(const std::vector< double > &new_velocity)
void set_value(const double val)