From 8671410a0f9bdd4b405762ad4790c15d601b0fba Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 28 Aug 2026 13:42:10 -0700 Subject: online crossbar inputs --- src/read_crossbar.c | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) (limited to 'src/read_crossbar.c') diff --git a/src/read_crossbar.c b/src/read_crossbar.c index b075c69..5b79233 100644 --- a/src/read_crossbar.c +++ b/src/read_crossbar.c @@ -1,15 +1,12 @@ #include "read_crossbar.h" -#include -#include //maybe I could use this -#include -#include +#include +#include + +#include #include #include #include -#include -#include -#include int run_ngspice(const char *crossbar_path) { @@ -48,8 +45,8 @@ int read_crossbar(const char *data_path, size_t num_outputs, return -1; } - result->num_samples = 0; - result->num_outputs = num_outputs; + // result->num_samples = 0; + // result->num_outputs = num_outputs; result->time = NULL; result->voltages = NULL; @@ -78,22 +75,8 @@ int read_crossbar(const char *data_path, size_t num_outputs, char line[16384]; // size_t line_number = 0; + size_t sample = 0; while (fgets(line, sizeof(line), file) != NULL) { - /* Raises capacity if needed, not working rn tho */ - // if (result->num_samples == capacity) { - // capacity *= 2; - // - // result->time = realloc(result->time, capacity * - // sizeof(double)); result->voltages = - // realloc(result->voltages, capacity * sizeof(double)); - // - // if (result->time == NULL || result->voltages == NULL) { - // fprintf(stderr, "Failed to reallocate memory"); - // fclose(file); - // return -1; - // } - // } - char *position = line; double sample_time = 0.0; @@ -115,12 +98,12 @@ int read_crossbar(const char *data_path, size_t num_outputs, sample_time = time; } - result->voltages[result->num_samples * num_outputs + - output] = voltage; + result->voltages[sample * num_outputs + output] = + voltage; position += char_count; } - result->time[result->num_samples] = sample_time; - result->num_samples++; + result->time[sample] = sample_time; + sample++; } fclose(file); return 0; @@ -232,8 +215,8 @@ void free_crossbar_output_matrix(Crossbar_Output_Matrix *result) free(result->time); free(result->voltages); - result->num_samples = 0; - result->num_outputs = 0; + // result->num_samples = 0; + // result->num_outputs = 0; result->time = NULL; result->voltages = NULL; } -- cgit v1.2.3