Форум программистов, компьютерный форум CyberForum.ru

Оптимизация умножения матриц 4x4 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти наибольшее и наименьшее значение среди элементов массива http://www.cyberforum.ru/cpp-beginners/thread1113958.html
Найти наибольшее и наименьшее значение среди элементов массива Вот начало, надо переделать что бы писало наибольшее и наименьшее значение: #include <iostream> #include <ctime> using namespace std; int main() { setlocale(LC_ALL, "rus");
C++ Составить список студентов, имеющих задолженности хотя бы по одному предмету Решить с комментариями. В списке студентов указано: - ФИО; - № группы; - оценки за сессию. 1) Составить список студентов, имеющих задолженности хотя бы по одному предмету. 2) Определить "качество" успеваемости, т.е. процент студентов сдавших все экзамены на 4 и 5. 3) Вывести номера групп в порядке убывания средней успеваемости их студентов. http://www.cyberforum.ru/cpp-beginners/thread1113949.html
Создать новый файл D из чисел, которые встречаются во всех трех файлах C++
Решить на С++, с комментариями. Спасибо:) Даны три файла: А,В,С из целых чисел. Создать новый файл D из чисел, которые встречаются во всех трех файлах.
Подсчет времени работы программы C++
пожалуйста помогите посчитать время программы с функцией.не знаю почему программа выдает что-то странное,вместо сложения,а время пишет 0. #include<iostream> #include<windows.h> using namespace std; int c(int a,int b); int main(){ int start = GetTickCount(); c(1, 3); cout << c<<endl; int end = GetTickCount();
C++ Матрицы (разъясните код) http://www.cyberforum.ru/cpp-beginners/thread1113938.html
пожалуйста разъясните код: void swap(double &a, double &b) { double temp = a; a = b; b = temp; } void M(double **A, double *B, unsigned dim) { for (unsigned k = 0; k < dim; ++k)
C++ Реализовать класс стек, хранящий в себе строки Необходимо реализовать класс стек, хранящий в себе строки. Чужие реализации не интересуют. Шаблоны использовать нельзя. Вот, что написал. Не знаю как реализовать функцию Push. С обычным целочисленным стеком проблем бы не было, но в указателях я сильно путаюсь. Помогите ) #include <iostream> #include <string.h> struct String { char s; }; подробнее

Показать сообщение отдельно
Heisenberg
44 / 45 / 3
Регистрация: 11.08.2010
Сообщений: 226

Оптимизация умножения матриц 4x4 - C++

08.03.2014, 14:32. Просмотров 1083. Ответов 4
Метки (Все метки)

Есть код - умножение двух матриц размером 4x4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void mat_multiply(float *matrix, float *a, float *b)
{
    float result[16];
    for (int c = 0; c < 4; c++)
    {
        for (int r = 0; r < 4; r++)
        {
            int index = c * 4 + r;
            float total = 0;
            for (int i = 0; i < 4; i++)
            {
                int p = i * 4 + r;
                int q = c * 4 + i;
                total += a[p] * b[q];
            }
            result[index] = total;
        }
    }
    for (int i = 0; i < 16; i++)
    {
        matrix[i] = result[i];
    }
}
Функция используется очень часто, помогите оптимизировать ее, в профилировщике в каждой функции где она используется она больше всех использует времени на выполнение, если верить профилировщику
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru