ディストリビューションで利用可能な x86 ではなく、x64 用の Python 拡張機能 IGRAPH をソースからコンパイルしています。VS 2012 ですべてを整理し、src/math.c で次のようにコメントアウトするとコンパイルされます。
#ifndef HAVE_LOGBL
long double igraph_logbl(long double x) {
long double res;
/**#if defined(_MSC_VER)
__asm { fld [x] }
__asm { fxtract }
__asm { fstp st }
__asm { fistp [res] }
#else
__asm__ ("fxtract\n\t"
"fstp %%st" : "=t" (res) : "0" (x));
#endif*/
return res;
}
#endif
問題は、私が asm をよく知らないことと、x86 から x64 に移行する際に問題があるかどうかを知るのに十分ではないことです。これは、私が見ることができる、x64 組み込み関数に変換する必要がある 4 つのアセンブリ命令の短いスニペットです。
ポインタはありますか?本質的に正しい方向に進んでいますか?それとも、サブルーチンまたは純粋な C である必要がありますか?
編集: 誰かがhttp://igraph.sourceforge.net/download.htmlを見たい場合は、igraph 拡張機能へのリンク