diff --git a/src/motions/bimodalangle.cpp b/src/motions/bimodalangle.cpp index f3ea567..0ecbcae 100644 --- a/src/motions/bimodalangle.cpp +++ b/src/motions/bimodalangle.cpp @@ -37,7 +37,7 @@ namespace motions { auto parameter = BaseMotion::getParameters(); parameter["angle1"] = m_angle1 * 180 / M_PI; parameter["angle2"] = m_angle2 * 180 / M_PI; - parameter["probality1"] = m_prob; + parameter["probability1"] = m_prob; return parameter; } diff --git a/src/motions/sixsitejump.h b/src/motions/sixsitejump.h index 314de74..d900b62 100644 --- a/src/motions/sixsitejump.h +++ b/src/motions/sixsitejump.h @@ -20,7 +20,7 @@ namespace motions { [[nodiscard]] std::string toString() const override; private: - double m_chi{0.95531661812450927816385710251575775424341469501000549095969812932191204590}; // 54.74 deg + double m_chi{std::acos(-1.0 / 3.0)}; // 54.74 deg std::array m_corners{}; int m_corner_idx{0}; diff --git a/src/sims.cpp b/src/sims.cpp index 1fb3b86..97bd071 100644 --- a/src/sims.cpp +++ b/src/sims.cpp @@ -9,12 +9,12 @@ void run_simulation( Experiment& experiment, - std::unordered_map& parameter, - std::unordered_map& optional, + const std::unordered_map& parameter, + const std::unordered_map& optional, Dynamics& dynamics, std::mt19937_64& rng ) { - const int num_walker = static_cast(parameter["num_walker"]); + const int num_walker = static_cast(parameter.at("num_walker")); dynamics.setParameters(parameter); experiment.setup(parameter, optional); @@ -107,7 +107,7 @@ Trajectory make_trajectory( } -std::chrono::system_clock::time_point printStart(std::unordered_map &optional) { +std::chrono::system_clock::time_point printStart(const std::unordered_map &optional) { const auto start = std::chrono::system_clock::now(); const time_t start_time = std::chrono::system_clock::to_time_t(start); diff --git a/src/sims.h b/src/sims.h index eb96e7e..094ce07 100644 --- a/src/sims.h +++ b/src/sims.h @@ -11,14 +11,14 @@ void run_simulation( Experiment& experiment, - std::unordered_map& parameter, - std::unordered_map& optional, + const std::unordered_map& parameter, + const std::unordered_map& optional, Dynamics& dynamics, std::mt19937_64& rng); Trajectory make_trajectory(Dynamics& dynamics, double t_max, std::mt19937_64& rng); -std::chrono::system_clock::time_point printStart(std::unordered_map &optional); +std::chrono::system_clock::time_point printStart(const std::unordered_map &optional); void printEnd(std::chrono::system_clock::time_point start); #endif //RWSIM_SIMS_H diff --git a/src/utils/functions.cpp b/src/utils/functions.cpp index beed0f8..2ff18e5 100644 --- a/src/utils/functions.cpp +++ b/src/utils/functions.cpp @@ -4,7 +4,8 @@ int nearest_index(const std::vector &x_ref, const double x, int start=0) { - while (x > x_ref[start+1]) { + const int last = static_cast(x_ref.size()) - 2; + while (start < last && x > x_ref[start+1]) { start++; } return start; diff --git a/src/utils/ranges.cpp b/src/utils/ranges.cpp index 6d16e24..732c4f0 100644 --- a/src/utils/ranges.cpp +++ b/src/utils/ranges.cpp @@ -14,6 +14,7 @@ std::vector arange(const int size, const double spacing=1.) { std::vector linspace(const double start, const double stop, const int steps) { std::vector range; + range.reserve(steps); if (steps == 0) { return range; @@ -34,6 +35,7 @@ std::vector linspace(const double start, const double stop, const int st std::vector logspace(const double start, const double stop, const int steps) { std::vector range; + range.reserve(steps); if (steps == 0) { return range; @@ -49,7 +51,7 @@ std::vector logspace(const double start, const double stop, const int st const double stepsize = (logstop-logstart) / (steps-1); for (int i=0; i