variant_inlining_8_SoA_AVX512_polyexp_fastinvsqrt_sr.cpp

This commit is contained in:
[Quy Anh] «Elliot» Nguyen
2026-05-25 14:01:10 +02:00
committed by Linus Baumberger
parent e7c63ea40a
commit 7448281515
5 changed files with 938 additions and 11 deletions
+9 -9
View File
@@ -37,36 +37,36 @@ StepResult IntegrateOneStep(const Pedestrian &p, Vector2d total_force_dt) {
} // namespace
// =============================================================================
// Tests for w(e, f)
// Tests for w_ped(e, f)
// =============================================================================
TEST(WeightFn, ForceAlignedWithDirectionIsInView) { EXPECT_DOUBLE_EQ(w(Vector2d(1.0, 0.0), Vector2d(1.0, 0.0)), dt_neg); }
TEST(WeightFn, ForceAlignedWithDirectionIsInView) { EXPECT_DOUBLE_EQ(w_ped(Vector2d(1.0, 0.0), Vector2d(1.0, 0.0)), dt_neg); }
TEST(WeightFn, ForceOppositeToDirectionIsOutOfView) { EXPECT_DOUBLE_EQ(w(Vector2d(1.0, 0.0), Vector2d(-1.0, 0.0)), c_neg_times_dt); }
TEST(WeightFn, ForceOppositeToDirectionIsOutOfView) { EXPECT_DOUBLE_EQ(w_ped(Vector2d(1.0, 0.0), Vector2d(-1.0, 0.0)), c_neg_times_dt); }
TEST(WeightFn, PerpendicularForceIsInView) { EXPECT_DOUBLE_EQ(w(Vector2d(1.0, 1.0), Vector2d(-1.0, 1.0)), dt_neg); }
TEST(WeightFn, PerpendicularForceIsInView) { EXPECT_DOUBLE_EQ(w_ped(Vector2d(1.0, 1.0), Vector2d(-1.0, 1.0)), dt_neg); }
TEST(WeightFn, ZeroForceIsInView) { EXPECT_DOUBLE_EQ(w(Vector2d(1.0, 0.0), Vector2d(0.0, 0.0)), dt_neg); }
TEST(WeightFn, ZeroForceIsInView) { EXPECT_DOUBLE_EQ(w_ped(Vector2d(1.0, 0.0), Vector2d(0.0, 0.0)), dt_neg); }
TEST(WeightFn, AngleSlightlyInsidePhiIsInView) {
Vector2d e(1.0, 0.0);
const double angle = 99.0 / 180.0 * M_PI;
Vector2d f(std::cos(angle), std::sin(angle));
EXPECT_DOUBLE_EQ(w(e, f), dt_neg);
EXPECT_DOUBLE_EQ(w_ped(e, f), dt_neg);
}
TEST(WeightFn, AngleSlightlyOutsidePhiIsOutOfView) {
Vector2d e(1.0, 0.0);
const double angle = 101.0 / 180.0 * M_PI;
Vector2d f(std::cos(angle), std::sin(angle));
EXPECT_DOUBLE_EQ(w(e, f), c_neg_times_dt);
EXPECT_DOUBLE_EQ(w_ped(e, f), c_neg_times_dt);
}
TEST(WeightFn, ScalingForceMagnitudeDoesNotChangeView) {
Vector2d e(1.0, 0.0);
Vector2d f(0.7, 0.7);
EXPECT_DOUBLE_EQ(w(e, f), w(e, f * 1000.0));
EXPECT_DOUBLE_EQ(w(e, f), w(e, f * 0.001));
EXPECT_DOUBLE_EQ(w_ped(e, f), w_ped(e, f * 1000.0));
EXPECT_DOUBLE_EQ(w_ped(e, f), w_ped(e, f * 0.001));
}
// =============================================================================