2012年5月31日のブックマーク (4件)

  • swigで pythonとc++連携 - gymnoの自由談

    pythonjavaが遅いのなら その部分だけ別の言語で書けばよいではないか という拡張の話 参考にしたページは以下 SWIG and Python http://www.swig.org/Doc1.3/Python.html distutils with boost.python - おびなたん☆ http://d.hatena.ne.jp/earth2001y/20070611/p1 C++Pythonのコラボレーション ― PythonMatrixJp http://python.matrix.jp/tips/cpp_extension/ nesugi.net - swigの使い方のメモ書き http://www.nesugi.net/hiki/?swig%A4%CE%BB%C8%A4%A4%CA%FD%A4%CE%A5%E1%A5%E2%BD%F1%A4%AD 手順は以下 he

    swigで pythonとc++連携 - gymnoの自由談
    jusuke
    jusuke 2012/05/31
  • PythonからCプログラムを呼び出す | 象歩

    PythonからCプログラムを呼び出す [更新日: 2022年03月19日 ] Python でプログラミングしていると、 新しいデータ構造を作り上げる場合などに、 C/C++ の力を借りたくなることがあります。 Python から C/C++ コードを呼び出す方法を書きます。 まずは、Cから... 1.ソースコード 次の関数を題材にします。 // hello.c int add(int x, int y) { return x + y; } void out(const char* adrs, const char* name) { printf("こんにちは、私は %s の %s です。\n", adrs, name); } 2.wrapper コード まずモジュール(ライブラリ)名を決めます。 ここでは "hello" とします。 そしてラッパモジュールを書きます。 // hello

  • Pythonを高速化しよう! - gumi Engineer’s Blog

    はじめまして、gumiの津村です。 現在は解析系の仕事をしたり、ツールを作ったりしています。 今回の話は高速化についてです。 結構長めの文章です。 目次 実行速度の高速化 Python/C API ctypes Pyrex Cython SWIG その他 纏め 実行速度の高速化 高速化といっても色々ありますが、今回は実行速度の高速化についてです。 弊社ではPythonを全面的に採用していますが、そもそもLLは実行速度が遅い言語です。特にC言語のようなコンパイラ系の言語と比べると非常に遅いです。 それでもLL系の言語がここまで使われるようになったのは、開発効率が良いからです。 もはや常識ですね。 しかし、それでも特定の領域ではどうしてもPythonのようなLL系言語では厳しい部分も出てきます。 アルゴリズムを変更しても、ハードウエアを変えても、無理な物は無理です。 速度に問題がある場合の最適

    Pythonを高速化しよう! - gumi Engineer’s Blog
    jusuke
    jusuke 2012/05/31
  • C++とPythonのコラボレーション — PythonMatrixJp

    SWIG連携による実行速度効率化(Python25対応) PythonはSWIGとの連携をサポートする機能が標準で付属されているのです! 目次 概要 「SWIG」というC/C++コードを各種言語から 利用できるようにするラッパージェネレータがあるのをご存知でしょうか? ホームサイト: http://www.swig.org/ Allegro CL C# Chicken Guile Java Modula-3 Mzscheme OCAML Perl PHP python Ruby Tcl といった多彩なジェネレート出力が得られます。 このページでは当然Pythonからの利用を解説しますが、 実はPython標準ディストリビューションには SWIGとの連携をサポートする機能が最初から組み込み済みです。 つまり、他の言語利用よりもPythonとSWIGの組み合わせが最も親和性が高いといえます。

    jusuke
    jusuke 2012/05/31