タグ

ブックマーク / labs.cybozu.co.jp (2)

  • PythonからSIMD(SSE2)を使うC++関数を呼び出す (mitsunari@cybozu labs)

    ここではLL魂2007デモコードで用いたPythonからC++で書かれた関数を呼び出す方法について説明します. 今回は大量の数値演算をするためC++側でSSE2を使うことにしました. そのためには大前提としてメモリ上に連続して並んだデータが必要になります. Pythonのリストはそのような用途には向かないため,arrayを使います. 今回は浮動小数を使うのでdoubleの'd'を利用することにしました.精度を落としてよければfloatにして速度を稼ぐこともありです. vx = array.array('d', [0.0] * N) 次にC++(boost::python)からこのarrayにアクセスするためには,生のポインタ情報が必要になります. それにはbuffer_info()を使います.マニュアルにはこのAPIは後方互換性のために残されているので使わない方よいと書かれていますが,便利

  • 西尾泰和のブログ @ Cybozu Labs: コーディング過程をで中継

    右半分がPythonの対話的インタプリタIdleで、左半分がチャットのLingrです。 対話的にコードを書いて試している過程がチャットでどんどん公開されていきます。 Lingrのボット(チャットを読み書きするプログラム)は inforno :: Python版Lingr APIライブラリ を使うと簡単に書けます。 リンク先の例では入退室と発言しかありませんが、 他人の発言をウォッチするのも User Observe in Lingr Developer Wiki を使うだけで簡単にできます。 しかし、Lingrにコードを書くのはオートインデントとかがなくて面倒なので、 対話的インタプリタの側からLingrに「実行する内容」と「実行した結果」を送信するようにしました。 チャットに書いたコードが自動的に実行されるとなるとセキュリティが心配ですが、 これは自分のマシンで走るのは自分の書いたコード

  • 1