Skip to content

Conversation

@Anorak52
Copy link

@Anorak52 Anorak52 commented May 7, 2020

Прошу обратить ваше внимание на то, что программа была выполнена и залита на гит еще до указаний по поводу отдельных веток, поэтому изначально выложена 26 марта в ветку с осени, которую вы закрыли.

@Anorak52 Anorak52 changed the title Бражников Е.А ЛР№1 Алгоритм Фокса Бражников Е.А ЛР№1 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. May 7, 2020
@valentina-kustikova
Copy link
Owner

@Anorak52, вычистите, пожалуйста, ваш пулл-реквест от ненужных файлов. В репозитории должны быть только файлы с расширениями sln, vcxproj, filters, cpp, h + надо убрать старые лабораторные работы. Структура директорий должна быть аналогична той, что использовалась в прошлом году.

{
cout << matrix[i * M + j] << " ";
for (int k = 0; k < (5 - log10((double)(matrix[i * M + j]))); k++)
cout << " ";

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Странный способ выравнивания при выводе, cout имеет набор стандартных свойств (width, precision и другие), с помощью которых можно выравнивать вывод.

temp = 0;
for (int k = 0; k < _blockSize; k++)
temp += Ablock[i * _blockSize + k] * Bblock[k * _blockSize + j];
Cblock[i * _blockSize + j] += static_cast<int>(temp * 100) / 100;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не понятно, зачем вам здесь такая странная конструкция static_cast<int>(temp * 100) / 100. Ничего подобного здесь не должно быть.

double tmp;
double* A = &tmp;
double* B = &tmp;
double* CSeq = &tmp;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нет смысла в такой инициализации.


A = new double[size * size];
B = new double[size * size];
CSeq = new double[size * size];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нигде не освобождается память из-под массивов.

cout << endl;
}

SequentialAlgorithm(A, B, CSeq, size);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отсутствуют замеры времени.

void SequentialAlgorithm(double* A, double* B, double* C, int size) {
for (int i = 0; i < size * size; ++i)
C[i] = 0;
Multiplication(A, B, C, size);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Anorak52, у вас в задании явно написано, что необходимо реализовать блочную схему алгоритма умножения, а это классическая схема.

@Anorak52
Copy link
Author

@valentina-kustikova Исправил замечания

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants