最近のトラックバック

2019年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« 2011年10月 | トップページ | 2011年12月 »

2011年11月

Schluessel Ver. 0.3.2をリリースしました

Schluessel Ver.0.3.2をリリースしました。

次のURLよりダウンロードできます。
  http://schluessel.sourceforge.jp/download.html

以下のような機能を追加しました。

  • ClojureライクなJavaライブラリの参照をサポートしました。
  • 線形代数ライブラリ(行列の基本演算・LU分解・連立1次方程式の解法等)を追加しました。
  • 正確な複素数を導入しました。
  • 四元数/八元数をサポートしました。
  • 1変数多項式の計算をサポートしました
  • 実数の区間ライブラリをサポートしました。
  • 10進浮動小数点(Decimal32, Decimal64)をサポートしました。
  • SRFI-14をサポートしました

SchluesselのリファレンスをTexinfoで書き直しました

Schluesselの次リリースのリファレンスをTexinfoで書き直しました。
Webページにあるリファレンスもtexi2htmlで出力したものに書き換える予定です。
また、TexinfoからTeXを通して生成したPDF形式のリファレンスもダウンロードできるようにする予定です。

SRFI-14(文字セットライブラリ)をサポートしました

SRFI-14(文字セットライブラリ)をサポートしました。
文字セットは#[a-z]のように入力することができます。

実数の範囲を表す機能を追加しました

実数の範囲を表す機能を追加しました。
#R[n m]で閉区間[n, m]
#R[n m)で半開区間[n, m)
#R(n m]で半開区間(n, m]
#R(n m)で開区間(n, m)を表現できます。

実数の範囲は「位相(topology)」として扱うことができます。
つまり、実数の範囲の

  • 和集合/共通部分
  • 内部(interior/開核 open kernel)
  • (位相的な意味での)閉包(closure)
  • 最大値/最小値
  • 上界(supremum)/下界(infimum)

(差集合/補集合に関しては検討中です。)
位相を統一的に扱うフレームワークは作成中です。
集合はすべて位相として扱えるように整備する予定です。

半精度/単精度(2進)浮動小数点・10進浮動小数点をサポートしました

Schluesselで半精度/単精度(2進)浮動小数点・10進浮動小数点を扱えるようにしました。

半精度は99s9、単精度は99f9 (R5RSの通り)
10進浮動小数点は999df9(Decimal32)、999dd9(Decimal64)とすれば扱えます。

自動型変換は
半精度<単精度<倍精度<Decimal32<Decimal64
の順になっています。

10進形式と2進形式を変換するには対数関数と実数のべき乗関数が必要になりまが、4倍精度の2進浮動小数点は4倍精度の対数関数と実数のべき乗の実現が難しいため保留にしています。
標準的な計算ライブラリであるfdlibmの実装をみると「Remezアルゴリズム」を用いた近似多項式を使用して計算していますが、多項式の係数の決定方法が難しく、2-112の精度の近似多項式係数を求めることに苦労しています。

(この点に関しては、テイラー展開を用いれば(効率は落ちますが)求めることはできると思います。)

10進浮動小数点(Decimal64, 32)クラスを作成しました

10進浮動小数点(Decimal64, Decimal32)を扱うクラスを作成しました。

通常の2進浮動小数点(double等)では10進数を正確に表せなくなる可能性がありますが、
10進浮動小数点では10進数でデータを持つのでこの可能性はなくなります。
(しかし、1/3*3=1とはなりません)

また、この副産物としてBCD(2進化10進数)を扱うクラスを作成しました。
RDBのNUMERIC型をそのまま保存できるので、DBとのインターフェースに使用できると思います。

« 2011年10月 | トップページ | 2011年12月 »