#pragma once #include "board.hpp" #include "pedestrian.hpp" #include // $\tau_{\alpha}$ const double tau_alpha = 0.5; // $V^0_{\alpha \beta}$ const double V0_AB = 2.1; // $\sigma$ const double SIGMA = 0.3; // // $\frac{V^0_{\alpha\beta}}{\sigma}$ // const double V0_AB_div_SIGMA = V0_AB / SIGMA; // $U^0_{\alpha B}$ const double U0_AB = 10.0; // $R$ const double R = 0.2; // // $\frac{U^0_{\alpha B}}{R}$ // const double U0_AB_div_R = U0_AB / R; // $c$ const double c = 0.5; // $\varphi$ const double phi = 45.0 / 180.0 * M_PI; // $cos(\varphi)$ const double cos_phi = cos(phi); // $$ const double v0_mean = 1.34; // $\sqrt{\theta}$ const double v0_std_dev = 0.26; // $\varDelta_{t}$ const double delta_t = 2; // $dt$ const double dt = 0.2; const double cost_add = 1; const double cost_mult = 1; const double cost_div = 1; // https://acl.inf.ethz.ch/teaching/fastcode/knowledgebase/#:~:text=How%20do%20exp(x)%2C%20sin(x)%2C%20etc.%20count%20in%20the%20flopcount%20of%20an%20algorithm%3F const double cost_exp = 30; // -O3 maps each sqrt() call to an instruction const double cost_sqrt = 1; double w(Vector2d e, Vector2d f); double g(double v_max_alpha, double w_alpha_norm); void add_acceleration_term(Pedestrian *p); void add_repulsive_effects_from_pedestrians(Pedestrian *P, Pedestrian *p, int N); void add_repulsive_effects_from_borders(Board &B, Pedestrian *p);