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: da414c28dbdf
Choose a base ref
...
head repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: c45fbc7f2305
Choose a head ref
  • 11 commits
  • 7 files changed
  • 2 contributors

Commits on Feb 6, 2020

  1. Start Gaussian elimination.

    pleroy committed Feb 6, 2020
    Copy the full SHA
    204db1a View commit details

Commits on Feb 7, 2020

  1. Innocuous?

    pleroy committed Feb 7, 2020
    Copy the full SHA
    0418d96 View commit details
  2. Array of rows.

    pleroy committed Feb 7, 2020
    Copy the full SHA
    1603bc8 View commit details

Commits on Feb 8, 2020

  1. Copy the full SHA
    361acc2 View commit details
  2. A test that fails.

    pleroy committed Feb 8, 2020
    Copy the full SHA
    0af7b5a View commit details
  3. Debugging.

    pleroy committed Feb 8, 2020
    Copy the full SHA
    8e9c6d9 View commit details

Commits on Feb 9, 2020

  1. More tests.

    pleroy committed Feb 9, 2020
    Copy the full SHA
    41e16ef View commit details
  2. Add reference for Higham.

    pleroy committed Feb 9, 2020
    Copy the full SHA
    0bb37c3 View commit details
  3. After egg's review.

    pleroy committed Feb 9, 2020
    Copy the full SHA
    ccda8e5 View commit details
  4. Lint.

    pleroy committed Feb 9, 2020
    Copy the full SHA
    7472699 View commit details
  5. Merge pull request #2467 from pleroy/Solve

    A method to solve a 3x3 linear system
    pleroy authored Feb 9, 2020
    Copy the full SHA
    c45fbc7 View commit details
42 changes: 25 additions & 17 deletions documentation/bibliography.bib
Original file line number Diff line number Diff line change
@@ -681,6 +681,14 @@ @article{Yoshida1990
volume = {150},
}

@book{Higham2002,
author = {Higham, Nicholas J.},
publisher = {Society for Industrial and Applied Mathematics},
date = {2002},
isbn = {0-89871-521-0},
title = {Accuracy and Stability of Numerical Algorithms},
}

@book{JahnkeEmde1933,
author = {Jahnke, Eugen and Emde, Fritz},
publisher = {Teubner},
@@ -768,23 +776,6 @@ @inproceedings{PellegriniRussel2014
volume = {152},
}

@thesis{Chandler73,
author = {Chandler, John Frederick},
institution = {Massachusetts Institute of Technology},
date = {1973},
eprint = {http://hdl.handle.net/1721.1/51410},
title = {Determination of the Dynamical Properties of the Jovian System by Numerical Analysis},
type = {phdthesis},
}

@software{Fukushima2018,
author = {Fukushima, T.},
url = {https://www.researchgate.net/profile/Toshio_Fukushima/publication/322702514_xelbdjtxt_Fortran_test_driver_for_elbdjrelbdj_subroutines_to_compute_the_doublesingle_precision_general_incomplete_elliptic_integrals_of_all_three_kinds/data/5a6a4a7a458515b2d0532843/xelbdj-all.txt},
date = {2018-01},
doi = {10.13140/RG.2.2.11113.80489},
title = {xelbdj.txt: Fortran test driver for “elbdj”/“relbdj”, subroutines to compute the double/single precision general incomplete elliptic integrals of all three kinds},
}

@report{IERSConventions2010,
author = {Petit, Gérard and Luzum, Brian},
institution = {International Earth Rotation and Reference Systems Service Convention Centre},
@@ -842,6 +833,23 @@ @report{Westra2017
type = {Personal note},
}

@software{Fukushima2018,
author = {Fukushima, T.},
url = {https://www.researchgate.net/profile/Toshio_Fukushima/publication/322702514_xelbdjtxt_Fortran_test_driver_for_elbdjrelbdj_subroutines_to_compute_the_doublesingle_precision_general_incomplete_elliptic_integrals_of_all_three_kinds/data/5a6a4a7a458515b2d0532843/xelbdj-all.txt},
date = {2018-01},
doi = {10.13140/RG.2.2.11113.80489},
title = {xelbdj.txt: Fortran test driver for “elbdj”/“relbdj”, subroutines to compute the double/single precision general incomplete elliptic integrals of all three kinds},
}

@thesis{Chandler73,
author = {Chandler, John Frederick},
institution = {Massachusetts Institute of Technology},
date = {1973},
eprint = {http://hdl.handle.net/1721.1/51410},
title = {Determination of the Dynamical Properties of the Jovian System by Numerical Analysis},
type = {phdthesis},
}

@unpublished{Celledoni2007,
author = {Celledoni, E. and Fassò, F. and Säfström, N. and Zanna, A.},
date = {2007-10},
Binary file modified documentation/bibliography.pdf
Binary file not shown.
3 changes: 3 additions & 0 deletions geometry/r3_element.hpp
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
#include <string>

#include "base/not_null.hpp"
#include "base/tags.hpp"
#include "quantities/named_quantities.hpp"
#include "quantities/quantities.hpp"
#include "serialization/geometry.pb.h"
@@ -16,6 +17,7 @@ namespace geometry {
namespace internal_r3_element {

using base::not_null;
using base::uninitialized_t;
using quantities::Angle;
using quantities::is_quantity;
using quantities::Product;
@@ -33,6 +35,7 @@ template<typename Scalar>
struct alignas(16) R3Element final {
public:
constexpr R3Element();
constexpr explicit R3Element(uninitialized_t);
R3Element(Scalar const& x, Scalar const& y, Scalar const& z);
R3Element(__m128d xy, __m128d zt);

6 changes: 6 additions & 0 deletions geometry/r3_element_body.hpp
Original file line number Diff line number Diff line change
@@ -36,6 +36,12 @@ constexpr R3Element<Scalar>::R3Element() : x(), y(), z() {
"R3Element has a nonstandard layout");
}

template<typename Scalar>
constexpr R3Element<Scalar>::R3Element(uninitialized_t) {
static_assert(std::is_standard_layout<R3Element>::value,
"R3Element has a nonstandard layout");
}

template<typename Scalar>
R3Element<Scalar>::R3Element(Scalar const& x,
Scalar const& y,
16 changes: 11 additions & 5 deletions geometry/r3x3_matrix.hpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@

#pragma once

// We use ostream for logging purposes.
#include <iostream> // NOLINT(readability/streams)
#include <array>
#include <iostream>
#include <string>
#include <type_traits>
#include <utility>

#include "base/macros.hpp"
#include "base/tags.hpp"
#include "geometry/r3_element.hpp"
#include "quantities/named_quantities.hpp"
#include "quantities/quantities.hpp"
@@ -18,6 +19,7 @@ namespace geometry {
namespace internal_r3x3_matrix {

using base::not_null;
using base::uninitialized_t;
using quantities::Cube;
using quantities::is_quantity;
using quantities::Product;
@@ -30,6 +32,7 @@ template<typename Scalar>
class R3x3Matrix final {
public:
R3x3Matrix() = default;
explicit R3x3Matrix(uninitialized_t);
R3x3Matrix(R3Element<Scalar> const& row_x,
R3Element<Scalar> const& row_y,
R3Element<Scalar> const& row_z);
@@ -40,6 +43,10 @@ class R3x3Matrix final {
Cube<Scalar> Determinant() const;
R3x3Matrix Transpose() const;

template<typename RScalar>
R3Element<Quotient<RScalar, Scalar>> Solve(
R3Element<RScalar> const& rhs) const;

R3Element<Scalar> const& row_x() const;
R3Element<Scalar> const& row_y() const;
R3Element<Scalar> const& row_z() const;
@@ -65,9 +72,8 @@ class R3x3Matrix final {

private:
#endif
R3Element<Scalar> row_x_;
R3Element<Scalar> row_y_;
R3Element<Scalar> row_z_;
enum Indices { X = 0, Y = 1, Z = 2 };
std::array<R3Element<Scalar>, 3> rows_;

#if !OS_MACOSX
template<typename S>
Loading