|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::eye (void) |
| M行N列の単位行列を返す関数
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::zeros (void) |
| m行n列の零行列を返す関数
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::ones (void) |
| m行n列の要素がすべて1の行列を返す関数
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::ramp (void) |
| 単調増加の縦ベクトルを返す関数
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::getcolumn (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t n) |
| 指定した列から縦ベクトルとして抽出する関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, 1, T > | ARCS::ArcsMatrix::getcolumn (const ArcsMat< M, N, T > &U, const size_t n) |
| 指定した列から縦ベクトルとして抽出する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::setcolumn (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t n) |
| 指定した列を縦ベクトルで上書きする関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::setcolumn (const ArcsMat< P, Q, R > &u, const size_t n, const ArcsMat< M, N, T > &U) |
| 指定した列を縦ベクトルで上書きする関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr void | ARCS::ArcsMatrix::swapcolumn (ArcsMat< M, N, T > &UY, const size_t n1, const size_t n2) |
| 指定した列と列を入れ替える関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::swapcolumn (const size_t n1, const size_t n2, const ArcsMat< M, N, T > &U) |
| 指定した列と列を入れ替える関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, typename R = double> |
constexpr void | ARCS::ArcsMatrix::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<size_t M, size_t N, typename T = double, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::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で埋める関数 (m1 <= m2 であること) (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = size_t> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::ordercolumn (const ArcsMat< M, N, T > &U, const ArcsMat< P, Q, R > &u) |
| 並び替え指定横ベクトルuが昇順になるように,行列Uの列を並び替える関数 (戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = size_t> |
constexpr void | ARCS::ArcsMatrix::ordercolumn_and_vec (ArcsMat< M, N, T > &UY, ArcsMat< P, Q, R > &uy) |
| 並び替え指定横ベクトルuが昇順になるように,行列Uの列と指定横ベクトルの両方を並び替える関数 (引数渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::sumcolumn (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y) |
| 各列の総和を計算して横ベクトルを出力する関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< 1, N, T > | ARCS::ArcsMatrix::sumcolumn (const ArcsMat< M, N, T > &U) |
| 各列の総和を計算して横ベクトルを出力する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::getrow (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t m) |
| 指定した行から横ベクトルとして抽出する関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< 1, N, T > | ARCS::ArcsMatrix::getrow (const ArcsMat< M, N, T > &U, const size_t m) |
| 指定した行から横ベクトルとして抽出する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::setrow (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t m) |
| 指定した行を横ベクトルで上書きする関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::setrow (const ArcsMat< P, Q, R > &u, const size_t m, const ArcsMat< M, N, T > &U) |
| 指定した行を横ベクトルで上書きする関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr void | ARCS::ArcsMatrix::swaprow (ArcsMat< M, N, T > &UY, const size_t m1, const size_t m2) |
| 指定した行と行を入れ替える関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::swaprow (const size_t m1, const size_t m2, const ArcsMat< M, N, T > &U) |
| 指定した行と行を入れ替える関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, typename R = double> |
constexpr void | ARCS::ArcsMatrix::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<size_t M, size_t N, typename T = double, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::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 M, size_t N, typename T = double, size_t P, size_t Q, typename R = size_t> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::orderrow (const ArcsMat< M, N, T > &U, const ArcsMat< P, Q, R > &u) |
| 並び替え指定縦ベクトルuが昇順になるように,行列Uの行を並び替える関数 (戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = size_t> |
constexpr void | ARCS::ArcsMatrix::orderrow_and_vec (ArcsMat< M, N, T > &UY, ArcsMat< P, Q, R > &uy) |
| 並び替え指定縦ベクトルuが昇順になるように,行列Uの行と指定縦ベクトルの両方を並び替える関数 (引数渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::sumrow (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y) |
| 各行の総和を計算して縦ベクトルを出力する関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, 1, T > | ARCS::ArcsMatrix::sumrow (const ArcsMat< M, N, T > &U) |
| 各行の総和を計算して縦ベクトルを出力する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::getvvector (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 M, size_t N, typename T = double> |
constexpr ArcsMat< P, 1, T > | ARCS::ArcsMatrix::getvvector (const ArcsMat< M, N, T > &U, const size_t m, const size_t n) |
| 指定位置から縦ベクトルを抽出する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::setvvector (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t m, const size_t n) |
| 指定位置に縦ベクトルで上書きする関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::setvvector (const ArcsMat< P, Q, R > &u, const size_t m, const size_t n, const ArcsMat< M, N, T > &U) |
| 指定位置に縦ベクトルで上書きする関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::gethvector (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const size_t m, const size_t n) |
| 指定位置から横ベクトルを抽出する関数 (引数渡し版)
|
|
template<size_t Q, size_t M, size_t N, typename T = double> |
constexpr ArcsMat< 1, Q, T > | ARCS::ArcsMatrix::gethvector (const ArcsMat< M, N, T > &U, const size_t m, const size_t n) |
| 指定位置から横ベクトルを抽出する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::sethvector (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &u, const size_t m, const size_t n) |
| 指定位置に横ベクトルで上書きする関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::sethvector (const ArcsMat< P, Q, R > &u, const size_t m, const size_t n, const ArcsMat< M, N, T > &U) |
| 指定位置に横ベクトルで上書きする関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::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, size_t M, size_t N, typename T = double> |
constexpr ArcsMat< P, Q, T > | ARCS::ArcsMatrix::getsubmatrix (const ArcsMat< M, N, T > &U, const size_t m, const size_t n) |
| 行列から指定位置の小行列を抽出する関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::setsubmatrix (ArcsMat< M, N, T > &UY, const ArcsMat< P, Q, R > &U, const size_t m, const size_t n) |
| 小行列を行列の指定位置に上書きする関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::setsubmatrix (const ArcsMat< P, Q, R > &Us, const size_t m, const size_t n, const ArcsMat< M, N, T > &U) |
| 小行列を行列の指定位置に上書きする関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::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 M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::shiftup (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m=1) |
| 行列の各要素を上に1行分シフトする関数(下段の行はゼロになる)(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::shiftup (const ArcsMat< M, N, T > &U, const size_t m=1) |
| 行列の各要素を上に1行分シフトする関数(下段の行はゼロになる)(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::shiftdown (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m=1) |
| 行列の各要素を下にm行分シフトする関数(上段の行はゼロになる)(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::shiftdown (const ArcsMat< M, N, T > &U, const size_t m=1) |
| 行列の各要素を下にm行分シフトする関数(上段の行はゼロになる)(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::shiftleft (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t n=1) |
| 行列の各要素を左にn列分シフトする関数(右段の列はゼロになる)(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::shiftleft (const ArcsMat< M, N, T > &U, const size_t n=1) |
| 行列の各要素を左にn列分シフトする関数(右段の列はゼロになる)(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::shiftright (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t n=1) |
| 行列の各要素を右にn列分シフトする関数(左段の列はゼロになる)(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::shiftright (const ArcsMat< M, N, T > &U, const size_t n=1) |
| 行列の各要素を右にn列分シフトする関数(左段の列はゼロになる)(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double, size_t D, size_t E, typename F = double> |
constexpr void | ARCS::ArcsMatrix::concatv (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2, ArcsMat< D, E, F > &Y) |
| 行列を縦に連結する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double, size_t D, size_t E, typename F = double> |
constexpr void | ARCS::ArcsMatrix::concath (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2, ArcsMat< D, E, F > &Y) |
| 行列を横に連結する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr ArcsMat< M, N+Q, T > | ARCS::ArcsMatrix::concath (const ArcsMat< M, N, T > &U1, const ArcsMat< P, Q, R > &U2) |
| 行列を横に連結する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, 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> |
constexpr void | ARCS::ArcsMatrix::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 M, size_t N, typename T = double, 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> |
constexpr ArcsMat< M+D, N+Q, T > | ARCS::ArcsMatrix::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 M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::diag (const ArcsMat< M, N, T > &u, ArcsMat< P, Q, R > &Y) |
| 縦ベクトルの各要素を対角要素に持つ正方行列を生成する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, M, T > | ARCS::ArcsMatrix::diag (const ArcsMat< M, N, T > &u) |
| 縦ベクトルの各要素を対角要素に持つ正方行列を生成する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double, size_t L = std::min(M,N)> |
constexpr void | ARCS::ArcsMatrix::getdiag (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &y, const ssize_t k=0) |
| 行列の対角要素を縦ベクトルとして取得する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t L = std::min(M,N)> |
constexpr ArcsMat< L, 1, T > | ARCS::ArcsMatrix::getdiag (const ArcsMat< M, N, T > &U, const ssize_t k=0) |
| 行列の対角要素を縦ベクトルとして取得する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr T | ARCS::ArcsMatrix::trace (const ArcsMat< M, N, T > &U) |
| 行列のトレースを返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr T | ARCS::ArcsMatrix::multdiag (const ArcsMat< M, N, T > &U) |
| 行列の対角要素の総積を返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< size_t, size_t > | ARCS::ArcsMatrix::maxidx (const ArcsMat< M, N, T > &U) |
| 行列要素の最大値の要素番号を返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr T | ARCS::ArcsMatrix::max (const ArcsMat< M, N, T > &U) |
| 行列要素の最大値を返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< size_t, size_t > | ARCS::ArcsMatrix::minidx (const ArcsMat< M, N, T > &U) |
| 行列要素の最小値の要素番号を返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr T | ARCS::ArcsMatrix::min (const ArcsMat< M, N, T > &U) |
| 行列要素の最小値を返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr T | ARCS::ArcsMatrix::sum (const ArcsMat< M, N, T > &U) |
| 行列要素の総和を返す関数(戻り値渡し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::exp (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の指数関数を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::exp (const ArcsMat< M, N, T > &U) |
| 行列要素の指数関数を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::log (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の対数関数(底e版)を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::log (const ArcsMat< M, N, T > &U) |
| 行列要素の対数関数(底e版)を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::log10 (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の対数関数(底10版)を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::log10 (const ArcsMat< M, N, T > &U) |
| 行列要素の対数関数(底10版)を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::sin (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の正弦関数を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::sin (const ArcsMat< M, N, T > &U) |
| 行列要素の正弦関数を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::cos (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の余弦関数を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::cos (const ArcsMat< M, N, T > &U) |
| 行列要素の余弦関数を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::tan (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の正接関数を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::tan (const ArcsMat< M, N, T > &U) |
| 行列要素の正接関数を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::tanh (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の双曲線正接関数を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::tanh (const ArcsMat< M, N, T > &U) |
| 行列要素の双曲線正接関数を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::sqrt (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の平方根を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::sqrt (const ArcsMat< M, N, T > &U) |
| 行列要素の平方根を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::sign (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の符号関数を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::sign (const ArcsMat< M, N, T > &U) |
| 行列要素の符号関数を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::abs (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 行列要素の絶対値を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::abs (const ArcsMat< M, N, T > &U) |
| 行列要素の絶対値を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::abs (const ArcsMat< M, N, std::complex< T > > &U) |
| 行列要素の絶対値を計算する関数(戻り値渡し版, 複素数版特殊化)
|
|
template<size_t M, size_t N, typename T = std::complex<double>, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::arg (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 複素数行列要素の偏角を計算する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::arg (const ArcsMat< M, N, std::complex< T > > &U) |
| 複素数行列要素の偏角を計算する関数(戻り値渡し版, 複素数版特殊化)
|
|
template<size_t M, size_t N, typename T = std::complex<double>, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::real (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 複素数行列要素の実数部を取得する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::real (const ArcsMat< M, N, std::complex< T > > &U) |
| 複素数行列要素の実数部を計算する関数(戻り値渡し版, 複素数版特殊化)
|
|
template<size_t M, size_t N, typename T = std::complex<double>, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::imag (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 複素数行列要素の虚数部を取得する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::imag (const ArcsMat< M, N, std::complex< T > > &U) |
| 複素数行列要素の虚数部を計算する関数(戻り値渡し版, 複素数版特殊化)
|
|
template<size_t M, size_t N, typename T = std::complex<double>, size_t P, size_t Q, typename R = std::complex<double>> |
constexpr void | ARCS::ArcsMatrix::conj (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 複素数行列要素の複素共役を取得する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = std::complex<double>> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::conj (const ArcsMat< M, N, T > &U) |
| 複素数行列要素の複素共役を計算する関数(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::tp (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| 転置行列を返す関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< N, M, T > | ARCS::ArcsMatrix::tp (const ArcsMat< M, N, T > &U) |
| 転置行列を返す関数 (戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = std::complex<double>, size_t P, size_t Q, typename R = std::complex<double>> |
constexpr void | ARCS::ArcsMatrix::Htp (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y) |
| エルミート転置行列を返す関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = std::complex<double>> |
constexpr ArcsMat< N, M, T > | ARCS::ArcsMatrix::Htp (const ArcsMat< M, N, T > &U) |
| エルミート転置行列を返す関数 (戻り値渡し版)
|
|
template<NormType NRM = ArcsMatrix::NormType::AMT_L2, typename T = double, size_t M, size_t N> |
constexpr T | ARCS::ArcsMatrix::norm (const ArcsMat< M, N, T > &U) |
| 行列のノルムを返す関数(戻り値渡し版のみ)
|
|
template<NormType NRM = ArcsMatrix::NormType::AMT_L2, typename R = double, typename T = double, size_t M, size_t N> |
constexpr R | ARCS::ArcsMatrix::norm (const ArcsMat< M, N, std::complex< T > > &U) |
| 行列のノルムを返す関数(戻り値渡し版のみ, 複素数版特殊化)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::gettriup (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t n=1) |
| n列目を左端として右上の上三角部分のみを返す関数(下三角部分はゼロ)(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::gettriup (const ArcsMat< M, N, T > &U, const size_t n=1) |
| n列目を左端として右上の上三角部分のみを返す関数(下三角部分はゼロ)(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::gettrilo (const ArcsMat< M, N, T > &U, ArcsMat< P, Q, R > &Y, const size_t m=1) |
| m行目を上端として左下の下三角部分のみを返す関数(上三角部分はゼロ)(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::gettrilo (const ArcsMat< M, N, T > &U, const size_t m=1) |
| m行目を上端として左下の下三角部分のみを返す関数(上三角部分はゼロ)(戻り値渡し版)
|
|
template<size_t M, size_t N, typename T = double, 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> |
constexpr void | ARCS::ArcsMatrix::LUP (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &L, ArcsMat< MU, NU, TU > &U, ArcsMat< MP, NP, TP > &P) |
| LU分解の結果と置換行列を返す関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T >, ArcsMat< M, N, T > > | ARCS::ArcsMatrix::LUP (const ArcsMat< M, N, T > &A) |
| LU分解の結果と置換行列を返す関数(タプル返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t ML, size_t NL, typename TL = double, size_t MU, size_t NU, typename TU = double> |
constexpr void | ARCS::ArcsMatrix::LU (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &L, ArcsMat< MU, NU, TU > &U) |
| LU分解の結果のみ返す関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | ARCS::ArcsMatrix::LU (const ArcsMat< M, N, T > &A) |
| LU分解の結果のみ返す関数(タプル返し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr T | ARCS::ArcsMatrix::det (const ArcsMat< M, N, T > &A) |
| 行列式の値を返す関数(戻り値返し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t MH, size_t NH, typename TH = double> |
constexpr void | ARCS::ArcsMatrix::Householder (const ArcsMat< M, N, T > &v, ArcsMat< MH, NH, TH > &H, const size_t k=1) |
| Householder行列を生成する関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, M, T > | ARCS::ArcsMatrix::Householder (const ArcsMat< M, N, T > &v, const size_t k=1) |
| Householder行列を生成する関数(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MQ, size_t NQ, typename TQ = double, size_t MR, size_t NR, typename TR = double> |
constexpr void | ARCS::ArcsMatrix::QR (const ArcsMat< M, N, T > &A, ArcsMat< MQ, NQ, TQ > &Q, ArcsMat< MR, NR, TR > &R) |
| QR分解(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, M, T >, ArcsMat< M, N, T > > | ARCS::ArcsMatrix::QR (const ArcsMat< M, N, T > &A) |
| QR分解(タプル返し版)
|
|
template<size_t M, size_t N, typename T = double, 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> |
constexpr void | ARCS::ArcsMatrix::SVD (const ArcsMat< M, N, T > &A, ArcsMat< MU, NU, TU > &U, ArcsMat< MS, NS, TS > &S, ArcsMat< MV, NV, TV > &V) |
| SVD特異値分解(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, M, T >, ArcsMat< M, N, T >, ArcsMat< N, N, T > > | ARCS::ArcsMatrix::SVD (const ArcsMat< M, N, T > &A) |
| SVD特異値分解(タプル返し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr size_t | ARCS::ArcsMatrix::rank (const ArcsMat< M, N, T > &A, const T eps=ArcsMat< M, N, T >::EPSILON) |
| 行列の階数を返す関数(戻り値返し版のみ)
|
|
template<size_t M, size_t N, typename T = double, size_t ML, size_t NL, typename TL = double, size_t MD, size_t ND, typename TD = double> |
constexpr void | ARCS::ArcsMatrix::LDL (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &L, ArcsMat< MD, ND, TD > &D) |
| 修正コレスキー分解(LDL分解) (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | ARCS::ArcsMatrix::LDL (const ArcsMat< M, N, T > &A) |
| 修正コレスキー分解(LDL分解) (タプル返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t ML, size_t NL, typename TL = double> |
constexpr void | ARCS::ArcsMatrix::Cholesky (const ArcsMat< M, N, T > &A, ArcsMat< ML, NL, TL > &R) |
| 修正コレスキー分解(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::Cholesky (const ArcsMat< M, N, T > &A) |
| 修正コレスキー分解(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MB, size_t NB, typename TB = double, size_t MX, size_t NX, typename TX = double> |
constexpr void | ARCS::ArcsMatrix::linsolve (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B, ArcsMat< MX, NX, TX > &X) |
| AX = Bの形の線形方程式をXについて解く関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MB, size_t NB, typename TB = double> |
constexpr ArcsMat< N, NB, T > | ARCS::ArcsMatrix::linsolve (const ArcsMat< M, N, T > &A, const ArcsMat< MB, NB, TB > &B) |
| AX = Bの形の線形方程式をXについて解く関数(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::inv (const ArcsMat< M, N, T > &A, ArcsMat< P, Q, R > &Y) |
| 逆行列を返す関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::inv (const ArcsMat< M, N, T > &A) |
| 逆行列を返す関数(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t P, size_t Q, typename R = double> |
constexpr void | ARCS::ArcsMatrix::pinv (const ArcsMat< M, N, T > &A, ArcsMat< P, Q, R > &Y) |
| Moore-Penroseの擬似逆行列を返す関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< N, M, T > | ARCS::ArcsMatrix::pinv (const ArcsMat< M, N, T > &A) |
| Moore-Penroseの疑似逆行列を返す関数(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MP, size_t NP, typename TP = double, size_t MH, size_t NH, typename TH = double> |
constexpr void | ARCS::ArcsMatrix::Hessenberg (const ArcsMat< M, N, T > &A, ArcsMat< MP, NP, TP > &P, ArcsMat< MH, NH, TH > &H) |
| Hessenberg分解(引数渡し版) 複素数の場合、この関数はMATLABとは異なる解を出力する。
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | ARCS::ArcsMatrix::Hessenberg (const ArcsMat< M, N, T > &A) |
| Hessenberg分解(タプル返し版) 複素数の場合、この関数はMATLABとは異なる解を出力する。
|
|
template<size_t M, size_t N, typename T = double, size_t MU, size_t NU, typename TU = double, size_t MS, size_t NS, typename TS = double> |
constexpr void | ARCS::ArcsMatrix::Schur (const ArcsMat< M, N, T > &A, ArcsMat< MU, NU, TU > &U, ArcsMat< MS, NS, TS > &S) |
| 複素Schur分解(引数渡し版) この関数はMATLABとは異なる解を出力する、ただしもちろん、A = USU' は成立
|
|
template<size_t M, size_t N, typename T = double> |
constexpr std::tuple< ArcsMat< M, N, T >, ArcsMat< M, N, T > > | ARCS::ArcsMatrix::Schur (const ArcsMat< M, N, T > &A) |
| Schur分解(タプル返し版) この関数はMATLABとは異なる解を出力する、ただしもちろん、A = USU' は成立
|
|
template<size_t M, size_t N, typename T = double, size_t MV, size_t NV, typename TV = std::complex<double>> |
constexpr void | ARCS::ArcsMatrix::eig (const ArcsMat< M, N, T > &A, ArcsMat< MV, NV, TV > &v) |
| 固有値を返す関数
|
|
template<size_t M, size_t N, typename T = double, typename TV = std::complex<double>> |
constexpr ArcsMat< M, 1, TV > | ARCS::ArcsMatrix::eig (const ArcsMat< M, N, T > &A) |
| 固有値を返す関数(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MV, size_t NV, typename TV = std::complex<double>, size_t MD, size_t ND, typename TD = std::complex<double>> |
constexpr void | ARCS::ArcsMatrix::eigvec (const ArcsMat< M, N, T > &A, ArcsMat< MV, NV, TV > &V, ArcsMat< MD, ND, TD > &D) |
| 固有値を持つ対角行列Dと、各々の固有値に対応する固有ベクトルを持つ行列Vを返す関数(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, typename TV = std::complex<double>> |
constexpr std::tuple< ArcsMat< M, N, TV >, ArcsMat< M, N, TV > > | ARCS::ArcsMatrix::eigvec (const ArcsMat< M, N, T > &A) |
| 固有値を持つ対角行列Dと、各々の固有値に対応する固有ベクトルを持つ行列Vを返す関数(タプル返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MR, size_t NR, typename TR = double, size_t MY, size_t NY, typename TY = double> |
constexpr void | ARCS::ArcsMatrix::Kron (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R, ArcsMat< MY, NY, TY > &Y) |
| クロネッカー積(引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MR, size_t NR, typename TR = double> |
constexpr ArcsMat< M *MR, N *NR, T > | ARCS::ArcsMatrix::Kron (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R) |
| クロネッカー積(戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MR, size_t NR, typename TR = double, size_t MY, size_t NY, typename TY = double> |
constexpr void | ARCS::ArcsMatrix::cross (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R, ArcsMat< MY, NY, TY > &Y) |
| クロス積 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MR, size_t NR, typename TR = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::cross (const ArcsMat< M, N, T > &L, const ArcsMat< MR, NR, TR > &R) |
| クロス積 (戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MY, size_t NY, typename TY = double> |
constexpr void | ARCS::ArcsMatrix::vec (const ArcsMat< M, N, T > &U, ArcsMat< MY, NY, TY > &y) |
| vec作用素(行列→縦ベクトル) (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M *N, 1, T > | ARCS::ArcsMatrix::vec (const ArcsMat< M, N, T > &U) |
| vec作用素(行列→縦ベクトル) (戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MY, size_t NY, typename TY = double> |
constexpr void | ARCS::ArcsMatrix::vecinv (const ArcsMat< M, N, T > &u, ArcsMat< MY, NY, TY > &Y) |
| vec作用素の逆(縦ベクトル→行列) (引数渡し版)
|
|
template<size_t MY, size_t NY, size_t M, size_t N, typename T = double> |
constexpr ArcsMat< MY, NY, T > | ARCS::ArcsMatrix::vecinv (const ArcsMat< M, N, T > &u) |
| vec作用素の逆(縦ベクトル→行列) (戻り値返し版)
|
|
template<size_t M, size_t N, typename T = double, size_t MY, size_t NY, typename TY = double> |
constexpr void | ARCS::ArcsMatrix::expm (const ArcsMat< M, N, T > &U, ArcsMat< MY, NY, TY > &Y, const size_t k=13) |
| 行列指数関数 (引数渡し版)
|
|
template<size_t M, size_t N, typename T = double> |
constexpr ArcsMat< M, N, T > | ARCS::ArcsMatrix::expm (const ArcsMat< M, N, T > &U, const size_t k=13) |
| 行列指数関数 (戻り値返し版)
|
|