Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 0.88 KB | None | 0 0
  1. import std.getopt;
  2. import std.stdio;
  3.  
  4. int n = 1000, l=1000, m=1000;
  5.  
  6. void main(string[] args)
  7. {
  8.   auto A = new double [1000][m];
  9.   auto B = new double [1000][n];
  10.   auto C = new double [1000][n];
  11.  
  12.  
  13.   matrix!(typeof(A)).ini(A);
  14.   matrix!(typeof(A)).ini(B);
  15.   matrix!(typeof(A)).MatMul(A,B,C);
  16.  
  17.  
  18.   writefln("%d   %d ", C.length, C[0].length);
  19. }
  20.  
  21.  
  22. template matrix(T){
  23.   void ini(T mtx){
  24.     for(int i = 0; i <mtx.length; i++) {
  25.       for(int j = 0; j< mtx[i].length; j++) {
  26.     mtx[i][j] = i*j + 0.6*j +3.4;
  27.       }
  28.     }
  29.   }
  30.  
  31.   void print(T mtx){
  32.     for(int i = 0; i <mtx.length; i++) {
  33.       writefln("%(%8.1f %)", mtx[i]);
  34.  
  35.     }
  36.   }
  37.  
  38.  
  39.   void MatMul(T A, T B, T C){
  40.  
  41.     for(int k = 0; k < C[0].length; k++) {
  42.       for(int i = 0; i < C.length; i++) {
  43.     for(int j = 0; j < A[0].length; j++) {
  44.       C[i][k] += A[i][j] * B[j][k];
  45.     }
  46.       }
  47.     }
  48.   }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement