Cpp

写経 『計算物理のためのC/C++言語入門』

Cpp

サイト 2 簡単な計算 // sample01.cc #include <stdio.h> main(void) { printf("Computer in Physics\n"); } gcc sample01.cc -o sample01 ./sample01// sample02.cc #include <stdio.h> main(void) { int a, b, c; a=1; b=2; c=a+b; printf(" %d + %d = %d \n", a, b, c ); } </stdio.h></stdio.h>…

itkのイテレータはちょっと違う

cppのSTLはイテレータを使うのが特徴 画像データを扱うitkではイテレータを使って画像情報をスキャンしたり操作したりするが、ちょっと違う その違いは イテレータが画像を持つ STLのイテレータは、コンテナのメンバーとしてイテレータを置くので、一つのオ…

STLプログラミングの基礎〜ぱらぱらめくる『STL標準講座』

まずはこの章をまるごと覚えよう vector/listコンテナクラス、操作法、反復子(イテレータ)、アルゴリズム、関数オブジェクトまで、一通り出てくる STLは、よく使うだろう処理を作っておいてくれて、それを使う人は楽チンな使い方をしてよいようにした「サー…

STLの概要〜ぱらぱらめくる『STL標準講座』

STLの三要素 コンテナ、アルゴリズム、反復子(イテレータ) STLのその他の要素 アロケータ、関数オブジェクト、アダプタ

ぱらぱらめくる『STL標準講座』

STL標準講座―標準テンプレートライブラリを利用したC++プログラミング (Programmer’s SELECTION)作者: ハーバートシルト,エピステーメー,Herbert Schildt,多摩ソフトウェア出版社/メーカー: 翔泳社発売日: 1999/08/01メディア: 単行本購入: 3人 クリック: 20…

数値を扱うアルゴリズム〜ぱらぱらめくる『STL標準講座』

#include する 累和、差分、内積などがある でも、この辺りは、もっと数値演算用のライブラリを持ってくるのがよいのだろう

valarrayクラス〜ぱらぱらめくる『STL標準講座』

数値専用のvectorのようなもの。vectorより高効率 三角関数とか指数関数なんかもあるし、 sliceして2次元(行列)扱いもできるし、gsliceを使って多次元化もできる

アロケータ、カスタムコンテナ、およびその他の高度な話題〜ぱらぱらめくる『STL標準講座』

アロケータ メモリをどうハンドリングするかを決めるのがアロケータ アロケータもオブジェクトで、コンテナオブジェクトを作ると、メンバーとしてアロケータが作られる カスタムコンテナ STLのコンテナを拡張して作る 作成自体はそれなりに簡単だけれど、「…

反復子(イテレータ)〜ぱらぱらめくる『STL標準講座』

要素にアクセスするためのポインタ(を一般化したもの)として使うだけなら、この章の理解は不要

関数オブジェクト〜ぱらぱらめくる『STL標準講座』

『関数オブジェクトとはoperator()が定義されているクラスのこと』 #include でincludeする 単項関数オブジェクトと二項関数オブジェクトに分類できる テンプレート関数になっているからもちろん(対応する)すべてのコンテナクラスで同じように使える 自作関…

アルゴリズムの詳細〜ぱらぱらめくる『STL標準講座』

アルゴリズムは(対応する)複数のコンテナに対応するように作られていて、そういう意味で「テンプレート」なものであり、「テンプレート」になった「関数」なので「関数テンプレート」 #include でincludeする 反復子(イテレータ)でアクセスする→シークエンス…

deque,vector,list,queue,priority_queue,stack,map/multimap,set/multiset〜ぱらぱらめくる『STL標準講座』

コンテナのいろいろ紹介 1つ覚えるなら、vectorを 2つ覚えるなら、vectorとlistを ハッシュ・連想を使うならmapも 集合的に扱いたいならsetも

C++を覚えるための資料

cpp

入門段階から色々使いやすいところまで 少しわかってから

Rcpp; No helps; github & R package

この記事の「なんちゃってRパッケージ」はこちら Here is the github containing files and directories handled in this note. Rcppのよさは、Rcppファイルを作ると、Cpp関数をRから呼び出す関数(ラッパー関数)を書く必要がないこと Rxpp is a package to u…

私のためのC++ for R

目標は、複数ファイルで構成したc++ファイルたちを、R用のダイナミック・ライブラリにしたうえで、それをRから呼び出して使えるようになること。Windows特有のコンパイル問題についても適宜、対処する 日英併記 Rのためのc++作者: ryamada発売日: 2015/07/22…

dlib C++ library

C++のライブラリを探していたら、ちょっと面白いスゴロクを見つけました。Dlib ライブラリ 機械学習的に課題解決をするためのC++メニューを提供してくれるライブラリですが、そのメニュー選択ガイドがスゴロク式判断分岐木でした。 機械学習の解決課題は大き…

Rcppまとめ

2015年の年始にRcppについて調べ物をした。記事が散在したので整理しておく 大きく2系統 (1)Rを使えることを前提にベクトル・行列処理をRcpp化するための実践記録 (2)RでCppを使うにあたってCppってどういう構成になっていて、どうやって「あったらいいな」…

Rcpp、一歩前へ

Rcppの基礎は前掲記事で終わり。ただループ処理を速くしたいだけなら、それだけでもたぶんOK C++でR的に書きたい→sugar 、データ構造やアルゴリズムで便利なライブラリを使いたい→STL (その先にboost)、RcppArmadilloなどがある C++、コンパイラに負荷がか…

Rcppおさらい

Rcppを使ってみた(こちら) おおまかに分かったので、じゃあ、Rcpp/Cppの強みについておさらいしておこう 一番の基本(この記事) 少し先(sugar,STL,Armadillo) こちらを読む Rcppをいつ使う? Rのコードでできるだけのことをしても「遅い」とき それはいつ? …

math.h関連

math.h #include <RcppArmadilloExtensions/sample.h> // [[Rcpp::depends(RcppArmadillo)]] using namespace Rcpp ; // [[Rcpp::export]] NumericVector arith(double a, double b) { NumericVector x(28); x[0] = a+b; x[1] = a-b; x[2] = a*b; x[3] = a/b; x[4] = fmax(a,b); x[5] = round(a</rcpparmadilloextensions/sample.h>…

fastLmPure():RcppArmadilloを使ってみる

線形回帰 data(trees, package="datasets") fastLmPure( cbind(1, log(trees$Girth)), log(trees$Volume) ) fastLm( log(Volume) ~ log(Girth), data=trees) lm(log(trees$Volume) ~ log(trees$Girth)) > fastLmPure( cbind(1, log(trees$Girth)), log(trees…

繰り返し距離:RcppArmadilloを使ってみる

こちらのマハラノビス距離の繰り返し計算でスピードアップの様子を見てみよう cxxfunction()関数を使っている例をsourceCpp()用に書き換えてみる データ型指定はRcpp namespace形式らしい ## Using RcppArmadillo code <- 'arma::mat x = Rcpp::as<arma::mat>(X); arma:</arma::mat>…

sample():RcppArmadilloを使ってみる

Cppの線形代数ライブラリArmadillo sample()をcppにしてみよう。速くはならないけれど、cpp内での処理が可能になる "csample_char.cpp","csample_num.cpp"という関数ファイルを作って、sourceRcpp()する(参考) // [[Rcpp::depends(RcppArmadillo)]] #include <RcppArmadilloExtensions/sample.h></rcpparmadilloextensions/sample.h>…