int main(int argc, char* argv[]) { static const size_t size = (1<<20); Matrix first(size); Matrix second(size); Matrix result(size); std::fill(first.begin(), first.end(),42); std::fill(second.begin(), second.end(),24); MatrixSum(&first[0], &second[0], &result[0], size); if(result[0]!=result[size/2] && result[size/2] != result[size-1]) return 1; else return 0; }
static void run(int vectorsSize, int matrixRows, int matrixCols) { int randDispersion = 10; vector<int> vectorA_ = Generator::generateVector(vectorsSize, randDispersion); vector<int> vectorB_ = Generator::generateVector(vectorsSize, randDispersion); cout << "Test vectors: \na: "; Console::printVector(vectorA_); cout << "b: "; Console::printVector(vectorB_); cout << "\n\n"; vector<vector<int> > matrixA_ = Generator::generateMatrixVector(matrixRows, matrixCols, randDispersion); vector<vector<int> > matrixB_ = Generator::generateMatrixVector(matrixRows, matrixCols, randDispersion); cout << "Test matrix: \nA:\n"; Console::printMatrix(matrixA_); cout << "\nB:\n"; Console::printMatrix(matrixB_); cout << "\n\n"; clock_t start = clock(); cout << "Task #2: \nSimple vectors product: a x b = "; Console::printVector(SimpleVectorsProduct(vectorA_, vectorB_)); cout << "\n\n"; cout << "Task #3: \nMatrix sum: A + B = \n"; Console::printMatrix(MatrixSum(matrixA_, matrixB_)); cout << "\n\n"; cout << "Task #4: \nMatrix product: A x B = \n"; Console::printMatrix(MatrixProduct(matrixA_, matrixB_)); cout << "\n\n"; cout << "Task #5: \nVectors products sum: Sum(a x b) = " << VectorsProductsSum(vectorA_, vectorB_) << "\n\n"; cout << "\n\nExec time: " << (clock() - start) / (double) (CLOCKS_PER_SEC / 1000) << " ms" << endl; }