|
constexpr | Matrix () |
| コンストラクタ
|
|
constexpr | Matrix (const TT InitValue) |
| コンストラクタ(任意初期値版)
|
|
constexpr | Matrix (std::initializer_list< TT > InitList) |
| コンストラクタ(初期化リスト版)
|
|
constexpr | Matrix (const Matrix &right) |
| コピーコンストラクタ
|
|
constexpr auto & | operator= (const Matrix &right) |
| 行列代入演算子
|
|
constexpr auto | operator+ (void) const |
| 単項プラス演算子
|
|
constexpr auto | operator- (void) const |
| 単項マイナス演算子
|
|
constexpr auto | operator+ (const Matrix &right) const |
| 行列加算演算子 (行列同士の加算の場合)
|
|
constexpr auto | operator+ (const TT &right) const |
| 行列加算演算子 (行列+スカラーの場合)
|
|
constexpr auto | operator- (const Matrix &right) const |
| 行列減算演算子 (行列同士の減算の場合)
|
|
constexpr auto | operator- (const TT &right) const |
| 行列減算演算子 (行列-スカラーの場合)
|
|
template<size_t Nright, size_t Mright, typename Tright > |
constexpr auto | operator* (const Matrix< Nright, Mright, Tright > &right) const |
| 行列乗算演算子 (行列同士の乗算の場合)
|
|
constexpr auto | operator* (const TT &right) const |
| 行列乗算演算子 (行列*スカラーの場合)
|
|
constexpr auto | operator/ (const TT &right) const |
| 行列スカラー除算演算子 (行列/スカラーの場合)
|
|
constexpr auto & | operator+= (const Matrix &right) |
| 行列加算代入演算子 (行列=行列+行列の場合)
|
|
constexpr auto & | operator+= (const TT &right) |
| 行列加算代入演算子 (行列=行列+スカラーの場合)
|
|
constexpr auto & | operator-= (const Matrix &right) |
| 行列減算代入演算子 (行列=行列-行列の場合)
|
|
constexpr auto & | operator-= (const TT &right) |
| 行列減算代入演算子 (行列=行列-スカラーの場合)
|
|
constexpr auto | operator^ (const size_t &right) const |
| 行列べき乗演算子
|
|
constexpr auto | operator& (const Matrix &right) const |
| 行列アダマール積演算子 (行列の要素ごとの乗算)
|
|
constexpr auto | operator% (const Matrix &right) const |
| 行列アダマール除算演算子 (行列の要素ごとの除算)
|
|
constexpr TT | operator[] (size_t m) const |
| 縦ベクトル添字演算子(縦ベクトルのm番目の要素の値を返す。GetElement(1,m)と同じ意味。ただしサイズチェックは行わない。)
|
|
constexpr TT & | operator[] (size_t m) |
| 縦ベクトル添字演算子(縦ベクトルのm番目の要素に値を設定する。SetElement(1,n,val)と同じ意味。ただしサイズチェックは行わない。)
|
|
constexpr TT | operator() (size_t m, size_t n) const |
| 行列括弧演算子(行列の(m,n)要素の値を返す。GetElem(m,n)と同じ意味。ただしサイズチェックは行わない。)
|
|
constexpr TT & | operator() (size_t m, size_t n) |
| 行列括弧演算子(行列の(m,n)要素に値を設定する。SetElem(m,n,val)と同じ意味。ただしサイズチェックは行わない。)
|
|
template<typename T1 , typename... T2> |
constexpr void | Set (const T1 &u1, const T2 &... u2) |
| 行列要素に値を設定する関数
|
|
constexpr void | Set () |
|
template<typename T1 , typename... T2> |
constexpr void | Get (T1 &u1, T2 &... u2) |
| 行列要素から値を読み込む関数
|
|
constexpr void | Get () |
|
constexpr void | LoadArray (const std::array< TT, MM > &Array) |
| 1次元std::array配列を縦ベクトルとして読み込む関数
|
|
constexpr void | StoreArray (std::array< TT, MM > &Array) const |
| 縦ベクトルを1次元std::array配列に書き込む関数
|
|
constexpr void | LoadArray (const std::array< std::array< TT, NN >, MM > &Array) |
| 2次元std::array配列を読み込む関数
|
|
template<size_t VM> |
constexpr void | LoadShortVector (const Matrix< 1, VM, TT > &v) |
| 短い縦ベクトルを読み込み,且つ残りはゼロで埋める関数
|
|
constexpr void | SetElem (size_t m, size_t n, TT val) |
| 指定した要素番号に値を設定する関数 (並び順逆版)
|
|
constexpr TT | GetElem (size_t m, size_t n) const |
| 指定した要素番号の値を返す関数 (並び順逆版)
|
|
constexpr void | SetElement (size_t n, size_t m, TT val) |
| 指定した要素番号に値を設定する関数
|
|
constexpr TT | GetElement (size_t n, size_t m) const |
| 指定した要素番号の値を返す関数
|
|
template<size_t VM> |
constexpr Matrix< 1, VM, TT > | GetVerticalVec (size_t n, size_t m) |
| 指定した先頭位置から縦ベクトルを抜き出して返す関数
|
|
template<size_t HN> |
constexpr Matrix< HN, 1, TT > | GetHorizontalVec (size_t n, size_t m) |
| 指定した先頭位置から横ベクトルを抜き出して返す関数
|
|
template<size_t VM> |
constexpr void | SetVerticalVec (Matrix< 1, VM, TT > v, size_t n, size_t m) |
| 指定した先頭位置に縦ベクトルを埋め込む関数
|
|
template<size_t HN> |
constexpr void | SetHorizontalVec (Matrix< HN, 1, TT > h, size_t n, size_t m) |
| 指定した先頭位置に横ベクトルを埋め込む関数
|
|
constexpr void | FillAll (TT u) |
| すべての要素を指定した値で埋める関数
|
|
constexpr void | FillAllZero (void) |
| すべての要素を指定したゼロで埋める関数
|
|
constexpr size_t | GetWidthLength (void) const |
| 行列の幅(列数)を返す関数
|
|
constexpr size_t | GetHeightLength (void) const |
| 行列の高さ(行数)を返す関数
|
|
constexpr bool | isEnabledSIMD (void) |
| MatrixクラスがSIMD命令が有効に設定されているかを返す関数
|
|
constexpr void | real (const Matrix< NN, MM, double > &U) |
| 複素数行列要素の実数部に値をセットする関数
|
|
|
constexpr friend Matrix | operator+ (const TT &left, const Matrix &right) |
| 行列加算演算子 (スカラー+行列の場合)
|
|
constexpr friend Matrix | operator- (const TT &left, const Matrix &right) |
| 行列減算演算子 (スカラー-行列の場合)
|
|
constexpr friend Matrix | operator* (const TT &left, const Matrix &right) |
| 行列乗算演算子 (スカラー*行列の場合)
|
|
void | PrintMatSize_Macro (const Matrix &u, const std::string &varname) |
| 行列のサイズの表示 (この関数はマクロを介して呼ばれることを想定している)
|
|
void | PrintMatrix_Macro (const Matrix &u, const std::string &format, const std::string &varname) |
| 行列の要素を表示 (書式指定あり版,この関数はマクロを介して呼ばれることを想定している)
|
|
void | PrintMat_Macro (const Matrix &u, const std::string &varname) |
| 行列の要素を表示 (書式指定なし版,この関数はマクロを介して呼ばれることを想定している)
|
|
constexpr friend Matrix< MM, NN, TT > | tp (const Matrix< NN, MM, TT > &U) |
| 転置行列を返す関数
|
|
constexpr friend TT | tr (const Matrix &U) |
| 行列のトレースを返す関数
|
|
constexpr friend TT | prod (const Matrix &U) |
| 行列の対角要素の総積を返す関数
|
|
constexpr friend Matrix< 1, std::min(NN, MM), TT > | diag (const Matrix &U) |
| 行列の対角要素を縦ベクトルで返す関数
|
|
constexpr friend Matrix< 1, MM, TT > | sumrow (const Matrix &U) |
| 行方向(横方向)へ加算して縦ベクトルを出力する関数
|
|
constexpr friend Matrix< NN, 1, TT > | sumcolumn (const Matrix &U) |
| 列方向(縦方向)へ加算して横ベクトルを出力する関数
|
|
constexpr friend double | sumall (const Matrix &U) |
| 行列の全要素を加算して出力する関数
|
|
constexpr friend TT | max (const Matrix &u) |
| ベクトル要素の最大値を返す関数
|
|
constexpr friend TT | absmax (const Matrix &u) |
| ベクトル要素の絶対値の最大値を返す関数
|
|
constexpr friend size_t | maxidx (const Matrix &u) |
| ベクトル要素の最大値の要素番号を返す関数
|
|
constexpr friend size_t | absmaxidx (const Matrix &u) |
| ベクトル要素の絶対値の最大値の要素番号を返す関数
|
|
constexpr friend size_t | nonzeroele (const Matrix &U) |
| 行列の非ゼロ要素数を返す関数
|
|
constexpr friend size_t | rank (const Matrix &A) |
| 行列のランクを返す関数
|
|
constexpr friend Matrix< NN, 1, TT > | getrow (const Matrix &U, size_t m) |
| 指定した行から横ベクトルとして抽出する関数
|
|
constexpr friend void | setrow (Matrix &U, const Matrix< NN, 1, TT > &v, size_t m) |
| 指定した行を横ベクトルで上書きする関数
|
|
constexpr friend void | setrow (Matrix &U, const std::array< TT, NN > &v, size_t m) |
| 指定した行を横ベクトル(std::array)で上書きする関数
|
|
constexpr friend void | swaprow (Matrix &U, size_t m1, size_t m2) |
| 指定した行と行を入れ替える関数
|
|
constexpr friend void | fillrow (Matrix &U, TT a, size_t m, size_t n1, size_t n2) |
| m行目のn1列目からm2列目を数値aで埋める関数 (n1 <= n2 であること)
|
|
constexpr friend Matrix< 1, MM, TT > | getcolumn (const Matrix &U, size_t n) |
| 指定した列から縦ベクトルとして抽出する関数
|
|
constexpr friend void | setcolumn (Matrix &U, const Matrix< 1, MM, TT > &v, size_t n) |
| 指定した列を縦ベクトルで上書きする関数
|
|
constexpr friend void | setcolumn (Matrix &U, const std::array< TT, MM > &v, size_t n) |
| 指定した列を縦ベクトル(std::array)で上書きする関数
|
|
constexpr friend void | swapcolumn (Matrix &U, size_t n1, size_t n2) |
| 指定した列と列を入れ替える関数
|
|
constexpr friend void | fillcolumn (Matrix &U, TT a, size_t n, size_t m1, size_t m2) |
| n列目のm1行目からm2行目を数値aで埋める関数 (m1 <= m2 であること)
|
|
template<size_t VM> |
constexpr friend void | setvvector (Matrix< NN, MM, TT > &U, const Matrix< 1, VM, TT > &v, size_t n, size_t m) |
| 指定した列を縦ベクトルで指定位置に上書きする関数
|
|
template<size_t VM> |
constexpr friend void | getvvector (const Matrix< NN, MM, TT > &U, size_t n, size_t m, Matrix< 1, VM, TT > &v) |
| 指定した列から縦ベクトルを指定位置から抽出する関数
|
|
template<size_t VN> |
constexpr friend void | gethvector (const Matrix< NN, MM, TT > &U, size_t m, size_t n, Matrix< VN, 1, TT > &h) |
| 指定した行から横ベクトルを指定位置から抽出する関数
|
|
template<size_t SN, size_t SM> |
constexpr friend void | getsubmatrix (const Matrix< NN, MM, TT > &U, size_t n, size_t m, Matrix< SN, SM, TT > &Y) |
| 行列から指定位置の小行列を抽出する関数
|
|
template<size_t SN, size_t SM> |
constexpr friend void | setsubmatrix (Matrix< NN, MM, TT > &U, size_t n, size_t m, const Matrix< SN, SM, TT > &A) |
| 小行列を行列の指定位置に上書きする関数
|
|
constexpr friend Matrix | orderrow (const Matrix &U, const Matrix< 1, MM, int > &v) |
| 並び替え記憶列ベクトルvの行番号に従って,入力行列Uの行を並び替える関数
|
|
constexpr friend Matrix | reorderrow (const Matrix &U, const Matrix< 1, MM, int > &v) |
| 並び替え記憶列ベクトルvが昇順になるように,入力行列Uの行を並び替えて元に戻す関数
|
|
constexpr friend Matrix | shiftup (const Matrix &U) |
| 行列の各要素を上に1行分シフトする関数(最下段の行はゼロになる)
|
|
constexpr friend Matrix | shiftup (const Matrix &U, const size_t a) |
| 行列の各要素を上にa行分シフトする関数(最下段の行はゼロになる)
|
|
constexpr friend Matrix | shiftdown (const Matrix &U) |
| 行列の各要素を下に1行分シフトする関数(最上段の行はゼロになる)
|
|
constexpr friend Matrix | shiftdown (const Matrix &U, const size_t a) |
| 行列の各要素を下にa行分シフトする関数(最上段の行はゼロになる)
|
|
constexpr friend Matrix | shiftright (const Matrix &U) |
| 行列の各要素を右に1列分シフトする関数(最左段の列はゼロになる)
|
|
constexpr friend Matrix | shiftright (const Matrix &U, const size_t a) |
| 行列の各要素を右にa列分シフトする関数(最左段の列はゼロになる)
|
|
constexpr friend Matrix | shiftleft (const Matrix &U) |
| 行列の各要素を左に1列分シフトする関数(最右段の列はゼロになる)
|
|
constexpr friend Matrix | shiftleft (const Matrix &U, const size_t a) |
| 行列の各要素を左にa列分シフトする関数(最右段の列はゼロになる)
|
|
constexpr friend Matrix | gettriup (const Matrix &U, const size_t k) |
| 行列のk番目より上の上三角部分を返す関数(下三角はゼロになる)
|
|
constexpr friend Matrix | gettriup (const Matrix &U) |
| 行列の上三角部分を返す関数(下三角はゼロになる)
|
|
constexpr friend TT | infnorm (const Matrix &U) |
| 行列の無限大ノルムを返す関数
|
|
constexpr friend TT | euclidnorm (const Matrix< NN, MM, TT > &v) |
| ベクトルのユークリッドノルムを返す関数
|
|
constexpr friend enum LUperm | LU (const Matrix &A, Matrix &L, Matrix &U, Matrix< 1, MM, int > &v) |
| LU分解
|
|
constexpr friend void | Cholesky (const Matrix &A, Matrix &L, Matrix &D) |
| 修正コレスキー分解(LDL^T版)
|
|
constexpr friend void | Cholesky (const Matrix &A, Matrix &L) |
| 修正コレスキー分解(LL^T版)
|
|
constexpr friend void | QR (const Matrix< NN, MM, TT > &A, Matrix< MM, MM, TT > &Q, Matrix< NN, MM, TT > &R) |
| QR分解 補足:実数型のときMATLABとはQとRの符号関係が逆の場合があるが正常なQR分解であることは確認済み 補足:複素数型のときMATLABとは全く違う値が得られるが,正常なQR分解であることは確認済み
|
|
constexpr friend void | SVD (const Matrix< NN, MM, TT > &A, Matrix< MM, MM, TT > &U, Matrix< NN, MM, TT > &S, Matrix< NN, NN, TT > &V) |
| SVD特異値分解(引数で返す版) 補足:MATLABとはU,S,Vの符号関係が入れ替わっている場合があるが正常なSVDであることは確認済み
|
|
constexpr friend std::tuple< Matrix< MM, MM, TT >, Matrix< NN, MM, TT >, Matrix< NN, NN, TT > > | SVD (const Matrix< NN, MM, TT > &A) |
| SVD特異値分解(タプルで返す版) 補足:MATLABとはU,S,Vの符号関係が入れ替わっている場合があるが正常なSVDであることは確認済み
|
|
constexpr friend void | Schur (const Matrix< NN, MM, TT > &A, Matrix< NN, MM, TT > &Q, Matrix< NN, MM, TT > &U) |
| Schur分解
|
|
constexpr friend void | solve (const Matrix &A, const Matrix< 1, MM, TT > &b, Matrix< 1, NN, TT > &x) |
| Ax = bの形の線形連立1次方程式をxについて解く関数(引数で返す版)
|
|
constexpr friend Matrix< 1, MM, TT > | solve (const Matrix &A, const Matrix< 1, MM, TT > &b) |
| Ax = bの形の線形連立1次方程式をxについて解く関数(戻り値として返す版)
|
|
constexpr friend void | solve_upper_tri (const Matrix &U, const Matrix< 1, MM, TT > &b, Matrix< 1, NN, TT > &x) |
| Uは上三角行列で,Ux = bの形の線形連立1次方程式をxについて解く関数(引数で返す版)
|
|
constexpr friend TT | det (const Matrix &A) |
| 行列式の値を返す関数
|
|
constexpr friend Matrix | inv (const Matrix &A) |
| 逆行列を返す関数 (正則チェック無し)
|
|
constexpr friend Matrix | inv (const Matrix &A, size_t k) |
| 逆行列を返す関数 (正則チェック無し, 左上小行列のサイズ指定版)
|
|
constexpr friend Matrix | inv_with_check (const Matrix &A) |
| 逆行列を返す関数 (正則チェック有り)
|
|
constexpr friend void | inv_upper_tri (const Matrix &U, Matrix &Uinv) |
| 上三角行列の逆行列を返す関数
|
|
constexpr friend void | inv_upper_tri (const Matrix &U, size_t k, Matrix &Uinv) |
| 上三角行列の逆行列を返す関数(左上小行列のサイズ指定版)
|
|
constexpr friend Matrix< MM, NN, TT > | lpinv (const Matrix &A) |
| 左擬似逆行列を返す関数 (Aが縦長行列の場合)
|
|
constexpr friend Matrix< MM, NN, TT > | lpinv (const Matrix &A, size_t k) |
| 左擬似逆行列を返す関数 (Aが縦長行列の場合, 左上小行列のサイズ指定版)
|
|
constexpr friend Matrix< MM, NN, TT > | rpinv (const Matrix &A) |
| 右擬似逆行列を返す関数 (Aが横長行列の場合)
|
|
constexpr friend Matrix< MM, NN, TT > | rpinv (const Matrix &A, size_t k) |
| 右擬似逆行列を返す関数 (Aが横長行列の場合, 左上小行列のサイズ指定版)
|
|
constexpr friend Matrix | expm (const Matrix &U, size_t Order) |
| 行列指数関数 e^(U)
|
|
constexpr friend Matrix | integral_expm (const Matrix &U, const TT T, const size_t DIV, const size_t P) |
| 指数行列の数値定積分[0,T]をする関数
|
|
constexpr friend Matrix | expe (const Matrix &U) |
| 行列要素の指数関数を返す関数
|
|
constexpr friend Matrix | loge (const Matrix &U) |
| 行列要素の自然対数を返す関数
|
|
constexpr friend Matrix | abse (const Matrix &U) |
| 行列要素の絶対値を返す関数
|
|
constexpr friend Matrix | sqrte (const Matrix &U) |
| 行列要素の平方根を返す関数
|
|
constexpr friend void | sqrte (const Matrix &U, Matrix &Y) |
| 行列要素の平方根を参照で返す関数
|
|
constexpr friend Matrix | tanhe (const Matrix &U) |
| 行列要素のtanhを返す関数
|
|
constexpr friend Matrix< NN, MM, double > | reale (const Matrix &U) |
| 複素数行列要素の実数部を返す関数
|
|
constexpr friend Matrix< NN, MM, double > | image (const Matrix &U) |
| 複素数行列要素の虚数部を返す関数
|
|
constexpr friend Matrix< NN, MM, double > | mage (const Matrix &U) |
| 複素数行列要素の大きさを返す関数
|
|
constexpr friend Matrix< NN, MM, double > | arge (const Matrix &U) |
| 複素数行列要素の偏角を返す関数
|
|
constexpr friend Matrix< NN, MM, std::complex< double > > | conje (const Matrix &U) |
| 複素数行列要素の共役を返す関数
|
|
constexpr friend Matrix< MM, NN, std::complex< double > > | Htp (const Matrix< NN, MM, TT > &U) |
| エルミート転置行列を返す関数
|
|
constexpr friend Matrix< 1, NN, std::complex< double > > | eigen (const Matrix< NN, MM, TT > &U) |
| 固有値を返す関数
|
|
constexpr friend Matrix< 1, NN, std::complex< double > > | eigenvec (const Matrix< NN, MM, TT > &U) |
| 最大固有値の固有ベクトルを返す関数
|
|
template<size_t PP, size_t QQ> |
constexpr friend Matrix< NN *PP, MM *QQ, TT > | Kronecker (const Matrix< NN, MM, TT > &Ul, const Matrix< PP, QQ, TT > &Ur) |
| クロネッカー積
|
|
constexpr friend Matrix< 1, NN *MM, TT > | vec (const Matrix< NN, MM, TT > &U) |
| vec作用素(行列→縦ベクトル)
|
|