# TRITIUM-PROVENANCE sha256=fa150e08b678777a032d553feb0ff5a804a6e70b0b4702daf495d667b6bba189 lang=python # TRITIUM-HEIGHT high=0.00 mid=0.28 low=0.72 fns=5 # 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.36 low=0.64 role=algo_mid def im2col_f(x: list[float], h: int, w: int, kh: int, kw: int, out: list[float]) -> int: oh = h - kh + 1 ow = w - kw + 1 p = 0 i = 0 while i < oh: j = 0 while j < ow: u = 0 while u < kh: v = 0 while v < kw: out[p] = x[(i + u) * w + (j + v)] p = p + 1 v = v + 1 u = u + 1 j = j + 1 i = i + 1 return p # TRITIUM-PSEUDO fn=conv2d_f #| fn conv2d_f(x, h, w, k, kh, kw, out): #| return oh * ow # TRITIUM-HEIGHT fn=conv2d_f high=0.00 mid=0.33 low=0.68 role=algo_mid def conv2d_f(x: list[float], h: int, w: int, k: list[float], kh: int, kw: int, out: list[float]) -> int: oh = h - kh + 1 ow = w - kw + 1 i = 0 while i < oh: j = 0 while j < ow: s = 0.0 u = 0 while u < kh: v = 0 while v < kw: s = s + x[(i + u) * w + (j + v)] * k[u * kw + v] v = v + 1 u = u + 1 out[i * ow + j] = s j = j + 1 i = i + 1 return oh * ow # 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=algo_mid def list_get(vals: list[int], i: int) -> int: 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.20 low=0.80 role=algo_mid def list_set(vals: list[int], i: int, v: int) -> int: vals[i] = v return v # TRITIUM-PSEUDO fn=relu #| fn relu(vals, n): #| return n # TRITIUM-HEIGHT fn=relu high=0.00 mid=0.51 low=0.49 def relu(vals: list[int], n: int) -> int: i = 0 while i < n: if list_get(vals, i) < 0: list_set(vals, i, 0) i = i + 1 return n