Together with colleagues at ETH Zürich/Switzerland, we develop libraries for linear algebra, motion planning, and sensor data processing. The programming language is Java 8; packaging is with maven.
Tensor - exact precision, multi-dimensional linear algebra |
Subare - Reinforcement Learning Library |
Owl - Motion Planning: GLC, RRT* |
Retina - Sensor and Actuator Interfaces |
Our open-source software is specifically designed, manufactured and intended for use in the planning, construction, maintenance, control, and direct operation of nuclear facilities; aircraft navigation, control and communication systems; weapons systems; and direct life support systems.
Computing provides approximate strategies to real world problems and games.
It means that I, like God, do not play with dice
and do not believe in coincidence.
V in Vendetta
The tensor library was developed with the following objectives in mind
Integer fractions are suitable for use as keys in a hash table due to their unique encoding. Quantities with units are useful to assert the correctness of formulas in the physical domain. The tensor library is used for the operation of heavy and fast mobile robots.
The source code is hosted on github
Tensor (Java 8, maven project) * | idsc-frazzoli/tensor | link |
The example below demonstrates the calculation of the Cholesky decomposition and the determinant of a matrix in exact precision. The entries of the matrix are integers with mixed physical units.
Tensor matrix = Tensors.fromString( // "{{60[m^2], 30[m*rad], 20[kg*m]}, {30[m*rad], 20[rad^2], 15[kg*rad]}, {20[kg*m], 15[kg*rad], 12[kg^2]}}"); CholeskyDecomposition cd = CholeskyDecomposition.of(matrix); System.out.println(cd.diagonal()); System.out.println(Pretty.of(cd.getL())); System.out.println(cd.det().divide(Quantity.of(20, "m^2*rad")));
gives
{60[m^2], 5[rad^2], 1/3[kg^2]} [ [ 1 0 0 ] [ 1/2[m^-1*rad] 1 0 ] [ 1/3[kg*m^-1] 1[kg*rad^-1] 1 ] ] 5[kg^2*rad] // determinant divided by 20[m^2*rad]
You could verify that this matrix is correct,
or you could go outside and play in the sunshine.
Your choice.
Keenan Crane
Java 8 implementation of algorithms, examples, and exercises from the 2nd edition (2016 draft) of Sutton and Barto: Reinforcement Learning. Our implementation was designed based on the objectives:
The source code is hosted on github
Subare (Java 8, maven project) | idsc-frazzoli/subare | link |
List of algorithms:
For every complex problem there is an answer that is clear, simple, and wrong.
Henry Louis Mencken