Hmm, násobení matic... Napadá mne, že pokud z paměti ty matice načtu jen jednou, a pak se veškeré počítání bude dít v cache, a ven se bude sypat jen výsledek, mohla by se náročnost snížit ještě o řád. Netuším, jak jsou ty matice velké, ale předpokládám, že budou v řádu 10x10 (kostičky JPEGu a tuším i MPEGu komprimují po 8x8, nepletu-li se).Na načtení dvou matic 10x10 z paměti a na zapsání výsledku do matice třetí budu potřebovat při 2 bytech na skalár 3x2x10x10=600 bytů čtení/zápisu, přitom na násobení těch matic spotřebuji 10 násobení a 9 sčítání na každý prvek výsledné matice, tedy 19x10x10=1900 operací. Čili nějakých 1900 operací versus 600 bytů zápisu a čtení. Pořád to nějak nevychází.Aby to jakž-takž vycházelo, musel bych používat matice alespoň 1000x1000, pak bych potřeboval na práci s pamětí 3x2x1000x1000=6 MB, zatímco pronásobení tak velkých matic by mne stálo 1900x1000x1000=1,9 GFLOP. Za sebe ale dost pochybuji, že by se používaly tak velké matice, a navíc při větších maticích dává větší smysl používat algoritmy, které mají asymptotickou složitost lepší než n^3 (dá se dostat až někam k n^2.4)... V praxi by tedy matice musely být přes 10.000x10.000, což už začíná narážet na velikost paměti. Škoda, že tu není nějaký odborník.