Facebook
From Little Bison, 3 Years ago, written in Plain Text.
This paste is a reply to Re: Untitled from Whipped Partdridge - view diff
Embed
Download Paste or View Raw
Hits: 60
  1. #include <iostream>
  2. #include <omp.h>
  3.  
  4. int main() {
  5.         int SIZE = 1000;
  6.     double start, stop;
  7.     int** A = new int* [SIZE];
  8.     int** B = new int* [SIZE];
  9.     int** C = new int* [SIZE];
  10.     int** BT = new int* [SIZE];
  11.  
  12.         start = omp_get_wtime();
  13.     for (int i = 0;i < SIZE;i++)
  14.                 A[i] = new int[SIZE];
  15.  
  16.     for (int i = 0;i < SIZE;i++)
  17.                 B[i] = new int[SIZE];
  18.  
  19.     for (int i = 0;i < SIZE;i++)
  20.                 C[i] = new int[SIZE];
  21.  
  22.     for (int i = 0;i < SIZE;i++)
  23.                 BT[i] = new int[SIZE];
  24.        
  25.     for (int i = 0;i < SIZE;i++) { //tworzenie A
  26.         for (int j = 0;j < SIZE;j++)
  27.             A[i][j] = rand() % 10;
  28.         }
  29.    
  30.     for (int i = 0;i < SIZE;i++) { //tworzenie B
  31.         for (int j = 0;j < SIZE;j++)
  32.             B[i][j] = rand() % 10;
  33.         }
  34.    
  35.     for (int i = 0;i < SIZE;i++) { //transponowanie
  36.         for (int j = 0;j < SIZE;j++)
  37.             BT[i][j] = B[j][i];
  38.         }
  39.    
  40.     for (int i = 0;i < SIZE;i++) { //tworzenie C
  41.         for (int j = 0;j < SIZE;j++)
  42.             C[i][j] = 0;
  43.         }
  44.    
  45.     for(int i = 0;i < SIZE;i++) { //mnozenie A i B
  46.         for (int j = 0;j < SIZE;j++) {
  47.             for (int k = 0;k < SIZE;k++)
  48.                 C[i][j] += A[i][k] * BT[j][k];
  49.                 }
  50.         }
  51.  
  52.     stop = omp_get_wtime();
  53.     std::cout << "Czas wykonania: " << stop - start << std::endl;
  54.     return 0;
  55. }