You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
ctypesって?? ctypesとは、pythonでc言語のライブラリを操作するためのライブラリです. FFI(Foreign Function Interface)というんですね, こういうもののこと. ドキュメントはココにあります. このスライドも参考になりました. 似たようなものでCythonというのもありますが, 純粋なpythonスクリプトでCの関数を実行できることがctypesのメリットです. pythonのプログラムを高速化するのだ!!ということであればCythonかもしれませんが, ちょっとしたデバッグ用に使うようなときはctypesでサクっと書いた方が良さそうです. なんでctypes?? もともとAndroidのJNIで使用するためのCのプログラムを書いていました. で, デバッグの過程でそれを可視化したいなと思っていたのですが, 描画なんてpythonでサクっとやっ
導入 Sourcetrailというコード可視化ツールがオープンソース化したということで早速試してみます。中々面白そうです。 Sourcetrailとは @ ITさんの記事(C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに) Sourcetrailは、インタラクティブな依存関係グラフや簡潔なコードビュー、効率的なコード検索といった機能を組み合わせ、ソースコードの概要と詳細情報を提供する。 ソースコードを静的解析して可視化することで開発者は膨大な既存ソースコードの読み込みから解放される、というわけですね。SourcetrailはC、C++、Java、Python等に対応しており、Atom、EclipseやVSCodeといったエディタ、IDEとの接続も可能みたいです。 Sourcetrail × macOS × VSCodeを試してみた 0. 前提 以下の
Sourcetrailがオープンソース化されました。 ソースコードの全体像と詳細を提供する検索エンジンです。 Home Page Git 対象言語 C C++ Java Python 他の言語は「SourcetrailDB」ツールで拡張出来るようです。 インストール Download Page 使用したいOS・形式をダウンロードする 今回はmacOSのzip形式 「Sourcetrail_2019_4_61_macOS_64bit.zip」(2019/11/20時点最新) ファイルを解凍する Sourcetrail.appが実行ファイル Applicationフォルダに移動する、またはそのまま使用 実行 Sourcetrail.appを実行 使用(Java) 起動画面 New Project選択 必要事項入力 Sourcetrail Priject Name:プロジェク名 Example:
C言語でPythonのモジュールを作ってみる 環境 Python 3.4.6 gcc version 4.8.5 openSUSE Leap 42.3 概要 Python勉強しているときに拡張モジュールの作り方が出てきて自分でも作ってみようと思った次第です。 個人的に色々つまったので、ここにノート代わりに書いておきます。 ゴールまでの流れ C言語でPythonのモジュールを作成 ↓ Pythonを使ってCをビルドする ↓ PythonでimportしてCモジュールを使ってみる C言語でモジュール作成 まず、C言語でPythonのモジュールを作成していきます。 PyObject型を多用します。とりあえず、Hello_worldとpushとpop作りました。 # include <Python.h> //Cの方で作成してPythonで利用する関数はPyObjectを使う static PyOb
It has come to my attention that I have not been particularly clear about how usable or feature-complete libui is, and that this has fooled many people into expecting more from libui right this moment than I have explicitly promised to make available. I apologize for not doing this sooner. libui is currently mid-alpha software. Much of what is currently present runs stabily enough for the examples
参考文献 『Cython ―Cとの融合によるPythonの高速化』, オライリー・ジャパン, ISBN978-4-87311-727-0 以下では、Cython本と呼ぶ Cython ドキュメント(和訳) — Cython 0.17.1 documentation Cython概要 Cythonは、PythonとCもしくはC++の静的型システムを融合したプログラミング言語 クレオール型プログラミング言語 クレオール言語(creole languag) - wikipedia : 複数の言語の混成語のこと。 cython(cが小文字)は、CythonコードをCまたはC++コードに変換するコンパイラ Cythonの長所 = Pythonの表現力 + 動的性格 + C言語の性能 Pythonコードは、そのままCythonコード (いくつかの例外はある) Cythonキーワード追加で、cython
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Cythonとは? Pythonは処理速度は決して早くない、むしろ遅い部類である。 そこで、C/C++に変換することにより高速化しようというのがCythonである。 低級言語のC/C++(昔は高級言語だったが、現在は低級言語といって良いだろう)に変換してネイティブコンパイルするのだから、速いに決まっている。 この記事の目的 「Cythonは難しい」、**「CythonはC/C++の知識が必要」という印象があるだろう。答えは「Yes」**である。 しかし、その答えはCythonをフルに使いこなす事が前提である。 実はCythonは、C/C
早くて、高品質な乱数と言われるXorShiftの128bit版をいくつかの言語で実装してみた。 これを実装するにあたってのポイントは以下の通り。 論理シフトを用いること。 unsigned int32(符号なしint)を用いること。(符号を持たないこと) それができない言語であっても、値は32bit以上の保持は行わないこと。(それ以上は切り捨てる) 恐らく上記を全て満たせればどの言語で実装を作っても同じ乱数が生成できるはず、 ということで複数言語での再現性のある乱数の生成に試みた。 Github オンラインコンパイラ C++ Dlang C# VisualBasic JavaScript Python HSP CommonLisp Tcl Clojure XorShift実装 出力例 >> defaults ["z":521288629, "x":123456789, "y":362436
require "gobject-introspection" module Sample loader = GObjectIntrospection::Loader.new(self) loader.load("Sample") end greeter = Sample::Greeter.new puts(greeter.greet) # -> Hello! どちらの場合も、「Greeterクラスを定義、Greeterクラスにはgreetメソッドを定義」ということを指定していません。「Sampleライブラリーを使う」と指定しているだけです。 SampleライブラリーのAPIは2つの関数しか提供していませんが、通常、ライブラリーのAPIはもっと多くの関数を提供しています。ライブラリーがGObject Introspectionに対応していると、それらの関数をどのように使うかを1つずつ定義し
はじめに Python は、機械学習の分野で広く使用されるスクリプト言語です。SciPy や matplotlib といった、科学計算に特化したライブラリが多数提供されているのが特徴です。 いっぽう、弱点もあります。for ループの速度が遅いこと、並列処理が苦手なことなどです。これらの目的には、C 言語が適しています。 そこで、本記事では、Python と C の相互連携を可能にする boost-python ライブラリを使用して、大規模科学計算を効率的に解く方法を紹介します。題材には混合ガウス分布を使用します。 動作テストは、Fedora 環境で行なっています。Ubuntu でも動くと思います。 準備 はじめに、SciPy、matplotlib、boost ライブラリをインストールしてください。 boost-devel とか色々インストールした記憶がありますが、忘れました… Hello,
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Pure Data(Pd)は、1990年代にミラー・パケット(Miller Puckette) が開発したデスクトップミュージックとマルチメディア作成用のビジュアルプログラミング言語である。Puckette が主に開発したが、Pd はオープンソースプロジェクトであり、多数の開発者が参加している。BSD License に似たライセンス条件でリリースされている。 Pd はその対象領域も設計も Puckette が以前(IRCAM在籍時)に開発した Max に似ており、Max の商用の後継である Max/MSP とある程度相互運用が可能である。Pd も Max も典型的なデータフロープログラミング言語である。グラフィカルな環境で関数や「オブジェクト」が相互にリンクされ、制御フローや音響の流れを表す。Pd では音声処理などもホストCPU上で行われる。これは、Max/FTS においてDSPボード(
たとえば PHP で、 if ($hoge) { ... } とか書いてあったら、 $hoge がどんな値のときに if の中身が実行されるのか即答できますか。 こういう書き方は多くの言語で可能ですが、言語によって何が真で何が偽になるのかが異なるので、それぞれまとめてみました。 C言語 C言語には bool 型が無い。 0 (int) だけが偽となり、それ以外はすべて真となる。 NULL 定数は stddef.h で以下のように ((void*)0) と定義されているため、偽値として使える。 意見が分かれそうなところですが、個人的にはNULLを偽値として使用するは好きじゃないです。 #ifndef __cplsuplus #define NULL ((void*)0) #else #define NULL __null #endif C++ C++になると bool 型が出てくる。C と同
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く