summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYour Name <[email protected]>2026-08-24 10:53:50 -0700
committerYour Name <[email protected]>2026-08-24 11:57:49 -0700
commit97be0b74e9badf81ff5772314bf77e465467ddf7 (patch)
tree6cb36447888747c8b38814485590310a5728957e /src
parent19f9e5e972ddd4e08fa99f96a0ccc4101b86c9b1 (diff)
updated README
Diffstat (limited to 'src')
-rw-r--r--src/README.md70
1 files changed, 57 insertions, 13 deletions
diff --git a/src/README.md b/src/README.md
index cff34af..5d0dcb0 100644
--- a/src/README.md
+++ b/src/README.md
@@ -1,20 +1,64 @@
-OH MY GOD SO MUCH HAS CHANGED NEED TO UPDATE
+# public api
+## benchmark.c
-# memristor crossbar readout layer for reservoir computer
-##setup
-### download spires
+The public API for running crossbar simulation, calculating performance metrics,
+and generating plots.
-## overview
-### simulation
+* **MemModel struct**
+ * This is a struct for making model swapping easier
+ * members
+ * const char *model_path
+ * const char *subcircuit_name
-### benchmark
+* **run_benchmark() (int)**
+ * Executes the full crossbar simulation pipeline and stores the decoded
+ crossbar predictions in the passed output array.
+ * parameters
+ * const spires_reservoir_config *config
+ * spires_reservoir *reservoir
+ * Reservoir_State_Matrix *state_matrix
+ * const char *model_path
+ * const char *subcircuit_name
+ * double *predictions_out
-## Goal
-The goal is to able to simulate a spires reservoir on a memristor crossbar using
-a custom memristor spice model(HIL), thus you can run the same simulation with
-multiple models to compare how each performs using benchmark results.
+* **calculate_MSE() (double)**
+ * calculates the mean squared error of the predictions against the expected
+ values
+ * parameters
+ * const double *expected
+ * const double *predicted
+ * const size_t *num_steps
+ * const size_t num_outputs
-## task
+* **plot_raster() (int)**
+ * generates a raster plot of the reservoir based on the spike threshhold parameter
+ (not that useful tbh but can be cool to see), plot stored as svg in output directory
+ * parameters
+ * const Reservoir_State_Matrix *matrix
+ * const size_t neurons_to_plot
+ * const double spike_threshold
+
+* **plot_reservoir_predictions() (int)**
+ * plots the decoded crossbar predictions against the expected values, plot stored
+ as svg in output directory with name "reservoir_prediction_$(model_name).svg"
+ * parameters
+ * const double *expected
+ * const double *predicted
+ * size_t num_samples
+ * size_t num_outputs
+ * size_t output_to_plot
+ * const char *model_path
+
+* **plot_model_delta() (int)**
+ * plots the prediction differences for every timestep between the given model
+ and the fixed resistor baseline
+ * parameters
+ * const double *fixed
+ * const double *model
+ * const size_t num_samples
+ * const size_t num_outputs
+ * const size_t output_to_plot
+
+# Internal header files
-## metrics