-
Notifications
You must be signed in to change notification settings - Fork 49
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
base: master
Are you sure you want to change the base?
Conversation
18. Нахождение минимальных значений по столбцам матрицы
Gather
gather
Final ver
FoxAlg work
@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 << " "; |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
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]; |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Anorak52, у вас в задании явно написано, что необходимо реализовать блочную схему алгоритма умножения, а это классическая схема.
@valentina-kustikova Исправил замечания |
Прошу обратить ваше внимание на то, что программа была выполнена и залита на гит еще до указаний по поводу отдельных веток, поэтому изначально выложена 26 марта в ветку с осени, которую вы закрыли.