Greetings to everyone! Name's Benjamin, I'm 23 years old, and I am somewhat of a UNIX enthusiast. I adore the vintage look of CLI terminals from yesteryear, and sometimes wish our computers were still CLI-based. Sometimes.

I am autistic, queer and enjoying every single second of it! I like developing web applications, casual programming, reading, making music (in my head), listening to music (usually not in my head) and hiking. I wish we could all live in a cartoon world.

I am autistic, queer and enjoying every single second of it! I like developing web applications, casual programming, reading, making music (in my head), listening to music (usually not in my head) and hiking. I wish we could all live in a cartoon world.

Pronouns | he/they |
---|---|

Gender | Non-binary |

Favourite band | Radiohead |

Partner | ~fanoplanes |

Relatable cartoon character | SpongeBob SquarePants |

Favourite colour | Nebula Blue |

Language | English |

Religion | (none) |

Here is the list of books I am currently reading, you may also consider them recommendations.

Selected images that have a sentimental value to me, because they represent my innate desires or reflect my values, or I just like looking at them. You can click on 'Reshuffle' to get new images.

Some of the code I have been writing and working on, you can find more on my GitHub.

Source: Benko11/matrices (matrix.h)`#include <stdlib.h>`

`#include <string.h>`

`#include <stdio.h>`

`#include <stdbool.h>`

`#ifndef MATRIX_H`

`#define MATRIX_H`

`typedef struct {`

`int cols;`

`int rows;`

`double *values;`

`} matrix;`

`void matrix_init(int rows, int cols, matrix *matrix) {`

`matrix->cols = cols;`

`matrix->rows = rows;`

`matrix->values = (double *) malloc(rows * cols * sizeof(double));`

`}`

`void matrix_assign(int row, int col, double value, matrix *matrix) {`

`double *values = matrix->values;`

`values += row * matrix->cols + col;`

`*values = value;`

`}`

`int matrix_size(matrix *matrix) {`

`return matrix->cols * matrix->rows;`

`}`

`void matrix_mass_assign(double *values, int length, matrix *matrix) {`

`double *matrixValues = matrix->values;`

`int actualLength = length;`

`if (length > matrix_size(matrix)) {`

`actualLength = matrix_size(matrix);`

`}`

`for (int i = 0; i < actualLength; i++) {`

`*matrixValues++ = *values++;`

`}`

`}`

`double matrix_get(int row, int col, matrix *matrix) {`

`double *values = matrix->values;`

`return *(values + row * matrix->cols + col);`

`}`

`double *matrix_get_row(int row, matrix *matrix) {`

`double *found_row = (double *) malloc(matrix->cols * sizeof(double));`

`double *aux = found_row;`

`for (int i = 0; i < matrix->cols; i++) {`

`*aux = matrix_get(row, i, matrix);`

`aux++;`

`}`

`return found_row;`

`}`

`double *matrix_get_col(int col, matrix *matrix) {`

`double *found_col = (double *) malloc(matrix->rows * sizeof(double));`

`double *aux = found_col;`

`for (int i = 0; i < matrix->rows; i++) {`

`*aux = matrix_get(i, col, matrix);`

`aux++;`

`}`

`return found_col;`

`}`

`void matrix_print(matrix *matrix) {`

`double *values = matrix->values;`

`for (int i = 0; i < matrix->rows; i++) {`

`printf("[");`

`for (int j = 0; j < matrix->cols; j++) {`

`printf("%.1f", *values);`

`values++;`

`if (j != matrix->cols - 1) printf(", ");`

`}`

`puts("]");`

`}`

`}`

`matrix matrix_transpose(matrix *original) {`

`matrix out, *matrix_clone;`

`matrix_clone = &out;`

`matrix_init(original->cols, original->rows, matrix_clone);`

`for (int i = 0; i < original->cols; i++) {`

`for (int j = 0; j < original->rows; j++) {`

`matrix_assign(i, j, matrix_get(j, i, original), matrix_clone);`

`}`

`}`

`return *matrix_clone;`

`}`

`bool matrix_is_square(matrix *matrix) {`

`return matrix->cols == matrix->rows;`

`}`

`double *matrix_trace(matrix *matrix) {`

`if (!matrix_is_square(matrix)) return NULL;`

`double *res;`

`*res = 0;`

`for (int i = 0; i < matrix->cols; i++) {`

`printf("%f\n", matrix_get(i, i, matrix));`

`*res += matrix_get(i, i, matrix);`

`}`

`return res;`

`}`

`void matrix_free(matrix *matrix) {`

`free(matrix->values);`

`}`

`#endif`