[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003307] Re: ruby-lapack の ruby 1.9.1 対応.
- To: Dennou-Ruby Project <dennou-ruby@xxxxxxxxxxx>
- Subject: [dennou-ruby:003307] Re: ruby-lapack の ruby 1.9.1 対応.
- From: Seiya Nishizawa <seiya@xxxxxxxxxxxxxx>
- Date: Thu, 24 Mar 2011 21:43:08 +0900
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; bh=kNIX04+jHa9JdM1k/2B5MUMDify/3W4MZEYGdNKNoMM=; b=S1R8+AJZinHnUpt5Cs/0S5Eq0clUGUW6rbRt50FBVuwkxcgH1s+leixbNFXYL5YPju lrFGCY0CR6gOSqZNepEOC7FuohfJlaivI9jY9/Gr6cQYwdC5CswcECXHJ/rBYAHCysPx XtV9OLOeUdTL9/+xDj4lreRB1YPaL/nP8TABc=
- Sender: seiyani@xxxxxxxxx
佐々木様
2011/3/24 Youhei SASAKI <uwabami@xxxxxxxxxxxxxx>:
> 西澤様: 佐々木です.
>
> At Thu, 24 Mar 2011 20:12:20 +0900,
> Seiya Nishizawa <seiya@xxxxxxxxxxxxxx> wrote:
>> CLAPACK 同梱の F2C を見てみると、
>> typedef long int integer;
>> となっていて、8バイトですが、
>>
>> debian パッケージの libf2c-dev に入っている f2c.h をみると
>> typedef int integer;
>> となっていて 4バイトです。
>
> ご指摘の点ですが,
>
> #if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
> typedef int integer;
> typedef unsigned int uinteger;
> #else
> typedef long int integer;
> typedef unsigned long int uinteger;
> #endif
>
> なので揃ってませんでしょうか?
#if defined(__x86_64__)
typedef int integer;
#endif
なので 4バイトですよね?
これが正しいです。
CLAPACK に同梱の f2c.h は integer が 8バイトになっています。
よくよく README を読むと、環境によって long を消すように記述があります。
なので、今の ruby-lapack のソースは間違った f2c.h をもとに作っているので、
正しい環境では正しく動かないことになります。
まちがった f2c.h を使った環境ではちゃんと動きます。
ちなみに、32ビット環境であれば問題ありません。
> そもそもコレが問題なら ruby1.8 の場合でも変になってしまう気がするのですが.
> # 勘違い?
たまたまでしょう。
壊した先にたまたま 0 が入っていた。
出力をみても期待した動作になっていません。
いずれにせよ ruby-lapack は作り直さなければならないのですが、
前回ソースを作ったときのlapack のバージョンが分からず、
3.3.0, 3.2 で試してもうまくソースが作れないので、
ちょっと時間がかかりそうです。
西澤誠也
--
Seiya Nishizawa
Center for Planetary Science, Kobe University
TEL : 078-803-6472
FAX : 078-803-5731