this post was submitted on 05 Aug 2024
263 points (94.0% liked)

Programmer Humor

19551 readers
987 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
263
Do you know who can help? (programming.dev)
submitted 3 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 3 months ago* (last edited 3 months ago) (2 children)

I've been a four-star programmer a few times. Imagine a blocked symmetric matrix where the rows and columns are indexed by triples (u,v,w). The entries are zero whenever u != u' or v != v', and because of symmetry you only store entries with w <= w'. But the range of v depends on the value of u and the range of w on the value of v. So you do

double ****mat = calloc (UMAX, sizeof(*mat));
for (int u = 0; u < UMAX; ++u) {
  mat[u] = calloc (u + 1, sizeof(**mat));
  for (int v = 0; v <= u; ++v) {
    mat[u][v] = calloc (v + 1, sizeof(***mat));
    for (int w = 0; w <= v; ++w) {
      mat[u][v][w] = calloc (w + 1, sizeof(****mat));
      for (int ww = 0; ww <= w; ++ww)
        mat[u][v][w][ww] = some_function (u, v, w, ww);
    }
  }
}

and weep a little. In reality, this gets a bit optimized by allocating a single chunk of memory and carving that up into the pointer and data arrays, so everything is reasonably close together in memory.

[–] Agent641 4 points 3 months ago
[–] [email protected] 3 points 3 months ago

My brain hurts