Kapitola 14
MATRIX – Bloky pro maticové a vektorové operace
Poznámky k imlementaci: První prvek matice má index(0,0), první prvek vektoru index 0.
Vektor není samostatný objekt, ale matice s jedním sloupcem. Může být i matice s jedním řádkem, které se říká řádkový vektor. Pokud se někdy v systému REXYGENvyžaduje vektor, myslí se tím sloupcový (tj. matice s jedním sloupcem).
Matice jsou mezi bloky předávány odkazem. V rámci nějakého bloku (nejčastěji MX_MAT nebo MX_VEC) se alokuje paměť pro celou matici a pak se jen předává jedno číslo, které znamená adresu této paměti. To znamená, že všechny bloky, které si matici předávají pořád pracují s jednou kopií a vzájemně si matici přepisují. Pokud je potřeba vytvořit kopii matice, je potřeba použít další blok MX_MAT a data zkopírovat (např. blokem MB_DCOPY ).
Některé bloky pracující s vektorem (např. MB_DCPY, RTOV, VTOR) nekontrolují přesné rozměry (takže např. matici 10x10 chápou jako 100 prvkový vektor). Pro tento případ je důležité vědět, že se hodnoty ukládají po sloupcích (nejdříve je v paměti první sloupec, pak druhý sloupec, atd.). Tyto bloky pak nepracují správně s odkazy na výřez matice získaný blokem MX_DSAREF.
Většina bloků má odkaz/referenci na matici jak na vstupu tak na výstupu. Obojí je odkaz na stejnou matici, takže je jedno, kam další blok připojíme. Protože ale pořadí spouštění bloků se řídí tokem signálu, připojením na výstup jiného bloku definujeme pořadí spouštění bloků a tím i pořadí vykonávání maticových operací.
MB_DASUM – Součet absolutních hodnot
MB_DAXPY – Provádí y := a*x + y pro vektory x,y
MB_DCOPY – Kopíruje vektor x do vektoru y
MB_DDOT – Skalární součin dvou vektorů
MB_DGEMM – Provádí C := alpha*op(A)*op(B) + beta*C, where op(X) = X or op(X) = X^T
MB_DGEMV – Provádí y := alpha*A*x + beta*y or y := alpha*A^T*x + beta*y
MB_DGER – Provádí A := alpha*x*y^T + A
MB_DNRM2 – Eukleidovská norma vektoru
MB_DROT – Rovinná rotace vektoru
MB_DSCAL – Násobení vektoru konstantou
MB_DSWAP – Záměna dvou vektorů
MB_DTRMM – Provádí B := alpha*op(A)*B or B := alpha*B*op(A), where op(X) = X or op(X) = X^T pro trojúhelníkovou matici A
MB_DTRMV – Provádí x := A*x or x := A^T*x pro trojúhelníkovou matici A
MB_DTRSV – Řeší jednu ze soustav rovnic A*x = B nebo A^T*x = B pro trojúhelníkovou matici A
ML_DGEBAK – Zpětná transformace k ML_DGEBAL levých nebo pravých vlastních vektorů
ML_DGEBAL – Vyvážení obecné reálné matice
ML_DGEBRD – Redukce obedné reálné matice do bidiagonální formy pomocí ortogonální transformace
ML_DGECON – Odhad převrácené hodnoty čísla podmíněnosti obecné reálné matice
ML_DGEES – Výpočet vlastních čísel, Schurovy formy a volitelně matice Schurových vektorů
ML_DGEEV – Výpočet vlastních čísel a volitelně levých a/nebo pravých vlastních vektorů
ML_DGEHRD – Redukce reálné obecné matice A na horní Hessenbergovu formu
ML_DGELQF – Výpočet LQ factorizace reálné matice A s rozměry M x N
ML_DGELSD – Výpočet řešení s minmální normou reálné lineární úlohy nejmenších čtverců
ML_DGEQRF – Výpočet QR factorizace reálné matice A s rozměry M x N
ML_DGESDD – Výpočet singulární dekompozice (SVD) reálné matice A s rozměry M x N
ML_DLACPY – Kopíruje celou nebo část matice do jiné matice
ML_DLANGE – Výpočet některé z maticových norem obecné matice
ML_DLASET – Inicializuje mimodiagonální a diagonální prvky matice na zadané hodnoty
ML_DTRSYL – Řešení reálné Sylvesterovy rovnice pro kvazitrojúhelníkové matice A a B
MX_AT – Hodnota prvku matice/vektoru
MX_ATSET – Nastavení hodnoty prvku matice/vektoru
MX_CNADD – Přičte skalár ke každému prvku matice/vektoru
MX_CNMUL – Vynásobí matici/vektor skalárem
MX_CTODPA – Discretizace spojitého modelu (A,B) do (Ad,Bd) s využitím Padéových aproximací
MX_DIM – Dimenze matice/vektoru
MX_DIMSET – Nastavení dimenze matice/vektoru
MX_DSAGET – Uložení submatice A do matice B
MX_DSAREF – Nastavení odkazu na submatici A do matice B
MX_DSASET – Uložení matice A do submatice v B
MX_DTRNSP – Transpozice obecné matice: B := alpha*A^T
MX_DTRNSQ – Transpozice čtvercové matice na místě: A := alpha*A^T
MX_FILL – Vyplnění reálné matice/vektoru
MX_MAT – Blok pro uložení dat matice
MX_RAND – Náhodně vygerenovaná matice nebo vektor
MX_REFCOPY – Kopírování vstupních odkazů na matice A a B do jejich výstupních odkazů
MX_SLFS – Ukládání a čtení matice/vektoru do souboru nebo textového retězce
MX_VEC – Blok pro uložení dat vektoru
MX_WRITE – Výpis matice/vektoru do konzole/systemého logu
RTOV – Vektorový multiplexer
SWVMR – Přepínač vektorového/maticového/odkazovacího signálu
VTOR – Vektorový demultiplexer
[Předchozí] [Na začátek] [Výše] [Další]
2023 © REX Controls s.r.o., www.rexygen.com