Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell
大規模疎行列向けの行列分解ライブラリredsvdを公開しました. redsvd 大規模疎行列向けの特異値分解や主成分分析,固有値分解を行うライブラリredsvdを公開しました. 修正BSDライセンスで公開しており,コマンドラインから使える他,C++ライブラリが用意されています. 例えば,行と列数がそれぞれ10万,非零の要素が1000万からなる疎行列に対する上位20位までの特異値分解を約2秒で処理します. 特異値分解とか,使っている技術の詳細とか応用事例を以下に簡単に紹介しましたので,興味のある方は参考にしてください. 特異値分解とは まず行列を適当に復習します.行列Xの転置をX^tと表すことにします.またIを単位行列とし,Oを全ての成分が0である零行列とします.また,行列XX^t=IであるようなXを直交行列と呼びます.Xが直交行列の時,Xvはベクトルvを長さを変えずに回転させます.ここでは
C++が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。よくよく注意しないと、削除し忘れたり、同じオブジェクトを2度削除してしまうというエラーが発生します。このノートでは、オブジェクトを「値オブジェクト」と「参照オブジェクト」というカテゴリに分け、詳細設計の段階で注意すべき点を整理しておきたいと思います。 0. はじめに 私自身今までいくつかのプログラミング言語を使ってきましたが、C++ が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。例えば、 Person* person = new Person(); と生成したオブジェクトは、使い終わったら次のように削除しなければなりません。 delete person; 生成してすぐ削除するなら簡単なのですが、実際に
Using this Standard. If you want to make a local copy of this standard and use it as your own you are perfectly free to do so. That's why I made it! If you find any errors or make any improvements please email me the changes so I can merge them in. I also have a programming blog at http://radio.weblogs.com/0103955/categories/stupidHumanProgramming/ that is accidently interesting at times, as is my
フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ
解説 1.まとめ Visual C++ 2005 (Visual Studio 2005) を使用した、「メモリリークのメモリ確保場所の特定」に関してまとめます。 より正しくは、Visual C++ 2005 (Visual Studio 2005) の出力ウィンドウに「検出したメモリリークのメモリ確保場所のソースファイル名、行番号をダンプする方法」に関してまとめます。 (「メモリリークを検出するには」も同時に実施する必要があります) 「メモリ確保関数をデバッグバージョンの関数に置き換える定義」をソースファイルの先頭に記述すると、検出したメモリリークのメモリ確保場所のソースファイル名、行番号が出力ウィンドウにダンプされるようになります。 ただし、この方法による「メモリリークのメモリ確保場所を特定」は、デバッグバージョンの場合(プリプロセッサの定義で _DEBUG が定義されている場合)にし
The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr
google ime (mozc)のソースコードが公開されました。 http://code.google.com/p/mozc/ http://codezine.jp/article/detail/5174 http://googlejapan.blogspot.com/2010/05/google_10.html なんで、早速ソースコードを探検してみた。 google のスーパーハカーはどういう楽しいコードを書いているのか興味津々です。 #まだすべてのソースコードに目を通していないです。 1.CallOnce という CASで実装された楽しい関数 base/mutex.cc に、 CallOnce という 大変ユニークな関数があります。 void CallOnce(once_t *once, void (*func)()) { if (once == NULL || func == NU
Parallel Tracking and Mapping for Small AR Workspaces - Source Code PTAM (Parallel Tracking and Mapping) is a camera tracking system for augmented reality. It requires no markers, pre-made maps, known templates, or inertial sensors. If you're unfamiliar with PTAM have a look at some videos made with PTAM. Here you may download a reference implementation of PTAM as described in our ISMAR 2007 paper
1.gnuplot この文書では,gnuplot のバージョンは,4:0 を想定しています。4:0 では3 次元グラフの視点をマウスでグリグリ動かせたり,2 次元グラフでもズーム イン・ズームアウトとかがマウスで出来たりしてかなり快適です。ネットか ら取ってくる場合は,http://www.gnuplot.info/からダウンロードできま す。Linux でコンパイルする場合,./configure,make,make install で OK です。Windows 版もあります(gp400win32.zip)。 C/C++からWindows 版のgnuplot を使う場合は,wgnuplot.exe ではな く,pgnuplot.exe を使うようにして下さい。これはwgnuplot.exe をパイプ 対応にしたもので,gp400win32.zip の中に入っています。 1.C/C++か
痛みと吐き気と装具の煩わしさで、長生きしたくない。 同じ食品を見ているために吐き気が生じているらしい 通院前から食欲不振があった。通院日から廃液が1L台になったり、緑色になったりするほどに食べる量が減った。胃液が食道に上がってきた日があった。食べる前に、食品を見て吐き気が生じていることから、毎日食べている食品が同じだからかと思った。菓子パン導入での解消を試みる。 ポテトチップスは合わなかった ポテトチップスの消化後物は粘度が大変大きく、廃液集積バッグのチューブを詰まらせた。たまごボーロに続き、「今後食べない食品」として登録する。 粘土使用量半減にて、ストーマ装具取り付け中の痛みが弱くなった ストーマ装具を取り付けているとき、ストーマ3時から4時の部位が大変痛む。内部の糸を引っ張っているらしい。ストーマ外来にて、粘土使用量を半減させて、ストーマ装具を取り付けられた。粘土の厚みや、時間経過に伴
◆画像フィルタ処理 二値化、Pタイル法、判別分析法(大津の二値化)、平滑化フィルタ、ガウシアンフィルタの特徴、メディアンフィルタ 、エッジ抽出、アンシャープマスキング(鮮鋭化フィルタ)、膨張・収縮・オープニング・クロージング、細線化、画素の補間(Nearest neighbor、Bilinear、Bicubic)、外周画素の処理 ◆画像処理プログラム 二値化、ビットマップファイルフォーマット、多ビット(10Bit、12Bit)画像データの表示、フォーマット、VB6.0でビットマップファイルを開く、拡大鏡+プロファイル機能(開発中!)、残効錯視、.NET(C++/CLI)による画像拡大縮小表示、画像処理サンプルプログラム、ルックアップテーブル(ガンマ補正の例) クラス/ハンドルの作成、解放、ファイルを開くダイアログボックスの表示、ビットマップファイルをピクチャボックスに表示、ラベル背景色の透
C++版のOpenCVを使ってカラーヒストグラムを用いた類似画像検索を実験してみました。バッチ処理などのスクリプトはPythonを使ってますが、PerlでもRubyでも似たような感じでできます。 指定した画像と類似した画像を検索するシステムは類似画像検索システムと言います。GoogleやYahoo!のイメージ検索は、クエリにキーワードを入れてキーワードに関連した画像を検索しますが、類似画像検索ではクエリに画像を与えるのが特徴的です。この分野は、Content-Based Image Retrieval (CBIR)と呼ばれており、最新のサーベイ論文(Datta,2008)を読むと1990年代前半とけっこう昔から研究されてます。 最新の手法では、色、形状、テクスチャ、特徴点などさまざまな特徴量を用いて類似度を判定するそうですが、今回は、もっとも簡単な「色」を用いた類似画像検索を実験してみます
この Web ページでは,我々の研究室で学部学生/大学院学生 と行なっている各種の入門演習の資料 (データベース,プログラミング, ネットワーク等に関する演習)を公開しています. 目次 【データベースソフトウエアと Web サーバソフトウエアと関連ツールのインストールと使用法】 Apache, MySQL, PHP, phpMyAdmin インストールと各種ツールの使用法 PostgreSQL インストールと各種ツールの使用法 Java DB (Derby) インストールと各種ツールの使用法 Firebird のインストールと各種ツールの使用法 DB2 Express-C インストール HiRDB インストールと各種ツールの設定 【リレーショナルデータベース演習】 SQL 入門 郵便番号データベース演習 【Java プログラミング】 Java と Java 開発環境 Eclipse
LIBSVMとは LIBSVMはChih-Chung Chang とChih-Jen Lin によって作成された、サポートベクタマシンライブラリである。 現在はバージョン2.85がリリースされている。 LIBSVM は、サポートベクタ分類器(C-SVC、nu-SVC)、回帰分析(epsilon-SVR、nu-SVR)、分布評価(1クラスSVM)のための統合ソフトである。 マルチクラス分類もサポートしている。 様々なインターフェースが用意されているため、ライブラリとユーザープログラムを簡単に統合することが可能である。 以下のような機能、特徴を含んでいる。 異なったSVM の計算式が用意されている. 効率的なマルチクラス分類ができる. モデル選択のためのクロスバリデーション*1. 可能性予測. 偏ったデータのための、重みつきSVM. C++ とJava のソースコード. SVM 分類と回帰分析
計算機イプシロンとは、 1より大きい最小の浮動小数点数と1との差を計算機イプシロンと呼ぶ。 これは計算機の浮動小数点の仕組みに依存する値である。 ε=1/2, 1/4, 1/8, .. と順に減らしていき、1+ε=1 となったら計算を停止する。 そのときのεの値が計算機イプシロンとなる。 1+ε=1はεが[0]でない限り無理ですが、コンピューターでは、適当な桁数で計算を打ち切る必要があるため、ε=0が成立してしまう。 例えば、1/30000000・・・・計算すると、0.000・・・とゼロが沢山並び最後に333・・が続くが、計算可能な桁数を超えると答えが[0]になってしまう。このときの1/30000000が計算機イプシロンです。 ※PCに関するカテに質問したほうが早く答えが得られたかもしれませんね・・・ http://www.osakac.ac.jp/labs/niizeki/CProg/c
行列の乗算は cvmMul(), 行列の要素同士のかけ算は cvMul() なので注意. 線形問題または最小二乗法問題を解く 連立方程式を解く場合,''cvSolve()''を利用して解くこともできます. int cvSolve( const CvArr* A, const CvArr* B, CvArr* X, int method=CV_LU ); A 入力行列. B 線形システムの右辺. X 出力解. method 逆行列の解法. CV_LU - 最適なピボット選択によるガウスの消去法 CV_SVD - 特異値分解 CV_SVD_SYM - 対称正定値行列のための特異値分解. 連立方程式を解く #include<stdio.h> #include<cv.h> int main(int argc, char **argv) { // 行列の要素 float dataA[] = {1.0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く