/* TRITIUM-PROVENANCE sha256=fa150e08b678777a032d553feb0ff5a804a6e70b0b4702daf495d667b6bba189 lang=c */ /* TRITIUM-HEIGHT high=0.00 mid=0.36 low=0.64 fns=5 */ #include #include // TRITIUM-PSEUDO fn=im2col_f //| fn im2col_f(x, h, w, kh, kw, out): //| return p // TRITIUM-HEIGHT fn=im2col_f high=0.00 mid=0.39 low=0.61 int64_t im2col_f(double* x, int64_t h, int64_t w, int64_t kh, int64_t kw, double* out) { int64_t p; int64_t i; int64_t j; int64_t u; int64_t v; p = 0L; i = 0L; while (i < ((h - kh) + 1L)) { j = 0L; while (j < ((w - kw) + 1L)) { u = 0L; while (u < kh) { v = 0L; while (v < kw) { out[p] = x[(((i + u) * w) + (j + v))]; p = (p + 1L); v = (v + 1L); } u = (u + 1L); } j = (j + 1L); } i = (i + 1L); } return p; } // TRITIUM-PSEUDO fn=conv2d_f //| fn conv2d_f(x, h, w, k, kh, kw, out): //| return sum_2 * sum // TRITIUM-HEIGHT fn=conv2d_f high=0.00 mid=0.46 low=0.54 int64_t conv2d_f(double* x, int64_t h, int64_t w, double* k, int64_t kh, int64_t kw, double* out) { int64_t i; int64_t sum_2; int64_t sum; int64_t j; int64_t u; int64_t v; double x_2; sum_2 = (h - kh) + 1L; sum = (w - kw) + 1L; i = 0L; while (i < sum_2) { j = 0L; while (j < sum) { x_2 = 0.0; u = 0L; while (u < kh) { v = 0L; while (v < kw) { x_2 = x_2 + (x[(((i + u) * w) + (j + v))] * k[((u * kw) + v)]); v = (v + 1L); } u = (u + 1L); } out[((i * sum) + j)] = x_2; j = (j + 1L); } i = (i + 1L); } return sum_2 * sum; } // TRITIUM-PSEUDO fn=list_get //| fn list_get(vals, i): //| return vals[i] // TRITIUM-HEIGHT fn=list_get high=0.00 mid=0.00 low=1.00 role=leaf_charset int64_t list_get(int64_t* vals, int64_t i) { return vals[i]; } // TRITIUM-PSEUDO fn=list_set //| fn list_set(vals, i, v): //| vals[i] = v //| return v // TRITIUM-HEIGHT fn=list_set high=0.00 mid=0.33 low=0.67 role=leaf_charset int64_t list_set(int64_t* vals, int64_t i, int64_t v) { vals[i] = v; return v; } // TRITIUM-PSEUDO fn=relu //| fn relu(vals, n): //| return n // TRITIUM-HEIGHT fn=relu high=0.00 mid=0.61 low=0.39 int64_t relu(int64_t* vals, int64_t n) { int64_t i; i = 0L; while (i < n) { if (list_get(vals, i) < 0L) { list_set(vals, i, 0L); } i = (i + 1L); } return n; }