Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Бражников Е.А ЛР№1 Умножение плотных матриц. Элементы типа double. Блочная схема, алгоритм Фокса. #156

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

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