|
SigUtil
0.95
Utility modules for modern C++
|
Namespaces | |
| impl | |
Classes | |
| struct | AbsoluteError |
| 誤差基準(絶対誤差) More... | |
| class | array |
| STLライクな静的配列 More... | |
| struct | assign_div_t |
| compound_assignment の第1引数に指定する代入関数のプリセット(除算代入) More... | |
| struct | assign_minus_t |
| compound_assignment の第1引数に指定する代入関数のプリセット(減算代入) More... | |
| struct | assign_mult_t |
| compound_assignment の第1引数に指定する代入関数のプリセット(乗算代入) More... | |
| struct | assign_plus_t |
| compound_assignment の第1引数に指定する代入関数のプリセット(加算代入) More... | |
| struct | BinaryDistance |
| バイナリ距離 More... | |
| struct | CanberraDistance |
| キャンベラ距離 More... | |
| struct | CosineSimilarity |
| コサイン類似度(Cosine Similarity) More... | |
| struct | decrement_t |
| 引数の値をデクリメントした値を返す関数オブジェクト More... | |
| struct | div_t |
| 除法を行う関数オブジェクト More... | |
| class | Histgram |
| ヒストグラム More... | |
| struct | identity_t |
| 引数の変数をそのまま返す関数オブジェクト More... | |
| struct | increment_t |
| 引数の値をインクリメントした値を返す関数オブジェクト More... | |
| struct | JS_Divergence |
| JS情報量(Jensen-Shannon Divergence) More... | |
| struct | KL_Divergence |
| KL情報量(Kullback–Leibler Divergence) More... | |
| struct | MahalanobisDistance |
| class | ManageConvergence |
| 収束判定の計算と管理を行うクラス More... | |
| class | ManageConvergenceSimple |
| 収束判定の管理を行うクラス More... | |
| struct | MaxNorm |
| 最大ノルム More... | |
| struct | MinkowskiDistance |
| ミンコフスキー距離 More... | |
| struct | minus_t |
| 減法を行う関数オブジェクト More... | |
| struct | mult_t |
| 乗法を行う関数オブジェクト More... | |
| struct | Norm |
| Pノルム More... | |
| class | Percent |
| パーセント型 More... | |
| struct | plus_t |
| 加法を行う関数オブジェクト More... | |
| struct | RelativeError |
| 誤差基準(相対誤差) More... | |
| class | SimpleRandom |
| 初期化時に指定した範囲の一様分布乱数を発生させるクラス More... | |
| class | TagDealer |
| HTML風にタグをエンコード・デコードする More... | |
| class | TimeWatch |
| タイムウォッチ More... | |
| class | ZenHanReplace |
| 全角・半角文字の置換処理を行う More... | |
Typedefs | |
| template<class T > | |
| using | matrix_u = boost::numeric::ublas::matrix< T > |
| template<class T > | |
| using | vector_u = boost::numeric::ublas::vector< T > |
| using | ManhattanDistance = MinkowskiDistance< 1 > |
| using | EuclideanDistance = MinkowskiDistance< 2 > |
| template<class T > | |
| using | Maybe = boost::optional< T > |
| template<class R > | |
| using | IfsSelector = typename impl::SameIf< R, std::string, std::ifstream, std::wifstream >::type |
Enumerations | |
| enum | WriteMode { WriteMode::overwrite, WriteMode::append, WriteMode::overwrite, WriteMode::append } |
| SaveLine, SaveNum の保存に関する設定 More... | |
| enum | WriteMode { WriteMode::overwrite, WriteMode::append, WriteMode::overwrite, WriteMode::append } |
Functions | |
| template<class F , class C1 , class C2 , typename std::enable_if< impl::container_traits< C1 >::exist &&impl::container_traits< C2 >::exist >::type *& = enabler> | |
| void | compound_assignment (F &&assign_op, C1 &dest, C2 const &src) |
| コンテナへの代入演算 (element-wise: container and container) More... | |
| template<class F , class C , class T , typename std::enable_if< impl::container_traits< C >::exist &&!impl::container_traits< T >::exist >::type *& = enabler> | |
| void | compound_assignment (F &&assign_op, C &dest, T src) |
| コンテナへの代入演算 (element-wise: container and scalar) More... | |
| template<class R = void, class C = void> | |
| auto | sum (C const &data) -> typename impl::SameIf< R, void, typename impl::container_traits< C >::value_type, R >::type |
| 総和 More... | |
| template<class R = void, class C = void, class Pred = void> | |
| auto | sum (C const &data, Pred const &access_func) -> typename impl::SameIf< R, void, decltype(impl::eval(access_func, std::declval< typename impl::container_traits< C >::value_type >())), R >::type |
| 総和 More... | |
| template<class R = void, class CC = void> | |
| auto | sum_row (CC const &matrix, uint index) |
| 行列の指定行の総和 More... | |
| template<class R = void, class CC = void> | |
| auto | sum_col (CC const &matrix, uint index) |
| 行列の指定列の総和 More... | |
| template<class R = void, class C = void> | |
| auto | product (C const &data) -> typename impl::SameIf< R, void, typename impl::container_traits< C >::value_type, R >::type |
| 総乗 More... | |
| template<class R = void, class C = void, class Pred = void> | |
| auto | product (C const &data, Pred const &access_func) -> typename impl::SameIf< R, void, decltype(impl::eval(access_func, std::declval< typename impl::container_traits< C >::value_type >())), R >::type |
| 総乗 More... | |
| template<class R = void, class CC = void> | |
| auto | product_row (CC const &matrix, uint index) |
| 行列の指定行の総乗 More... | |
| template<class R = void, class CC = void> | |
| auto | product_col (CC const &matrix, uint index) |
| 行列の指定列の総乗 More... | |
| template<class C > | |
| double | average (C const &data) |
| 平均 More... | |
| template<class C > | |
| double | variance (C const &data) |
| 分散 More... | |
| template<class C , typename std::enable_if< std::is_floating_point< typename impl::container_traits< C >::value_type >::value >::type *& = enabler> | |
| bool | normalize (C &data) |
| 正規化(Normalization) More... | |
| template<class R = double, class C = void> | |
| auto | normalize (C const &data, int dummy=0) -> typename impl::container_traits< C >::template rebind< R > |
| 正規化(Normalization) More... | |
| template<class C , typename std::enable_if< std::is_floating_point< typename impl::container_traits< C >::value_type >::value >::type *& = enabler> | |
| bool | standardize (C &data) |
| 標準化(Standardization) More... | |
| template<class R = double, class C = void> | |
| auto | standardize (C const &data, int dummy=0) -> typename impl::container_traits< C >::template rebind< R > |
| 標準化(Standardization) More... | |
| template<class C , typename std::enable_if< std::is_floating_point< typename impl::container_traits< C >::value_type >::value >::type *& = enabler> | |
| bool | normalize_dist (C &data) |
| 確率分布の正規化 More... | |
| template<class R = double, class C = void> | |
| auto | normalize_dist (C const &data, int dummy=0) -> typename impl::container_traits< C >::template rebind< R > |
| 確率分布の正規化 More... | |
| template<class OP , class T1 , class T2 , typename std::enable_if< (!impl::container_traits< typename impl::remove_const_reference< T1 >::type >::exist)&&(!impl::container_traits< typename impl::remove_const_reference< T2 >::type >::exist) >::type *& = enabler> | |
| auto | binary_operation (OP &&func, T1 &&v1, T2 &&v2) -> typename impl::remove_const_reference< decltype(impl::eval(std::forward< OP >(func), std::forward< T1 >(v1), std::forward< T2 >(v2)))>::type |
| 二項演算 (scalar and scalar) More... | |
| template<class OP , class C1 , class C2 , class CR1 = typename impl::remove_const_reference<C1>::type, class CR2 = typename impl::remove_const_reference<C2>::type, class AT1 = typename impl::forward_element<C1>::type, class AT2 = typename impl::forward_element<C2>::type, typename std::enable_if< impl::container_traits< CR1 >::exist &&impl::container_traits< CR2 >::exist >::type *& = enabler> | |
| auto | binary_operation (OP &&func, C1 &&c1, C2 &&c2) -> typename impl::container_traits< CR1 >::template rebind< typename impl::remove_const_reference< decltype(impl::eval(std::forward< OP >(func), std::declval< AT1 >(), std::declval< AT2 >()))>::type > |
| 二項演算 (element-wise: container and container) More... | |
| template<class OP , class C , class T , class CR = typename impl::remove_const_reference<C>::type, class ET = typename impl::forward_element<C>::type, typename std::enable_if< impl::container_traits< CR >::exist &&(!impl::container_traits< typename impl::remove_const_reference< T >::type >::exist) >::type *& = enabler> | |
| auto | binary_operation (OP &&func, C &&c, T &&v) -> typename impl::container_traits< CR >::template rebind< typename impl::remove_const_reference< decltype(impl::eval(std::forward< OP >(func), std::declval< ET >(), v))>::type > |
| 二項演算 (element-wise: container and scalar) More... | |
| template<class OP , class T , class C , class ET = typename impl::forward_element<C>::type, class CR = typename impl::remove_const_reference<C>::type, typename std::enable_if< (!impl::container_traits< typename impl::remove_const_reference< T >::type >::exist)&&impl::container_traits< CR >::exist >::type *& = enabler> | |
| auto | binary_operation (OP &&func, T &&v, C &&c) -> typename impl::container_traits< CR >::template rebind< typename impl::remove_const_reference< decltype(impl::eval(std::forward< OP >(func), v, std::declval< ET >()))>::type > |
| 二項演算 (element-wise: scalar and container) More... | |
| template<class T1 , class T2 > | |
| auto | plus (T1 &&v1, T2 &&v2) -> decltype(binary_operation(plus_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 > | |
| auto | minus (T1 &&v1, T2 &&v2) -> decltype(binary_operation(minus_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 > | |
| auto | mult (T1 &&v1, T2 &&v2) -> decltype(binary_operation(mult_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 > | |
| auto | div (T1 &&v1, T2 &&v2) -> decltype(binary_operation(div_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 , class TR1 = typename impl::remove_const_reference<T1>::type, class TR2 = typename impl::remove_const_reference<T2>::type, typename std::enable_if< impl::container_traits< TR1 >::exist||impl::container_traits< TR2 >::exist >::type *& = enabler> | |
| auto | operator+ (T1 &&v1, T2 &&v2) -> decltype(binary_operation(plus_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 , class TR1 = typename impl::remove_const_reference<T1>::type, class TR2 = typename impl::remove_const_reference<T2>::type, typename std::enable_if< impl::container_traits< TR1 >::exist||impl::container_traits< TR2 >::exist >::type *& = enabler> | |
| auto | operator- (T1 &&v1, T2 &&v2) -> decltype(binary_operation(minus_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 , class TR1 = typename impl::remove_const_reference<T1>::type, class TR2 = typename impl::remove_const_reference<T2>::type, typename std::enable_if< impl::container_traits< TR1 >::exist||impl::container_traits< TR2 >::exist >::type *& = enabler> | |
| auto | operator* (T1 &&v1, T2 &&v2) -> decltype(binary_operation(mult_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class T1 , class T2 , class TR1 = typename impl::remove_const_reference<T1>::type, class TR2 = typename impl::remove_const_reference<T2>::type, typename std::enable_if< impl::container_traits< TR1 >::exist||impl::container_traits< TR2 >::exist >::type *& = enabler> | |
| auto | operator/ (T1 &&v1, T2 &&v2) -> decltype(binary_operation(div_t(), std::forward< T1 >(v1), std::forward< T2 >(v2))) |
| template<class F , class... Cs> | |
| void | for_each (F &&func, Cs &&...containers) |
| 複数コンテナを反復処理 More... | |
| template<class F , class... Cs> | |
| void | for_each (F &&func, int init, Cs &&...containers) |
| 複数コンテナを反復処理 (添字変数の利用可) More... | |
| template<class V , class R = std::vector<typename V::value_type>> | |
| auto | from_vector_ublas (V const &vec) -> R |
| ublas::vector<T> から STLのvectorへ変換 More... | |
| template<class M , class R = std::vector<typename M::value_type>> | |
| auto | from_matrix_ublas (M const &mat, uint row) -> R |
| ublas::matrix<T> の指定行を STLのvectorへ変換 More... | |
| template<class M , class R = std::vector<std::vector<typename M::value_type>>> | |
| auto | from_matrix_ublas (M const &mat) -> R |
| ublas::matrix<T> から STLのvectorの2次元配列へ変換 More... | |
| template<class C , class T = typename impl::container_traits<C>::value_type> | |
| auto | to_vector_ublas (C const &vec) -> vector_u< T > |
| STLのvector から ublas::vector<T> へ変換 More... | |
| template<class CC , class T = typename impl::container_traits<typename impl::container_traits<CC>::value_type>::value_type> | |
| auto | to_matrix_ublas (CC const &mat) -> matrix_u< T > |
| STLのvectorの2次元配列 から ublas::matrix<T> へ変換 More... | |
| template<class T , class RT = typename std::conditional<std::is_integral<T>::value, double, T>::type> | |
| auto | invert_matrix (matrix_u< T > &&mat) -> Maybe< matrix_u< RT >> |
| 逆行列を求める More... | |
| template<class T , class RT = typename std::conditional<std::is_integral<T>::value, double, T>::type> | |
| auto | invert_matrix (matrix_u< T > const &mat) -> Maybe< matrix_u< RT >> |
| template<class T , class RT = typename std::conditional<std::is_integral<T>::value, double, T>::type> | |
| auto | matrix_vector_solve (matrix_u< T > &&mat, vector_u< T > &&vec) -> Maybe< vector_u< RT >> |
| 連立方程式を解く More... | |
| template<class T , class RT = typename std::conditional<std::is_integral<T>::value, double, T>::type> | |
| auto | matrix_vector_solve (matrix_u< T > const &mat, vector_u< T > const &vec) -> Maybe< vector_u< RT >> |
| template<class T , class RT = typename std::conditional<std::is_integral<T>::value, double, T>::type> | |
| auto | matrix_vector_solve (matrix_u< T > const &mat, vector_u< T > &&vec) -> Maybe< vector_u< RT >> |
| template<class T , class RT = typename std::conditional<std::is_integral<T>::value, double, T>::type> | |
| auto | matrix_vector_solve (matrix_u< T > &&mat, vector_u< T > const &vec) -> Maybe< vector_u< RT >> |
| template<class F , class V > | |
| auto | map_v (F &&func, V &&vec) |
| ベクトルの全要素に対して、値を返す関数を適用し、その結果のベクトルを返す More... | |
| template<class F , class M > | |
| auto | map_m (F &&func, M &&mat) |
| template<class F , class V , class... Vs> | |
| void | for_each_v (F &&func, V &vec, Vs &&...vecs) |
| ベクトルの全要素に対して、関数を適用する More... | |
| template<class F , class M > | |
| void | for_each_m (F &&func, M &mat) |
| 行列の全要素に対して、代入演算を行う関数を適用する More... | |
| template<class F , class M > | |
| void | for_diagonal (F &&func, M &mat) |
| 行列の対角要素の対して、代入演算を行う関数を適用する More... | |
| template<class V , typename std::enable_if< std::is_floating_point< typename V::value_type >::value >::type *& = enabler> | |
| bool | normalize_dist_v (V &data) |
| template<class V > | |
| auto | normalize_dist_v (V const &data, int dummy=0) |
| template<class C1 , class C2 > | |
| bool | is_same_size (C1 const &v1, C2 const &v2) |
| template<class C1 , class C2 > | |
| bool | is_valid_distribution (C1 const &v1, C2 const &v2) |
| 離散確率分布の性質を満たしているか確認 More... | |
| template<class C > | |
| bool | has_zero (C const &v) |
| 要素の値に0があるか確認 More... | |
| template<class C1 , class C2 > | |
| bool | is_comparable (C1 const &v1, C2 const &v2, impl::NumericVectorTag) |
| 2つのベクトルが比較可能か確認 More... | |
| template<class C1 , class C2 > | |
| bool | is_comparable (C1 const &v1, C2 const &v2, impl::DistributionTag) |
| 2つの確率分布が比較可能か確認 More... | |
| auto | modify_dirpass_tail (FilepassString const &directory_pass, bool const has_slash) -> FilepassString |
| ディレクトリ・ファイルパスの末尾に'/'or'\'があるかチェックし、付けるか外すかどうかを指定して反映 More... | |
| auto | get_file_names (FilepassString const &directory_pass, bool hidden_file, std::wstring extension=L"") -> Maybe< std::vector< std::wstring >> |
| 指定ディレクトリにあるファイル名を取得 More... | |
| auto | get_folder_names (FilepassString const &directory_pass, bool hidden_file) -> Maybe< std::vector< std::wstring >> |
| 指定ディレクトリにあるフォルダ名を取得 More... | |
| void | clear_file (FilepassString const &file_pass) |
| ファイル内容の初期化 More... | |
| template<class F , class C , class CR = typename impl::remove_const_reference<C>::type, class ET = typename impl::forward_element<C>::type> | |
| auto | filter (F &&pred, C &&list) |
| コンテナから指定条件を満たす要素を抽出する More... | |
| template<class F , class C , class CR = typename impl::remove_const_reference<C>::type, class ET = typename impl::forward_element<C>::type> | |
| auto | filter (F &&pred, int init, C &&list) |
| コンテナから指定条件を満たす要素を抽出する(反復回数を表すindexが利用できる) More... | |
| template<class F , class C , class CR = typename impl::remove_const_reference<C>::type, class ET = typename impl::forward_element<C>::type> | |
| auto | partition (F &&pred, C &&list) |
| コンテナから指定条件を満たす要素とそれ以外の要素とを分離する More... | |
| template<class F , class T , class C > | |
| auto | foldl (F &&func, T &&init, C &&list) |
| コンテナの先頭からたたみ込み More... | |
| template<class F , class T , class C > | |
| auto | foldr (F &&func, T &&init, C &&list) |
| コンテナの末尾からたたみ込み More... | |
| template<class F1 , class F2 , class T , class... Cs> | |
| auto | dotProduct (F1 &&fold_func, F2 &&oper_func, T &&init, Cs &&...lists) |
| 可変長個のコンテナに対して関数適用して結果を集約する関数 More... | |
| template<class F , class C1 , class... Cs> | |
| auto | variadicZipWith (F &&func, C1 &&list1, Cs &&...lists) |
| n引数高階関数 More... | |
| template<class F , class C > | |
| auto | map (F &&func, C &&list) |
| 1引数高階関数 More... | |
| template<class F , class C1 , class C2 > | |
| auto | zipWith (F &&func, C1 &&list1, C2 &&list2) |
| 2引数高階関数 More... | |
| template<class T , class C = std::vector<T>> | |
| auto | replicate (uint n, T const &value) -> C |
| 値を複製したコンテナを返す More... | |
| template<class C > | |
| auto | reverse (C &&list) -> typename impl::remove_const_reference< C >::type |
| コンテナの要素の順番を逆転させたコンテナを返す More... | |
| template<class C , class R = typename impl::remove_const_reference<C>::type, typename std::enable_if<!impl::static_container_traits< R >::exist >::type *& = enabler> | |
| auto | merge (C &&list1, C &&list2) -> R |
| コンテナの結合(同じコンテナ型) More... | |
| template<class R = void, class C1 , class C2 , class CR1 = typename impl::remove_const_reference<C1>::type, class CR2 = typename impl::remove_const_reference<C2>::type, class RT = typename std::common_type< typename impl::container_traits<CR1>::value_type, typename impl::container_traits<CR2>::value_type >::type, class RR = typename impl::SameIf<R, void, typename impl::remove_const_reference< typename impl::container_traits<CR1>::template rebind<RT>>::type, R >::type, class AT1 = typename impl::forward_element<C1>::type, class AT2 = typename impl::forward_element<C2>::type, typename std::enable_if<!(impl::static_container_traits< CR1 >::exist)>::type *& = enabler> | |
| auto | merge (C1 &&list1, C2 &&list2) -> RR |
| template<class R = void, class SC , class C , class SCR = typename impl::remove_const_reference<SC>::type, class CR = typename impl::remove_const_reference<C>::type, class RT = typename std::common_type< typename impl::static_container_traits<SCR>::value_type, typename impl::container_traits<CR>::value_type >::type, class RR = typename impl::SameIf<R, void, typename impl::remove_const_reference< typename impl::container_traits<CR>::template rebind<RT>>::type, R >::type, typename std::enable_if< impl::static_container_traits< SCR >::exist &&(!impl::static_container_traits< CR >::exist)>::type *& = enabler> | |
| auto | merge (SC &&list1, C &&list2) -> RR |
| template<class R = void, class SC1 , class SC2 , class SCR1 = typename impl::remove_const_reference<SC1>::type, class SCR2 = typename impl::remove_const_reference<SC2>::type, class RT = typename std::common_type< typename impl::static_container_traits<SCR1>::value_type, typename impl::static_container_traits<SCR2>::value_type >::type, class RR = typename impl::SameIf<R, void, typename impl::static_container_traits<SCR1>::template rebind_t<RT, impl::plus_t<impl::static_container_traits<SCR1>::size, impl::static_container_traits<SCR2>::size>::value>, R >::type, typename std::enable_if< impl::static_container_traits< SCR1 >::exist &&impl::static_container_traits< SCR2 >::exist >::type *& = enabler> | |
| auto | merge (SC1 &&list1, SC2 &&list2) -> RR |
| template<class C , class CR = typename impl::remove_const_reference<C>::type> | |
| auto | take (uint n, C &&list) -> CR |
| コンテナの先頭からn個の要素を取り出す More... | |
| template<class C , class CR = typename impl::remove_const_reference<C>::type> | |
| auto | drop (uint n, C &&list) -> CR |
| コンテナの先頭からn個を削除したコンテナを返す More... | |
| template<class T1 , class T2 , class TC = typename std::common_type<T1, T2>::type, class C = std::vector<TC>> | |
| C | seqn (T1 st, T2 d, uint n) |
| 等差数列 More... | |
| template<class... Cs> | |
| auto | zip (Cs &&...lists) |
| 複数のコンテナから、タプルのコンテナを作る More... | |
| template<uint Index, class CT , class T = typename std::tuple_element<Index, typename impl::container_traits<typename impl::remove_const_reference<CT>::type>::value_type>::type, class R = std::vector<T>> | |
| auto | unzip (CT &&list_tuple) -> R |
| タプルのコンテナから、指定したindexのコンテナを取り出す More... | |
| template<class CT > | |
| auto | unzip (CT &&c_tuple) |
| タプルのコンテナから、コンテナのタプルを作る More... | |
| template<class C , class F , class... Its> | |
| void | iterative_make (uint loop, C &dest, F &&func, Its...iterators) |
| template<class T , class F1 , class F2 , class... Its> | |
| void | iterative_fold (uint loop, T &dest, F1 &&zip, F2 &&fold, Its...iterators) |
| template<class F , class... Its> | |
| void | iterative_assign (uint loop, F &&func, Its...iterators) |
| template<class F , class... Its> | |
| void | iterative_assign (uint loop, int init, F &&func, Its...iterators) |
| template<class C > | |
| void | erase (C &container, typename impl::sequence_container_traits< C >::value_type const &t) |
| template<class C > | |
| void | erase (C &container, typename impl::associative_container_traits< C >::value_type const &t) |
| template<class C > | |
| void | erase (C &container, typename impl::hash_container_traits< C >::value_type const &t) |
| template<class C , class F , typename std::enable_if< impl::sequence_container_traits< C >::exist >::type *& = enabler> | |
| void | erase_if (C &container, F const &remove_pred) |
| template<class RC , class C > | |
| auto | copy (C &&src) -> RC |
| 別の種類のコンテナに要素をコピーする More... | |
| template<class B > | |
| bool | And (B &&cond) |
| template<class B1 , class... Bs> | |
| bool | And (B1 &&cond, Bs &&...conds) |
| 可変長 and More... | |
| template<class B > | |
| bool | Or (B &&cond) |
| template<class B1 , class... Bs> | |
| bool | Or (B1 &&cond, Bs &&...conds) |
| 可変長 or More... | |
| template<class B1 , class B2 > | |
| bool | Xor (B1 &&a, B2 &&b) |
| xor More... | |
| template<class B1 , class B2 > | |
| bool | Consistency (B1 &&a, B2 &&b) |
| AとBの真偽一致でtrueを返す (⇔ !xor) More... | |
| template<class T > | |
| auto | min (T v) -> T |
| template<class T1 , class T2 > | |
| auto | min (T1 v1, T2 v2) |
| template<class T , class... Ts> | |
| auto | min (T v, Ts...vs) |
| 可変長 min More... | |
| template<class T > | |
| auto | max (T v) -> T |
| template<class T1 , class T2 > | |
| auto | max (T1 v1, T2 v2) |
| template<class T , class... Ts> | |
| auto | max (T v, Ts...vs) |
| 可変長 max More... | |
| template<class T > | |
| constexpr bool | is_number (T x) |
| 値が非数(NaN)でないかを確認 More... | |
| template<class T > | |
| constexpr bool | is_finite_number (T x) |
| 値が非数(NaN)でなく、かつ無限大(Inf)でないかを確認 More... | |
| template<class T > | |
| T | abs_delta (T v1, T v2) |
| template<class T1 , class T2 > | |
| auto | abs_delta (T1 v1, T2 v2) -> decltype(v1< v2?v2-v1:v1-v2) |
| 2変数の差の絶対値を返す More... | |
| template<class T1 , class T2 , typename std::enable_if<!(impl::is_string< T1 >::value||impl::is_string< T2 >::value)>::type *& = enabler> | |
| bool | equal (T1 &&v1, T2 &&v2) |
| 数値の簡易等値比較(厳密な計算でない場合の使用を想定) More... | |
| template<class S1 , class S2 , typename std::enable_if<(impl::is_string< S1 >::value &&impl::is_string< S2 >::value)>::type *& = enabler> | |
| bool | equal (S1 &&v1, S2 &&v2) |
| 文字列の等値比較 More... | |
| template<class T1 , class T2 > | |
| bool | equal_tolerant (T1 v1, T2 v2, typename std::common_type< T1, T2 >::type margin) |
| 指定範囲内の誤差を許した等値比較 More... | |
| template<class T , class U > | |
| constexpr bool | check_range (T const &val, U const &min, U const &max) |
| 値の範囲チェック More... | |
| template<class T , class U > | |
| bool | modify_range (T &val, U const &min, U const &max) |
| 値を範囲内に自動修正 More... | |
| template<class T1 , class T2 > | |
| constexpr bool | greater (T1 v1, T2 v2) |
| template<class T1 , class T2 > | |
| constexpr bool | less (T1 v1, T2 v2) |
| template<class T , class R = typename sig::impl::remove_const_reference<T>::type> | |
| Maybe< R > | Just (T &&v) |
| 値コンストラクタ More... | |
| template<class T > | |
| Maybe< T > | Just (T const &v) |
| template<class T = void> | |
| auto | Nothing () -> typename impl::SameIf< T, void, typename boost::none_t, Maybe< T >>::type |
| 値コンストラクタ More... | |
| template<class T > | |
| auto | Nothing (T const &dummy) -> Maybe< T > |
| 値コンストラクタ More... | |
| template<class T > | |
| bool | isJust (Maybe< T > const &m) |
| Justであるか調べる関数.Maybe a -> Bool. More... | |
| constexpr bool | isJust (boost::none_t m) |
| template<class T > | |
| bool | isNothing (Maybe< T > const &m) |
| Nothingであるか調べる関数.Maybe a -> Bool. More... | |
| constexpr bool | isNothing (boost::none_t m) |
| template<class T > | |
| T & | fromJust (Maybe< T > &m) |
| Justから値を取り出す関数.Maybe a -> a. More... | |
| template<class T > | |
| T const & | fromJust (Maybe< T > const &m) |
| template<class T > | |
| T && | fromJust (Maybe< T > &&m) |
| template<class T > | |
| T & | operator* (Maybe< T > &m) |
| fromJust演算子 More... | |
| template<class T > | |
| T const & | operator* (Maybe< T > const &m) |
| template<class T > | |
| T && | operator* (Maybe< T > &&m) |
| template<class T > | |
| T & | fromMaybe (T &def, Maybe< T > &m) |
| Maybeから値を取り出す関数.もしNothingなら引数のデフォルト値を返す.a -> Maybe a -> a. More... | |
| template<class T > | |
| T const & | fromMaybe (T const &def, Maybe< T > const &m) |
| template<class T > | |
| T && | fromMaybe (T &&def, Maybe< T > &&m) |
| template<class T > | |
| T && | fromMaybe (T &&def, boost::none_t m) |
| template<class F , class C > | |
| auto | mapMaybe (F const &f, C const &list) -> typename impl::container_traits< C >::template rebind< typename std::remove_reference< decltype(*(impl::eval(f, std::declval< typename impl::container_traits< C >::value_type >())))>::type > |
| Maybeを返す関数を指定するfilter関数.(a -> Maybe b) -> [a] -> [b]. More... | |
| template<class T , class F > | |
| auto | operator>>= (Maybe< T > const &m, F const &f) -> decltype(impl::eval(f, std::declval< T >())) |
| Haskell風のbind演算子. Maybe m => m a -> (a -> m b) -> m b. More... | |
| template<class F , class T > | |
| auto | operator<<= (F const &f, Maybe< T > const &m) -> decltype(impl::eval(f, std::declval< T >())) |
| C++に合わせたbind演算子. Maybe m => (a -> m b) -> m a -> m b. More... | |
| template<class T1 , class T2 > | |
| auto | operator<<= (Maybe< T1 > &m, T2 const &v) -> Maybe< T1 > & |
| Maybeオブジェクトへの再代入を行う演算子 More... | |
| template<class C , class CR = typename impl::remove_const_reference<C>::type, class T = typename impl::container_traits<CR>::value_type> | |
| auto | remove_duplicates (C &container) |
| コンテナの要素から重複した値を削除 More... | |
| template<class C > | |
| bool | remove_one (C &container, typename boost::call_traits< typename impl::container_traits< C >::value_type >::param_type remove) |
| コンテナから指定した値を1つ削除 More... | |
| template<class Pred , class C > | |
| bool | remove_one_if (C &container, Pred remove_pred) |
| コンテナから述語条件を満たす値を1つ削除 More... | |
| template<class C > | |
| bool | remove_all (C &container, typename boost::call_traits< typename impl::container_traits< C >::value_type >::param_type remove) |
| コンテナから指定した値を全削除 More... | |
| template<class Pred , class C > | |
| bool | remove_all_if (C &container, Pred remove_pred) |
| コンテナから述語条件を満たす値を全削除 More... | |
| template<class C > | |
| void | shuffle (C &container) |
| コンテナの要素をシャッフル More... | |
| template<class... Cs> | |
| void | shuffle (Cs &...containers) |
| 複数のコンテナの同じインデックスの要素を対応させながらシャッフル More... | |
| template<class F , class C , class CR = typename impl::remove_const_reference<C>::type, class T = typename impl::sequence_container_traits<CR>::value_type, typename std::enable_if< impl::has_random_access_iter< CR >::value >::type *& = enabler> | |
| auto | sort (C &container, F &&binary_op) -> decltype(impl::eval(std::forward< F >(binary_op), std::declval< T >(), std::declval< T >()), void()) |
| 標準ソート関数のラッパ More... | |
| template<class F , class C , class CR = typename impl::remove_const_reference<C>::type, class T = typename impl::static_container_traits<CR>::value_type, class D = void, typename std::enable_if< impl::has_random_access_iter< CR >::value >::type *& = enabler> | |
| auto | sort (C &container, F &&binary_op) -> decltype(impl::eval(std::forward< F >(binary_op), std::declval< T >(), std::declval< T >()), void()) |
| template<class C , class F , class T = typename impl::container_traits<typename impl::remove_const_reference<C>::type>::value_type> | |
| auto | sort_with_index (C &&container, F &&binary_op) |
| ソート前の位置を保持してソート More... | |
| auto | wstr_to_str (std::wstring const &src) -> std::string |
| ワイド文字 -> マルチバイト文字 More... | |
| template<class C , class R = typename impl::container_traits<C>::template rebind<std::string>, typename std::enable_if< std::is_same< typename impl::container_traits< C >::value_type, std::wstring >::value >::type *& = enabler> | |
| auto | wstr_to_str (C const &src) -> R |
| ワイド文字 -> マルチバイト文字 More... | |
| auto | str_to_wstr (std::string const &src) -> std::wstring |
| マルチバイト文字 -> ワイド文字 More... | |
| template<class C , class R = typename impl::container_traits<C>::template rebind<std::wstring>, typename std::enable_if< std::is_same< typename impl::container_traits< C >::value_type, std::string >::value >::type *& = enabler> | |
| auto | str_to_wstr (C const &src) -> R |
| マルチバイト文字 -> ワイド文字 More... | |
| auto | utf8_to_utf16 (std::string const &src) -> std::u16string |
| UTF-8 -> UTF-16. More... | |
| auto | utf16_to_utf8 (std::u16string const &src) -> std::string |
| UTF-16 -> UTF-8. More... | |
| auto | utf8_to_utf32 (std::string const &src) -> std::u32string |
| UTF-8 -> UTF-32. More... | |
| auto | utf32_to_utf8 (std::u32string const &src) -> std::string |
| UTF-32 -> UTF-8. More... | |
| auto | sjis_to_utf16 (std::string const &src) -> std::u16string |
| ShiftJIS -> UTF-16. More... | |
| auto | utf16_to_sjis (std::u16string const &src) -> std::string |
| UTF-16 -> ShiftJIS. More... | |
| auto | sjis_to_utf8 (std::string const &src) -> std::string |
| ShiftJIS -> UTF-8. More... | |
| auto | utf8_to_sjis (std::string const &src) -> std::string |
| UTF-8 -> ShiftJIS. More... | |
| template<template< class T_, class=std::allocator< T_ >> class CSeq = std::vector, class S = std::string, class TS = impl::string_t<S>> | |
| auto | split (S const &src, impl::string_t< S > const &delimiter) -> CSeq< TS > |
| 文字列(src)をある文字列(delimiter)を目印に分割する More... | |
| template<template< class T_, class=std::allocator< T_ >> class CSeq = std::vector> | |
| auto | split (char const *const src, char const *const delimiter) -> CSeq< std::string > |
| template<template< class T_, class=std::allocator< T_ >> class CSeq = std::vector> | |
| auto | split (wchar_t const *const src, wchar_t const *const delimiter) -> CSeq< std::wstring > |
| template<class C , class CR = typename impl::remove_const_reference<C>::type, class S = typename impl::SStreamSelector<typename impl::container_traits<CR>::value_type>::string> | |
| auto | cat (C &&container, typename sig::impl::identity< S >::type const &delimiter, std::locale osstream_locale=std::locale("")) -> S |
| コンテナ中の各文字列や数値を結合 More... | |
| template<class T , class S = typename impl::SStreamSelector<T>::string> | |
| auto | cat (std::initializer_list< T > container, typename sig::impl::identity< S >::type const &delimiter, std::locale osstream_locale=std::locale("")) -> S |
| auto | escape_regex (std::string const &expression) -> std::string |
| 与えられた文字中に含まれる、正規表現の特殊文字をエスケープする More... | |
| auto | escape_regex (std::wstring const &expression) -> std::wstring |
| template<class S > | |
| auto | make_regex (S const &expression) -> typename impl::Str2RegexSelector< impl::string_t< S >>::regex |
| エスケープ処理を行い、regexオブジェクトを返す More... | |
| template<class S , class TS = impl::string_t<S>> | |
| auto | regex_search (S &&src, typename impl::Str2RegexSelector< TS >::regex const &expression) -> Maybe< std::vector< std::vector< TS >>> |
| std::regex_search のラッパ関数 More... | |
| template<class C , typename std::enable_if< container_traits< C >::exist >::type *& = enabler> | |
| void | save_line (C const &src, typename impl::FStreamSelector< typename container_traits< C >::value_type >::ofstream &ofs) |
| template<class C , typename std::enable_if< container_traits< C >::exist &&!container_traits< typename container_traits< C >::value_type >::exist >::type *& = enabler> | |
| void | save_num (C const &src, FilepassString const &file_pass, WriteMode mode=WriteMode::overwrite, std::string delimiter="\n") |
| template<class CC , typename std::enable_if< container_traits< typename container_traits< CC >::value_type >::exist >::type *& = enabler> | |
| void | save_num (CC const &src, FilepassString const &file_pass, WriteMode mode=WriteMode::overwrite, std::string delimiter1="\n", std::string delimiter2="\n\n") |
| template<class C , class R = typename container_traits<C>::value_type> | |
| bool | read_line (C &empty_dest, IfsSelector< R > &ifs, std::function< R(typename impl::SameIf< R, std::string, std::string, std::wstring >::type) > const &conv=nullptr) |
| template<class C , class R = typename container_traits<C>::value_type> | |
| bool | read_line (C &empty_dest, FilepassString const &file_pass, std::function< R(typename impl::SameIf< R, std::string, std::string, std::wstring >::type)> const &conv=nullptr) |
| template<class R , class C = std::vector<R>> | |
| auto | read_line (IfsSelector< R > &ifs) -> Just< C > |
| template<class R , class C = std::vector<R>> | |
| auto | read_line (FilepassString const &file_pass) -> Just< C > |
| template<class R , class C = std::vector<R>> | |
| auto | read_line (FilepassStringC file_pass) -> Just< C > |
| template<class C , class RT = typename container_traits<C>::value_type, typename std::enable_if<!container_traits< typename container_traits< C >::value_type >::exist >::type *& = enabler> | |
| bool | read_num (C &empty_dest, FilepassString const &file_pass, std::string delimiter="\n") |
| template<class CC , class RC = typename container_traits<CC>::value_type, class RT = typename container_traits<RC>::value_type> | |
| bool | read_num (CC &empty_dest, FilepassString const &file_pass, std::string delimiter1="\n", std::string delimiter2="\n\n") |
| template<class C , typename std::enable_if< container_traits< C >::exist &&!container_traits< typename container_traits< C >::value_type >::exist >::type *& = enabler> | |
| auto | read_num (FilepassString const &file_pass, std::string delimiter="\n") -> Just< C > |
| void | Print (std::string const &text, char const *const delimiter="\n") |
| void | Print (std::wstring const &text, wchar_t const *const delimiter=L"\n") |
| template<class T , template< class...> class Container, typename std::enable_if<!std::is_same< T, std::wstring >::value >::type *& = enabler> | |
| void | Print (Container< T > const &container, char const *const delimiter="\n") |
| template<template< class...> class Container> | |
| void | Print (Container< std::wstring > const &container, wchar_t const *const delimiter=L"\n") |
| template<class CC1 , class CC2 > | |
| auto | GaleShapley (CC1 const &men_vec, CC2 const &women_vec) |
| template<class C = std::vector<int>> | |
| C | make_unique_numbers (uint n, int min, int max, bool debug) |
| 重複の無い一様分布の整数乱数を生成 More... | |
| template<class IFS_CHAR , class C , class R = typename impl::container_traits<C>::value_type> | |
| bool | load_line (C &empty_dest, std::basic_ifstream< IFS_CHAR > &ifs) |
| ファイルから1行ずつ読み込む(ifstreamを指定) More... | |
| template<class C , class R = typename impl::container_traits<C>::value_type> | |
| bool | load_line (C &empty_dest, FilepassString const &file_pass) |
| ファイルから1行ずつ読み込む(ファイル名を指定) More... | |
| template<class ISTR = std::string, class C = std::vector<ISTR>> | |
| auto | load_line (FilepassString const &file_pass) -> Maybe< C > |
| ファイルから1行ずつ読み込み、結果を返す(ファイル名を指定) More... | |
| template<class ISTR = std::string, class R = ISTR, class C = std::vector<R>> | |
| auto | load_line (FilepassStringC file_pass) -> Maybe< C > |
| template<class IFS_CHAR , class F , class C , class R = typename impl::container_traits<C>::value_type> | |
| bool | load_line (C &empty_dest, std::basic_ifstream< IFS_CHAR > &ifs, F const &conv) |
| ファイルから1行ずつ読み込み、同時に変換処理を行う(ifstreamを指定) More... | |
| template<class ISTR = std::string, class F , class C , class R = typename impl::container_traits<C>::value_type> | |
| bool | load_line (C &empty_dest, FilepassString const &file_pass, F const &conv) |
| ファイルから1行ずつ読み込み、同時に変換処理を行う(ファイル名を指定) More... | |
| template<class C , class RT = typename impl::container_traits<C>::value_type, typename std::enable_if<!impl::container_traits< typename impl::container_traits< C >::value_type >::exist >::type *& = enabler> | |
| bool | load_num (C &empty_dest, FilepassString const &file_pass, std::string delimiter="\n") |
| 数値列を読み込む More... | |
| template<class R , class C = std::vector<R>, typename std::enable_if< impl::container_traits< C >::exist &&!impl::container_traits< typename impl::container_traits< C >::value_type >::exist >::type *& = enabler> | |
| auto | load_num (FilepassString const &file_pass, std::string delimiter="\n") -> Maybe< C > |
| 数値列を読み込み、結果を返す More... | |
| template<class CC , class RC = typename impl::container_traits<CC>::value_type, class RT = typename impl::container_traits<RC>::value_type> | |
| bool | load_num2d (CC &empty_dest, FilepassString const &file_pass, std::string delimiter) |
| 2次元配列の数値(ex:行列)を読み込む More... | |
| template<class R , class CC = std::vector<std::vector<R>>, typename std::enable_if< impl::container_traits< typename impl::container_traits< CC >::value_type >::exist >::type *& = enabler> | |
| auto | load_num2d (FilepassString const &file_pass, std::string delimiter) -> Maybe< CC > |
| 2次元配列の数値(ex:行列)を読み込む More... | |
| template<class T , typename std::enable_if<!impl::container_traits< T >::exist >::type *& = enabler> | |
| void | save_line (T src, typename impl::FStreamSelector< T >::ofstream &ofs) |
| ファイルへ1行ずつ保存 More... | |
| template<class C , typename std::enable_if< impl::container_traits< C >::exist >::type *& = enabler> | |
| void | save_line (C const &src, typename impl::FStreamSelector< typename impl::container_traits< C >::value_type >::ofstream &ofs) |
| ファイルへ1行ずつまとめて保存 More... | |
| template<class T , typename std::enable_if<!impl::container_traits< T >::exist >::type *& = enabler> | |
| void | save_line (T src, FilepassString const &file_pass, WriteMode open_mode=WriteMode::overwrite) |
| ファイルへ1行ずつ保存 More... | |
| template<class C , typename std::enable_if< impl::container_traits< C >::exist >::type *& = enabler> | |
| void | save_line (C const &src, FilepassString const &file_pass, WriteMode open_mode=WriteMode::overwrite) |
| ファイルへ1行ずつまとめて保存 More... | |
| template<class C , typename std::enable_if< impl::container_traits< C >::exist &&!impl::container_traits< typename impl::container_traits< C >::value_type >::exist >::type *& = enabler> | |
| void | save_num (C const &src, FilepassString const &file_pass, std::string delimiter, WriteMode open_mode=WriteMode::overwrite) |
| 数値列(ex:ベクトル)の保存 More... | |
| template<class CC , typename std::enable_if< impl::container_traits< typename impl::container_traits< CC >::value_type >::exist >::type *& = enabler> | |
| void | save_num (CC const &src, FilepassString const &file_pass, std::string delimiter, WriteMode open_mode=WriteMode::overwrite) |
| 2次元配列の数値(ex:行列)を保存 More... | |
Variables | |
| const BinaryDistance | binary_distance |
| バイナリ距離を求める関数(関数オブジェクト) More... | |
| const CanberraDistance | canberra_distance |
| キャンベラ距離を求める関数(関数オブジェクト) More... | |
| const CosineSimilarity | cosine_similarity |
| コサイン類似度を求める関数(関数オブジェクト) More... | |
| const JS_Divergence | js_divergence |
| JS情報量を求める関数(関数オブジェクト) More... | |
| const KL_Divergence | kl_divergence |
| KL情報量を求める関数(関数オブジェクト) More... | |
| const ManhattanDistance | manhattan_distance |
| マンハッタン距離を求める関数(関数オブジェクト) More... | |
| const EuclideanDistance | euclidean_distance |
| ユークリッド距離を求める関数(関数オブジェクト) More... | |
| const Norm< 1 > | norm_L1 |
| L1ノルムを求める関数(関数オブジェクト) More... | |
| const Norm< 2 > | norm_L2 |
| L2ノルムを求める関数(関数オブジェクト) More... | |
| const MaxNorm | norm_max |
| 最大ノルムを求める関数(関数オブジェクト) More... | |
| void * | enabler |
| const AbsoluteError | absolute_error |
| const RelativeError | relative_error |
| using sig::EuclideanDistance = typedef MinkowskiDistance<2> |
Definition at line 65 of file minkowski_distance.hpp.
| using sig::IfsSelector = typedef typename impl::SameIf<R, std::string, std::ifstream, std::wifstream>::type |
Definition at line 295 of file file_tmp(save,read num).hpp.
| using sig::ManhattanDistance = typedef MinkowskiDistance<1> |
Definition at line 45 of file minkowski_distance.hpp.
| using sig::matrix_u = typedef boost::numeric::ublas::matrix<T> |
| using sig::Maybe = typedef boost::optional<T> |
| using sig::vector_u = typedef boost::numeric::ublas::vector<T> |
|
strong |
|
strong |
| Enumerator | |
|---|---|
| overwrite |
上書き |
| append |
末尾追記 |
| overwrite | |
| append | |
Definition at line 174 of file file_tmp(save,read num).hpp.
| T sig::abs_delta | ( | T | v1, |
| T | v2 | ||
| ) |
Definition at line 235 of file helper_modules.hpp.
| auto sig::abs_delta | ( | T1 | v1, |
| T2 | v2 | ||
| ) | -> decltype(v1 < v2 ? v2 - v1 : v1 - v2) |
| bool sig::And | ( | B && | cond | ) |
Definition at line 24 of file helper_modules.hpp.
| bool sig::And | ( | B1 && | cond, |
| Bs &&... | conds | ||
| ) |
可変長 and
| cond,conds | bool変数 または operator boolが定義されたオブジェクト |
Definition at line 43 of file helper_modules.hpp.
| double sig::average | ( | C const & | data | ) |
平均
| data | 平均を求めたい値集合(対応コンテナ ) |
Definition at line 223 of file basic_statistics.hpp.
| auto sig::binary_operation | ( | OP && | func, |
| T1 && | v1, | ||
| T2 && | v2 | ||
| ) | -> typename impl::remove_const_reference< decltype(impl::eval(std::forward<OP>(func), std::forward<T1>(v1), std::forward<T2>(v2)))>::type |
二項演算 (scalar and scalar)
| func | 二項演算関数 |
| v1 | 引数1 |
| v2 | 引数2 |
Definition at line 33 of file binary_operation.hpp.
| auto sig::binary_operation | ( | OP && | func, |
| C1 && | c1, | ||
| C2 && | c2 | ||
| ) | -> typename impl::container_traits<CR1>::template rebind< typename impl::remove_const_reference<decltype(impl::eval( std::forward<OP>(func), std::declval<AT1>(), std::declval<AT2>() ))>::type > |
二項演算 (element-wise: container and container)
Definition at line 49 of file binary_operation.hpp.
| auto sig::binary_operation | ( | OP && | func, |
| C && | c, | ||
| T && | v | ||
| ) | -> typename impl::container_traits<CR>::template rebind< typename impl::remove_const_reference<decltype(impl::eval( std::forward<OP>(func), std::declval<ET>(), v ))>::type > |
二項演算 (element-wise: container and scalar)
Definition at line 76 of file binary_operation.hpp.
| auto sig::binary_operation | ( | OP && | func, |
| T && | v, | ||
| C && | c | ||
| ) | -> typename impl::container_traits<CR>::template rebind< typename impl::remove_const_reference<decltype(impl::eval( std::forward<OP>(func), v, std::declval<ET>() ))>::type > |
二項演算 (element-wise: scalar and container)
Definition at line 104 of file binary_operation.hpp.
| auto sig::cat | ( | C && | container, |
| typename sig::impl::identity< S >::type const & | delimiter, | ||
| std::locale | osstream_locale = std::locale("") |
||
| ) | -> S |
コンテナ中の各文字列や数値を結合
conatiner中の要素が数値の場合、ostringstreamで出力される文字列に変換される
| container | 文字列か数値が格納されたコンテナ(対応コンテナ ) |
| delimiter | 結合する文字列間に挿入される文字列 |
| osstream_locale | [option] 出力に影響するロケール |
Definition at line 155 of file manipulate.hpp.
| auto sig::cat | ( | std::initializer_list< T > | container, |
| typename sig::impl::identity< S >::type const & | delimiter, | ||
| std::locale | osstream_locale = std::locale("") |
||
| ) | -> S |
containerがinitializer_listの場合
Definition at line 177 of file manipulate.hpp.
| constexpr bool sig::check_range | ( | T const & | val, |
| U const & | min, | ||
| U const & | max | ||
| ) |
値の範囲チェック
min ≦ val ≦ max であるか確認
| val | 確認したい値 |
| min | 範囲の下限 |
| max | 範囲の上限 |
Definition at line 347 of file helper_modules.hpp.
|
inline |
| void sig::compound_assignment | ( | F && | assign_op, |
| C1 & | dest, | ||
| C2 const & | src | ||
| ) |
コンテナへの代入演算 (element-wise: container and container)
indexが対応するsrcとdestの各要素に関数を適用し、その結果をdestコンテナに格納する
Definition at line 39 of file assign_operation.hpp.
| void sig::compound_assignment | ( | F && | assign_op, |
| C & | dest, | ||
| T | src | ||
| ) |
コンテナへの代入演算 (element-wise: container and scalar)
srcとdestの各要素に関数を適用し、その結果をdestコンテナに格納する
| assign_op | srcの各要素を処理する関数 |
| dest | 代入先のコンテナ(対応コンテナ ) |
| src | 任意の値 |
Definition at line 66 of file assign_operation.hpp.
| bool sig::Consistency | ( | B1 && | a, |
| B2 && | b | ||
| ) |
AとBの真偽一致でtrueを返す (⇔ !xor)
| cond,conds | bool変数 または operator boolが定義されたオブジェクト |
Definition at line 113 of file helper_modules.hpp.
| auto sig::copy | ( | C && | src | ) | -> RC |
別の種類のコンテナに要素をコピーする
| RC | コピー先のコンテナ型(対応コンテナ ) |
| src | コピー元のコンテナ(対応コンテナ ) |
Definition at line 269 of file container_helper.hpp.
| auto sig::div | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(div_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 151 of file binary_operation.hpp.
| auto sig::dotProduct | ( | F1 && | fold_func, |
| F2 && | oper_func, | ||
| T && | init, | ||
| Cs &&... | lists | ||
| ) |
可変長個のコンテナに対して関数適用して結果を集約する関数
(a -> a -> a) -> (b -> c -> ... -> a) -> a0 -> [b] -> [c] -> ... -> a
a0はaに暗黙的に型変換可能
listsのいずれかの末尾に到達するまで集約の計算が行われる
| fold_func | oper_funcで計算した結果を集約する関数 (a -> a -> a) |
| oper_func | 各コンテナの要素を引数に取る関数 (b -> c -> ... -> a) |
| init | 初期値 a0 |
| lists... | データが格納されたコンテナ [b] [c] ...(対応コンテナ ) |
| auto sig::drop | ( | uint | n, |
| C && | list | ||
| ) | -> CR |
コンテナの先頭からn個を削除したコンテナを返す
uint -> [a] -> [a]
| n | 先頭から順に削除する要素の個数 |
| list | ソースとなるコンテナ(対応コンテナ ) |
Definition at line 256 of file list_deal.hpp.
| bool sig::equal | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) |
数値の簡易等値比較(厳密な計算でない場合の使用を想定)
浮動小数点型の誤差をある程度許容. デフォルトでは 10^(-12) 未満の誤差を無視
Definition at line 282 of file helper_modules.hpp.
| bool sig::equal | ( | S1 && | v1, |
| S2 && | v2 | ||
| ) |
| bool sig::equal_tolerant | ( | T1 | v1, |
| T2 | v2, | ||
| typename std::common_type< T1, T2 >::type | margin | ||
| ) |
指定範囲内の誤差を許した等値比較
| v1,v2 | 等値比較したい値 |
| margin | 許容する誤差 |
Definition at line 324 of file helper_modules.hpp.
| void sig::erase | ( | C & | container, |
| typename impl::sequence_container_traits< C >::value_type const & | t | ||
| ) |
Definition at line 213 of file container_helper.hpp.
| void sig::erase | ( | C & | container, |
| typename impl::associative_container_traits< C >::value_type const & | t | ||
| ) |
Definition at line 219 of file container_helper.hpp.
| void sig::erase | ( | C & | container, |
| typename impl::hash_container_traits< C >::value_type const & | t | ||
| ) |
Definition at line 225 of file container_helper.hpp.
| void sig::erase_if | ( | C & | container, |
| F const & | remove_pred | ||
| ) |
Definition at line 232 of file container_helper.hpp.
|
inline |
与えられた文字中に含まれる、正規表現の特殊文字をエスケープする
|
inline |
| auto sig::filter | ( | F && | pred, |
| C && | list | ||
| ) |
コンテナから指定条件を満たす要素を抽出する
(a -> Bool) -> [a] -> [a]
| pred | 条件判定を行う述語関数 (a -> Bool) |
| list | データが格納されたコンテナ [a](対応コンテナ ) |
Definition at line 44 of file filter.hpp.
| auto sig::filter | ( | F && | pred, |
| int | init, | ||
| C && | list | ||
| ) |
コンテナから指定条件を満たす要素を抽出する(反復回数を表すindexが利用できる)
(int -> a -> Bool) -> int -> [a] -> [a]
| pred | 条件判定を行う述語関数 (int -> a -> Bool) |
| init | indexの初期値 int |
| list | データが格納されたコンテナ [a](対応コンテナ ) |
Definition at line 75 of file filter.hpp.
| auto sig::foldl | ( | F && | func, |
| T && | init, | ||
| C && | list | ||
| ) |
コンテナの先頭からたたみ込み
(a -> b -> a) -> a0 -> [b] -> a
a0はaに暗黙的に型変換可能
| func | 関数 (a -> b -> a) |
| init | 初期値 a0 |
| list | データが格納されたコンテナ [b](対応コンテナ ) |
| auto sig::foldr | ( | F && | func, |
| T && | init, | ||
| C && | list | ||
| ) |
コンテナの末尾からたたみ込み
(a -> b -> b) -> b0 -> [a] -> b
b0はbに暗黙的に型変換可能
| func | 関数 (a -> b -> a) |
| init | 初期値 b0 |
| list | データが格納されたコンテナ [a](対応コンテナ ) |
| void sig::for_diagonal | ( | F && | func, |
| M & | mat | ||
| ) |
| void sig::for_each | ( | F && | func, |
| Cs &&... | containers | ||
| ) |
複数コンテナを反復処理
先頭の要素から順番に関数を適用し、いずれかのコンテナの末尾に到達するまで繰り返す.
適用する関数オブジェクトの引数を参照(&)にすることで、値の変更が可能
| func | 関数オブジェクト(引数の順番は渡すcontainersの順番に対応) |
| containers | 処理対象のコンテナ(対応コンテナ ) |
Definition at line 46 of file for_each.hpp.
| void sig::for_each | ( | F && | func, |
| int | init, | ||
| Cs &&... | containers | ||
| ) |
複数コンテナを反復処理 (添字変数の利用可)
1反復毎に1ずつインクリメントされる添字変数を利用可 (initはその初期値).
先頭の要素から順番に関数を適用し、いずれかのコンテナの末尾に到達するまで繰り返す.
引数で渡す関数オブジェクト(orラムダ)の引数を参照(&)にすることで変更操作も可能
| func | 関数オブジェクト(第1引数は添字変数.以降の引数の順番は渡すcontainersの順番に対応) |
| init | 添字変数の初期値 |
| containers | 処理対象のコンテナ(対応コンテナ ) |
Definition at line 78 of file for_each.hpp.
| void sig::for_each_m | ( | F && | func, |
| M & | mat | ||
| ) |
| void sig::for_each_v | ( | F && | func, |
| V & | vec, | ||
| Vs &&... | vecs | ||
| ) |
| auto sig::from_matrix_ublas | ( | M const & | mat, |
| uint | row | ||
| ) | -> R |
| auto sig::from_matrix_ublas | ( | M const & | mat | ) | -> R |
| auto sig::from_vector_ublas | ( | V const & | vec | ) | -> R |
| T& sig::fromJust | ( | Maybe< T > & | m | ) |
Justから値を取り出す関数.Maybe a -> a.
Maybeの正体がNothingオブジェクトの場合、未定義動作
| T const& sig::fromJust | ( | Maybe< T > const & | m | ) |
| T& sig::fromMaybe | ( | T & | def, |
| Maybe< T > & | m | ||
| ) |
| T const& sig::fromMaybe | ( | T const & | def, |
| Maybe< T > const & | m | ||
| ) |
| T&& sig::fromMaybe | ( | T && | def, |
| Maybe< T > && | m | ||
| ) |
| T&& sig::fromMaybe | ( | T && | def, |
| boost::none_t | m | ||
| ) |
| auto sig::GaleShapley | ( | CC1 const & | men_vec, |
| CC2 const & | women_vec | ||
| ) |
Definition at line 58 of file others.hpp.
|
inline |
|
inline |
| constexpr bool sig::greater | ( | T1 | v1, |
| T2 | v2 | ||
| ) |
v1 > v2 であるか確認
Definition at line 387 of file helper_modules.hpp.
| bool sig::has_zero | ( | C const & | v | ) |
要素の値に0があるか確認
Definition at line 38 of file comparable_check.hpp.
| auto sig::invert_matrix | ( | matrix_u< T > && | mat | ) | -> Maybe<matrix_u<RT>> |
| auto sig::invert_matrix | ( | matrix_u< T > const & | mat | ) | -> Maybe<matrix_u<RT>> |
| bool sig::is_comparable | ( | C1 const & | v1, |
| C2 const & | v2, | ||
| impl::NumericVectorTag | |||
| ) |
2つのベクトルが比較可能か確認
Definition at line 45 of file comparable_check.hpp.
| bool sig::is_comparable | ( | C1 const & | v1, |
| C2 const & | v2, | ||
| impl::DistributionTag | |||
| ) |
2つの確率分布が比較可能か確認
Definition at line 52 of file comparable_check.hpp.
| constexpr bool sig::is_finite_number | ( | T | x | ) |
値が非数(NaN)でなく、かつ無限大(Inf)でないかを確認
Definition at line 225 of file helper_modules.hpp.
| constexpr bool sig::is_number | ( | T | x | ) |
| bool sig::is_same_size | ( | C1 const & | v1, |
| C2 const & | v2 | ||
| ) |
Definition at line 23 of file comparable_check.hpp.
| bool sig::is_valid_distribution | ( | C1 const & | v1, |
| C2 const & | v2 | ||
| ) |
離散確率分布の性質を満たしているか確認
Definition at line 30 of file comparable_check.hpp.
| bool sig::isJust | ( | Maybe< T > const & | m | ) |
| bool sig::isNothing | ( | Maybe< T > const & | m | ) |
| void sig::iterative_assign | ( | uint | loop, |
| F && | func, | ||
| Its... | iterators | ||
| ) |
Definition at line 197 of file container_helper.hpp.
| void sig::iterative_assign | ( | uint | loop, |
| int | init, | ||
| F && | func, | ||
| Its... | iterators | ||
| ) |
Definition at line 204 of file container_helper.hpp.
| void sig::iterative_fold | ( | uint | loop, |
| T & | dest, | ||
| F1 && | zip, | ||
| F2 && | fold, | ||
| Its... | iterators | ||
| ) |
Definition at line 187 of file container_helper.hpp.
| void sig::iterative_make | ( | uint | loop, |
| C & | dest, | ||
| F && | func, | ||
| Its... | iterators | ||
| ) |
Definition at line 178 of file container_helper.hpp.
| Maybe<R> sig::Just | ( | T && | v | ) |
| constexpr bool sig::less | ( | T1 | v1, |
| T2 | v2 | ||
| ) |
| bool sig::load_line | ( | C & | empty_dest, |
| std::basic_ifstream< IFS_CHAR > & | ifs | ||
| ) |
| bool sig::load_line | ( | C & | empty_dest, |
| FilepassString const & | file_pass | ||
| ) |
| auto sig::load_line | ( | FilepassString const & | file_pass | ) | -> Maybe<C> |
| auto sig::load_line | ( | FilepassStringC | file_pass | ) | -> Maybe<C> |
file_pass が const char* , const wcahr_t* である場合のオーバーロード
| bool sig::load_line | ( | C & | empty_dest, |
| std::basic_ifstream< IFS_CHAR > & | ifs, | ||
| F const & | conv | ||
| ) |
| bool sig::load_line | ( | C & | empty_dest, |
| FilepassString const & | file_pass, | ||
| F const & | conv | ||
| ) |
ファイルから1行ずつ読み込み、同時に変換処理を行う(ファイル名を指定)
| ISTR | [option] 読み込んだ文字列を保持する型(std::string or std::wstring) |
| empty_dest | 保存先のコンテナ(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| conv | 読み込んだ文字列から任意型Rへの変換関数(文字列 -> 数値型へはload_numを推奨) |
| bool sig::load_num | ( | C & | empty_dest, |
| FilepassString const & | file_pass, | ||
| std::string | delimiter = "\n" |
||
| ) |
数値列を読み込む
| empty_dest | 保存先のコンテナ(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| delimiter | [option] 数値間の区切り文字 |
| std::invalid_argument(数値に変換できない場合),std::out_of_range(intやdouble等で変換可能な値の範囲を超えている場合) | n |
| auto sig::load_num | ( | FilepassString const & | file_pass, |
| std::string | delimiter = "\n" |
||
| ) | -> Maybe<C> |
数値列を読み込み、結果を返す
| R | 数値の型(int, double等) |
| C | [option] コンテナの型(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| delimiter | [option] 数値間の区切り文字 |
| std::invalid_argument(数値に変換できない場合),std::out_of_range(intやdouble等で変換可能な値の範囲を超えている場合) | n |
| bool sig::load_num2d | ( | CC & | empty_dest, |
| FilepassString const & | file_pass, | ||
| std::string | delimiter | ||
| ) |
2次元配列の数値(ex:行列)を読み込む
| empty_dest | 保存先のコンテナ(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| delimiter | 数値間の区切り文字 |
| std::invalid_argument(数値に変換できない場合),std::out_of_range(intやdouble等で変換可能な値の範囲を超えている場合) | n |
| auto sig::load_num2d | ( | FilepassString const & | file_pass, |
| std::string | delimiter | ||
| ) | -> Maybe<CC> |
2次元配列の数値(ex:行列)を読み込む
| R | 数値の型(int, double等) |
| CC | [option] コンテナの型(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| delimiter | 数値間の区切り文字 |
| std::invalid_argument(数値に変換できない場合),std::out_of_range(intやdouble等で変換可能な値の範囲を超えている場合) | n |
| auto sig::make_regex | ( | S const & | expression | ) | -> typename impl::Str2RegexSelector<impl::string_t<S>>::regex |
エスケープ処理を行い、regexオブジェクトを返す
| expression | 正規表現の文字列 |
| C sig::make_unique_numbers | ( | uint | n, |
| int | min, | ||
| int | max, | ||
| bool | debug | ||
| ) |
重複の無い一様分布の整数乱数を生成
| n | 発生させる値の個数 |
| min | 最小値 |
| max | 最大値 |
| debug | 乱数のシードを固定するか |
Definition at line 85 of file random.hpp.
| auto sig::map | ( | F && | func, |
| C && | list | ||
| ) |
1引数高階関数
(a -> b) -> [a] -> [b]
コンテナの各要素に関数を適用し、結果を新たなコンテナに格納する
| func | 関数 (a -> b) |
| list | データが格納されたコンテナ [a](対応コンテナ ) |
Definition at line 62 of file high_order.hpp.
| auto sig::map_m | ( | F && | func, |
| M && | mat | ||
| ) |
| auto sig::map_v | ( | F && | func, |
| V && | vec | ||
| ) |
| auto sig::mapMaybe | ( | F const & | f, |
| C const & | list | ||
| ) | -> typename impl::container_traits<C>::template rebind< typename std::remove_reference<decltype(*(impl::eval( f, std::declval<typename impl::container_traits<C>::value_type>() )))>::type > |
Maybeを返す関数を指定するfilter関数.(a -> Maybe b) -> [a] -> [b].
コンテナの各要素にMaybeを返す関数を適用し、結果がJustであれば値を保存し、Nothingであれば無視する
| f | Maybeを返す関数 |
| list | 対応コンテナ |
| auto sig::matrix_vector_solve | ( | matrix_u< T > && | mat, |
| vector_u< T > && | vec | ||
| ) | -> Maybe<vector_u<RT>> |
| auto sig::matrix_vector_solve | ( | matrix_u< T > const & | mat, |
| vector_u< T > const & | vec | ||
| ) | -> Maybe<vector_u<RT>> |
| auto sig::matrix_vector_solve | ( | matrix_u< T > const & | mat, |
| vector_u< T > && | vec | ||
| ) | -> Maybe<vector_u<RT>> |
| auto sig::matrix_vector_solve | ( | matrix_u< T > && | mat, |
| vector_u< T > const & | vec | ||
| ) | -> Maybe<vector_u<RT>> |
| auto sig::max | ( | T | v | ) | -> T |
Definition at line 160 of file helper_modules.hpp.
| auto sig::max | ( | T1 | v1, |
| T2 | v2 | ||
| ) |
Definition at line 169 of file helper_modules.hpp.
| auto sig::max | ( | T | v, |
| Ts... | vs | ||
| ) |
可変長 max
| v,vs | 大小比較可能な変数(数値を表すPOD型 または operator < が定義されたオブジェクト) |
Definition at line 188 of file helper_modules.hpp.
| auto sig::merge | ( | C && | list1, |
| C && | list2 | ||
| ) | -> R |
コンテナの結合(同じコンテナ型)
[a] -> [a] -> [a]
非シーケンスコンテナの場合、結合後の要素の順番は保たれない
Definition at line 94 of file list_deal.hpp.
| auto sig::merge | ( | C1 && | list1, |
| C2 && | list2 | ||
| ) | -> RR |
[a] -> [b] -> [c]
ただし、cはstd::common_type<a, b>::type
非シーケンスコンテナの場合、結合後の要素の順番は保たれない
| R | [option] 返り値のコンテナ型を指定(対応コンテナ ) |
Definition at line 163 of file list_deal.hpp.
| auto sig::merge | ( | SC && | list1, |
| C && | list2 | ||
| ) | -> RR |
Definition at line 181 of file list_deal.hpp.
| auto sig::merge | ( | SC1 && | list1, |
| SC2 && | list2 | ||
| ) | -> RR |
Definition at line 199 of file list_deal.hpp.
| auto sig::min | ( | T | v | ) | -> T |
Definition at line 122 of file helper_modules.hpp.
| auto sig::min | ( | T1 | v1, |
| T2 | v2 | ||
| ) |
Definition at line 131 of file helper_modules.hpp.
| auto sig::min | ( | T | v, |
| Ts... | vs | ||
| ) |
可変長 min
| v,vs | 大小比較可能な変数(数値を表すPOD型 または operator < が定義されたオブジェクト) |
Definition at line 150 of file helper_modules.hpp.
| auto sig::minus | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(minus_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 135 of file binary_operation.hpp.
|
inline |
ディレクトリ・ファイルパスの末尾に'/'or'\'があるかチェックし、付けるか外すかどうかを指定して反映
| directory_pass | チェックするパスの文字列 |
| has_slash | 末尾に'/'or'\'を付けるかどうか |
| bool sig::modify_range | ( | T & | val, |
| U const & | min, | ||
| U const & | max | ||
| ) |
値を範囲内に自動修正
min ≦ val ≦ max であるか確認し、範囲を超えている場合は最も近い範囲内の値(min または max)に修正
| val | 確認したい値 |
| min | 範囲の下限 |
| max | 範囲の上限 |
Definition at line 371 of file helper_modules.hpp.
| auto sig::mult | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(mult_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 143 of file binary_operation.hpp.
| bool sig::normalize | ( | C & | data | ) |
正規化(Normalization)
最小値0、最大値1とし、各値が[0,1]の範囲に収まるように正規化.
normalize(C const& data, int dummy = 0)ではなくこちらが呼び出されているかを確認するには、返り値をboolで受けるようにする
| data | 正規化を行いたい値集合(対応コンテナ ).要素型は浮動小数点型であることが条件 |
Definition at line 266 of file basic_statistics.hpp.
| auto sig::normalize | ( | C const & | data, |
| int | dummy = 0 |
||
| ) | -> typename impl::container_traits<C>::template rebind<R> |
正規化(Normalization)
最小値0、最大値1とし、各値が[0,1]の範囲に収まるように正規化. normalize(C& data)ではなく明示的にこちらを呼び出す場合は、第2引数を指定
| data | 正規化を行いたい値集合(対応コンテナ ) |
Definition at line 303 of file basic_statistics.hpp.
| bool sig::normalize_dist | ( | C & | data | ) |
確率分布の正規化
各値の総和が1になるよう[0,1]の範囲に正規化.
normalize_dist(C const& data, int dummy = 0)ではなくこちらが呼び出されているかを確認するには、返り値をboolで受けるようにする
| data | 正規化を行いたい値集合(対応コンテナ ).要素型は浮動小数点型であることが条件 |
Definition at line 394 of file basic_statistics.hpp.
| auto sig::normalize_dist | ( | C const & | data, |
| int | dummy = 0 |
||
| ) | -> typename impl::container_traits<C>::template rebind<R> |
確率分布の正規化
各値の総和が1になるよう[0,1]の範囲に正規化.
normalize_dist(C& data)ではなく明示的にこちらを呼び出す場合は、第2引数を指定
| data | 正規化を行いたい値集合(対応コンテナ ) |
Definition at line 422 of file basic_statistics.hpp.
| bool sig::normalize_dist_v | ( | V & | data | ) |
| auto sig::normalize_dist_v | ( | V const & | data, |
| int | dummy = 0 |
||
| ) |
| auto sig::Nothing | ( | ) | -> typename impl::SameIf<T, void, typename boost::none_t, Maybe<T>>::type |
| auto sig::Nothing | ( | T const & | dummy | ) | -> Maybe<T> |
| T& sig::operator* | ( | Maybe< T > & | m | ) |
fromJust演算子
fromJust関数の演算子版.
Maybeの正体がNothingオブジェクトの場合、未定義動作
| T const& sig::operator* | ( | Maybe< T > const & | m | ) |
| auto sig::operator* | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(mult_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 195 of file binary_operation.hpp.
| auto sig::operator+ | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(plus_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 165 of file binary_operation.hpp.
| auto sig::operator- | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(minus_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 180 of file binary_operation.hpp.
| auto sig::operator/ | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(div_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 210 of file binary_operation.hpp.
| auto sig::operator<<= | ( | F const & | f, |
| Maybe< T > const & | m | ||
| ) | -> decltype(impl::eval(f, std::declval<T>())) |
C++に合わせたbind演算子. Maybe m => (a -> m b) -> m a -> m b.
C++では operator>>= と operator<<= は右結合であるため、処理が右端から順番に流れていく方が自然に記述できる(以下のサンプルコード参照)
| f | 適用する関数 |
| ma | Maybeオブジェクト |
| auto sig::operator<<= | ( | Maybe< T1 > & | m, |
| T2 const & | v | ||
| ) | -> Maybe<T1>& |
Maybeオブジェクトへの再代入を行う演算子
関数型言語では再代入は不可能な機能であるが、C++では無いと不便であるためこの関数を作成.
Maybeオブジェクトへの再代入をJust, Nothingに関係なく統一的に記述することが目的
| m | Maybeオブジェクト |
| v | 代入したい値 |
| auto sig::operator>>= | ( | Maybe< T > const & | m, |
| F const & | f | ||
| ) | -> decltype(impl::eval(f, std::declval<T>())) |
Haskell風のbind演算子. Maybe m => m a -> (a -> m b) -> m b.
C++では operator>>= は右結合であるため、連鎖させる際には明示的に()を使う必要あり(以下のサンプルコード参照)
| ma | Maybeオブジェクト |
| f | 適用する関数 |
| bool sig::Or | ( | B && | cond | ) |
Definition at line 52 of file helper_modules.hpp.
| bool sig::Or | ( | B1 && | cond, |
| Bs &&... | conds | ||
| ) |
可変長 or
| cond,conds | bool変数 または operator boolが定義されたオブジェクト |
Definition at line 70 of file helper_modules.hpp.
| auto sig::partition | ( | F && | pred, |
| C && | list | ||
| ) |
コンテナから指定条件を満たす要素とそれ以外の要素とを分離する
(a -> Bool) -> [a] -> ([a], [a])
| pred | 条件判定を行う述語関数 (a -> Bool) |
| list | データが格納されたコンテナ [a](対応コンテナ ) |
Definition at line 114 of file filter.hpp.
| auto sig::plus | ( | T1 && | v1, |
| T2 && | v2 | ||
| ) | -> decltype(binary_operation(plus_t(), std::forward<T1>(v1), std::forward<T2>(v2))) |
Definition at line 127 of file binary_operation.hpp.
|
inline |
Definition at line 34 of file others.hpp.
|
inline |
Definition at line 39 of file others.hpp.
|
inline |
Definition at line 45 of file others.hpp.
|
inline |
Definition at line 51 of file others.hpp.
| auto sig::product | ( | C const & | data | ) | -> typename impl::SameIf<R, void, typename impl::container_traits<C>::value_type, R>::type |
総乗
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| data | 総乗を求めたい値集合(対応コンテナ ) |
Definition at line 131 of file basic_statistics.hpp.
| auto sig::product | ( | C const & | data, |
| Pred const & | access_func | ||
| ) | -> typename impl::SameIf<R, void, decltype(impl::eval(access_func, std::declval<typename impl::container_traits<C>::value_type>())), R>::type |
総乗
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| data | 総乗を求めたい値集合(対応コンテナ ) |
| access_func | コンテナの要素にアクセスし、そのオブジェクトから値を取得する関数 |
Definition at line 155 of file basic_statistics.hpp.
| auto sig::product_col | ( | CC const & | matrix, |
| uint | index | ||
| ) |
行列の指定列の総乗
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| matrix | 行列(ランダムアクセス可能な2次元コンテナ) |
| index | 総乗を求めたい列番号 |
Definition at line 202 of file basic_statistics.hpp.
| auto sig::product_row | ( | CC const & | matrix, |
| uint | index | ||
| ) |
行列の指定行の総乗
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| matrix | 行列(ランダムアクセス可能な2次元コンテナ) |
| index | 総乗を求めたい行番号 |
Definition at line 180 of file basic_statistics.hpp.
| bool sig::read_line | ( | C & | empty_dest, |
| IfsSelector< R > & | ifs, | ||
| std::function< R(typename impl::SameIf< R, std::string, std::string, std::wstring >::type) > const & | conv = nullptr |
||
| ) |
Definition at line 302 of file file_tmp(save,read num).hpp.
| bool sig::read_line | ( | C & | empty_dest, |
| FilepassString const & | file_pass, | ||
| std::function< R(typename impl::SameIf< R, std::string, std::string, std::wstring >::type)> const & | conv = nullptr |
||
| ) |
Definition at line 324 of file file_tmp(save,read num).hpp.
| auto sig::read_line | ( | IfsSelector< R > & | ifs | ) | -> Just<C> |
Definition at line 342 of file file_tmp(save,read num).hpp.
| auto sig::read_line | ( | FilepassString const & | file_pass | ) | -> Just<C> |
Definition at line 354 of file file_tmp(save,read num).hpp.
| auto sig::read_line | ( | FilepassStringC | file_pass | ) | -> Just<C> |
Definition at line 365 of file file_tmp(save,read num).hpp.
| bool sig::read_num | ( | C & | empty_dest, |
| FilepassString const & | file_pass, | ||
| std::string | delimiter = "\n" |
||
| ) |
Definition at line 377 of file file_tmp(save,read num).hpp.
| bool sig::read_num | ( | CC & | empty_dest, |
| FilepassString const & | file_pass, | ||
| std::string | delimiter1 = "\n", |
||
| std::string | delimiter2 = "\n\n" |
||
| ) |
Definition at line 406 of file file_tmp(save,read num).hpp.
| auto sig::read_num | ( | FilepassString const & | file_pass, |
| std::string | delimiter = "\n" |
||
| ) | -> Just<C> |
Definition at line 432 of file file_tmp(save,read num).hpp.
| auto sig::regex_search | ( | S && | src, |
| typename impl::Str2RegexSelector< TS >::regex const & | expression | ||
| ) | -> Maybe<std::vector<std::vector<TS>>> |
std::regex_search のラッパ関数
探索結果にアクセスしやすい様に二次元配列(vector<vector<string>>)に結果を格納している
| src | 探索対象の文字列 |
| expression | 正規表現オブジェクト |
| bool sig::remove_all | ( | C & | container, |
| typename boost::call_traits< typename impl::container_traits< C >::value_type >::param_type | remove | ||
| ) |
コンテナから指定した値を全削除
| container | 処理対象コンテナ(対応コンテナ ) |
| remove | 削除したい値 |
Definition at line 148 of file remove.hpp.
| bool sig::remove_all_if | ( | C & | container, |
| Pred | remove_pred | ||
| ) |
コンテナから述語条件を満たす値を全削除
| container | 処理対象コンテナ(対応コンテナ ) |
| remove_pred | 削除するか判断を行う関数オブジェクト |
Definition at line 173 of file remove.hpp.
| auto sig::remove_duplicates | ( | C & | container | ) |
コンテナの要素から重複した値を削除
| container | 処理対象コンテナ(対応コンテナ ) |
Definition at line 38 of file remove.hpp.
| bool sig::remove_one | ( | C & | container, |
| typename boost::call_traits< typename impl::container_traits< C >::value_type >::param_type | remove | ||
| ) |
コンテナから指定した値を1つ削除
| container | 処理対象コンテナ(対応コンテナ ) |
| remove | 削除したい値 |
Definition at line 85 of file remove.hpp.
| bool sig::remove_one_if | ( | C & | container, |
| Pred | remove_pred | ||
| ) |
コンテナから述語条件を満たす値を1つ削除
| container | 処理対象コンテナ(対応コンテナ ) |
| remove_pred | 削除するか判断を行う関数オブジェクト |
Definition at line 113 of file remove.hpp.
| auto sig::replicate | ( | uint | n, |
| T const & | value | ||
| ) | -> C |
値を複製したコンテナを返す
uint -> a -> [a]
| n | 複製する数 uint |
| value | 複製する値 a |
Definition at line 33 of file list_deal.hpp.
| auto sig::reverse | ( | C && | list | ) | -> typename impl::remove_const_reference<C>::type |
コンテナの要素の順番を逆転させたコンテナを返す
[a] -> [a]
| list | ソースとなるコンテナ(対応コンテナ ) |
Definition at line 62 of file list_deal.hpp.
|
inline |
| void sig::save_line | ( | C const & | src, |
| typename impl::FStreamSelector< typename impl::container_traits< C >::value_type >::ofstream & | ofs | ||
| ) |
| void sig::save_line | ( | T | src, |
| FilepassString const & | file_pass, | ||
| WriteMode | open_mode = WriteMode::overwrite |
||
| ) |
ファイルへ1行ずつ保存
file_passで指定したテキストファイルに、srcの内容を書き込み、最後に改行する.
指定したファイルが存在しない場合、新たにファイルが作成される.
| src | 保存対象(非コンテナ) |
| file_pass | 保存先のパス(ファイル名含む) |
| open_mode | [option] 上書き(overwrite) or 追記(append) |
| void sig::save_line | ( | C const & | src, |
| FilepassString const & | file_pass, | ||
| WriteMode | open_mode = WriteMode::overwrite |
||
| ) |
ファイルへ1行ずつまとめて保存
file_passで指定したテキストファイルに、srcの内容をコンテナの1要素を1行として書き込む.
指定したファイルが存在しない場合、新たにファイルが作成される.
| src | 保存対象(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| open_mode | [option] 上書き(overwrite) or 追記(append) |
| void sig::save_line | ( | C const & | src, |
| typename impl::FStreamSelector< typename container_traits< C >::value_type >::ofstream & | ofs | ||
| ) |
Definition at line 208 of file file_tmp(save,read num).hpp.
| void sig::save_num | ( | C const & | src, |
| FilepassString const & | file_pass, | ||
| std::string | delimiter, | ||
| WriteMode | open_mode = WriteMode::overwrite |
||
| ) |
数値列(ex:ベクトル)の保存
file_passで指定したテキストファイルに、数値が格納されたコンテナsrcの各要素を文字列として書き込む.
| src | 保存対象(対応コンテナ ) |
| file_pass | 保存先のパス(ファイル名含む) |
| delimiter | 数値間の区切り文字 |
| open_mode | [option] 上書き(overwrite) or 追記(append) |
| void sig::save_num | ( | CC const & | src, |
| FilepassString const & | file_pass, | ||
| std::string | delimiter, | ||
| WriteMode | open_mode = WriteMode::overwrite |
||
| ) |
| void sig::save_num | ( | C const & | src, |
| FilepassString const & | file_pass, | ||
| WriteMode | mode = WriteMode::overwrite, |
||
| std::string | delimiter = "\n" |
||
| ) |
Definition at line 260 of file file_tmp(save,read num).hpp.
| void sig::save_num | ( | CC const & | src, |
| FilepassString const & | file_pass, | ||
| WriteMode | mode = WriteMode::overwrite, |
||
| std::string | delimiter1 = "\n", |
||
| std::string | delimiter2 = "\n\n" |
||
| ) |
Definition at line 276 of file file_tmp(save,read num).hpp.
| C sig::seqn | ( | T1 | st, |
| T2 | d, | ||
| uint | n | ||
| ) |
| void sig::shuffle | ( | C & | container | ) |
コンテナの要素をシャッフル
| container | シャッフル対処のコンテナ(対応コンテナ ) |
Definition at line 29 of file shuffle.hpp.
| void sig::shuffle | ( | Cs &... | containers | ) |
複数のコンテナの同じインデックスの要素を対応させながらシャッフル
先頭から、コンテナの中で最小のインデックスまでの範囲をシャッフルする.
ex: c1[1, 2, 3, 4, 5], c2[1, 2, 3] -> c1'[3, 1, 2, 4, 5], c2'[3, 1, 2]
| containers | 任意個のコンテナ(対応コンテナ ) |
Definition at line 76 of file shuffle.hpp.
|
inline |
ShiftJIS -> UTF-16.
| src | 変換対象の文字列 |
Definition at line 238 of file convert.hpp.
|
inline |
ShiftJIS -> UTF-8.
| src | 変換対象の文字列 |
Definition at line 281 of file convert.hpp.
| auto sig::sort | ( | C & | container, |
| F && | binary_op | ||
| ) | -> decltype(impl::eval(std::forward<F>(binary_op), std::declval<T>(), std::declval<T>()), void()) |
標準ソート関数のラッパ
| container | ソート対象のコンテナ(対応コンテナ ) |
| binary_op | 大小比較を行う関数オブジェクト |
| auto sig::sort | ( | C & | container, |
| F && | binary_op | ||
| ) | -> decltype(impl::eval(std::forward<F>(binary_op), std::declval<T>(), std::declval<T>()), void()) |
| auto sig::sort_with_index | ( | C && | container, |
| F && | binary_op | ||
| ) |
ソート前の位置を保持してソート
ex: [30, 50, -10, 0] -> ([-10, 0, 30, 50], [2, 3, 0, 1])
| container | ソート対象のコンテナ(対応コンテナ ) |
| binary_op | 大小比較を行う関数オブジェクト |
| auto sig::split | ( | S const & | src, |
| impl::string_t< S > const & | delimiter | ||
| ) | -> CSeq<TS> |
文字列(src)をある文字列(delimiter)を目印に分割する
| CSeq | returnされるシーケンスコンテナの種類 |
| src | 分割対象の文字列 |
| delimiter | 分割の目印となる文字列 |
Definition at line 40 of file manipulate.hpp.
| auto sig::split | ( | char const *const | src, |
| char const *const | delimiter | ||
| ) | -> CSeq<std::string> |
Definition at line 84 of file manipulate.hpp.
| auto sig::split | ( | wchar_t const *const | src, |
| wchar_t const *const | delimiter | ||
| ) | -> CSeq<std::wstring> |
Definition at line 96 of file manipulate.hpp.
| bool sig::standardize | ( | C & | data | ) |
標準化(Standardization)
正規分布N(0, 1)になるように正規化
standardize(C const& data, int dummy = 0)ではなくこちらが呼び出されているかを確認するには、返り値をboolで受けるようにする
| data | 標準化を行いたい値集合(対応コンテナ ).要素型は浮動小数点型であることが条件 |
Definition at line 331 of file basic_statistics.hpp.
| auto sig::standardize | ( | C const & | data, |
| int | dummy = 0 |
||
| ) | -> typename impl::container_traits<C>::template rebind<R> |
標準化(Standardization)
正規分布N(0, 1)になるように正規化. standardize(C& data)ではなく明示的にこちらを呼び出す場合は、第2引数を指定
| data | 標準化を行いたい値集合(対応コンテナ ) |
Definition at line 363 of file basic_statistics.hpp.
|
inline |
マルチバイト文字 -> ワイド文字
ex: Windows環境では Shift-JIS -> UTF-16
| src | 変換対象の文字列 |
Definition at line 116 of file convert.hpp.
| auto sig::str_to_wstr | ( | C const & | src | ) | -> R |
マルチバイト文字 -> ワイド文字
コンテナの全要素をまとめて変換 ex: Windows環境では Shift-JIS -> UTF-16
| src | 変換対象の文字列が格納されたコンテナ(対応コンテナ ) |
Definition at line 154 of file convert.hpp.
| auto sig::sum | ( | C const & | data | ) | -> typename impl::SameIf<R, void, typename impl::container_traits<C>::value_type, R>::type |
総和
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| data | 総和を求めたい値集合(対応コンテナ ) |
Definition at line 35 of file basic_statistics.hpp.
| auto sig::sum | ( | C const & | data, |
| Pred const & | access_func | ||
| ) | -> typename impl::SameIf<R, void, decltype(impl::eval(access_func, std::declval<typename impl::container_traits<C>::value_type>())), R>::type |
総和
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| data | 総和を求めたい値集合(対応コンテナ ) |
| access_func | コンテナの要素にアクセスし、そのオブジェクトから値を取得する関数 |
Definition at line 59 of file basic_statistics.hpp.
| auto sig::sum_col | ( | CC const & | matrix, |
| uint | index | ||
| ) |
行列の指定列の総和
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| matrix | 行列(ランダムアクセス可能な2次元コンテナ) |
| index | 総和を求めたい列番号 |
Definition at line 106 of file basic_statistics.hpp.
| auto sig::sum_row | ( | CC const & | matrix, |
| uint | index | ||
| ) |
行列の指定行の総和
| R | 戻り値型(桁あふれの可能性がある場合には明示的に指定する) |
| matrix | 行列(ランダムアクセス可能な2次元コンテナ) |
| index | 総和を求めたい行番号 |
Definition at line 84 of file basic_statistics.hpp.
| auto sig::take | ( | uint | n, |
| C && | list | ||
| ) | -> CR |
コンテナの先頭からn個の要素を取り出す
uint -> [a] -> [a]
| n | 先頭から順に取り出す要素の個数 |
| list | ソースとなるコンテナ(対応コンテナ ) |
Definition at line 225 of file list_deal.hpp.
| auto sig::to_matrix_ublas | ( | CC const & | mat | ) | -> matrix_u<T> |
| auto sig::to_vector_ublas | ( | C const & | vec | ) | -> vector_u<T> |
| auto sig::unzip | ( | CT && | list_tuple | ) | -> R |
タプルのコンテナから、指定したindexのコンテナを取り出す
[(a, b, ...)] -> [a0]
| Index | 取り出すインデックス |
| list_tuple | データが格納されたタプルのコンテナ [(a, b, ...)](対応コンテナ ) |
| auto sig::unzip | ( | CT && | c_tuple | ) |
タプルのコンテナから、コンテナのタプルを作る
[(a, b, ...)] -> ([a], [b], ...)
| c_tuple | データが格納されたタプルのコンテナ [(a, b, ...)](対応コンテナ ) |
|
inline |
UTF-16 -> ShiftJIS.
| src | 変換対象の文字列 |
Definition at line 258 of file convert.hpp.
|
inline |
UTF-16 -> UTF-8.
| src | 変換対象の文字列 |
Definition at line 190 of file convert.hpp.
|
inline |
UTF-32 -> UTF-8.
| src | 変換対象の文字列 |
Definition at line 220 of file convert.hpp.
|
inline |
UTF-8 -> ShiftJIS.
| src | 変換対象の文字列 |
Definition at line 294 of file convert.hpp.
|
inline |
UTF-8 -> UTF-16.
| src | 変換対象の文字列 |
Definition at line 175 of file convert.hpp.
|
inline |
UTF-8 -> UTF-32.
| src | 変換対象の文字列 |
Definition at line 205 of file convert.hpp.
| auto sig::variadicZipWith | ( | F && | func, |
| C1 && | list1, | ||
| Cs &&... | lists | ||
| ) |
n引数高階関数
(b -> c -> ... -> a) -> [b] -> [c] -> ... -> [a]
Definition at line 23 of file high_order.hpp.
| double sig::variance | ( | C const & | data | ) |
分散
| data | 分散を求めたい値集合(対応コンテナ ) |
Definition at line 241 of file basic_statistics.hpp.
|
inline |
ワイド文字 -> マルチバイト文字
ex: Windows環境では UTF-16 -> Shift-JIS
| src | 変換対象の文字列 |
Definition at line 50 of file convert.hpp.
| auto sig::wstr_to_str | ( | C const & | src | ) | -> R |
ワイド文字 -> マルチバイト文字
コンテナの全要素をまとめて変換 ex: Windows環境では UTF-16 -> Shift-JIS
| src | 変換対象の文字列集合が格納されたコンテナ(対応コンテナ ) |
Definition at line 90 of file convert.hpp.
| bool sig::Xor | ( | B1 && | a, |
| B2 && | b | ||
| ) |
| auto sig::zip | ( | Cs &&... | lists | ) |
複数のコンテナから、タプルのコンテナを作る
[a] -> [b] -> ... -> [(a, b, ...)]
listsのいずれかの末尾に到達するまでタプルが作られる
| lists... | データが格納された複数のコンテナ [a],[b],...(対応コンテナ ) |
| auto sig::zipWith | ( | F && | func, |
| C1 && | list1, | ||
| C2 && | list2 | ||
| ) |
2引数高階関数
(a -> b -> c) -> [a] -> [b] -> [c]
2つのコンテナのindexが対応する各要素に関数を適用し、結果を新たなコンテナに格納する
Definition at line 88 of file high_order.hpp.
| const AbsoluteError sig::absolute_error |
Definition at line 33 of file convergence.hpp.
| const BinaryDistance sig::binary_distance |
バイナリ距離を求める関数(関数オブジェクト)
Definition at line 54 of file binary_distance.hpp.
| const CanberraDistance sig::canberra_distance |
キャンベラ距離を求める関数(関数オブジェクト)
Definition at line 47 of file canberra_distance.hpp.
| const CosineSimilarity sig::cosine_similarity |
コサイン類似度を求める関数(関数オブジェクト)
Definition at line 49 of file cosine_similarity.hpp.
| void* sig::enabler |
| const EuclideanDistance sig::euclidean_distance |
ユークリッド距離を求める関数(関数オブジェクト)
Definition at line 81 of file minkowski_distance.hpp.
| const JS_Divergence sig::js_divergence |
JS情報量を求める関数(関数オブジェクト)
Definition at line 65 of file JS_divergence.hpp.
| const KL_Divergence sig::kl_divergence |
KL情報量を求める関数(関数オブジェクト)
Definition at line 62 of file KL_divergence.hpp.
| const ManhattanDistance sig::manhattan_distance |
マンハッタン距離を求める関数(関数オブジェクト)
Definition at line 62 of file minkowski_distance.hpp.
| const Norm<1> sig::norm_L1 |
| const Norm<2> sig::norm_L2 |
| const MaxNorm sig::norm_max |
| const RelativeError sig::relative_error |
Definition at line 48 of file convergence.hpp.