あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 前記事では、Python・C 言語間で簡単なオブジェクトを受け渡す方法を解説しました。 本記事では、任意の Python モジュールを C 言語から呼び出す方法を解説します。 準備 以降、色々と SciPy の機能を使うことがあります。このとき、以下のコードを拡張モジュール側に書き込む必要があります。 #include <numpy/arrayobject.h> BOOST_PYTHON_MODULE(hello) { numeric::array::set_module_and_type("numpy", "ndarray"); import_array(); } 理由は SciPy のリファレンスに書いてあるハズ。 Python モジュールの読み込み import 文を使用す
あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 前記事では、任意の Python モジュールを C 言語から呼び出す方法を解説しました。 本記事では、SciPy の配列に C 言語からアクセスする方法を解説します。 配列オブジェクトの取得 色々な方法がありますが、メモリに直接アクセスするのが最も高速と考えられます。 はじめに、PyObject* object.ptr() を使用して PyObject のポインタを取得します。 次に、PyArray_FromObject で配列の構造体へのポインタを得ます。 static inline PyArrayObject* py_array(PyObject* ptr, int ndim) { return (PyArrayObject*)PyArray_FromObject(ptr,
あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 前記事では、SciPy の配列に C 言語からアクセスする方法を解説しました。 今回は、実装の方向性について考えます。 PyArrayObject は面倒 前回見た通り、SciPy の配列にアクセスするには何段もの手順を踏む必要があり、面倒です。 PyUblas を経由して BLAS を使用することもできますが、BLAS の最大の問題は 3 次元以上のテンソルをサポートしないことです。 C 言語の配列を Python にエクスポートする 問題解決のひとつの方法は、C 言語の配列オブジェクトを Python にエクスポートすることです。 多次元 vector などのコンテナを Python 側から読み取る、という方法です。 この方法の欠点は、C 言語で定義されたコンテナのラッパーを
あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 本記事では、boost::multi_array を Python 側にエクスポートする方法を解説します。 こんなものがつくりたい Python でデータを読み込み、C で計算を行い、Python で途中経過を出力し、Python で結果を出力するプログラムを目標とします。 これは、たとえば次のようなコードになります。 import mylib, wrap from matplotlib import pyplot as pl from scipy import array, float64 # データを読み込む x = array(..., dtype = float64) # boost::multi_array 配列を確保 # x は入力、y は出力とします wrap_x
あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 前記事では、C 言語で Hello world を出力する関数を作成し、これを Python から呼び出す方法を説明しました。 本記事では、ふたつの言語の間で簡単なデータを受け渡す方法について解説します。 プリミティブの受け渡しは簡単 渡したいデータが文字列や数値である場合は、何も気兼ねする必要がありません。 hello.cpp #include <string> #include <boost/python.hpp> using namespace boost::python; double increment(int x) { return x + 1; } std::string add_txt(std::string x) { return x + ".txt"; } B
はじめに Python は、機械学習の分野で広く使用されるスクリプト言語です。SciPy や matplotlib といった、科学計算に特化したライブラリが多数提供されているのが特徴です。 いっぽう、弱点もあります。for ループの速度が遅いこと、並列処理が苦手なことなどです。これらの目的には、C 言語が適しています。 そこで、本記事では、Python と C の相互連携を可能にする boost-python ライブラリを使用して、大規模科学計算を効率的に解く方法を紹介します。題材には混合ガウス分布を使用します。 動作テストは、Fedora 環境で行なっています。Ubuntu でも動くと思います。 準備 はじめに、SciPy、matplotlib、boost ライブラリをインストールしてください。 boost-devel とか色々インストールした記憶がありますが、忘れました… Hello,
米AppleはMacのOS名に、2001年リリースのMac OS X v10.0以来ずっとネコ科の動物の名前をつけてきたが、ついにこのしきたりから卒業する。 WWDCでOS X Mavericksを披露した同社のソフトウェアエンジニアリング担当副社長のクレイグ・フェデリギ氏は、「新OS、Sea Lion(アシカ)を発表します」と冗談を言った後、「猫不足のせいでリリースが遅れる史上初のOSにはしたくなかった」と語り、今後はAppleの本拠地であるカリフォルニア州の地名にすると発表した。Mavericksはサーファーの間でビッグウェーブスポットとして知られる地名。OSの紹介ページの背景も大波の画像になっている。 関連記事 OS 7──“iPhone発売以来最大の変更”の中身 AppleがWWDCで発表し、今秋リリース予定の次期モバイルOS「iOS 7」の主な新機能を紹介する。 WWDCで発表さ
Pysparse is a fast sparse matrix library for Python. It provides several sparse matrix storage formats and conversion methods. It also implements a number of iterative solvers, preconditioners, and interfaces to efficient factorization packages. Both low-level and high-level interfaces are available, each with different strengths. The only requirement to install and use Pysparse is Numpy. Be sure
previmというのを作りました。 作った経緯と、本プラグインの特徴を書きます。 既存のVim + Markdown環境は外部ツールが必要なものが多い Vim + Markdown環境は好みが別れるのか、色々とあります。 quickrun + 何かしらの変換ツール Hack #230: Markdown形式の文書を書く2 (quickrun0.5.0対応版) 上記リンクにある何かしらの変換ツールが必要 mkdpreview-vim Vimで編集中のMarkdownをプレビュー出来るプラグイン書いた 上記リンクにあるいくつかのツールが必要 instant-markdown-d VimでMarkdownをGitHub風にリアルタイムプレビュー Rubyが必要 Node.jsが必要 Marked(Mac用) vim-quickrunとMarkedでmarkdown編集が快適になった 専用アプリが
CSS with a minimal footprint.Pure is ridiculously tiny. The entire set of modules clocks in at 3.5KB* minified and gzipped. Crafted with mobile devices in mind, it was important to us to keep our file sizes small, and every line of CSS was carefully considered. If you decide to only use a subset of these modules, you'll save even more bytes. * We can add correctly :) the numbers above are individu
Pure は Yahoo! が公開した CSS フレームワークですが、試しに使ってみましょうということで、自分で書くスタイルは極力少なくして、簡単に Blog のテンプレートっぽいものを作ってみました。 さすがに 5分はウソです すいません。でも簡単でしたよ。 Pure : A set of small, responsive CSS modules that you can use in every web project. Pure とは Pure は、簡単に言ってしまえば Twitter が公開している Bootstrap などと同じ、CSS のフレームワークですが、CSS のみに絞ることで、その容量は最大で 5.7KB とかなり軽量。Yahoo! の CDN から読み込めば、gzip された状態で読み込めます。 また、各機能を個別に読み込むことも可能ですので、必要な機能だけを選択す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く