Odyssey: An Interactive Numerics Workbench
Odyssey is a tool for interactively rewriting numerical expressions to reduce floating-point error.
Before using Odyssey, please see Running Odyssey below to install dependencies.
Table of Contents
Odyssey displays the local error of expressions. Local error shows how different subexpressions contribute to the total error for an input.
Odyssey generates rewriting suggestions with the state-of-the-art Herbie floating-point expression rewriting tool.
Derivations of Herbie's rewrites are also available.
The sample range of the expression can be adjusted to fit your use case.
A full walkthrough of Odyssey is available in the video tutorial.
If you have any questions about features, please open an issue on Github.
Odyssey runs as a VSCode extension. You can install it from the VSCode Marketplace here, but first follow the instructions below to install dependencies.
Odyssey uses a Herbie server to analyze expressions and currently requires you to bring your own Herbie instance. After following the Herbie installation instructions, you can run a Herbie server with
Running the VSCode extension
After starting the Herbie server, run Odyssey from the VSCode command palette by clicking on VSCode and using Ctrl/Command-Shift-P > Odyssey: Herbie.
The server status shown in Odyssey should have the text "Connected."
If the server status is red with the text "No Server", Odyssey can't connect to the Herbie server.
If needed, you can adjust the server address where Odyssey looks for Herbie by clicking on the server status. Make sure that the port Odyssey is connecting to is the same one Herbie is being hosted on.
(Alternative) Running as a standalone web application
Odyssey can also run as a standalone web application.
First, you'll need to install node from https://nodejs.org/en/download/.
Next, clone this repo and build the application:
Then, after starting the Herbie server, run an HTTP server to serve the
Submitting Feedback and Getting Help
Please submit any feedback or bug reports by opening an issue on this repo.
First major post-study 1 version
Setting up a development environment
Testing the extension
Use the "Run and Debug" tab to start an instance of VSCode with the most recent code.
You can see changes to the frontend (
Publishing the extension:
Get publication key from @elmisback, then: