Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. fn matmul(a: var, b: var) [a.len][b[0].len]@typeOf(a[0][0]) {
  2. const T = @typeOf(a[0][0]);
  3. const M = a.len;
  4. const N = a[0].len;
  5. const P = b[0].len;
  6. if (T != @typeOf(b[0][0])) @compileError("element type mismatch");
  7. if (N != b.len) @compileError("size mismatch");
  8. var result = [_][P]T{[_]T{0} ** P} ** M;
  9. var m: u64 = 0;
  10. var n: u64 = 0;
  11. var p: u64 = 0;
  12. while (m < M) : (m += 1) {
  13. while (n < N) : (n += 1) {
  14. while (p < P) : (p += 1) {
  15. result[m][p] += a[m][n] * b[n][p];
  16. }
  17. p = 0;
  18. }
  19. n = 0;
  20. }
  21. return result;
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement