From 0e6755702857ccbeb1990aa6355dd1d01d4b07d6 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 17 Feb 2023 18:53:23 +0100 Subject: [PATCH] Added status to the readme. --- README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/README.md b/README.md index 2640c78..faa8e3b 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,79 @@ This is an experimental Machine Learning module for the Pandemonium Engine. Based on https://github.com/novak-99/MLPP . +## Status + +- Reworked codestyle to match the engine's. +- Reworked classes to work well with the engine. +- Added custom MLPPVector and MLPPMatrix that store data in a single continuous array. Their downside is push back, and remove uses realloc(). +- Added binds for most of the classes. +- Added unit tests. + +## Todos + +### Saves + +Reimplement saving. + +### Bind remaining methods + +Go through and bind all methods. Also add properties as needed. + +### Add initialization api to all classes that need it + +The original library used contructors to initialize everything, but with the engine scripts can't rely on this, +make sure all classes have initializations apis, and they bail out when they are in an uninitialized state. + +### Rework remaining apis. + +Rework and bind the remaining apis, so they can be used from scripts. + +### Error handling + +Make error macros usage consistent. Also a command line option should be available that disables them for math operations. + +### Crashes + +There are still likely lots of crashes, find, and fix them. + +### Unit tests + +- Add more unit tests +- Also use the engine's own unit test module. It still needs to be fininshed, would be a good idea doing it alongside this modules's tests. +- They should only be built when you want them. Command line option: `mlpp_tests=yes` + +### Old classes + +- Remove all old classes once they are no longer needed. +- Old classes should only be built when you want them. Command line option: `mlpp_tests=yes` or maybe something else? +- Make old classes use old utilities. +- Remove old apis from new classes that has been ported. + +### std::random + +Replace remaining std::random usage with engine internals. + +### Tensor3D + +Add a tensor3D class. Same as MLPPVector and MLPPMatrix, except it's 3d. + +### Tensor + +Add a tensor class. Same as MLPPVector and MLPPMatrix, except it's n-d. + +### Make the api postfixes consistent + +For example if we look at `substraction()`: + +substraction_v -> Non allocating MLPPVector +substraction_nv -> Allocating MLPPVector +substraction_m -> Non allocating MLPPMatrix +substraction_nm -> Non allocating MLPPMatrix +substraction_vt -> Non allocating vector based tensor +substraction_nvt -> Allocating vector based tensor +substraction_t3d -> Non allocating 3d tensor +substraction_nt3d -> Allocating 3d tensor + +### More algos + +Add more machine learning algorithms. \ No newline at end of file