# Tasks list (2025-11-19---2026-01-29)

Code clean up!

## Tasks

Add docs(including doc examples), comments, tests(Regular tests and property tests, all tests should be in /tests dictionary and all outside examples should be in /examples dictionary), examples(rust, fortran, cpp), benchmarks to each file.

And fix the logic flaws, fill up the placeholders, improve the code quality and performance, add C compatible ffi_apis(in the /ffi_apis dictionary), optionally add ffi blindings(must be under feature 'ffi_blindings' and /ffi_blindings dictionary), and make apis more user-friendly.

Some complex features in the physics module(like general 3D solver and optimizations) and other modules are not finished yet so you shall implement them.

Many modules do not work smoothly with the 'compute' module and do not have the same error types so you shall make them the same.

Also, multiprocessing and multithreading are not finished yet so you shall implement them all together.

Remember to run format and tests before each commits and push to the remote repository. Finish one file at a time and do not do many files at the same time.

All the changes that AI agents made shall be reviewed and approved by human. Please check to make sure there are no clippy warnings left before claiming the task as done(checked by human).

And remember to update the crate's docs and prellude.rs as well. 'sprs' is being forked by us to 'sprs-rssn' to solve the dependency issues so remember to merge commits from 'sprs' also. Please notice that the orders below are for reference only and you can do it in any order you like.

Finally, as a results of the unfinished work to transfer from AST to DAG, all the input and output type haven't been changed so far and will be needed to be changed in a clever way(You could see /src/symbolic/core.rs for some inspirations, and /src/symbolic/core.rs need to be refactored according to the the comments in the file) along the way. And you may want to at some point, break down some files in to many and that's OK.

Many other problems(like you may add optional bincode support for ffi_apis) are thee and not documented here. You should find out them by yourself and fix them.

IMPORTANT: All ffi_apis need to have three different version --- json-based version, handle-based version and bincode-based version. Please look at exsiting examples before starting and run build with features full to make sure it works. All modules in the symbolic module must have symbolic tests instead of all numrical tests.

## TODO

IMPORTANT:
Any test failture cannot be ignored and any functinal blank shall be filled.

```text
Tasks Pass Number
   1 - 2 - 3
- [x] [ ] [ ] /src/constant.rs
- [x] [ ] [ ] /src/lib.rs
- [x] [ ] [ ] /src/prelude.rs
- [x] [ ] [ ] /src/compute/cache.rs
- [x] [ ] [ ] /src/compute/computable.rs
- [x] [ ] [ ] /src/compute/computation.rs
- [x] [ ] [ ] /src/compute/engine.rs
- [x] [ ] [ ] /src/compute/mod.rs
- [x] [ ] [ ] /src/compute/state.rs
- [x] [ ] [ ] /src/symbolic/core.rs
- [x] [ ] [ ] /src/symbolic/elementary.rs
- [x] [ ] [ ] /src/symbolic/simplify.rs
- [x] [ ] [ ] /src/symbolic/simplify_dag.rs
- [x] [ ] [ ] /src/symbolic/calculus.rs
- [x] [ ] [ ] /src/symbolic/polynomial.rs
- [x] [ ] [ ] /src/symbolic/matrix.rs
- [x] [ ] [ ] /src/symbolic/vector.rs
- [x] [ ] [ ] /src/symbolic/tensor.rs
- [x] [ ] [ ] /src/symbolic/coordinates.rs
- [x] [ ] [ ] /src/symbolic/numeric.rs
- [x] [ ] [ ] /src/symbolic/unit_unification.rs
- [x] [ ] [ ] /src/symbolic/solve.rs
- [x] [ ] [ ] /src/symbolic/series.rs
- [x] [ ] [ ] /src/symbolic/grobner.rs
- [x] [ ] [ ] /src/symbolic/convergence.rs
- [x] [ ] [ ] /src/symbolic/ode.rs
- [x] [ ] [ ] /src/symbolic/pde.rs
- [x] [ ] [ ] /src/symbolic/integral_equations.rs
- [x] [ ] [ ] /src/symbolic/vector_calculus.rs
- [x] [ ] [ ] /src/symbolic/cas_foundations.rs
- [x] [ ] [ ] /src/symbolic/handles.rs
- [x] [ ] [ ] /src/symbolic/rewriting.rs
- [x] [ ] [ ] /src/symbolic/logic.rs
- [x] [ ] [ ] /src/symbolic/number_theory.rs
- [x] [ ] [ ] /src/symbolic/finite_field.rs
- [x] [ ] [ ] /src/symbolic/radicals.rs
- [x] [ ] [ ] /src/symbolic/poly_factorization.rs
- [x] [ ] [ ] /src/symbolic/multi_valued.rs
- [x] [ ] [ ] /src/symbolic/geometric_algebra.rs
- [x] [ ] [ ] /src/symbolic/integration.rs
- [ ] [ ] [ ] /src/symbolic/real_roots.rs
- [ ] [ ] [ ] /src/symbolic/optimize.rs
- [ ] [ ] [ ] /src/symbolic/differential_geometry.rs
- [ ] [ ] [ ] /src/symbolic/topology.rs
- [ ] [ ] [ ] /src/symbolic/fractal_geometry_and_chaos.rs
- [ ] [ ] [ ] /src/symbolic/complex_analysis.rs
- [ ] [ ] [ ] /src/symbolic/functional_analysis.rs
- [ ] [ ] [ ] /src/symbolic/group_theory.rs
- [ ] [ ] [ ] /src/symbolic/discrete_groups.rs
- [ ] [ ] [ ] /src/symbolic/lie_groups_and_algebras.rs
- [ ] [ ] [ ] /src/symbolic/combinatorics.rs
- [ ] [ ] [ ] /src/symbolic/graph.rs
- [ ] [ ] [ ] /src/symbolic/graph_operations.rs
- [ ] [ ] [ ] /src/symbolic/graph_algorithms.rs
- [ ] [ ] [ ] /src/symbolic/graph_isomorphism_and_coloring.rs
- [ ] [ ] [ ] /src/symbolic/stats.rs
- [ ] [ ] [ ] /src/symbolic/stats_probability.rs
- [ ] [ ] [ ] /src/symbolic/stats_regression.rs
- [ ] [ ] [ ] /src/symbolic/stats_inference.rs
- [ ] [ ] [ ] /src/symbolic/stats_information_theory.rs
- [ ] [ ] [ ] /src/symbolic/special.rs
- [ ] [ ] [ ] /src/symbolic/special_functions.rs
- [ ] [ ] [ ] /src/symbolic/transforms.rs
- [ ] [ ] [ ] /src/symbolic/error_correction_helper.rs
- [ ] [ ] [ ] /src/symbolic/error_correction.rs
- [ ] [ ] [ ] /src/symbolic/cryptography.rs
- [ ] [ ] [ ] /src/symbolic/computer_graphics.rs
- [ ] [ ] [ ] /src/symbolic/cad.rs
- [ ] [ ] [ ] /src/symbolic/calculus_of_variations.rs
- [ ] [ ] [ ] /src/symbolic/classical_mechanics.rs
- [ ] [ ] [ ] /src/symbolic/electromagnetism.rs
- [ ] [ ] [ ] /src/symbolic/thermodynamics.rs
- [ ] [ ] [ ] /src/symbolic/relativity.rs
- [ ] [ ] [ ] /src/symbolic/solid_state_physics.rs
- [ ] [ ] [ ] /src/symbolic/quantum_mechanics.rs
- [ ] [ ] [ ] /src/symbolic/quantum_field_theory.rs
- [ ] [ ] [ ] /src/symbolic/proof.rs
- [ ] [ ] [ ] /src/symbolic/mod.rs
- [ ] [ ] [ ] /src/numerical/elementary.rs
- [ ] [ ] [ ] /src/numerical/vector.rs
- [ ] [ ] [ ] /src/numerical/matrix.rs
- [ ] [ ] [ ] /src/numerical/sparse.rs
- [ ] [ ] [ ] /src/numerical/tensor.rs
- [ ] [ ] [ ] /src/numerical/polynomial.rs
- [ ] [ ] [ ] /src/numerical/number_theory.rs
- [ ] [ ] [ ] /src/numerical/finite_field.rs
- [ ] [ ] [ ] /src/numerical/coordinates.rs
- [ ] [ ] [ ] /src/numerical/geometric_algebra.rs
- [ ] [ ] [ ] /src/numerical/convergence.rs
- [ ] [ ] [ ] /src/numerical/solve.rs
- [ ] [ ] [ ] /src/numerical/real_roots.rs
- [ ] [ ] [ ] /src/numerical/optimize.rs
- [ ] [ ] [ ] /src/numerical/integrate.rs
- [ ] [ ] [ ] /src/numerical/calculus.rs
- [ ] [ ] [ ] /src/numerical/series.rs
- [ ] [ ] [ ] /src/numerical/interpolate.rs
- [ ] [ ] [ ] /src/numerical/ode.rs
- [ ] [ ] [ ] /src/numerical/pde.rs
- [ ] [ ] [ ] /src/numerical/transforms.rs
- [ ] [ ] [ ] /src/numerical/signal.rs
- [ ] [ ] [ ] /src/numerical/vector_calculus.rs
- [ ] [ ] [ ] /src/numerical/calculus_of_variations.rs
- [ ] [ ] [ ] /src/numerical/differential_geometry.rs
- [ ] [ ] [ ] /src/numerical/topology.rs
- [ ] [ ] [ ] /src/numerical/complex_analysis.rs
- [ ] [ ] [ ] /src/numerical/functional_analysis.rs
- [ ] [ ] [ ] /src/numerical/multi_valued.rs
- [ ] [ ] [ ] /src/numerical/combinatorics.rs
- [ ] [ ] [ ] /src/numerical/graph.rs
- [ ] [ ] [ ] /src/numerical/stats.rs
- [ ] [ ] [ ] /src/numerical/special.rs
- [ ] [ ] [ ] /src/numerical/error_correction.rs
- [ ] [ ] [ ] /src/numerical/fractal_geometry_and_chaos.rs
- [ ] [ ] [ ] /src/numerical/computer_graphics.rs
- [ ] [ ] [ ] /src/numerical/physics.rs
- [ ] [ ] [ ] /src/numerical/physics_cfd.rs
- [ ] [ ] [ ] /src/numerical/physics_fea.rs
- [ ] [ ] [ ] /src/numerical/physics_md.rs
- [ ] [ ] [ ] /src/numerical/testing.rs
- [ ] [ ] [ ] /src/numerical/mod.rs
- [ ] [ ] [ ] /src/physics/physics_rkm.rs
- [ ] [ ] [ ] /src/physics/physics_fdm.rs
- [ ] [ ] [ ] /src/physics/physics_fvm.rs
- [ ] [ ] [ ] /src/physics/physics_fem.rs
- [ ] [ ] [ ] /src/physics/physics_bem.rs
- [ ] [ ] [ ] /src/physics/physics_cnm.rs
- [ ] [ ] [ ] /src/physics/physics_mtm.rs
- [ ] [ ] [ ] /src/physics/physics_em.rs
- [ ] [ ] [ ] /src/physics/physics_mm.rs
- [ ] [ ] [ ] /src/physics/physics_sm.rs
- [ ] [ ] [ ] /src/physics/physics_sim/linear_elasticity.rs
- [ ] [ ] [ ] /src/physics/physics_sim/navier_stokes_fluid.rs
- [ ] [ ] [ ] /src/physics/physics_sim/fdtd_electrodynamics.rs
- [ ] [ ] [ ] /src/physics/physics_sim/schrodinger_quantum.rs
- [ ] [ ] [ ] /src/physics/physics_sim/gpe_superfluidity.rs
- [ ] [ ] [ ] /src/physics/physics_sim/ising_statistical.rs
- [ ] [ ] [ ] /src/physics/physics_sim/geodesic_relativity.rs
- [ ] [ ] [ ] /src/physics/physics_sim/mod.rs
- [ ] [ ] [ ] /src/physics/mod.rs
- [ ] [ ] [ ] /src/output/io.rs
- [ ] [ ] [ ] /src/output/pretty_print.rs
- [ ] [ ] [ ] /src/output/latex.rs
- [ ] [ ] [ ] /src/output/typst.rs
- [ ] [ ] [ ] /src/output/plotting.rs
- [ ] [ ] [ ] /src/output/mod.rs
- [ ] [ ] [ ] /src/input/parser.rs
- [ ] [ ] [ ] /src/input/mod.rs
- [ ] [ ] [ ] /src/plugins/plugin_c.rs
- [ ] [ ] [ ] /src/plugins/stable_abi.rs
- [ ] [ ] [ ] /src/plugins/manager.rs
- [ ] [ ] [ ] /src/plugins/mod.rs
- [ ] [ ] [ ] /src/ffi_blindings/mod.rs
- [ ] [ ] [ ] /src/ffi_apis/ffi_api.rs
- [ ] [ ] [ ] /src/ffi_apis/mod.rs
```
