From d016db5ce883778042b1c97b6f3d3dde088e801b Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 30 Jul 2026 13:18:55 -0700 Subject: clean up file tree --- src/crossbar_generator.a | Bin 17776 -> 0 bytes src/crossbar_generator.c | 2 +- src/hp_memristor.cir | 45 - src/main | Bin 258376 -> 0 bytes src/main.a | Bin 24280 -> 0 bytes src/main.c | 128 +- src/makefile | 37 - src/read_crossbar.a | Bin 15584 -> 0 bytes src/reservoir_raster.svg | 8091 ---------------------------------------------- src/spires_interface.a | Bin 13208 -> 0 bytes src/spires_interface.c | 5 - 11 files changed, 123 insertions(+), 8185 deletions(-) delete mode 100644 src/crossbar_generator.a delete mode 100644 src/hp_memristor.cir delete mode 100755 src/main delete mode 100644 src/main.a delete mode 100644 src/makefile delete mode 100644 src/read_crossbar.a delete mode 100644 src/reservoir_raster.svg delete mode 100644 src/spires_interface.a (limited to 'src') diff --git a/src/crossbar_generator.a b/src/crossbar_generator.a deleted file mode 100644 index f7a9677..0000000 Binary files a/src/crossbar_generator.a and /dev/null differ diff --git a/src/crossbar_generator.c b/src/crossbar_generator.c index 3db1adc..4e0b935 100644 --- a/src/crossbar_generator.c +++ b/src/crossbar_generator.c @@ -155,7 +155,7 @@ static int write_save_date(FILE *file, const Crossbar_Config *config) } } - fprintf(file, "\nwrdata crossbar_output.dat"); + fprintf(file, "\nwrdata output/crossbar_output.dat"); for (int column = 0; column < config->columns; column++) { fprintf(file, " v(col%zu)", column); // ive given up on error checking diff --git a/src/hp_memristor.cir b/src/hp_memristor.cir deleted file mode 100644 index 1865a7a..0000000 --- a/src/hp_memristor.cir +++ /dev/null @@ -1,45 +0,0 @@ -* HP Memristor SPICE Model -* For Transient Analysis only -* created by Zdenek and Dalibor Biolek -************************** -* Ron, Roff - Resistance in ON / OFF States -* Rinit - Resistance at T=0 -* D - Width of the thin film -* uv - Migration coefficient -* p - Parameter of the WINDOW-function -* for modeling nonlinear boundary conditions -* x - W/D Ratio, W is the actual width -* of the doped area (from 0 to D) -* -.SUBCKT memristor Plus Minus PARAMS: -+ Ron=1K Roff=100K Rinit=80K D=10N uv=10F p=1 -*********************************************** -* DIFFERENTIAL EQUATION MODELING * -*********************************************** -Gx 0 x value={ I(Emem)*uv*Ron/D^2*f(V(x),p)} -Cx x 0 1 IC={(Roff-Rinit)/(Roff-Ron)} -Raux x 0 1T - -* RESISTIVE PORT OF THE MEMRISTOR * -******************************* -Emem plus aux value={-I(Emem)*V(x)*(Roff-Ron)} -Roff aux minus {Roff} -*********************************************** -*Flux computation* -*********************************************** -*does not work with ngspice -*Eflux flux 0 value={SDT(V(plus,minus))} -*********************************************** -*Charge computation* -*********************************************** -*does not work with ngspice -*Echarge charge 0 value={SDT(I(Emem))} -*********************************************** -* WINDOW FUNCTIONS -* FOR NONLINEAR DRIFT MODELING * -*********************************************** -*window function, according to Joglekar -.func f(x,p)={1-(2*x-1)^(2*p)} -*proposed window function -;.func f(x,i,p)={1-(x-stp(-i))^(2*p)} -.ENDS memristor diff --git a/src/main b/src/main deleted file mode 100755 index cf80398..0000000 Binary files a/src/main and /dev/null differ diff --git a/src/main.a b/src/main.a deleted file mode 100644 index 2e8c08d..0000000 Binary files a/src/main.a and /dev/null differ diff --git a/src/main.c b/src/main.c index e238d96..34adce6 100644 --- a/src/main.c +++ b/src/main.c @@ -23,6 +23,11 @@ static int plot_raster(const Reservoir_State_Matrix *matrix, size_t neurons_to_plot, double spike_threshold); +static int plot_reservoir_predictions(const double *expected, + const double *predicted, + size_t num_samples, size_t num_outputs, + size_t output_to_plot); + int main(void) { // discrete LIF parameters for spires @@ -141,14 +146,14 @@ int main(void) .input_series = row_voltages, .num_samples = state_matrix.num_samples, .initial_resistance = initial_resistances, - .model_path = "hp_memristor.cir", + .model_path = "models/hp_memristor.cir", .subcircuit_name = "memristor", .load_resistance = 50.0, .time_step = 1e-6, .stop_time = state_matrix.num_samples * 1e-6, .print_state_nodes = 0}; - if (generate_crossbar("crossbar.cir", &crossbar_config) < 0) { + if (generate_crossbar("output/crossbar.cir", &crossbar_config) < 0) { fprintf(stderr, "failed to create crossbar config"); free(initial_resistances); free_reservoir_state_matrix(&state_matrix); @@ -158,7 +163,7 @@ int main(void) printf("Generated crossbar!!"); // call ngspice for crossbar - if (run_ngspice("crossbar.cir") < 0) { + if (run_ngspice("output/crossbar.cir") < 0) { fprintf(stderr, "Failed to run_ngspice"); free(initial_resistances); free_reservoir_state_matrix(&state_matrix); @@ -174,7 +179,7 @@ int main(void) .time = NULL, .voltages = NULL}; - if (read_crossbar("crossbar_output.dat", NUM_CROSSBAR_COLUMNS, + if (read_crossbar("output/crossbar_output.dat", NUM_CROSSBAR_COLUMNS, &crossbar_output) < 0) { fprintf(stderr, "Failed to read crossbar output file"); free(initial_resistances); @@ -203,10 +208,14 @@ int main(void) // comparing prediction for (int i = 0; i < NUM_TRAINING_STEPS; i++) { - printf("real: %g , predicted: %g\n", target_outputs[i], + printf("expected: %g , predicted: %g\n", target_outputs[i], decoded_outputs[i]); } + // plotting expected vs. prediction + plot_reservoir_predictions(target_outputs, decoded_outputs, + NUM_TRAINING_STEPS, NUM_OUTPUTS, 0); + printf("YAY IT WORKED!!! Cleaning up :)"); free(initial_resistances); // free(spikes_voltages); @@ -272,7 +281,7 @@ static int plot_raster(const Reservoir_State_Matrix *matrix, // output to png plsdev("svg"); - plsfnam("reservoir_raster.svg"); + plsfnam("output/reservoir_raster.svg"); plsetopt("geometry", "1600x1200"); plscolbg(255, 255, 255); @@ -306,3 +315,110 @@ static int plot_raster(const Reservoir_State_Matrix *matrix, free(y); return 0; } + +static int plot_reservoir_predictions(const double *expected, + const double *predicted, + size_t num_samples, size_t num_outputs, + size_t output_to_plot) +{ + PLFLT *x; + PLFLT *y_expected; + PLFLT *y_predicted; + PLFLT y_min; + PLFLT y_max; + + if (!expected || !predicted || num_samples == 0 || + output_to_plot >= num_outputs) + return -1; + + x = malloc(num_samples * sizeof(*x)); + y_expected = malloc(num_samples * sizeof(*y_expected)); + y_predicted = malloc(num_samples * sizeof(*y_predicted)); + + if (!x || !y_expected || !y_predicted) { + free(x); + free(y_expected); + free(y_predicted); + return -1; + } + + y_min = (PLFLT)expected[output_to_plot]; + y_max = y_min; + + for (size_t sample = 0; sample < num_samples; sample++) { + size_t index; + + index = sample * num_outputs + output_to_plot; + + x[sample] = (PLFLT)sample; + y_expected[sample] = (PLFLT)expected[index]; + y_predicted[sample] = (PLFLT)predicted[index]; + + if (y_expected[sample] < y_min) + y_min = y_expected[sample]; + + if (y_expected[sample] > y_max) + y_max = y_expected[sample]; + + if (y_predicted[sample] < y_min) + y_min = y_predicted[sample]; + + if (y_predicted[sample] > y_max) + y_max = y_predicted[sample]; + } + + { + PLFLT margin; + + margin = (y_max - y_min) * 0.1; + + if (margin == 0.0) + margin = 1.0; + + y_min -= margin; + y_max += margin; + } + + plsdev("svg"); + plsfnam("output/reservoir_prediction.svg"); + plsetopt("geometry", "1600x1000"); + + plscolbg(255, 255, 255); + plinit(); + + plscol0(1, 0, 0, 0); + plscol0(2, 30, 90, 200); + plscol0(3, 200, 50, 50); + + plcol0(1); + plwidth(1.0); + + plenv(0.0, (PLFLT)(num_samples - 1), y_min, y_max, 0, 0); + + pllab("Timestep", "Output", "Expected vs SPICE Crossbar Prediction"); + + plcol0(2); + plwidth(2.0); + plline((PLINT)num_samples, x, y_expected); + + plcol0(3); + plwidth(2.0); + plline((PLINT)num_samples, x, y_predicted); + + plcol0(1); + plcol0(2); + plptex((PLFLT)(num_samples * 0.75), y_max - 0.08 * (y_max - y_min), 1.0, + 0.0, 0.0, "Expected"); + + plcol0(3); + plptex((PLFLT)(num_samples * 0.75), y_max - 0.16 * (y_max - y_min), 1.0, + 0.0, 0.0, "Predicted"); + + plend(); + + free(x); + free(y_expected); + free(y_predicted); + + return 0; +} diff --git a/src/makefile b/src/makefile deleted file mode 100644 index 9603d7d..0000000 --- a/src/makefile +++ /dev/null @@ -1,37 +0,0 @@ -CC := clang - -TARGET := main -SPIRES_DIR := ../spires - -SOURCES := main.c spires_interface.c crossbar_generator.c read_crossbar.c -OBJECTS := $(SOURCES:.c=.a) - -PLPLOT_LIBS := $(shell pkg-config --libs plplot) - -CPPFLAGS := -I. -I$(SPIRES_DIR)/include -CFLAGS := -Wall -Wextra -Wpedantic -std=c11 -g -fopenmp -LDFLAGS := -L$(SPIRES_DIR)/lib -Wl,-rpath,'$$ORIGIN/../spires/lib' -LDLIBS := -lspires -lopenblas -llapacke -lm -fopenmp $(PLPLOT_LIBS) - -PLPLOT_CFLAGS := $(shell pkg-config --cflags plplot) -CFLAGS += $(PLPLOT_CFLAGS) - -.PHONY: all run clean debug - -all: $(TARGET) - -$(TARGET): $(OBJECTS) - $(CC) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $(TARGET) - -%.a: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ - -run: $(TARGET) - LD_LIBRARY_PATH=$(SPIRES_DIR)/lib:$$LD_LIBRARY_PATH ./$(TARGET) - -debug: CFLAGS += -fsanitize=address,undefined -fno-omit-frame-pointer -debug: LDFLAGS += -fsanitize=address,undefined -debug: clean $(TARGET) - -clean: - rm -f $(OBJECTS) $(TARGET) diff --git a/src/read_crossbar.a b/src/read_crossbar.a deleted file mode 100644 index 8e36677..0000000 Binary files a/src/read_crossbar.a and /dev/null differ diff --git a/src/reservoir_raster.svg b/src/reservoir_raster.svg deleted file mode 100644 index 42c8bf7..0000000 --- a/src/reservoir_raster.svg +++ /dev/null @@ -1,8091 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/spires_interface.a b/src/spires_interface.a deleted file mode 100644 index a032b90..0000000 Binary files a/src/spires_interface.a and /dev/null differ diff --git a/src/spires_interface.c b/src/spires_interface.c index 243a108..9c37155 100644 --- a/src/spires_interface.c +++ b/src/spires_interface.c @@ -90,11 +90,6 @@ int convert_weights_to_resistances(const spires_reservoir *reservoir, readout = spires_copy_readout(reservoir); - // print readout for debugging - for (size_t i = 0; i < (num_neurons * num_outputs); i++) { - printf("%zu : %g\n", i, readout[i]); - } - resistances = malloc(num_neurons * num_physical_columns * sizeof(double)); if (resistances == NULL) { -- cgit v1.2.3