![]() |
ARCS6 AR6-REV.24062600
|
ARCS-Matrix 行列演算クラス [詳解]
#include <ARCS6/lib/ArcsMatrix.hh>
公開メンバ関数 | |
constexpr | ArcsMat (void) |
コンストラクタ | |
template<typename R > | |
constexpr | ArcsMat (const R InitValue) |
コンストラクタ(任意初期値版) | |
template<typename R > | |
constexpr | ArcsMat (const std::initializer_list< R > InitList) |
コンストラクタ(初期化リスト版) | |
constexpr | ArcsMat (const ArcsMat< M, N, T > &right) |
コピーコンストラクタ | |
template<size_t P, size_t Q, typename R = double> | |
constexpr | ArcsMat (const ArcsMat< P, Q, R > &right) |
コピーコンストラクタ(サイズもしくは型が違う行列の場合の定義) | |
constexpr | ArcsMat (ArcsMat< M, N, T > &&right) |
ムーブコンストラクタ | |
template<size_t P, size_t Q, typename R = double> | |
constexpr | ArcsMat (ArcsMat< M, N, T > &&right) |
ムーブコンストラクタ(サイズと型が違う行列の場合, エラー検出用の定義) | |
constexpr T | operator[] (const size_t m) const |
縦ベクトル添字演算子(縦ベクトルのm番目の要素の値を返す。x = A(m,1)と同じ意味) 備考:ArcsMatは縦ベクトル優先なので、横ベクトル添字演算子は無い。 | |
constexpr T & | operator[] (const size_t m) |
縦ベクトル添字演算子(縦ベクトルのm番目の要素に値を設定する。A(m,1) = xと同じ意味) 備考:ArcsMatは縦ベクトル優先なので、横ベクトル添字演算子は無い。 | |
constexpr T | operator() (const size_t m, const size_t n) const |
行列括弧演算子(行列の(m,n)要素の値を返す。サイズチェック無し版) | |
constexpr T & | operator() (const size_t m, const size_t n) |
行列括弧演算子(行列の(m,n)要素に値を設定する。サイズチェック無し版) | |
constexpr T | operator() (const size_t m, const size_t n, const bool chk) const |
行列括弧演算子(行列の(m,n)要素の値を返す。サイズチェック可能版) | |
constexpr T & | operator() (const size_t m, const size_t n, const bool chk) |
行列括弧演算子(行列の(m,n)要素に値を設定する。サイズチェック可能版) | |
constexpr ArcsMat< M, N, T > & | operator= (const ArcsMat< M, N, T > &right) |
行列代入演算子(サイズと型が同じ同士の行列の場合) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr ArcsMat< M, N, T > & | operator= (const ArcsMat< P, Q, R > &right) |
行列代入演算子(サイズと型が違う行列の場合, エラー検出用の定義) | |
constexpr ArcsMat< M, N, T > | operator+ (void) const |
単項プラス演算子 | |
constexpr ArcsMat< M, N, T > | operator- (void) const |
単項マイナス演算子 | |
template<size_t P, size_t Q, typename R = double> | |
constexpr ArcsMat< M, N, T > | operator+ (const ArcsMat< P, Q, R > &right) const |
行列加算演算子(行列=行列+行列の場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > | operator+ (const R &right) const |
行列加算演算子(行列=行列+スカラーの場合) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr ArcsMat< M, N, T > | operator- (const ArcsMat< P, Q, R > &right) const |
行列減算演算子(行列=行列-行列の場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > | operator- (const R &right) const |
行列減算演算子(行列=行列-スカラーの場合) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr ArcsMat< M, Q, T > | operator* (const ArcsMat< P, Q, R > &right) const |
行列乗算演算子(行列=行列*行列の場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > | operator* (const R &right) const |
行列乗算演算子(行列=行列*スカラーの場合) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | operator/ (const ArcsMat< P, Q, R > &right) const |
行列除算演算子(行列=行列/行列の場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > | operator/ (const R &right) const |
行列除算演算子(行列=行列/スカラーの場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > & | operator+= (const R &right) |
行列加算代入演算子(行列=行列+行列、行列=行列+スカラーの場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > & | operator-= (const R &right) |
行列減算代入演算子(行列=行列-行列、行列=行列-スカラーの場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > & | operator*= (const R &right) |
行列乗算代入演算子(行列=行列*行列、行列=行列*スカラーの場合) | |
template<typename R > | |
constexpr ArcsMat< M, N, T > & | operator/= (const R &right) |
行列除算代入演算子(行列=行列/スカラーの場合) | |
constexpr ArcsMat< M, N, T > | operator^ (const int &right) const |
行列べき乗演算子(正方行列のべき乗) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr ArcsMat< M, N, T > | operator& (const ArcsMat< P, Q, R > &right) const |
行列アダマール積演算子(行列の要素ごとの乗算) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr ArcsMat< M, N, T > | operator% (const ArcsMat< P, Q, R > &right) const |
行列アダマール除算演算子 (行列の要素ごとの除算) | |
constexpr void | DispAddress (void) const |
行列要素の各メモリアドレスを表示する関数 | |
constexpr void | Disp (const std::string &format) const |
行列の要素を表示 | |
constexpr void | Disp (void) const |
行列の要素を表示(表示形式自動版) | |
constexpr void | DispSize (void) const |
行列のサイズを表示 | |
constexpr size_t | GetHeight (void) const |
行列の高さ(行数)を返す関数 | |
constexpr size_t | GetWidth (void) const |
行列の幅(列数)を返す関数 | |
constexpr size_t | GetNumOfNonZero (const T eps=ArcsMat< M, N, T >::EPSILON) const |
非ゼロ要素の数を返す関数 | |
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 () |
template<typename R > | |
constexpr void | FillAll (const R &u) |
すべての要素を指定した値で埋める関数 | |
constexpr void | FillAllZero (void) |
すべての要素を指定したゼロで埋める関数 | |
template<size_t P, typename R = double> | |
constexpr void | LoadArray (const std::array< R, P > &Array) |
1次元std::array配列を縦ベクトルとして読み込む関数 | |
template<size_t P, typename R = double> | |
constexpr void | StoreArray (std::array< R, P > &Array) const |
縦ベクトルを1次元std::array配列に書き込む関数 | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | LoadArray (const std::array< std::array< R, P >, Q > &Array) |
2次元std::array配列を行列として読み込む関数 | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | StoreArray (std::array< std::array< R, P >, Q > &Array) const |
行列を2次元std::array配列に書き込む関数 | |
constexpr ArcsMatrix::MatStatus | GetStatus (void) const |
行列の状態をそのまま返す関数 | |
constexpr std::array< std::array< T, M >, N > | GetData (void) const |
std:arrayの2次元配列データをそのまま返す関数 | |
constexpr const std::array< std::array< T, M >, N > & | ReadOnlyRef (void) const |
std:arrayの2次元配列データの読み込み専用の参照を返す関数 | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | GetVerticalVec (ArcsMat< P, Q, R > &v, const size_t m, const size_t n) const |
指定した先頭位置から縦ベクトルを抜き出して返す関数 (引数渡し版) | |
template<size_t P> | |
constexpr ArcsMat< P, 1, T > | GetVerticalVec (const size_t m, const size_t n) const |
指定した先頭位置から縦ベクトルを抜き出して返す関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | GetHorizontalVec (ArcsMat< P, Q, R > &w, const size_t m, const size_t n) const |
指定した先頭位置から横ベクトルを抜き出して返す関数 (引数渡し版) | |
template<size_t Q> | |
constexpr ArcsMat< 1, Q, T > | GetHorizontalVec (const size_t m, const size_t n) const |
指定した先頭位置から横ベクトルを抜き出して返す関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | SetVerticalVec (const ArcsMat< P, Q, R > &v, const size_t m, const size_t n) |
指定した先頭位置に縦ベクトルを埋め込む関数 | |
template<size_t P, size_t Q, typename R = double> | |
constexpr void | SetHorizontalVec (const ArcsMat< P, Q, R > &w, size_t m, size_t n) |
指定した先頭位置に横ベクトルを埋め込む関数 | |
constexpr void | Zeroing (const T eps=ArcsMat< M, N, T >::EPSILON) |
ゼロに近い要素を完全にゼロにする関数 | |
constexpr void | ZeroingTriLo (const T eps=ArcsMat< M, N, T >::EPSILON) |
下三角(主対角除く)に限定して、ゼロに近い要素を完全にゼロにする関数 | |
constexpr ArcsMat< N, M, T > | operator~ (void) const |
転置演算子 | |
静的公開メンバ関数 | |
static constexpr ArcsMat< M, N, T > | zeros (void) |
m行n列の零行列を返す関数 | |
static constexpr ArcsMat< M, N, T > | ones (void) |
m行n列の要素がすべて1の行列を返す関数 | |
static constexpr ArcsMat< M, N, T > | eye (void) |
n行n列の単位行列を返す関数 | |
static constexpr ArcsMat< M, N, T > | ramp (void) |
単調増加の縦ベクトルを返す関数 | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | getcolumn (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t n) |
指定した列から縦ベクトルとして抽出する関数 (引数渡し版) | |
static constexpr ArcsMat< M, 1, T > | getcolumn (const ArcsMat< M, N, T > &U, const size_t n) |
指定した列から縦ベクトルとして抽出する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | setcolumn (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t n) |
指定した列を縦ベクトルで上書きする関数 (引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M, N, T > | setcolumn (const ArcsMat< P, Q, R > &u, const size_t n, const ArcsMat< M, N, T > &U) |
指定した列を縦ベクトルで上書きする関数 (戻り値渡し版) | |
static constexpr void | swapcolumn (ArcsMat< M, N, T > &UY, const size_t n1, const size_t n2) |
指定した列と列を入れ替える関数 (引数渡し版) | |
static constexpr ArcsMat< M, N, T > | swapcolumn (const size_t n1, const size_t n2, const ArcsMat< M, N, T > &U) |
指定した列と列を入れ替える関数 (戻り値渡し版) | |
template<typename R = double> | |
static constexpr void | fillcolumn (ArcsMat< M, N, T > &UY, const R a, const size_t n, const size_t m1, const size_t m2) |
n列目のm1行目からm2行目までを数値aで埋める関数 (m1 <= m2 であること) (引数渡し版) | |
template<typename R = double> | |
static constexpr ArcsMat< M, N, T > | fillcolumn (const R a, const size_t n, const size_t m1, const size_t m2, const ArcsMat< M, N, T > &U) |
n列目のm1行目からm2行目までを数値aで埋める関数 (n1 <= n2 であること) (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = size_t> | |
static constexpr ArcsMat< M, N, T > | ordercolumn (const ArcsMat< M, N, T > &U, const ArcsMat< P, Q, R > &u) |
並び替え指定横ベクトルuが昇順になるように,行列Uの列を並び替える関数 (戻り値渡し版のみ) | |
template<size_t P, size_t Q, typename R = size_t> | |
static constexpr void | ordercolumn_and_vec (ArcsMat< M, N, T > &UY, ArcsMat< P, Q, R > &uy) |
並び替え指定横ベクトルuが昇順になるように,行列Uの列と指定横ベクトルの両方を並び替える関数 (引数渡し版のみ) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | sumcolumn (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y) |
各列の総和を計算して横ベクトルを出力する関数 (引数渡し版) | |
static constexpr ArcsMat< 1, N, T > | sumcolumn (const ArcsMat< M, N, T > &U) |
各列の総和を計算して横ベクトルを出力する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | getrow (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t m) |
指定した行から横ベクトルとして抽出する関数 (引数渡し版) | |
static constexpr ArcsMat< 1, N, T > | getrow (const ArcsMat< M, N, T > &U, const size_t m) |
指定した行から横ベクトルとして抽出する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | setrow (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t m) |
指定した行を横ベクトルで上書きする関数 (引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M, N, T > | setrow (const ArcsMat< P, Q, R > &u, const size_t m, const ArcsMat< M, N, T > &U) |
指定した行を横ベクトルで上書きする関数 (戻り値渡し版) | |
static constexpr void | swaprow (ArcsMat< M, N, T > &UY, const size_t m1, const size_t m2) |
指定した行と行を入れ替える関数 (引数渡し版) | |
static constexpr ArcsMat< M, N, T > | swaprow (const size_t m1, const size_t m2, const ArcsMat< M, N, T > &U) |
指定した行と行を入れ替える関数 (戻り値渡し版) | |
template<typename R = double> | |
static constexpr void | fillrow (ArcsMat< M, N, T > &UY, const R a, const size_t m, const size_t n1, const size_t n2) |
m行目のn1列目からn2列目までを数値aで埋める関数 (n1 <= n2 であること) (引数渡し版) | |
template<typename R = double> | |
static constexpr ArcsMat< M, N, T > | fillrow (const R a, const size_t m, const size_t n1, const size_t n2, const ArcsMat< M, N, T > &U) |
m行目のn1列目からn2列目までを数値aで埋める関数 (n1 <= n2 であること) (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = size_t> | |
static constexpr ArcsMat< M, N, T > | orderrow (const ArcsMat< M, N, T > &U, const ArcsMat< P, Q, R > &u) |
並び替え指定縦ベクトルuが昇順になるように,行列Uの行を並び替える関数 (戻り値渡し版のみ) | |
template<size_t P, size_t Q, typename R = size_t> | |
static constexpr void | orderrow_and_vec (ArcsMat< M, N, T > &UY, ArcsMat< P, Q, R > &uy) |
並び替え指定縦ベクトルuが昇順になるように,行列Uの行と指定縦ベクトルの両方を並び替える関数 (引数渡し版のみ) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | sumrow (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y) |
各行の総和を計算して縦ベクトルを出力する関数 (引数渡し版) | |
static constexpr ArcsMat< M, 1, T > | sumrow (const ArcsMat< M, N, T > &U) |
各行の総和を計算して縦ベクトルを出力する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | getvvector (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t m, const size_t n) |
指定位置から縦ベクトルを抽出する関数 (引数渡し版) | |
template<size_t P = M> | |
static constexpr ArcsMat< P, 1, T > | getvvector (const ArcsMat< M, N, T > &U, const size_t m, const size_t n) |
指定位置から縦ベクトルを抽出する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | setvvector (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t m, const size_t n) |
指定位置に縦ベクトルで上書きする関数 (引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M, N, T > | setvvector (const ArcsMat< P, Q, R > &u, const size_t m, const size_t n, const ArcsMat< M, N, T > &U) |
指定位置に縦ベクトルで上書きする関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | gethvector (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t m, const size_t n) |
指定位置から横ベクトルを抽出する関数 (引数渡し版) | |
template<size_t Q> | |
static constexpr ArcsMat< 1, Q, T > | gethvector (const ArcsMat< M, N, T > &U, const size_t m, const size_t n) |
指定位置から横ベクトルを抽出する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | sethvector (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t m, const size_t n) |
指定位置に横ベクトルで上書きする関数 (引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M, N, T > | sethvector (const ArcsMat< P, Q, R > &u, const size_t m, const size_t n, const ArcsMat< M, N, T > &U) |
指定位置に横ベクトルで上書きする関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | getsubmatrix (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m, const size_t n) |
行列から指定位置の小行列を抽出する関数 (引数渡し版) | |
template<size_t P, size_t Q> | |
static constexpr ArcsMat< P, Q, T > | getsubmatrix (const ArcsMat< M, N, T > &U, const size_t m, const size_t n) |
行列から指定位置の小行列を抽出する関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | setsubmatrix (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &U, const size_t m, const size_t n) |
小行列を行列の指定位置に上書きする関数 (引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M, N, T > | setsubmatrix (const ArcsMat< P, Q, R > &Us, const size_t m, const size_t n, const ArcsMat< M, N, T > &U) |
小行列を行列の指定位置に上書きする関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | copymatrix (const ArcsMat< M, N, T > &U, const size_t m1, const size_t m2, const size_t n1, const size_t n2, ArcsMat< P, Q, R > &Y, const size_t my, const size_t ny) |
行列Uから別の行列Yへ位置とサイズを指定してコピーする関数(引数渡し版のみ) 等価なMATLABコード: Y(my:my+(m2-m1), ny:ny+(n2-n1)) = U(m1:m2, n1:n2) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | shiftup (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m=1) |
行列の各要素を上にm行分シフトする関数(下段の行はゼロになる)(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | shiftup (const ArcsMat< M, N, T > &U, const size_t m=1) |
行列の各要素を上にm行分シフトする関数(下段の行はゼロになる)(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | shiftdown (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m=1) |
行列の各要素を下にm行分シフトする関数(上段の行はゼロになる)(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | shiftdown (const ArcsMat< M, N, T > &U, const size_t m=1) |
行列の各要素を下にm行分シフトする関数(上段の行はゼロになる)(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | shiftleft (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t n=1) |
行列の各要素を左にn列分シフトする関数(右段の列はゼロになる)(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | shiftleft (const ArcsMat< M, N, T > &U, const size_t n=1) |
行列の各要素を左にn列分シフトする関数(右段の列はゼロになる)(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | shiftright (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t n=1) |
行列の各要素を右にn列分シフトする関数(左段の列はゼロになる)(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | shiftright (const ArcsMat< M, N, T > &U, const size_t n=1) |
行列の各要素を右にn列分シフトする関数(左段の列はゼロになる)(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double, size_t D, size_t E, typename F = double> | |
static constexpr void | concatv (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2, ArcsMat< D, E, F > &Y) |
行列を縦に連結する関数(引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M+P, N, T > | concatv (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2) |
行列を縦に連結する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double, size_t D, size_t E, typename F = double> | |
static constexpr void | concath (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2, ArcsMat< D, E, F > &Y) |
行列を横に連結する関数(引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr ArcsMat< M, N+Q, T > | concath (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2) |
行列を横に連結する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double, size_t D, size_t E, typename F = double, size_t G, size_t H, typename L = double, size_t V, size_t W, typename X = double> | |
static constexpr void | concat4 (const ArcsMat< M, N, T > &U11, const ArcsMat< P, Q, R > &U12, const ArcsMat< D, E, F > &U21, const ArcsMat< G, H, L > &U22, ArcsMat< V, W, X > &Y) |
4つの行列を1つに連結する関数(引数渡し版) | |
template<size_t P, size_t Q, typename R = double, size_t D, size_t E, typename F = double, size_t G, size_t H, typename L = double> | |
static constexpr ArcsMat< M+D, N+Q, T > | concat4 (const ArcsMat< M, N, T > &U11, const ArcsMat< P, Q, R > &U12, const ArcsMat< D, E, F > &U21, const ArcsMat< G, H, L > &U22) |
4つの行列を1つに連結する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | diag (const ArcsMat< M, N, T > &u, ArcsMat< P, Q, R > &Y) |
縦ベクトルの各要素を対角要素に持つ正方行列を生成する関数(引数渡し版) | |
static constexpr ArcsMat< M, M, T > | diag (const ArcsMat< M, N, T > &u) |
縦ベクトルの各要素を対角要素に持つ正方行列を生成する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double, size_t L = std::min(M,N)> | |
static constexpr void | getdiag (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const ssize_t k=0) |
行列の対角要素を縦ベクトルとして取得する関数(引数渡し版) | |
template<size_t L = std::min(M,N)> | |
static constexpr ArcsMat< L, 1, T > | getdiag (const ArcsMat< M, N, T > &U, const ssize_t k=0) |
行列の対角要素を縦ベクトルとして取得する関数(戻り値渡し版) | |
static constexpr T | trace (const ArcsMat< M, N, T > &U) |
行列のトレースを返す関数(戻り値渡し版のみ) | |
template<size_t L = std::min(M,N)> | |
static constexpr T | multdiag (const ArcsMat< M, N, T > &U) |
行列の対角要素の総積を返す関数(戻り値渡し版のみ) | |
static constexpr std::tuple< size_t, size_t > | maxidx (const ArcsMat< M, N, T > &U) |
行列要素の最大値の要素番号を返す関数(タプル返し版のみ) | |
static constexpr T | max (const ArcsMat< M, N, T > &U) |
行列要素の最大値を返す関数(戻り値渡し版のみ) | |
static constexpr std::tuple< size_t, size_t > | minidx (const ArcsMat< M, N, T > &U) |
行列要素の最小値の要素番号を返す関数(タプル返し版のみ) | |
static constexpr T | min (const ArcsMat< M, N, T > &U) |
行列要素の最小値を返す関数(戻り値渡し版のみ) | |
static constexpr T | sum (const ArcsMat< M, N, T > &U) |
行列要素の総和を返す関数(戻り値渡し版のみ) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | exp (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の指数関数を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | exp (const ArcsMat< M, N, T > &U) |
行列要素の指数関数を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | log (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の対数関数(底e版)を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | log (const ArcsMat< M, N, T > &U) |
行列要素の対数関数(底e版)を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | log10 (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の対数関数(底10版)を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | log10 (const ArcsMat< M, N, T > &U) |
行列要素の対数関数(底10版)を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | sin (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の正弦関数を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | sin (const ArcsMat< M, N, T > &U) |
行列要素の正弦関数を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | cos (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の余弦関数を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | cos (const ArcsMat< M, N, T > &U) |
行列要素の余弦を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | tan (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の正接関数を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | tan (const ArcsMat< M, N, T > &U) |
行列要素の正接関数を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | tanh (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の双曲線正接関数を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | tanh (const ArcsMat< M, N, T > &U) |
行列要素の双曲線正接関数を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | sqrt (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の平方根を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | sqrt (const ArcsMat< M, N, T > &U) |
行列要素の平方根を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | sign (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の符号関数を計算する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | sign (const ArcsMat< M, N, T > &U) |
行列要素の符号関数を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | abs (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
行列要素の絶対値を計算する関数(引数渡し版) | |
template<typename R = double> | |
static constexpr ArcsMat< M, N, R > | abs (const ArcsMat< M, N, T > &U) |
行列要素の絶対値を計算する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | arg (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
複素数行列要素の偏角を計算する関数(引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | real (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
複素数行列要素の実数部を取得する関数(引数渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | imag (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
複素数行列要素の虚数部を取得する関数(引数渡し版) | |
template<size_t P, size_t Q, typename R = std::complex<double>> | |
static constexpr void | conj (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
複素数行列要素の複素共役を取得する関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | conj (const ArcsMat< M, N, T > &U) |
複素数行列要素の複素共役を取得する関数(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | tp (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
転置行列を返す関数 (引数渡し版) | |
static constexpr ArcsMat< N, M, T > | tp (const ArcsMat< M, N, T > &U) |
転置行列を返す関数 (戻り値渡し版) | |
template<size_t P, size_t Q, typename R = std::complex<double>> | |
static constexpr void | Htp (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
エルミート転置行列を返す関数 (引数渡し版) | |
static constexpr ArcsMat< N, M, T > | Htp (const ArcsMat< M, N, T > &U) |
エルミート転置行列を返す関数 (戻り値渡し版) | |
template<ArcsMatrix::NormType NRM = ArcsMatrix::NormType::AMT_L2, typename R = double> | |
static constexpr R | norm (const ArcsMat< M, N, T > &U) |
行列のノルムを返す関数(戻り値渡し版のみ) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | gettriup (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t n=1) |
n列目を左端として右上の上三角部分のみを返す関数(下三角部分はゼロ)(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | gettriup (const ArcsMat< M, N, T > &U, const size_t n=1) |
n列目を左端として右上の上三角部分のみを返す関数(下三角部分はゼロ)(戻り値渡し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | gettrilo (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m=1) |
m行目を上端として左下の下三角部分のみを返す関数(上三角部分はゼロ)(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | gettrilo (const ArcsMat< M, N, T > &U, const size_t m=1) |
m行目を上端として左下の下三角部分のみを返す関数(上三角部分はゼロ)(戻り値渡し版) | |
template<size_t ML, size_t NL, typename TL = double, size_t MU, size_t NU, typename TU = double, size_t MP, size_t NP, typename TP = double> | |
static constexpr void | LUP (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &L, ArcsMat< MU, NU, TU > &U, ArcsMat< MP, NP, TP > &P) |
LU分解の結果と置換行列を返す関数(引数渡し版) | |
static constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T >, ArcsMat< M, N, T > > | LUP (const ArcsMat< M, N, T > &A) |
LU分解の結果と置換行列を返す関数(タプル返し版) | |
template<size_t ML, size_t NL, typename TL = double, size_t MU, size_t NU, typename TU = double> | |
static constexpr void | LU (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &L, ArcsMat< MU, NU, TU > &U) |
LU分解の結果のみ返す関数(引数渡し版) | |
static constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | LU (const ArcsMat< M, N, T > &A) |
LU分解の結果のみ返す関数(タプル返し版) | |
static constexpr T | det (const ArcsMat< M, N, T > &A) |
行列式の値を返す関数(戻り値返し版のみ) | |
template<size_t MH, size_t NH, typename TH = double> | |
static constexpr void | Householder (const ArcsMat< M, N, T > &v, ArcsMat< MH, NH, TH > &H, const size_t k=1) |
Householder行列を生成する関数(引数渡し版) | |
static constexpr ArcsMat< M, M, T > | Householder (const ArcsMat< M, N, T > &v, const size_t k=1) |
Householder行列を生成する関数(戻り値返し版) | |
template<size_t MQ, size_t NQ, typename TQ = double, size_t MR, size_t NR, typename TR = double> | |
static constexpr void | QR (const ArcsMat< M, N, T > &A, ArcsMat< MQ, NQ, TQ > &Q, ArcsMat< MR, NR, TR > &R) |
QR分解(引数渡し版) 注意:複素数で縦長行列の場合ではMATLABとは異なる解を出力する | |
static constexpr std::tuple< ArcsMat< M, M, T >, ArcsMat< M, N, T > > | QR (const ArcsMat< M, N, T > &A) |
QR分解(タプル返し版) | |
template<size_t LoopMax = 100*std::max(M,N), size_t MU, size_t NU, typename TU = double, size_t MS, size_t NS, typename TS = double, size_t MV, size_t NV, typename TV = double> | |
static constexpr void | SVD (const ArcsMat< M, N, T > &A, ArcsMat< MU, NU, TU > &U, ArcsMat< MS, NS, TS > &S, ArcsMat< MV, NV, TV > &V) |
SVD特異値分解(引数渡し版) 注意:複素数で非正方行列の場合ではMATLABとは異なる解を出力する | |
static constexpr std::tuple< ArcsMat< M, M, T >, ArcsMat< M, N, T >, ArcsMat< N, N, T > > | SVD (const ArcsMat< M, N, T > &A) |
SVD特異値分解(タプル返し版) | |
static constexpr size_t | rank (const ArcsMat< M, N, T > &A, const T eps=ArcsMat< M, N, T >::EPSILON) |
行列の階数を返す関数(戻り値返し版のみ) | |
template<size_t ML, size_t NL, typename TL = double, size_t MD, size_t ND, typename TD = double> | |
static constexpr void | LDL (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &L, ArcsMat< MD, ND, TD > &D) |
修正コレスキー分解(LDL分解) (引数渡し版) | |
static constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | LDL (const ArcsMat< M, N, T > &A) |
修正コレスキー分解(LDL分解) (タプル返し版) | |
template<size_t ML, size_t NL, typename TL = double> | |
static constexpr void | Cholesky (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &R) |
修正コレスキー分解(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | Cholesky (const ArcsMat< M, N, T > &A) |
修正コレスキー分解(戻り値返し版) | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve_vec (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &b, ArcsMat< MX, NX, TX > &x) |
Ax = bの形の線形方程式をxについて解く関数(正方行列A・ベクトルx,b版) (内部用引数渡し版のみ) | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve_mat (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B, ArcsMat< MX, NX, TX > &X) |
AX = Bの形の線形方程式をxについて解く関数(正方行列A・行列X,B版) (内部用引数渡し版のみ) | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve_vec_nsqv (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &b, ArcsMat< MX, NX, TX > &x) |
Ax = bの形の線形方程式をxについて解く関数(非正方縦長行列A・ベクトルx,b版) (内部用引数渡し版のみ) | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve_mat_nsqv (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B, ArcsMat< MX, NX, TX > &X) |
AX = Bの形の線形方程式をxについて解く関数(非正方縦長行列A・行列X,B版) (内部用引数渡し版のみ) | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve_vec_nsqh (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &b, ArcsMat< MX, NX, TX > &x) |
Ax = bの形の線形方程式をxについて解く関数(非正方横長行列A・ベクトルx,b版) (内部用引数渡し版のみ) この関数はMATLABとは異なる解を出力する、ただしもちろん、Ax = b は成立 | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve_mat_nsqh (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B, ArcsMat< MX, NX, TX > &X) |
AX = Bの形の線形方程式をXについて解く関数(非正方横行列A・行列X,B版) (内部用引数渡し版のみ) この関数はMATLABとは異なる解を出力する、ただしもちろん、AX = B は成立 | |
template<size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> | |
static constexpr void | linsolve (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B, ArcsMat< MX, NX, TX > &X) |
AX = Bの形の線形方程式をXについて解く関数(引数渡し版) | |
template<size_t MB, size_t NB, typename TB = double> | |
static constexpr ArcsMat< N, NB, T > | linsolve (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B) |
AX = Bの形の線形方程式をXについて解く関数(戻り値返し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | inv (const ArcsMat< M, N, T > &A, ArcsMat< P, Q, R > &Y) |
逆行列を返す関数(引数渡し版) | |
static constexpr ArcsMat< M, N, T > | inv (const ArcsMat< M, N, T > &A) |
逆行列を返す関数(戻り値返し版) | |
template<size_t P, size_t Q, typename R = double> | |
static constexpr void | pinv (const ArcsMat< M, N, T > &A, ArcsMat< P, Q, R > &Y) |
Moore-Penroseの擬似逆行列を返す関数(引数渡し版) | |
static constexpr ArcsMat< N, M, T > | pinv (const ArcsMat< M, N, T > &A) |
Moore-Penroseの疑似逆行列を返す関数(戻り値返し版) | |
template<size_t MP, size_t NP, typename TP = double, size_t MH, size_t NH, typename TH = double> | |
static constexpr void | Hessenberg (const ArcsMat< M, N, T > &A, ArcsMat< MP, NP, TP > &P, ArcsMat< MH, NH, TH > &H) |
Hessenberg分解(引数渡し版) 複素数の場合、この関数はMATLABとは異なる解を出力する。 | |
static constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | Hessenberg (const ArcsMat< M, N, T > &A) |
Hessenberg分解(タプル返し版) 複素数の場合、この関数はMATLABとは異なる解を出力する。 | |
template<size_t MU, size_t NU, typename TU = double, size_t MS, size_t NS, typename TS = double> | |
static constexpr void | Schur (const ArcsMat< M, N, T > &A, ArcsMat< MU, NU, TU > &U, ArcsMat< MS, NS, TS > &S) |
複素Schur分解(引数渡し版) この関数はMATLABとは異なる解を出力する、ただしもちろん、A = USU' は成立 | |
static constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | Schur (const ArcsMat< M, N, T > &A) |
複素Schur分解(タプル返し版) この関数はMATLABとは異なる解を出力する、ただしもちろん、A = USU' は成立 | |
template<size_t MV, size_t NV, typename TV = std::complex<double>> | |
static constexpr void | eig (const ArcsMat< M, N, T > &A, ArcsMat< MV, NV, TV > &v) |
固有値を返す関数(引数渡し版) | |
template<typename TV = std::complex<double>> | |
static constexpr ArcsMat< M, 1, TV > | eig (const ArcsMat< M, N, T > &A) |
固有値を返す関数(戻り値返し版) | |
template<size_t MV, size_t NV, typename TV = std::complex<double>, size_t MD, size_t ND, typename TD = std::complex<double>> | |
static constexpr void | eigvec (const ArcsMat< M, N, T > &A, ArcsMat< MV, NV, TV > &V, ArcsMat< MD, ND, TD > &D) |
固有値を持つ対角行列Dと、各々の固有値に対応する固有ベクトルを持つ行列Vを返す関数(引数渡し版) | |
template<typename TV = std::complex<double>> | |
static constexpr std::tuple< ArcsMat< M, N, TV >, ArcsMat< M, N, TV > > | eigvec (const ArcsMat< M, N, T > &A) |
固有値を持つ対角行列Dと、各々の固有値に対応する固有ベクトルを持つ行列Vを返す関数(タプル返し版) | |
template<size_t MR, size_t NR, typename TR = double, size_t MY, size_t NY, typename TY = double> | |
static constexpr void | Kron (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R, ArcsMat< MY, NY, TY > &Y) |
クロネッカー積(引数渡し版) | |
template<size_t MR, size_t NR, typename TR = double> | |
static constexpr ArcsMat< M *MR, N *NR, T > | Kron (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R) |
クロネッカー積(戻り値返し版) | |
template<size_t MR, size_t NR, typename TR = double, size_t MY, size_t NY, typename TY = double> | |
static constexpr void | cross_vec (const ArcsMat< M, N, T > &l, const ArcsMat< MR, NR, TR > &r, ArcsMat< MY, NY, TY > &y) |
クロス積 ベクトル版 (内部用引数渡し版のみ) | |
template<size_t MR, size_t NR, typename TR = double, size_t MY, size_t NY, typename TY = double> | |
static constexpr void | cross_mat (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R, ArcsMat< MY, NY, TY > &Y) |
クロス積 行列版 (内部用引数渡し版のみ) | |
template<size_t MR, size_t NR, typename TR = double, size_t MY, size_t NY, typename TY = double> | |
static constexpr void | cross (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R, ArcsMat< MY, NY, TY > &Y) |
クロス積 (引数渡し版) | |
template<size_t MR, size_t NR, typename TR = double> | |
static constexpr ArcsMat< M, N, T > | cross (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R) |
クロス積 (戻り値返し版) | |
template<size_t MY, size_t NY, typename TY = double> | |
static constexpr void | vec (const ArcsMat< M, N, T > &U, ArcsMat< MY, NY, TY > &y) |
vec作用素(行列→縦ベクトル) (引数渡し版) | |
static constexpr ArcsMat< M *N, 1, T > | vec (const ArcsMat< M, N, T > &U) |
vec作用素(行列→縦ベクトル) (戻り値返し版) | |
template<size_t MY, size_t NY, typename TY = double> | |
static constexpr void | vecinv (const ArcsMat< M, N, T > &u, ArcsMat< MY, NY, TY > &Y) |
vec作用素の逆(縦ベクトル→行列) (引数渡し版) | |
template<size_t MY, size_t NY> | |
static constexpr ArcsMat< MY, NY, T > | vecinv (const ArcsMat< M, N, T > &u) |
vec作用素の逆(縦ベクトル→行列) (戻り値返し版) | |
template<size_t MY, size_t NY, typename TY = double> | |
static constexpr void | expm (const ArcsMat< M, N, T > &U, ArcsMat< MY, NY, TY > &Y, const size_t k=13) |
行列指数関数 (引数渡し版) | |
static constexpr ArcsMat< M, N, T > | expm (const ArcsMat< M, N, T > &U, const size_t k=13) |
行列指数関数 (戻り値返し版) | |
静的公開変数類 | |
static constexpr double | EPSILON = 1e-14 |
零とみなす閾値(実数版) | |
static constexpr std::complex< double > | EPSLCOMP = std::complex(1e-14, 1e-14) |
零とみなす閾値(複素数版) | |
フレンド | |
constexpr friend ArcsMat< M, N, T > | operator+ (const T &left, const ArcsMat< M, N, T > &right) |
行列加算演算子 (スカラー+行列の場合) | |
constexpr friend ArcsMat< M, N, T > | operator- (const T &left, const ArcsMat< M, N, T > &right) |
行列減算演算子 (スカラー-行列の場合) | |
constexpr friend ArcsMat< M, N, T > | operator* (const T &left, const ArcsMat< M, N, T > &right) |
行列乗算演算子 (スカラー*行列の場合) | |
constexpr friend void | operator/ (const T &left, const ArcsMat< M, N, T > &right) |
行列除算演算子 (スカラー/行列の場合) | |
ARCS-Matrix 行列演算クラス
M | 行列の高さ |
N | 行列の幅 |
T | データ型(デフォルトはdouble型) |
|
inlineexplicitconstexpr |
コンストラクタ(任意初期値版)
R | 演算子右側の要素の型 |
[in] | InitValue | 行列要素の初期値 |
|
inlineconstexpr |
コンストラクタ(初期化リスト版)
R | 演算子右側の要素の型 |
[in] | InitList | 初期化リスト |
|
inlineconstexpr |
コピーコンストラクタ
[in] | right | 右辺値 |
|
inlineconstexpr |
コピーコンストラクタ(サイズもしくは型が違う行列の場合の定義)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 右辺値 |
|
inlineconstexpr |
ムーブコンストラクタ
[in] | right | 右辺値 |
|
inlineconstexpr |
ムーブコンストラクタ(サイズと型が違う行列の場合, エラー検出用の定義)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 右辺値 |
|
inlinestaticconstexpr |
行列要素の絶対値を計算する関数(戻り値渡し版)
R | 出力行列の要素の型 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の絶対値を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
複素数行列要素の偏角を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
修正コレスキー分解(戻り値返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
修正コレスキー分解(引数渡し版)
ML,NL,TL | L行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | R | 上三角行列 |
|
inlinestaticconstexpr |
4つの行列を1つに連結する関数(戻り値渡し版)
P,Q,R,D,E,F,G,H,L | 入力行列12-22と出力行列の高さ, 幅, 要素の型 |
[in] | U11 | 入力行列11(左上) |
[in] | U12 | 入力行列12(右上) |
[in] | U21 | 入力行列11(左下) |
[in] | U22 | 入力行列12(右下) |
|
inlinestaticconstexpr |
4つの行列を1つに連結する関数(引数渡し版)
P,Q,R,D,E,F,G,H,L,V,W,X | 入力行列12-22と出力行列の高さ, 幅, 要素の型 |
[in] | U11 | 入力行列11(左上) |
[in] | U12 | 入力行列12(右上) |
[in] | U21 | 入力行列11(左下) |
[in] | U22 | 入力行列12(右下) |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列を横に連結する関数(戻り値渡し版)
P,Q,R | 入力行列2の高さ, 幅, 要素の型 |
[in] | U1 | 入力行列1 |
[in] | U2 | 入力行列2 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列を横に連結する関数(引数渡し版)
P,Q,R,D,E,F | 入力行列2と出力行列の高さ, 幅, 要素の型 |
[in] | U1 | 入力行列1 |
[in] | U2 | 入力行列2 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列を縦に連結する関数(戻り値渡し版)
P,Q,R | 入力行列2の高さ, 幅, 要素の型 |
[in] | U1 | 入力行列1 |
[in] | U2 | 入力行列2 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列を縦に連結する関数(引数渡し版)
P,Q,R,D,E,F | 入力行列2と出力行列の高さ, 幅, 要素の型 |
[in] | U1 | 入力行列1 |
[in] | U2 | 入力行列2 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
複素数行列要素の複素共役を取得する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
複素数行列要素の複素共役を取得する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列Uから別の行列Yへ位置とサイズを指定してコピーする関数(引数渡し版のみ) 等価なMATLABコード: Y(my:my+(m2-m1), ny:ny+(n2-n1)) = U(m1:m2, n1:n2)
P,Q,R | 出力行列の高さ, 幅, 要素の型, 入力行列の高さ, 幅, 要素の型 |
[in] | U | コピー元の行列 |
[in] | m1 | コピー元の縦方向の抽出開始位置 |
[in] | m2 | コピー元の縦方向の抽出終了位置 |
[in] | n1 | コピー元の横方向の抽出開始位置 |
[in] | n2 | コピー元の横方向の抽出終了位置 |
[in,out] | Y | コピー先の行列 |
[in] | my | コピー先の縦方向の書き込み開始位置 |
[in] | ny | コピー先の横方向の書き込み開始位置 |
|
inlinestaticconstexpr |
行列要素の余弦を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の余弦関数を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
クロス積 (戻り値返し版)
MR,NR,TR | 入力行列の高さ, 幅, 要素の型 |
[in] | L | 演算子の左側 |
[in] | R | 演算子の右側 |
|
inlinestaticconstexpr |
クロス積 (引数渡し版)
MR,NR,TR,MY,NY,TY | 入出力行列の高さ, 幅, 要素の型 |
[in] | L | 演算子の左側 |
[in] | R | 演算子の右側 |
[out] | Y | 結果 |
|
inlinestaticconstexpr |
クロス積 行列版 (内部用引数渡し版のみ)
MR,NR,TR,MY,NY,TY | 入出力行列の高さ, 幅, 要素の型 |
[in] | L | 演算子の左側 |
[in] | R | 演算子の右側 |
[out] | Y | 結果 |
|
inlinestaticconstexpr |
クロス積 ベクトル版 (内部用引数渡し版のみ)
MR,NR,TR,MY,NY,TY | 入出力行列の高さ, 幅, 要素の型 |
[in] | l | 演算子の左側縦ベクトル |
[in] | r | 演算子の右側縦ベクトル |
[out] | y | 結果縦ベクトル |
|
inlinestaticconstexpr |
行列式の値を返す関数(戻り値返し版のみ)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
縦ベクトルの各要素を対角要素に持つ正方行列を生成する関数(戻り値渡し版)
[in] | u | 入力ベクトル |
|
inlinestaticconstexpr |
縦ベクトルの各要素を対角要素に持つ正方行列を生成する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | u | 入力ベクトル |
[in] | Y | 出力行列 |
|
inlineconstexpr |
行列の要素を表示
M,N,T | 行列の高さ, 幅, 要素の型 |
[in] | format | 表示形式 (%1.3e とか %5.3f とか printfと同じ) |
|
inlinestaticconstexpr |
固有値を返す関数(戻り値返し版)
TV | 出力行列の要素の型 |
[in] | A | 入力行列 |
[out] | v | 固有値の縦ベクトル |
|
inlinestaticconstexpr |
固有値を返す関数(引数渡し版)
MV,NV,TV | 出力行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | v | 固有値の縦ベクトル |
|
inlinestaticconstexpr |
固有値を持つ対角行列Dと、各々の固有値に対応する固有ベクトルを持つ行列Vを返す関数(タプル返し版)
TV | 出力行列の要素の型 |
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
固有値を持つ対角行列Dと、各々の固有値に対応する固有ベクトルを持つ行列Vを返す関数(引数渡し版)
MV,NV,TV,MD,ND,TD | 出力行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | V | 各々の固有ベクトルを縦ベクトルとして持つ行列V |
[out] | D | 固有値を対角に持つ対角行列D |
|
inlinestaticconstexpr |
行列要素の指数関数を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の指数関数を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列指数関数 (引数渡し版)
MY,NY,TY | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | k | パデ近似の次数 (デフォルト値 = 13) |
|
inlinestaticconstexpr |
行列指数関数 (戻り値返し版)
[in] | U | 入力行列 |
[in] | k | パデ近似の次数 (デフォルト値 = 13) |
|
inlinestaticconstexpr |
n行n列の単位行列を返す関数
|
inlineconstexpr |
すべての要素を指定した値で埋める関数
R | 要素の型 |
[in] | u | 埋める値 |
|
inlinestaticconstexpr |
n列目のm1行目からm2行目までを数値aで埋める関数 (m1 <= m2 であること) (引数渡し版)
R | 埋める値の型 |
[in,out] | UY | 入出力行列 |
[in] | a | 埋める値 |
[in] | n | 指定列 |
[in] | m1 | 開始行 |
[in] | m2 | 終了行 |
|
inlinestaticconstexpr |
n列目のm1行目からm2行目までを数値aで埋める関数 (n1 <= n2 であること) (戻り値渡し版)
R | 埋める値の型 |
[in] | a | 埋める値 |
[in] | n | 指定列 |
[in] | m1 | 開始行 |
[in] | m2 | 終了行 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
m行目のn1列目からn2列目までを数値aで埋める関数 (n1 <= n2 であること) (引数渡し版)
R | 埋める値の型 |
[in,out] | UY | 入出力行列 |
[in] | a | 埋める値 |
[in] | m | 指定行 |
[in] | n1 | 開始列 |
[in] | n2 | 終了列 |
|
inlinestaticconstexpr |
m行目のn1列目からn2列目までを数値aで埋める関数 (n1 <= n2 であること) (戻り値渡し版)
R | 埋める値の型 |
[in] | a | 埋める値 |
[in] | m | 指定行 |
[in] | n1 | 開始列 |
[in] | n2 | 終了列 |
[in] | U | 入力行列 |
|
inlineconstexpr |
行列要素から値を読み込む関数
T1,T2 | 要素の型 |
[in] | u1 | 要素1の値 |
[in] | u2 | 要素2以降の値 |
|
inlinestaticconstexpr |
指定した列から縦ベクトルとして抽出する関数 (引数渡し版)
P,Q,R | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | y | 出力ベクトル |
[in] | n | 抽出したい列 |
|
inlinestaticconstexpr |
指定した列から縦ベクトルとして抽出する関数 (戻り値渡し版)
[in] | U | 入力行列 |
[in] | n | 抽出したい列 |
|
inlineconstexpr |
std:arrayの2次元配列データをそのまま返す関数
|
inlinestaticconstexpr |
行列の対角要素を縦ベクトルとして取得する関数(引数渡し版)
P,Q,R,L | 出力行列の高さ, 幅, 要素の型, 対角要素の数 |
[in] | U | 入力行列 |
[in] | k | k番目の対角, k=0で主対角、K<0で主対角より下、0<kで主対角より上 (デフォルト値 = 0) |
[out] | y | 出力ベクトル |
|
inlinestaticconstexpr |
行列の対角要素を縦ベクトルとして取得する関数(戻り値渡し版)
L | 対角要素の数 |
[in] | U | 入力行列 |
[in] | k | k番目の対角, k=0で主対角、K<0で主対角より下、0<kで主対角より上 (デフォルト値 = 0) |
|
inlineconstexpr |
行列の高さ(行数)を返す関数
|
inlineconstexpr |
指定した先頭位置から横ベクトルを抜き出して返す関数 (引数渡し版)
P,Q,R | 横ベクトルの高さ, 幅, 要素の型 |
[out] | w | 横ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlineconstexpr |
指定した先頭位置から横ベクトルを抜き出して返す関数 (戻り値渡し版)
Q | 横ベクトルの幅 |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置から横ベクトルを抽出する関数 (引数渡し版)
P,Q,R | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[in] | y | 出力ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置から横ベクトルを抽出する関数 (戻り値渡し版)
Q | 出力ベクトルの幅 |
[in] | U | 入力行列 |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlineconstexpr |
非ゼロ要素の数を返す関数
[in] | eps | 許容誤差 (デフォルト値 = EPSILON) |
|
inlinestaticconstexpr |
指定した行から横ベクトルとして抽出する関数 (引数渡し版)
P,Q,R | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | y | 出力ベクトル |
[in] | m | 抽出したい行 |
|
inlinestaticconstexpr |
指定した行から横ベクトルとして抽出する関数 (戻り値渡し版)
[in] | U | 入力行列 |
[in] | m | 抽出したい行 |
|
inlineconstexpr |
行列の状態をそのまま返す関数
|
inlinestaticconstexpr |
行列から指定位置の小行列を抽出する関数 (引数渡し版)
P,Q,R | 小行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 抽出した小行列 |
[in] | m | 抽出する縦位置(小行列の上) |
[in] | n | 抽出する横位置(小行列の左) |
|
inlinestaticconstexpr |
行列から指定位置の小行列を抽出する関数 (戻り値渡し版)
P,Q,出力行列の高さ,幅,要素の型 |
[in] | U | 入力行列 |
[in] | m | 抽出する縦位置(小行列の上) |
[in] | n | 抽出する横位置(小行列の左) |
|
inlinestaticconstexpr |
m行目を上端として左下の下三角部分のみを返す関数(上三角部分はゼロ)(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | m | 切り出す上端位置 m行目(デフォルト値 = 1) |
|
inlinestaticconstexpr |
m行目を上端として左下の下三角部分のみを返す関数(上三角部分はゼロ)(戻り値渡し版)
[in] | U | 入力行列 |
[in] | m | 切り出す上端位置 m行目(デフォルト値 = 1) |
|
inlinestaticconstexpr |
n列目を左端として右上の上三角部分のみを返す関数(下三角部分はゼロ)(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | n | 切り出す左端位置 n列目(デフォルト値 = 1) |
|
inlinestaticconstexpr |
n列目を左端として右上の上三角部分のみを返す関数(下三角部分はゼロ)(戻り値渡し版)
[in] | U | 入力行列 |
[in] | n | 切り出す左端位置 n列目(デフォルト値 = 1) |
|
inlineconstexpr |
指定した先頭位置から縦ベクトルを抜き出して返す関数 (引数渡し版)
P,Q,R | 縦ベクトルの高さ, 幅, 要素の型 |
[out] | v | 縦ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlineconstexpr |
指定した先頭位置から縦ベクトルを抜き出して返す関数 (戻り値渡し版)
P | 縦ベクトルの高さ |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置から縦ベクトルを抽出する関数 (引数渡し版)
P,Q,R | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[in] | y | 出力ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置から縦ベクトルを抽出する関数 (戻り値渡し版)
P | 出力ベクトルの高さ |
[in] | U | 入力行列 |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlineconstexpr |
行列の幅(列数)を返す関数
|
inlinestaticconstexpr |
Hessenberg分解(タプル返し版) 複素数の場合、この関数はMATLABとは異なる解を出力する。
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
Hessenberg分解(引数渡し版) 複素数の場合、この関数はMATLABとは異なる解を出力する。
MP,NP,TP,MH,NH,TH | 出力行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | P | ユニタリ行列 |
[out] | H | ヘッセンベルグ行列 |
|
inlinestaticconstexpr |
Householder行列を生成する関数(引数渡し版)
MH,NH,TH | H行列の高さ, 幅, 要素の型 |
[in] | v | 入力縦ベクトル |
[out] | H | ハウスホルダー行列 |
[in] | k | 次元 (デフォルト値 = 1) |
|
inlinestaticconstexpr |
Householder行列を生成する関数(戻り値返し版)
[in] | v | 入力縦ベクトル |
[in] | k | 次元 (デフォルト値 = 1) |
|
inlinestaticconstexpr |
エルミート転置行列を返す関数 (戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
エルミート転置行列を返す関数 (引数渡し版)
P,Q,R | 出力の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
複素数行列要素の虚数部を取得する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
逆行列を返す関数(戻り値返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
逆行列を返す関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
クロネッカー積(戻り値返し版)
MR,NR,TR,MY,NY,TY | 入力行列の高さ, 幅, 要素の型 |
[in] | L | 演算子の左側 |
[in] | R | 演算子の右側 |
|
inlinestaticconstexpr |
クロネッカー積(引数渡し版)
MR,NR,TR,MY,NY,TY | 入出力行列の高さ, 幅, 要素の型 |
[in] | L | 演算子の左側 |
[in] | R | 演算子の右側 |
[out] | Y | 結果 |
|
inlinestaticconstexpr |
修正コレスキー分解(LDL分解) (タプル返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
修正コレスキー分解(LDL分解) (引数渡し版)
ML,NL,TL,MD,ND,TD | A, L, D行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | L | 下三角行列 |
[out] | D | 対角行列 |
|
inlinestaticconstexpr |
AX = Bの形の線形方程式をXについて解く関数(戻り値返し版)
MB,NB,TB | B行列の高さ, 幅, 要素の型 |
[in] | A | 係数行列(正方行列・非正方行列) |
[in] | B | 係数ベクトル・行列 |
|
inlinestaticconstexpr |
AX = Bの形の線形方程式をXについて解く関数(引数渡し版)
MB,NB,TB,MX,NX,TX | BとXの高さ, 幅, 要素の型 |
[in] | A | 係数行列(正方行列・非正方行列) |
[in] | B | 係数ベクトル・行列 |
[out] | X | 解ベクトル・行列 |
|
inlinestaticconstexpr |
AX = Bの形の線形方程式をxについて解く関数(正方行列A・行列X,B版) (内部用引数渡し版のみ)
MB,NB,TB,MX,NX,TX | BとXの高さ, 幅, 要素の型 |
[in] | A | 係数行列(正方行列) |
[in] | B | 係数行列(正方行列) |
[out] | X | 解行列 |
|
inlinestaticconstexpr |
AX = Bの形の線形方程式をXについて解く関数(非正方横行列A・行列X,B版) (内部用引数渡し版のみ) この関数はMATLABとは異なる解を出力する、ただしもちろん、AX = B は成立
MB,NB,TB,MX,NX,TX | BとXの高さ, 幅, 要素の型 |
[in] | A | 係数行列(非正方横長行列) |
[in] | B | 係数行列(非正方横長行列) |
[out] | X | 解行列 |
|
inlinestaticconstexpr |
AX = Bの形の線形方程式をxについて解く関数(非正方縦長行列A・行列X,B版) (内部用引数渡し版のみ)
MB,NB,TB,MX,NX,TX | BとXの高さ, 幅, 要素の型 |
[in] | A | 係数行列(非正方縦長行列) |
[in] | B | 係数行列(非正方縦長行列) |
[out] | X | 解行列 |
|
inlinestaticconstexpr |
Ax = bの形の線形方程式をxについて解く関数(正方行列A・ベクトルx,b版) (内部用引数渡し版のみ)
MB,NB,TB,MX,NX,TX | bとxの高さ, 幅, 要素の型 |
[in] | A | 係数行列(正方行列) |
[in] | b | 係数ベクトル |
[out] | x | 解ベクトル |
|
inlinestaticconstexpr |
Ax = bの形の線形方程式をxについて解く関数(非正方横長行列A・ベクトルx,b版) (内部用引数渡し版のみ) この関数はMATLABとは異なる解を出力する、ただしもちろん、Ax = b は成立
MB,NB,TB,MX,NX,TX | bとxの高さ, 幅, 要素の型 |
[in] | A | 係数行列(非正方横長行列) |
[in] | b | 係数ベクトル |
[out] | x | 解ベクトル |
|
inlinestaticconstexpr |
Ax = bの形の線形方程式をxについて解く関数(非正方縦長行列A・ベクトルx,b版) (内部用引数渡し版のみ)
MB,NB,TB,MX,NX,TX | bとxの高さ, 幅, 要素の型 |
[in] | A | 係数行列(非正方縦長行列) |
[in] | b | 係数ベクトル |
[out] | x | 解ベクトル |
|
inlineconstexpr |
1次元std::array配列を縦ベクトルとして読み込む関数
P,R | 配列の長さ, 要素の型 |
[in] | Array | std::array配列(縦MM×横1) |
|
inlineconstexpr |
2次元std::array配列を行列として読み込む関数
P,Q,R | 配列の高さ, 幅, 要素の型 |
[in] | Array | std::array配列(縦MM×横NN) |
|
inlinestaticconstexpr |
行列要素の対数関数(底e版)を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の対数関数(底e版)を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列要素の対数関数(底10版)を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の対数関数(底10版)を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
LU分解の結果のみ返す関数(タプル返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
LU分解の結果のみ返す関数(引数渡し版)
ML,NL,TL,MU,NU,TU | L,U行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | L | 下三角行列 |
[out] | U | 上三角行列 |
|
inlinestaticconstexpr |
LU分解の結果と置換行列を返す関数(タプル返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
LU分解の結果と置換行列を返す関数(引数渡し版)
ML,NL,TL,MU,NU,TU,MP,NP,TP | L,U,P行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | L | 下三角行列 |
[out] | U | 上三角行列 |
[out] | P | 置換行列 |
|
inlinestaticconstexpr |
行列要素の最大値を返す関数(戻り値渡し版のみ)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の最大値の要素番号を返す関数(タプル返し版のみ)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の最小値を返す関数(戻り値渡し版のみ)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の最小値の要素番号を返す関数(タプル返し版のみ)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列の対角要素の総積を返す関数(戻り値渡し版のみ)
L | 対角要素の数 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列のノルムを返す関数(戻り値渡し版のみ)
NRM | ノルムのタイプ (デフォルト値 = AMT_L2) |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
m行n列の要素がすべて1の行列を返す関数
|
inlineconstexpr |
行列アダマール除算演算子 (行列の要素ごとの除算)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列アダマール積演算子(行列の要素ごとの乗算)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列括弧演算子(行列の(m,n)要素に値を設定する。サイズチェック無し版)
[in] | m | m行目(縦方向の位置) |
[in] | n | n列目(横方向の位置) |
|
inlineconstexpr |
行列括弧演算子(行列の(m,n)要素の値を返す。サイズチェック無し版)
[in] | m | m行目(縦方向の位置) |
[in] | n | n列目(横方向の位置) |
|
inlineconstexpr |
行列括弧演算子(行列の(m,n)要素に値を設定する。サイズチェック可能版)
[in] | m | m行目(縦方向の位置) |
[in] | n | n列目(横方向の位置) |
[in] | chk | サイズチェックフラグ true = サイズチェックする, false = サイズチェックしない |
|
inlineconstexpr |
行列括弧演算子(行列の(m,n)要素の値を返す。サイズチェック可能版)
[in] | m | m行目(縦方向の位置) |
[in] | n | n列目(横方向の位置) |
[in] | chk | サイズチェックフラグ true = サイズチェックする, false = サイズチェックしない |
|
inlineconstexpr |
行列乗算演算子(行列=行列*行列の場合)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列乗算演算子(行列=行列*スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列乗算代入演算子(行列=行列*行列、行列=行列*スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列加算演算子(行列=行列+行列の場合)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列加算演算子(行列=行列+スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
単項プラス演算子
|
inlineconstexpr |
行列加算代入演算子(行列=行列+行列、行列=行列+スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列減算演算子(行列=行列-行列の場合)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列減算演算子(行列=行列-スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
単項マイナス演算子
|
inlineconstexpr |
行列減算代入演算子(行列=行列-行列、行列=行列-スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列除算演算子(行列=行列/行列の場合)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列除算演算子(行列=行列/スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列除算代入演算子(行列=行列/スカラーの場合)
R | 演算子右側の要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列代入演算子(サイズと型が同じ同士の行列の場合)
[in] | right | 演算子の右側 |
|
inlineconstexpr |
行列代入演算子(サイズと型が違う行列の場合, エラー検出用の定義)
P,Q,R | 演算子右側の行列の高さ, 幅, 要素の型 |
[in] | right | 演算子の右側 |
|
inlineconstexpr |
縦ベクトル添字演算子(縦ベクトルのm番目の要素に値を設定する。A(m,1) = xと同じ意味) 備考:ArcsMatは縦ベクトル優先なので、横ベクトル添字演算子は無い。
[in] | m | 縦方向の要素番号( "1" 始まり) |
|
inlineconstexpr |
縦ベクトル添字演算子(縦ベクトルのm番目の要素の値を返す。x = A(m,1)と同じ意味) 備考:ArcsMatは縦ベクトル優先なので、横ベクトル添字演算子は無い。
[in] | m | 縦方向の要素番号( "1" 始まり) |
|
inlineconstexpr |
行列べき乗演算子(正方行列のべき乗)
[in] | right | 演算子の右側 |
|
inlineconstexpr |
転置演算子
|
inlinestaticconstexpr |
並び替え指定横ベクトルuが昇順になるように,行列Uの列を並び替える関数 (戻り値渡し版のみ)
P,Q,R | 並び替え指定横ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[in] | u | 並び替え指定横ベクトル |
|
inlinestaticconstexpr |
並び替え指定横ベクトルuが昇順になるように,行列Uの列と指定横ベクトルの両方を並び替える関数 (引数渡し版のみ)
P,Q,R | 並び替え指定横ベクトルの高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in,out] | uy | 並び替え指定横ベクトル |
|
inlinestaticconstexpr |
並び替え指定縦ベクトルuが昇順になるように,行列Uの行を並び替える関数 (戻り値渡し版のみ)
P,Q,R | 並び替え指定縦ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[in] | u | 並び替え指定縦ベクトル |
|
inlinestaticconstexpr |
並び替え指定縦ベクトルuが昇順になるように,行列Uの行と指定縦ベクトルの両方を並び替える関数 (引数渡し版のみ)
P,Q,R | 並び替え指定縦ベクトルの高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in,out] | uy | 並び替え指定縦ベクトル |
|
inlinestaticconstexpr |
Moore-Penroseの疑似逆行列を返す関数(戻り値返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
Moore-Penroseの擬似逆行列を返す関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
QR分解(タプル返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
QR分解(引数渡し版) 注意:複素数で縦長行列の場合ではMATLABとは異なる解を出力する
MQ,NQ,TQ,MQ,NQ,TQ | Q,R行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | Q | ユニタリ行列 Q行列 |
[out] | R | 上三角行列 R行列 |
|
inlinestaticconstexpr |
単調増加の縦ベクトルを返す関数
|
inlinestaticconstexpr |
行列の階数を返す関数(戻り値返し版のみ)
[in] | A | 入力行列 |
[in] | eps | ランク許容誤差(デフォルト値 = EPSILON) |
|
inlineconstexpr |
std:arrayの2次元配列データの読み込み専用の参照を返す関数
|
inlinestaticconstexpr |
複素数行列要素の実数部を取得する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
複素Schur分解(タプル返し版) この関数はMATLABとは異なる解を出力する、ただしもちろん、A = USU' は成立
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
複素Schur分解(引数渡し版) この関数はMATLABとは異なる解を出力する、ただしもちろん、A = USU' は成立
MU,NU,TU,MS,NS,TS | 入出力行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | U | ユニタリ行列 |
[out] | S | 上三角行列または疑似上三角行列 |
|
inlineconstexpr |
行列要素に値を設定する関数
T1,T2 | 要素の型 |
[in] | u1 | 要素1の値 |
[in] | u2 | 要素2以降の値 |
|
inlinestaticconstexpr |
指定した列を縦ベクトルで上書きする関数 (引数渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in] | u | 入力ベクトル |
[in] | n | 上書きしたい列 |
|
inlinestaticconstexpr |
指定した列を縦ベクトルで上書きする関数 (戻り値渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in] | u | 入力ベクトル |
[in] | n | 上書きしたい列 |
[in] | U | 入力行列 |
|
inlineconstexpr |
指定した先頭位置に横ベクトルを埋め込む関数
P,Q,R | 縦ベクトルの高さ, 幅, 要素の型 |
[in] | w | 横ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置に横ベクトルで上書きする関数 (引数渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in] | u | 入力ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置に横ベクトルで上書きする関数 (戻り値渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in] | u | 入力ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
指定した行を横ベクトルで上書きする関数 (引数渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in] | u | 入力ベクトル |
[in] | m | 上書きしたい行 |
|
inlinestaticconstexpr |
指定した行を横ベクトルで上書きする関数 (戻り値渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in] | u | 入力ベクトル |
[in] | m | 上書きしたい行 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
小行列を行列の指定位置に上書きする関数 (引数渡し版)
P,Q,R | 小行列の高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in] | U | 書き込む小行列 |
[in] | m | 上書きしたい縦位置(小行列の上) |
[in] | n | 上書きしたい横位置(小行列の左) |
|
inlinestaticconstexpr |
小行列を行列の指定位置に上書きする関数 (戻り値渡し版)
P,Q,R | 小行列の高さ, 幅, 要素の型 |
[in] | Us | 書き込む小行列 |
[in] | m | 上書きしたい縦位置(小行列の上) |
[in] | n | 上書きしたい横位置(小行列の左) |
[in] | U | 入力行列 |
|
inlineconstexpr |
指定した先頭位置に縦ベクトルを埋め込む関数
P,Q,R | 縦ベクトルの高さ, 幅, 要素の型 |
[in] | v | 縦ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置に縦ベクトルで上書きする関数 (引数渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in,out] | UY | 入出力行列 |
[in] | u | 入力ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
|
inlinestaticconstexpr |
指定位置に縦ベクトルで上書きする関数 (戻り値渡し版)
P,Q,R | 入力ベクトルの高さ, 幅, 要素の型 |
[in] | u | 入力ベクトル |
[in] | m | 先頭位置 m行目 |
[in] | n | 先頭位置 n列目 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列の各要素を下にm行分シフトする関数(上段の行はゼロになる)(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | m | シフトする行数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を下にm行分シフトする関数(上段の行はゼロになる)(戻り値渡し版)
[in] | U | 入力行列 |
[in] | m | シフトする行数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を左にn列分シフトする関数(右段の列はゼロになる)(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | n | シフトする列数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を左にn列分シフトする関数(右段の列はゼロになる)(戻り値渡し版)
[in] | U | 入力行列 |
[in] | n | シフトする列数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を右にn列分シフトする関数(左段の列はゼロになる)(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | n | シフトする列数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を右にn列分シフトする関数(左段の列はゼロになる)(戻り値渡し版)
[in] | U | 入力行列 |
[in] | n | シフトする列数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を上にm行分シフトする関数(下段の行はゼロになる)(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
[in] | m | シフトする行数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列の各要素を上にm行分シフトする関数(下段の行はゼロになる)(戻り値渡し版)
[in] | U | 入力行列 |
[in] | m | シフトする行数(デフォルト値 = 1) |
|
inlinestaticconstexpr |
行列要素の符号関数を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の符号関数を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列要素の正弦関数を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の正弦関数を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列要素の平方根を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の平方根を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlineconstexpr |
縦ベクトルを1次元std::array配列に書き込む関数
P,R | 配列の長さ, 要素の型 |
[out] | Array | std::array配列(縦MM×横1) |
|
inlineconstexpr |
行列を2次元std::array配列に書き込む関数
P,Q,R | 配列の高さ, 幅, 要素の型 |
[in] | Array | std::array配列(縦MM×横NN) |
|
inlinestaticconstexpr |
行列要素の総和を返す関数(戻り値渡し版のみ)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
各列の総和を計算して横ベクトルを出力する関数 (戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
各列の総和を計算して横ベクトルを出力する関数 (引数渡し版)
P,Q,R | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | y | 出力ベクトル |
|
inlinestaticconstexpr |
各行の総和を計算して縦ベクトルを出力する関数 (戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
各行の総和を計算して縦ベクトルを出力する関数 (引数渡し版)
P,Q,R | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | y | 出力ベクトル |
|
inlinestaticconstexpr |
SVD特異値分解(タプル返し版)
[in] | A | 入力行列 |
|
inlinestaticconstexpr |
SVD特異値分解(引数渡し版) 注意:複素数で非正方行列の場合ではMATLABとは異なる解を出力する
LoopMax | ループ打ち切り最大回数 デフォルト値 = 100*max(M,N) |
MU,NU,TU,MS,NS,TS,MV,NV,TV | U,Σ,V行列の高さ, 幅, 要素の型 |
[in] | A | 入力行列 |
[out] | U | U行列 |
[out] | S | Σ行列 |
[out] | V | V行列 |
|
inlinestaticconstexpr |
指定した列と列を入れ替える関数 (引数渡し版)
[in,out] | UY | 入出力行列 |
[in] | n1 | 指定列1 |
[in] | n2 | 指定列2 |
|
inlinestaticconstexpr |
指定した列と列を入れ替える関数 (戻り値渡し版)
[in] | n1 | 指定列1 |
[in] | n2 | 指定列2 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
指定した行と行を入れ替える関数 (引数渡し版)
[in,out] | UY | 入出力行列 |
[in] | m1 | 指定行1 |
[in] | m2 | 指定行2 |
|
inlinestaticconstexpr |
指定した行と行を入れ替える関数 (戻り値渡し版)
[in] | m1 | 指定行1 |
[in] | m2 | 指定行2 |
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の正接関数を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の正接関数を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列要素の双曲線正接関数を計算する関数(戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
行列要素の双曲線正接関数を計算する関数(引数渡し版)
P,Q,R | 出力行列の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
転置行列を返す関数 (戻り値渡し版)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
転置行列を返す関数 (引数渡し版)
P,Q,R | 出力の高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | Y | 出力行列 |
|
inlinestaticconstexpr |
行列のトレースを返す関数(戻り値渡し版のみ)
[in] | U | 入力行列 |
|
inlinestaticconstexpr |
vec作用素(行列→縦ベクトル) (戻り値返し版)
[in] | U | 入力行列 |
[out] | y | 出力ベクトル |
|
inlinestaticconstexpr |
vec作用素(行列→縦ベクトル) (引数渡し版)
MY,NY,TY | 出力ベクトルの高さ, 幅, 要素の型 |
[in] | U | 入力行列 |
[out] | y | 出力ベクトル |
|
inlinestaticconstexpr |
vec作用素の逆(縦ベクトル→行列) (戻り値返し版)
MY,NY | 出力行列の高さ, 幅 |
[in] | u | 入力縦ベクトル |
|
inlinestaticconstexpr |
vec作用素の逆(縦ベクトル→行列) (引数渡し版)
MY,NY,TY | 出力行列の高さ, 幅, 要素の型 |
[in] | u | 入力縦ベクトル |
[out] | Y | 再構成後の行列 |
|
inlineconstexpr |
ゼロに近い要素を完全にゼロにする関数
[in] | eps | 許容誤差 (デフォルト値 = EPSILON) |
|
inlineconstexpr |
下三角(主対角除く)に限定して、ゼロに近い要素を完全にゼロにする関数
[in] | eps | 許容誤差 (デフォルト値 = EPSILON) |
|
inlinestaticconstexpr |
m行n列の零行列を返す関数
|
friend |
行列乗算演算子 (スカラー*行列の場合)
[in] | left | 左側のスカラー値 |
[in] | right | 右側の行列 |
|
friend |
行列加算演算子 (スカラー+行列の場合)
[in] | left | 左側のスカラー値 |
[in] | right | 右側の行列 |
|
friend |
行列減算演算子 (スカラー-行列の場合)
[in] | left | 左側のスカラー値 |
[in] | right | 右側の行列 |
|
friend |
行列除算演算子 (スカラー/行列の場合)
[in] | left | 左側のスカラー値 |
[in] | right | 右側の行列 |