# Tasks
## Overview
Start date of the project: March 07, 2025.
The following tasks are valid for the ALGORITHM and ARCHITECTURE of the library. The ALGORITHM doesn't change, but the ARCHITECTURE does.
## Fundamental tasks
- [ ] Understand the purpose of the algorithm: make a comprehensive documentation on it
- [ ] Understand why it is used: give examples
- [ ] Make a diagram of the architecture
## Development tasks
- [x] Incremental assembly of safe functions
- [ ] Provide a modern architecture for the main routine, using a state machine to get rid of the old goto statements inherited from Fortran and C
- [x] Remove old and useless variables inherited from Fortran and C
- [ ] Make subfunctions if possible, with explicit names for algorithm and architecture comprehension
- [x] Add comments for a better understanding of the algorithm and architecture
- [ ] Handle error in a modern, Rust fashion
- [ ] Separate task and state from the initial Fortran code
- [x] Use return codes when applicable
- [x] Add unit and integration tests (based on drivers output)