If you are not redirected automatically, follow this link
Staff Personal Web Page DISCLAIMER The websites under https://personal.ntu.edu.sg and https://www3.ntu.edu.sg/home are hosting NTU staff's personal web pages. If you are coming from an expired or bookmarked page (www.ntu.edu.sg/home/your_url), you may want to update your link with the new domain (personal.ntu.edu.sg/your_url). NTU does not in any way accept any liability nor responsibility for thi
ここのソースをちょこっと改造しただけ。 ---- コード(Python側) testmodule.py ---- # -*- coding: utf-8 -*- def testplus(i, j): return i + j + 3 ---- コード(C++側) ---- #include <Python.h> #include <iostream> #include <string> #include <sstream> #define VARNAME(var) #var // ---- exception ---- class PythonException { protected: const char* message_; const char* varName_; public: static const char* errorMessge_ImportModule; stat
はじめに CのコードとC++のコードが混在する環境では、CのコードからC++のコードを呼び出すことが必要になる場合があります。 このページでは、CのコードからC++のコードを呼び出す方法について説明します。 尚、逆にC++のコードからCのコードを読み出す方法については「C++のコードからCのコードを読み出す」のページをご参照ください。 呼び出される側のC++のコード Cのコードから、C++のコードを直接呼び出すことは出来ないため、C++のコード側でCのコードに利用させる部分を「extern "C"」宣言します。 #include <stdio.h> class Person { public: virtual void ask(); }; class GoodPerson : public Person { public: void ask() { puts("そんなことしちゃ駄目だよ!"
C++で行列計算をする場合に便利なライブラリEigenを紹介したいと思います。 ベクトル・行列演算は知っているからEigenの使い方だけを教えてくれというかたは最初の章は読み飛ばしてください。 — 多くの統計処理がベクトル・行列演算を用いるとコンパクトに表すことが知られています。ちょっと複雑そうにみえる問題も整理してみるとベクトル・行列演算で書ける場合が多いです。(ベクトル・行列という言葉に抵抗がある方はそれぞれを単に配列、配列の配列とでも思ってもらえればいいでしょう)。ベクトルの内積は\(u^T v = u_1 v_1 + u_2 v_2 + \ldots +\)として求められ、ベクトルのノルムは自分自身のベクトルとの内積の平方根、\(|u| = \sqrt{ u^T u} \)として求められます(以降ベクトルは全て列ベクトルを指すとします)。 例えば、あるユーザーの商品の購買履歴は、\
############################################################################ # PLEASE NOTE: # # # # THE CBLAS ARE NOT PROVIDED BY NETLIB WHEN CLAPACK ROUTINES ARE REQUESTED.# # # # It is assumed that an optimized version of the BLAS are already # # present on your machine. If this is not the case, please refer # # to the clapack/cblas directory. # ##################################################
AndroidにはNDK(Native Development Kit)という高速化のための仕組みが提供されています。 名前が示す通り、ネイティブプログラムを実行するためのSDKです。NDKを使えば、ソースコードをC/C++言語で記述して、高速にアプリケーションを実行できます。 今回はNDKのインストールから作成環境を整えるまでを順を追って紹介します(開発環境はAndroid NDK r4b および Cygwin 1.7.xです)。 NDKの理解のために Cygwinのインストール(Windows) NDKのダウンロード 環境変数(PATHとANDROID_NDK_ROOT)の設定 Hallo JNIの実行(NDK付属のサンプルプログラム) Windows環境でNDKを使うには、Cygwin(シグウィン)と呼ばれるUnixエミュレータが必要です。 Anroid NDKを使う手順をごく簡単に
...is it? Cygwin is: a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows. a DLL (cygwin1.dll) which provides substantial POSIX API functionality. ...isn't it? Cygwin is not: a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows. a way to magically make native Windo
コンピュータ上で再生されている音声は、WAVE入力デバイスを使用して録音することができます。 このデバイスに対してバッファを追加した場合、そのバッファに録音中のデータが随時書き込まれていくため、 これをファイルに保存すればよいことになります。 WAVE入力デバイスは、waveInOpenでオープンすることになります。 MMRESULT waveInOpen( LPHWAVEIN phwi, UINT uDeviceID, LPWAVEFORMATEX pwfx, DWORD dwCallback, DWORD dwCallbackInstance, DWORD fdwOpen ); phwiは、WAVE入力デバイスのハンドルを受け取る変数のアドレスを指定します。 uDeviceIDは、使用するデバイスのIDを指定します。 デフォルトのデバイスを使用する場合は、WAVE_MAPPERを指定し
JNIのC言語/C++側のコーディング C言語とC++の違い コーディング例 JNI関数の概要 プリミティブ型・参照型(JavaオブジェクトのC/C++での扱い) String型 [/2006-11-09] 配列型 クラスの取得・インスタンス生成 [/2008-02-02] オブジェクトのメソッド呼び出し [/2008-02-07] オブジェクトのフィールド操作 ローカル参照の終了 [2006-11-09] 例外処理 [/2007-10-13] jni.hの中でC言語/C++で使える構造体 (クラス)が定義されているが、 コンパイラーがC言語の場合とC++の場合では定義のされ方が異なり、使い方も少し異なる。 JniJikken.c: JniJikken.cpp: #include "JniJikken.h" JNIEXPORT jbyteArray JNICALL Java_JniJikk
ここでは何回かに分けてx86(IA-32),いわゆる普通のPentiumパソコンで使われている機械語の説明をする予定です. アセンブラ,アセンブリ言語としては拙作のXbyakを使うことにしました. 理由は, 普通のgasやNASMによる解説はありふれていること Windows,Linux,Intel Macで同じソースが使え,C++だけで閉じているためアセンブラの設定に悩まなくてすむこと JITなどの特殊な最適化ができること などがあります(半分は自己満足ですね). 内容は基本的なところから始めますが,場合によってはマニアックネタに走るかもしれません.最初のうちはx86アセンブリ言語入門と重複することも多いと思います. 以下は単なる私の価値観ですが,機械語を絶対に知っておくべきものであるとは思いません.けれども何事もかじってみるのは悪くないと思います. 必要だから勉強する,不要だから勉強し
Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く