#include "graph.h" #include "matrix.h" #include #include #include void benchmark() { const uint64_t row_length1 = 100, column_length1 = 100; uint64_t matrix1[row_length1][column_length1]; const uint64_t row_length2 = 100, column_length2 = 100; uint64_t matrix2[row_length2][column_length2]; uint64_t new_matrix[row_length1][column_length2]; double elapsed_time = 0.0; const uint64_t iterations = 10000; clock_t start_time; for (uint64_t i = 0; i < iterations; i++) { random_adjacency(row_length1, matrix1); random_adjacency(row_length2, matrix2);; start_time = clock(); matrix_multiply_basic(row_length1, column_length1, matrix1, row_length2, column_length2, matrix2, new_matrix); elapsed_time += (double)(clock() - start_time) / CLOCKS_PER_SEC; } printf("%lu iterations of matrix_multiply_basic took roughly %f seconds\n", iterations, elapsed_time); printf("An iteration of matrix_multiply_basic took on average roughly %f seconds\n", elapsed_time/iterations); } void test() { const uint64_t vertex_count = 5; uint64_t adjacency_matrix[vertex_count][vertex_count]; read_csv("csv/graph.csv", vertex_count, vertex_count, adjacency_matrix); printf("G:\n"); print_matrix(vertex_count, vertex_count, adjacency_matrix); printf("\n"); // uint64_t new_matrix1[vertex_count][vertex_count]; // // matrix_multiply_basic(vertex_count, vertex_count, adjacency_matrix, // vertex_count, vertex_count, adjacency_matrix, // new_matrix1); // // printf("G²:\n"); // print_matrix(vertex_count, vertex_count, new_matrix1); // printf("\n"); // // uint64_t new_matrix2[vertex_count][vertex_count]; // // copy(vertex_count, vertex_count, new_matrix1, new_matrix2); // // matrix_multiply_basic(vertex_count, vertex_count, new_matrix1, // vertex_count, vertex_count, adjacency_matrix, // new_matrix2); // // printf("G³:\n"); // print_matrix(vertex_count, vertex_count, new_matrix2); // printf("\n"); uint64_t distance_matrix[vertex_count][vertex_count]; calculate_distance_matrix(vertex_count, adjacency_matrix, distance_matrix); printf("distance_matrix:\n"); print_matrix(vertex_count, vertex_count, distance_matrix); printf("\n"); } int main(void) { test(); // benchmark(); }