Форум: "Прочее";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
ВнизОбратная матрица. Метод Гаусса. Найти похожие ветки
← →
palva © (2007-06-09 17:17) [40]> static void Inv2(double M1[4][4], double M2[4][4]) передаётся весь массив вроде как
Вроде как нет:
; Inv2(A3, InvA3);
;
?live16385@16: ; EBX = B, ESI = A, EDI = &T
@10:
push edi
lea eax,dword ptr [esi+80]
push eax
call @Inv2$qpa4$dt1
add esp,8
← →
palva © (2007-06-09 17:39) [41]Нашел разницу. Delphi использует передачу параметров в регистрах, а C кладет в стек. Надо бы поставить в C __fastcall.
← →
palva © (2007-06-09 17:49) [42]> Надо бы поставить в C __fastcall.
Не помогло. Параметры стали передаваться через регистры, но работать стало даже медленнее - 328 тиков. Не пойму, в чем дело.
← →
ferr © (2007-06-09 18:01) [43]Может стоит включить режим RELEASE, если он не включен?
← →
Alx2 © (2007-06-09 21:45) [44]Так и не понимаю, чего добиваетесь с этой банальщиной. Скорострельность работы? Оно вроде бы давно и успешно на подобных задачках делается компиляторами.
Интересно погрешность было б минимизировать. Но лениво. Совсем не вижу мелодрамы "мир и матрица 4x4". :)
← →
@!!ex_ (2007-06-09 21:50) [45]> [44] Alx2 © (09.06.07 21:45)
Ну так и какой из приведенных вариантов на ваш взгляд лучше?
← →
Alx2 © (2007-06-09 22:00) [46]>@!!ex_ (09.06.07 21:50) [45]
Насчет погрешности? Думать надо. Не готов сказать сейчас.
Насчет скорости - я через Maple прогоняю формулы с минимизацией на промежуточные вычисления и потом на Intel C++ 8.0 с SSE2 - оптимизацией получаю шустрые вещи. Если сходимость есть - забиваю. Иначе - ад. :)
← →
palva © (2007-06-09 22:21) [47]> Так и не понимаю, чего добиваетесь с этой банальщиной.
Думаем, как уважить просьбу автора - сделать быстрее.
← →
@!!ex_ (2007-06-09 22:24) [48]Кстати, я хочу заметить, что я - олень, в лучшем смысле этого слова...
В своей процедуре выполняю преобразования...
И оставляю матрицу в старом виде...
ТОт у меня нифига не получаются правильные теневые объемы, если объект повернут... :))))))))
← →
Alx2 © (2007-06-10 11:16) [49]Тоже увлекся :)
Получилось инвертировать за 500 тиков на P4 HT
← →
Alx2 © (2007-06-10 11:30) [50]Ого! Inv4 идет за 376 тиков.
А код от Maple за 500 тиков.
Да, есть смысл думать :)
← →
Alx2 © (2007-06-10 11:36) [51]Прогнал код через встроенный в компилятор профилировщик, потом попросил его оптимизировать на этой базе.
Inv4 получился всего 220 тиков. Класс!
← →
palva © (2007-06-10 23:17) [52]Alx2 © (10.06.07 11:36) [51]
А какой это компилятор и какой был процессор?
← →
Alx2 © (2007-06-11 02:44) [53]>palva © (10.06.07 23:17)
процессор P4 HT 2800 Mhz
Компилятор Intel C++ 8.0 с опциями /G7 /QxW /O3 /Qprof_use с первоначальной подгонкой опцией /Qprof_gen
← →
Jeer © (2007-06-13 18:34) [54]
> Alx2 © (10.06.07 11:36) [51]
> Inv4 получился всего 220 тиков. Класс!
Действительно - "умненький" icl. Но это уже тяжелое орудие:))
На P4 2.8GHz без HT посредством IC v.5 получаем 450 тактов CPU.
D7 устойчиво дает 850 тактов.
Кстати, FreePascal v.2.0.0 хуже - 950 тактов
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.069 c