From a0c6ff2c222beb72493f2e40ed27492061dfdf22 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 31 Aug 2025 14:25:07 +0300 Subject: initial fptr ast programs --- fptr_ast/ref.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 fptr_ast/ref.c (limited to 'fptr_ast/ref.c') diff --git a/fptr_ast/ref.c b/fptr_ast/ref.c new file mode 100644 index 0000000..6169a25 --- /dev/null +++ b/fptr_ast/ref.c @@ -0,0 +1,33 @@ +#include +#include +#include +#include "common.h" + +static void matrix_mult(intptr_t *A, intptr_t *B, intptr_t *C) +{ + for (size_t i = 0; i < MATRIX_SIZE; ++i) + for (size_t j = 0; j < MATRIX_SIZE; ++j) { + intptr_t r = 0; + for (size_t k = 0; k < MATRIX_SIZE; ++k) + r += A[i * MATRIX_SIZE + k] * B[k * MATRIX_SIZE + j]; + + C[i * MATRIX_SIZE + j] = r; + } +} + +int main() +{ + + intptr_t *A = calloc(MATRIX_SIZE * MATRIX_SIZE, sizeof(intptr_t)); + assert(A); + + intptr_t *B = calloc(MATRIX_SIZE * MATRIX_SIZE, sizeof(intptr_t)); + assert(B); + + intptr_t *C = calloc(MATRIX_SIZE * MATRIX_SIZE, sizeof(intptr_t)); + assert(C); + + init_matrices(A, B); + matrix_mult(A, B, C); + printf("%zu\n", hash(C)); +} -- cgit v1.2.3