The Hipparchus 1.0 Java mathematical library has been released recently. Here is the official announcement:
The Hipparchus community is pleased to announce the release of Hipparchus 1.0, a self-contained mathematics library written in Java. Hipparchus began as a fork of Apache Commons Math, originated by most of the core developers of that library. Hipparchus has been divided into modules and numerousAPI, implementation and documentation improvements have been made. The release includes a migration package to assist users transitioning from Apache Commons Math. Details may be found in the release notes that accompany the source and binary distributions. The official release distributions can be obtained from the Hipparchus download page:
Please be sure to check the signatures on the artifacts using the KEYS file linked on the download page.
Hipparchus modules are also available on Maven Central, under the groupId org.hipparchus.
Hipparchus is released under the Apache 2.0 license. Hipparchus is an open development community. We welcome comments, bug reports and patches in the form of pull requests. To report issues with Hipparchus or to get involved with Hipparchus development, follow the instructions on the Hipparchus web site.
Phil Steitz On behalf of the Hipparchus community
As explained in the announcement message above, Hipparchus is a fork of Apache Commons Math, initiated by most of the core developers of that library. As Apache Commons Math was a critical component for Orekit and Rugged, this fork was something important to consider. Here are some background information to help explain the choice made.
Orekit implements space flight dynamics level algorithm on top of an existing mathematical library. At the very beginning of its history, the mathematical library was Mantissa, a now retired single-person project (I was the sole author and maintainer). Mantissa was donated to the Apache Software Foundation and included in Apache Commons Math. Apache Commons Math has been the mathematical engine underneath Orekit for about ten years.
Rugged implements geometric corrections algorithms for sensor to terrain mapping using Digital Elevation Models on top of Orekit and also relies on a mathematical library.
For several reasons, several committers of the Apache Commons Math project decided to create a new project, starting with a fork of the Apache Commons Math sources. The official announcement was published on June 1st and can be found here: http://markmail.org/message/frrshnnd7e4dcyqc.
The new project is called Hipparchus. It can be found here (https://hipparchus.org/) and its source code repository is available at GitHub https://github.com/Hipparchus-Math/hipparchus). This new project is published under the exact same license as Apache Commons Math and Orekit: the Apache Software License V2.
There are a couple of people (including the creator of the mathematical library project at the Apache Software Foundation) that are only involved in the math library and one Orekit committer involved only in the space flight dynamics library. However, most of the designers and developers involved both in Hipparchus have been involved in both Apache Commons Math and Orekit. The Rugged team also shares a lot with the Orekit team.
The Apache Commons Math project has currently one committer left, and a new contributor has just been granted committer rights a few weeks ago. The upcoming status of Apache Commons Math is unclear. It seems they intend to reduce drastically the scope, split into several components and not maintain some parts (our guess is that ODE will not be maintained).
Given the teams overlap and tight coupling between Orekit and its underlying mathematical library that often implies synchronized developments, the Orekit and Rugged developers have decided to follow the Hipparchus fork.
One very important feature of the Hipparchus project is that a migration module has been developed to help developers of components relying on Apache Commons Math to migrate to Hipparchus. This module has been applied to Orekit (and also to Rugged, the sensor to terrain mapping library built on top of Orekit). It was a one day load to migrate Orekit. This migration module can be used by all Orekit users to also migrate their code base to Hipparchus. Anyway, these users would also have needed to migrate code even if Apache Commons Math was still used, because the new version would have been a major release (4.0), with package name changes and API changes at the same level as Hipparchus brings, but the apache project would not have provided a migration module. Indeed, migrating from Apache Commons Math 3.X to Hipparchus is expected to be easier than migrating from Apache Commons Math 3.X to Apache Commons Math 4.0.
There are no risks at all identified with this change. The code base is similar, the development team is strong, the licensing scheme is the same, the collaboration between the space team and the math team is operational.
Now that the Hipparchus project is publicly available and the first official version 1.0 has been released, both as source archives, binary archives and maven artifacts on the public maven repositories, the already migrated Orekit (and Rugged) code base have been made public too. The current master branches of Orekit and Rugged in the Git repository depend on Hipparchus 1.0.
The soon-to-be-released Orekit 8 version will be created from this state. This allows to have all major changes done at the same time, in order to avoid multiple migrations to users projects:
As promised since a long time, this version does include orbit determination. Every one is welcome to use it.News summary