Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: f2cf2c711f7b
Choose a base ref
...
head repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 061538b66205
Choose a head ref
  • 2 commits
  • 17 files changed
  • 1 contributor

Commits on Oct 23, 2021

  1. Copy the full SHA
    99370c6 View commit details
  2. Merge pull request #3165 from mockingbirdnest/revert-3164-Back

    Revert "Add back and front to the classes that have sequence semantics"
    eggrobin authored Oct 23, 2021
    Copy the full SHA
    061538b View commit details
18 changes: 9 additions & 9 deletions astronomy/geodesy_test.cpp
Original file line number Diff line number Diff line change
@@ -108,17 +108,17 @@ TEST_F(GeodesyTest, DISABLED_LAGEOS2) {
StandardProduct3::SatelliteIdentifier const lageos2_id{
StandardProduct3::SatelliteGroup::General, 52};

CHECK_EQ(initial_ilrsa.orbit(lageos2_id).front()->front().first,
initial_ilrsb.orbit(lageos2_id).front()->front().first);
CHECK_EQ(initial_ilrsa.orbit(lageos2_id).front()->begin()->first,
initial_ilrsb.orbit(lageos2_id).front()->begin()->first);

auto const& [initial_time, initial_dof_ilrsa] =
initial_ilrsa.orbit(lageos2_id).front()->front();
*initial_ilrsa.orbit(lageos2_id).front()->begin();

auto const& [_, initial_dof_ilrsb] =
initial_ilrsb.orbit(lageos2_id).front()->front();
*initial_ilrsb.orbit(lageos2_id).front()->begin();

auto const& [final_time, expected_final_dof] =
final_ilrsa.orbit(lageos2_id).front()->front();
*final_ilrsa.orbit(lageos2_id).front()->begin();

ephemeris_->Prolong(final_time);

@@ -152,13 +152,13 @@ TEST_F(GeodesyTest, DISABLED_LAGEOS2) {
return flow_lageos2(secondary_lageos2_trajectory);
});
bundle.Join();
EXPECT_THAT(primary_lageos2_trajectory.back().first, Eq(final_time));
EXPECT_THAT(secondary_lageos2_trajectory.back().first, Eq(final_time));
EXPECT_THAT(primary_lageos2_trajectory.rbegin()->first, Eq(final_time));
EXPECT_THAT(secondary_lageos2_trajectory.rbegin()->first, Eq(final_time));

auto const primary_actual_final_dof = itrs_.ToThisFrameAtTime(final_time)(
primary_lageos2_trajectory.back().second);
primary_lageos2_trajectory.rbegin()->second);
auto const secondary_actual_final_dof = itrs_.ToThisFrameAtTime(final_time)(
secondary_lageos2_trajectory.back().second);
secondary_lageos2_trajectory.rbegin()->second);

// Absolute error in position.
EXPECT_THAT(AbsoluteError(primary_actual_final_dof.position(),
2 changes: 1 addition & 1 deletion astronomy/orbit_ground_track_body.hpp
Original file line number Diff line number Diff line change
@@ -149,7 +149,7 @@ absl::StatusOr<OrbitGroundTrack> OrbitGroundTrack::ForTrajectory(
PlanetocentricLongitudes(descending_nodes, primary);
ground_track.first_descending_pass_before_first_ascending_pass_ =
!ascending_nodes.empty() && !descending_nodes.empty() &&
descending_nodes.front().first < ascending_nodes.front().first;
descending_nodes.begin()->first < ascending_nodes.begin()->first;
return ground_track;
}

4 changes: 2 additions & 2 deletions astronomy/orbital_elements_body.hpp
Original file line number Diff line number Diff line change
@@ -65,8 +65,8 @@ absl::StatusOr<OrbitalElements> OrbitalElements::ForTrajectory(
"trajectory does not span one sidereal period: sidereal period is " +
DebugString(orbital_elements.sidereal_period_) +
", trajectory spans " +
DebugString(trajectory.back().first -
trajectory.front().first));
DebugString(trajectory.rbegin()->first -
trajectory.begin()->first));
}
auto mean_classical_elements =
ToClassicalElements(orbital_elements.mean_equinoctial_elements_);
2 changes: 1 addition & 1 deletion astronomy/standard_product_3_test.cpp
Original file line number Diff line number Diff line change
@@ -392,7 +392,7 @@ TEST_P(StandardProduct3DynamicsTest, PerturbedKeplerian) {
/*speed_integration_tolerance=*/1 * Milli(Metre) / Second),
/*max_ephemeris_steps=*/std::numeric_limits<std::int64_t>::max());
DegreesOfFreedom<ICRS> const actual =
integrated_arc.back().second;
integrated_arc.rbegin()->second;
DegreesOfFreedom<ICRS> const expected =
itrs_.FromThisFrameAtTime(time)(degrees_of_freedom);
EXPECT_THAT(AbsoluteError(expected.position(), actual.position()),
4 changes: 2 additions & 2 deletions astronomy/лидов_古在_test.cpp
Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ TEST_F(Лидов古在Test, MercuryOrbiter) {
LOG(INFO) << "Flowing to " << t;
auto const status = ephemeris_->FlowWithFixedStep(t, *instance);
if (!status.ok()) {
LOG(INFO) << status << " at " << icrs_trajectory.back().first;
LOG(INFO) << status << " at " << icrs_trajectory.rbegin()->first;
break;
}
}
@@ -116,7 +116,7 @@ TEST_F(Лидов古在Test, MercuryOrbiter) {
mercury_frame_.ToThisFrameAtTime(t)(dof));
logger.Append(
"q",
mercury_centred_trajectory.back().second.position(),
mercury_centred_trajectory.rbegin()->second.position(),
mathematica::ExpressIn(Metre));
}

4 changes: 2 additions & 2 deletions mathematica/mathematica_test.cpp
Original file line number Diff line number Diff line change
@@ -213,8 +213,8 @@ TEST_F(MathematicaTest, ToMathematica) {
Velocity<F>({-1.0 * Metre / Second,
-5.0 * Metre / Second,
8.0 * Metre / Second})));
EXPECT_EQ(ToMathematica(std::pair{trajectory.front().first,
trajectory.front().second}),
EXPECT_EQ(ToMathematica(std::pair{trajectory.begin()->first,
trajectory.begin()->second}),
ToMathematica(*trajectory.begin()));
}
{
4 changes: 0 additions & 4 deletions physics/discrete_traject0ry.hpp
Original file line number Diff line number Diff line change
@@ -45,7 +45,6 @@ class DiscreteTraject0ry : public Trajectory<Frame> {
typename internal_discrete_trajectory_types::Timeline<Frame>::value_type;

using iterator = DiscreteTrajectoryIterator<Frame>;
using reference = value_type const&;
using reverse_iterator = std::reverse_iterator<iterator>;
using SegmentIterator = DiscreteTrajectorySegmentIterator<Frame>;
using ReverseSegmentIterator = std::reverse_iterator<SegmentIterator>;
@@ -61,9 +60,6 @@ class DiscreteTraject0ry : public Trajectory<Frame> {
DiscreteTraject0ry(const DiscreteTraject0ry&) = delete;
DiscreteTraject0ry& operator=(const DiscreteTraject0ry&) = delete;

reference front() const;
reference back() const;

iterator begin() const;
iterator end() const;

12 changes: 0 additions & 12 deletions physics/discrete_traject0ry_body.hpp
Original file line number Diff line number Diff line change
@@ -28,18 +28,6 @@ DiscreteTraject0ry<Frame>::DiscreteTraject0ry()
segment_by_left_endpoint_.emplace(InfinitePast, sit);
}

template<typename Frame>
typename DiscreteTraject0ry<Frame>::reference
DiscreteTraject0ry<Frame>::front() const {
return *begin();
}

template<typename Frame>
typename DiscreteTraject0ry<Frame>::reference
DiscreteTraject0ry<Frame>::back() const {
return *rbegin();
}

template<typename Frame>
typename DiscreteTraject0ry<Frame>::iterator
DiscreteTraject0ry<Frame>::begin() const {
6 changes: 0 additions & 6 deletions physics/discrete_traject0ry_test.cpp
Original file line number Diff line number Diff line change
@@ -130,12 +130,6 @@ TEST_F(DiscreteTraject0ryTest, Make) {
auto const trajectory = MakeTrajectory();
}

TEST_F(DiscreteTraject0ryTest, BackFront) {
auto const trajectory = MakeTrajectory();
EXPECT_EQ(t0_, trajectory.front().first);
EXPECT_EQ(t0_ + 14 * Second, trajectory.back().first);
}

TEST_F(DiscreteTraject0ryTest, IterateForward) {
auto const trajectory = MakeTrajectory();
std::vector<Instant> times;
7 changes: 1 addition & 6 deletions physics/discrete_trajectory_segment.hpp
Original file line number Diff line number Diff line change
@@ -53,7 +53,6 @@ class DiscreteTrajectorySegment : public Trajectory<Frame> {
using value_type = typename Timeline::value_type;

using iterator = DiscreteTrajectoryIterator<Frame>;
using reference = value_type const&;
using reverse_iterator = std::reverse_iterator<iterator>;

using DownsamplingParameters =
@@ -73,9 +72,6 @@ class DiscreteTrajectorySegment : public Trajectory<Frame> {
DiscreteTrajectorySegment& operator=(const DiscreteTrajectorySegment&) =
delete;

reference front() const;
reference back() const;

iterator begin() const;
iterator end() const;

@@ -109,8 +105,7 @@ class DiscreteTrajectorySegment : public Trajectory<Frame> {
void ClearDownsampling();

// The points denoted by |exact| are written and re-read exactly and are not
// affected by any errors introduced by zfp compression. The endpoints of a
// segment are always exact.
// affected by any errors introduced by zfp compression.
void WriteToMessage(
not_null<serialization::DiscreteTrajectorySegment*> message,
std::vector<iterator> const& exact) const;
12 changes: 0 additions & 12 deletions physics/discrete_trajectory_segment_body.hpp
Original file line number Diff line number Diff line change
@@ -37,18 +37,6 @@ DiscreteTrajectorySegment<Frame>::DiscreteTrajectorySegment(
DiscreteTrajectorySegmentIterator<Frame> const self)
: self_(self) {}

template<typename Frame>
typename DiscreteTrajectorySegment<Frame>::reference
DiscreteTrajectorySegment<Frame>::front() const {
return *begin();
}

template<typename Frame>
typename DiscreteTrajectorySegment<Frame>::reference
DiscreteTrajectorySegment<Frame>::back() const {
return *rbegin();
}

template<typename Frame>
typename DiscreteTrajectorySegment<Frame>::iterator
DiscreteTrajectorySegment<Frame>::begin() const {
3 changes: 0 additions & 3 deletions physics/discrete_trajectory_segment_range.hpp
Original file line number Diff line number Diff line change
@@ -16,9 +16,6 @@ class DiscreteTrajectorySegmentRange {
DiscreteTrajectorySegmentRange() = default;
DiscreteTrajectorySegmentRange(Iterator begin, Iterator end);

typename Iterator::reference front() const;
typename Iterator::reference back() const;

Iterator begin() const;
Iterator end() const;

12 changes: 0 additions & 12 deletions physics/discrete_trajectory_segment_range_body.hpp
Original file line number Diff line number Diff line change
@@ -14,18 +14,6 @@ DiscreteTrajectorySegmentRange<Iterator>::DiscreteTrajectorySegmentRange(
Iterator const end)
: begin_(begin), end_(end) {}

template<typename Iterator>
typename Iterator::reference
DiscreteTrajectorySegmentRange<Iterator>::front() const {
return *begin();
}

template<typename Iterator>
typename Iterator::reference
DiscreteTrajectorySegmentRange<Iterator>::back() const {
return *(--end());
}

template<typename Iterator>
Iterator DiscreteTrajectorySegmentRange<Iterator>::begin() const {
return begin_;
3 changes: 0 additions & 3 deletions physics/discrete_trajectory_segment_range_test.cpp
Original file line number Diff line number Diff line change
@@ -12,9 +12,6 @@ TEST(DiscreteTrajectorySegmentRangeTest, Basic) {
DiscreteTrajectorySegmentRange<std::vector<int>::const_iterator> range(
primes.begin(), primes.end());

EXPECT_EQ(2, range.front());
EXPECT_EQ(23, range.back());

int sum = 0;
int product = 1;
for (int const prime : range) {
5 changes: 0 additions & 5 deletions physics/discrete_trajectory_segment_test.cpp
Original file line number Diff line number Diff line change
@@ -105,11 +105,6 @@ class DiscreteTrajectorySegmentTest : public ::testing::Test {
DegreesOfFreedom<World> unmoving_origin_{World::origin, World::unmoving};
};

TEST_F(DiscreteTrajectorySegmentTest, BackFront) {
EXPECT_EQ(t0_ + 2 * Second, segment_->front().first);
EXPECT_EQ(t0_ + 11 * Second, segment_->back().first);
}

TEST_F(DiscreteTrajectorySegmentTest, Extremities) {
{
auto const it = segment_->begin();
6 changes: 3 additions & 3 deletions physics/ephemeris_body.hpp
Original file line number Diff line number Diff line change
@@ -468,10 +468,10 @@ Ephemeris<Frame>::StoppableNewInstance(
};

CHECK(!trajectories.empty());
auto const& [trajectory_last_time, _] = (*trajectories.begin())->back();
auto const& [trajectory_last_time, _] = *(*trajectories.begin())->rbegin();
problem.initial_state.time = DoublePrecision<Instant>(trajectory_last_time);
for (auto const& trajectory : trajectories) {
auto const& [last_time, last_degrees_of_freedom] = trajectory->back();
auto const& [last_time, last_degrees_of_freedom] = *trajectory->rbegin();
CHECK_EQ(last_time, trajectory_last_time);
problem.initial_state.positions.emplace_back(
last_degrees_of_freedom.position());
@@ -1347,7 +1347,7 @@ absl::Status Ephemeris<Frame>::FlowODEWithAdaptiveStep(
ODEAdaptiveStepParameters<ODE> const& parameters,
std::int64_t max_ephemeris_steps) {
auto const& [trajectory_last_time,
trajectory_last_degrees_of_freedom] = trajectory->back();
trajectory_last_degrees_of_freedom] = *trajectory->rbegin();
if (trajectory_last_time == t) {
return absl::OkStatus();
}
18 changes: 9 additions & 9 deletions physics/ephemeris_test.cpp
Original file line number Diff line number Diff line change
@@ -250,7 +250,7 @@ TEST_P(EphemerisTest, FlowWithAdaptiveStepSpecialCase) {
EXPECT_OK(ephemeris.FlowWithAdaptiveStep(
&trajectory,
Ephemeris<ICRS>::NoIntrinsicAcceleration,
trajectory.back().first,
trajectory.rbegin()->first,
Ephemeris<ICRS>::AdaptiveStepParameters(
EmbeddedExplicitRungeKuttaNyströmIntegrator<
DormandالمكاوىPrince1986RKN434FM,
@@ -447,10 +447,10 @@ TEST_P(EphemerisTest, EarthProbe) {
AlmostEquals(1.00 * period * v_earth, 633, 635));
EXPECT_THAT(earth_positions[100].coordinates().y, Eq(q_earth));

Length const q_probe = (trajectory.back().second.position() -
Length const q_probe = (trajectory.rbegin()->second.position() -
ICRS::origin).coordinates().y;
Speed const v_probe =
trajectory.back().second.velocity().coordinates().x;
trajectory.rbegin()->second.velocity().coordinates().x;
std::vector<Displacement<ICRS>> probe_positions;
for (auto const& [time, degrees_of_freedom] : trajectory) {
probe_positions.push_back(degrees_of_freedom.position() - ICRS::origin);
@@ -472,7 +472,7 @@ TEST_P(EphemerisTest, EarthProbe) {
Eq(q_probe));

Instant const old_t_max = ephemeris.t_max();
EXPECT_THAT(trajectory.back().first, Lt(old_t_max));
EXPECT_THAT(trajectory.rbegin()->first, Lt(old_t_max));
EXPECT_THAT(ephemeris.FlowWithAdaptiveStep(
&trajectory,
intrinsic_acceleration,
@@ -487,7 +487,7 @@ TEST_P(EphemerisTest, EarthProbe) {
/*max_ephemeris_steps=*/0),
StatusIs(absl::StatusCode::kDeadlineExceeded));
EXPECT_THAT(ephemeris.t_max(), Eq(old_t_max));
EXPECT_THAT(trajectory.back().first, Eq(old_t_max));
EXPECT_THAT(trajectory.rbegin()->first, Eq(old_t_max));
}

// The Earth and two massless probes, similar to the previous test but flowing
@@ -580,13 +580,13 @@ TEST_P(EphemerisTest, EarthTwoProbes) {
EXPECT_THAT(earth_positions[100].coordinates().y, Eq(q_earth));

Length const q_probe1 =
(trajectory1.back().second.position() - ICRS::origin).coordinates().y;
(trajectory1.rbegin()->second.position() - ICRS::origin).coordinates().y;
Length const q_probe2 =
(trajectory2.back().second.position() - ICRS::origin).coordinates().y;
(trajectory2.rbegin()->second.position() - ICRS::origin).coordinates().y;
Speed const v_probe1 =
trajectory1.back().second.velocity().coordinates().x;
trajectory1.rbegin()->second.velocity().coordinates().x;
Speed const v_probe2 =
trajectory2.back().second.velocity().coordinates().x;
trajectory2.rbegin()->second.velocity().coordinates().x;
std::vector<Displacement<ICRS>> probe1_positions;
std::vector<Displacement<ICRS>> probe2_positions;
for (auto const& [time, degrees_of_freedom] : trajectory1) {