待望のC/C++ IDEをCLionとして公開致します! JetBrainsはソフトウェア開発を生産的で楽しいものにするため常に注力しています。Javaのシンプルなリファクタリングツールに始まり、Java、.NET、Python、Ruby/Ruby on Rails、PHP、JavaScript、HTML、Objective-Cなど様々な言語、プラットフォームに対応してきました。 JetBrainsのスマートなツール群はコードの品質を高めたり、効率良くリファクタリングしたりコーディング出来ることで広く知られています。 CとC++はプログラミング言語の中でも特に歴史が長く、原始スープ(primordial soup)の中でも根強く生き残っているの言語として認識されています。そこでJetBrainsは信念に基づき、C/C++デベロッパの作業をより効率的なものとするため専用のIDEをリリースする
前章でやったのは、Javaプログラム内から、dll内の関数(ネイティブメソッド)を呼び出す方法となります。 これを利用する事で、OS依存のネイティブAPIをJavaから使用する事も可能になります。 今度は逆に、Windowsアプリケーションの中から、Javaのメソッドを呼び出すという方法を紹介します。 Javaのメソッドを呼び出すわけですが、正確に記述するとJavaVMを起動し、JavaVM上でJavaのメソッドを実行させることになります。 呼び出されるJavaソース public class JNIHello2 { public static String getMessage(){ return "Hello World"; } } 呼び出されるJavaソースファイルは、特に呼び出される事を意識する必要はなくて、普通に作成すればよいです。 今回は、ネイティブ側から単に関数を呼び出すだけ
ぐはああ、 /com/android/sdklib/ISdkLog=コマンドプロンプトでeclipse -clean (立場が変わっても…) ぐはああ、 /com/android/sdklib/ISdkLog=コマンドプロンプトでeclipse -clean (立場が変わっても…) ◎聖闘士星矢Ω第1話星矢が救った命!甦れ聖闘... (ぺろぺろキャンディー) 静岡:淡島リゾートとシダックスと”てんかん発作”の彼女 (脳挫傷による見えない障害と闘いながら) 複数のボタンの動作を設定する (初心者の初心者のためのAndroidアプリ開発!) オープンソースナレッジベース : Opensource Knowlege Base (オープンソースナレッジベース : Opensource Knowlege Base) 川崎:相変わらずの“勝負弱さ”/磐田戦から (サッカーはエンターテインメントだ!)
[プログラミング] [Java] [C言語] /opt/blackdown-jdk-1.4.2以下にJavaがインストールしてある場合です. linuxおよび,linuxエミュレータを導入しているFreeBSDでも実行できることを確認しました.ただし,この場合は,linux版のgccでコンパイルすることが必要です. サンプルコード 以下のTest.javaを呼びだすC言語のコードを書くことにする. public class Test{ public static void testmethod(){ System.out.println("succeseed of calling."); } public int sumation(int a, int b){ return a+b; } } C言語側のコード #include <jni.h> #include <stdio.h> #inc
JavaのライブラリをC/C++から呼ぶ方法のメモ. フルのソースコートはこちら 参考にしたページ: シンプルな C言語からJava言語を呼び出すJNIサンプル ここでは以下のようなJavaのクラスをC++から利用することを想定する. package my.hoge; public class Hoge { public Hoge() { } public void printHoge(){ System.out.println("Hoge!"); } public String getHoge(){ return new String("Hoge"); } public int add(int i, int j) { return i + j; } public String getMsg(String msg){ return new String("Hoget is " + msg)
Desarrollo de módulos en Drupal e integración con dispositivos móviles
最小全域木問題を解くためのアルゴリズム「クラスカル法」と「プリム法」を使ってみた. 最小全域木について クラスカル法 プリム法 PKUの問題 クラスカル法による解答 プリム法による解答 メモリ使用量と実行時間の比較 最小全域木について まず,全域木(Spanning tree)とは連結グラフの全ての頂点とそのグラフを構成する辺の一部分のみで構成される木のこと.つまり,連結グラフから適当な辺を取り除いていき,閉路をもたない木の形にしたものが全域木となる.ここで,グラフの各辺に重みがある場合,重みの総和が最小になるように辺を選んで作った全域木のことを最小全域木(Minimum spanning tree)という. 最小全域木を求めるアルゴリズムとしては以下の二つが有名である. クラスカル法 (Kruskal's algorithm) プリム法 (Prim's algorithm) いずれも貪欲
C/C++でポインタ変数を宣言するときの*記号をint* a;のように左寄せで書くか、int *a;のように右寄せで書くか。 右寄せで書く場合、「Cでは宣言と使用の文法を一致させる」という規則から考えれば素直に解釈できるという話。
ここ数日、Google NaClを使ってC++コードをweb上で実行できるようにするということを試していました(できたのはこれです)。使ってみた感想としては、この仕組みがwebサービスとして使われるようになるかは分かりませんが、C/C++コードで書かれたアプリケーションを実行できる状態で見せるといった用途では、現段階でも十分に使えるんじゃないかというものでした。 Google NaClを使うと、C/C++コードをweb上で動かすことができます。ちょうど、ruby, pythonなどのC APIを使った拡張モジュールのようなことがブラウザ上で動くJavaScriptでもできるようになったようなものだと思ってください。(ただし、NaClプラグインが動くのは現在のところGoogle Chromeだけです) というのも、C/C++で書かれたプログラムを実行しようと思ったら、まず自分以外の環境でもビ
Suffix Array (Larsson-Sadakane) 説明 Suffix Arrayとは,与えられた文字列の接尾辞の集合を辞書順ソートしたものである.近年,これを用いることによって多くの文字列の問題が解かれることがわかってきた. Larsson-Sadakane は Suffix Array を O(n (log n)^2) 時間で構成するアルゴリズムである.Mamber-Myers と同様のアイデアによって文字列長を倍加させ,O(log n) 回の multikey quicksort を行うことにより,全体で O(n (log n)^2) の計算量を達成する.詳しくは適当な文献を参照. Suffix Array を用いて解けるもっとも典型的な問題は,文字列の検索である.Suffix Array 上で二分探索を行えば,O(m log n) でパターンの検索ができる.また,Suf
「Kyoto Tycoonの設計 その四」改め、50行でWebサーバを書く方法を解説する。前回実装した「多重I/Oマルチスレッド汎用TCPサーバ」の上にHTTPの処理を行う層をつけて、「多重I/Oマルチスレッド汎用HTTPサーバ」を司るクラスを実装してみたので、それを使ってちょちょいとやる。 URLクラス HTTPと言えばURLが使えないと意味がない。URLは単なる文字列として扱ってもよいのだが、様々なシーンで分解や加工が必要になり、その処理はなにげに複雑で面倒なので、予めクラスとして導出しておいた方がよいだろう。 class URL { public: // 文字列のURLを解析して内部構造を作る void set_expression(const std::string& expr); // スキーム要素を設定する void set_scheme(const std::string&
大規模疎行列向けの行列分解ライブラリredsvdを公開しました. redsvd 大規模疎行列向けの特異値分解や主成分分析,固有値分解を行うライブラリredsvdを公開しました. 修正BSDライセンスで公開しており,コマンドラインから使える他,C++ライブラリが用意されています. 例えば,行と列数がそれぞれ10万,非零の要素が1000万からなる疎行列に対する上位20位までの特異値分解を約2秒で処理します. 特異値分解とか,使っている技術の詳細とか応用事例を以下に簡単に紹介しましたので,興味のある方は参考にしてください. 特異値分解とは まず行列を適当に復習します.行列Xの転置をX^tと表すことにします.またIを単位行列とし,Oを全ての成分が0である零行列とします.また,行列XX^t=IであるようなXを直交行列と呼びます.Xが直交行列の時,Xvはベクトルvを長さを変えずに回転させます.ここでは
フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ
以前トライ(ダブル配列,簡潔データ構造)と STL コンテナ - ny23の日記で比較に使った自作のレコード付き動的ダブル配列 (dda) の実装も公開.以下の論文のアルゴリズムを実装したもの. 矢田晋, 田村雅浩, 森田和宏, 泓田正雄, 青江順一.ダブル配列による動的辞書の構成と評価, 情報処理学会第71回全国大会, 1-263-1-264頁, 2009年3月. レコード付き動的ダブル配列 - ny23の日記から始まり,レコード付き動的ダブル配列 - ny23の日記, レコード付き動的ダブル配列 - ny23の日記, レコード付き動的ダブル配列 - ny23の日記 と二週間かかって書いた僅か360行の c++ ヘッダファイル.動的ダブル配列は上の分類器の学習手法で素性の重みの管理に使っているので,学習手法の実装に同梱した.std::tr1::unordered_map ベースのトライに
SACHICA(類似文字列列挙アルゴリズム)のC++による実装を公開しました。 http://sites.google.com/site/yasuotabei/sachica sachicaは、同じ長さの文字列集合を入力として、ハミング距離がある閾値以下のすべてのペアーを超高速に出力します。 アルゴリズムは、マルチソーティングという手法に基づきます。 詳しくは、ハミング距離がd以内で長さがmの文字列集合があったとします。初めに、各文字列をk (> d)の部分文字列のブロックに分割します。 今、ハミング距離がd以内の文字列のペアーを求めたいので、もし、ハミング距離がd以内の文字列のペアーが存在すれば、鳩の巣原理により、それらにはk - d個の完全一致するブロックが存在します。この原理に基づき、sachicaはcombination(k, k-d)のすべての組み合わせのブロックをラディックスソ
どのようなときにAho Corasick法が必要か辞書構築した後の応用先(?)の一つとして、辞書を元にした転置インデックスを作ることがあげられる。「どのキーワードがどの文章に登場したか」が一番簡単な転置インデックスだと思うんだけど、今回は登場した文章のどの位置にあったかまで記録したい(例えばリンクを張る時に使いたいから)。転置インデックス作るときは、通常 形態素解析ベース N-gramベース の2種類が主な手法だと思うんだけど、今回はせっかく構築した辞書をもとに転置インデックスを作りたいので、上の2つではうまくできない。かといって、文章とキーワード総当たりとかやっていたら死ぬので、効率のよい方法が必要。そこでAho Corasick法ですよ、奥さん。はてなキーワードへのリンク処理とかに使われたりします。 入力と出力入力と出力を先に紹介しよう。入力は辞書とこんな感じの文章。 <総説誌名>蛋白
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く