92 std::vector<std::vector<double>>
bisection(
const std::vector<double>& position,
const double minimum,
93 const double range,
const double precision);
94 std::vector<std::vector<double>>
calc_uncertainty(
const std::vector<double>& position,
const double minimum);
101 double CalcChi2(const
double* x) final;
109 std::transform(velocity.begin(), velocity.end(), velocity.begin(),
110 std::bind(std::multiplies<double>(), mul, std::placeholders::_1));
114 std::vector<double>
vector_add(
const std::vector<double>& v1,
const std::vector<double>& v2){
115 std::vector<double> v3;
116 transform(v1.begin(), v1.end(), v2.begin(), back_inserter(v3), std::plus<double>());
119 std::vector<double>
vector_subtract(
const std::vector<double>& v1,
const std::vector<double>& v2){
120 std::vector<double> v3 ;
121 transform(v1.begin(), v1.end(), v2.begin(), back_inserter(v3), std::minus<double>());
125 const std::vector<double>& vec2,
126 const std::vector<double>& vec3) {
127 for (
size_t i = 0; i < vec1.size(); ++i) {
128 vec1[i] += vec2[i] + vec3[i];
133 const std::vector<double>& vec3,
const std::vector<double>& vec4){
134 for (
size_t i = 0; i < vec1.size(); ++i) {
135 vec1[i] += vec2[i] + vec3[i] + vec4[i];
152 std::vector<std::unique_ptr<particle>>
system;
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 ...
virtual ~PSO()
Destructor.
std::vector< std::unique_ptr< particle > > system
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< std::vector< double > > paramlist
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
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)
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
void RunMCMC() final
Actual implementation of PSO Fit algorithm.
double CalcChi2(const double *x) final
Chi2 calculation over all included samples and syst objects.
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)