犬ぶよツールズ制作記録

Javaによる研究生活のためのパッケージ、犬ぶよツールズ。
その開発と保守のための備忘録

Inubuyo Color Bar Maker (ver. 0.0 release)

2009-07-07 23:58:41 | news
● 概要
カラーバーをPNGファイルとして作ります。

● 動作環境
Java。JRE 1.4以上。

また、付属のシェルスクリプトを使って起動するにはbashが要ります。

(動作確認)
+ J2SE 1.5.0 on Mac OS X

● 配布について
圧縮したzipファイルです。
jarファイルと起動用のシェルスクリプトが含まれています。
一部のjarファイルには対応するソースコードがついています。

※今回は、今までと配布の仕方を変えました。

● 利用条件
フリーです。
今のところ再配布不可。
jarファイルに含まれるclassを使用したプログラムを公開する場合には
こちらを経由して別途入手してもらうようにしてください。

● ダウンロード
ColorBarMaker.zip(333,367 kBytes)

● インストール方法
(1) ColorBarMaker.zipをダウンロードし、適当なディレクトリに解凍してください。
ColorBarMakerというディレクトリができ、
その中に、corgi.shというファイルと、current、extというディレクトリがあります。

(2) corgi.shをエディタで開いて、以下の箇所を修正してください。

+ 1行目:#!/bin/sh
お使いのbashのパスにしてください。

+ 8行目:appdir=/home/inubuyo/tools
ColorBarMaker.zipを解凍したディレクトリ(ColorBarMakerというディレクトリができたディレクトリ)の
パスに変えてください。

(3) ディレクトリextにcommons-cli-1.0.jarを入れてください。
CLIのダウンロードサイトから手に入ります。
※再配布できるのですが条件を把握していないので同梱していません。

以上です。

● 使い方
使い方および作成できるカラーバーの種類についてはColorBarMaker.pdfをご覧ください。



jp.inubuyo.brain.num.utilパッケージ (ver. 1.1 release)

2009-03-31 11:47:31 | news
● 概要
数値計算のあらゆる場面で使うコードをまとめたものです。
配列を行列とみなして計算を行うInubuyo Array Matrixの実装、
情報落ち(Loss of trailing digits)を回避するユーティリティを含みます。

● 動作環境
Java。JRE 1.4以上。

(動作確認)
+ J2SE 1.5.0 on Mac OS X

● 配布について
実行可能なjarファイルです。
classファイルが含まれています。
ソースコードは同梱していません。

● 利用条件
フリーです。
再配布不可。
jarファイルに含まれるclassを使用したプログラムを公開する場合には
こちらを経由して別途入手してもらうようにしてください。


● ダウンロード
jp.inubuyo.brain.num.util-1.1.0.jar (6,423 bytes)


● 内容
以下のクラスを含んでいます。
+ AM
+ LossTD

● 使い方
クラスAMについては
Inubuyo Array Matrix (仕様、前半)
Inubuyo Array Matrix (仕様、後半)
をご覧ください。

クラスLossTDは、足し算を情報落ち(Loss of trailing digits)が起きないように行います。
以下に普通に足し算を行った場合とLossTDを使った場合を比較するコードの例を挙げます。




import jp.inubuyo.brain.num.util.LossTD;

...

    // 1e-14を10000回足す。
    System.out.println("*** EXAMPLE 1 ****");
    int num=10000;
    double a=0;
    double sum=a;
    LossTD loss=new LossTD(a);
    double d=1e-14;
    for (int i= 0; i <num; i++) {         loss.add(d);
    }
    System.out.println("better:"+(a+d*num));
    System.out.println("normal:"+sum);
    System.out.println("lossTD:"+loss);

...




この部分を実行すると以下のように表示されます。



*** EXAMPLE 1 ****
better:1.0E-10
normal:9.999999999998365E-11
lossTD:LossTD[sum=1.0E-10]


普通に足すと情報落ちが起きますが、LossTDを使うことで回避できているのがわかります。

Inubuyo Arare (ver.1.0 release)

2009-03-10 00:34:41 | news
(概要)
あられ数と呼ばれている数列があります。
Inubuyo Arareでは、この数列を有向グラフとして可視化できるよう
DOT言語で書かれたファイルを生成します。

(内容)
● 「あられ数」とは任意の自然数nから以下の規則で得られる数列です。

+ nの次の項は
1. nが偶数のとき、n/2
2. nが奇数のとき、3*n+1

例: 3から始めた場合、
3, 10, 5, 16, 8, 4, 2, 1, 4, 2, ...

書籍「「数、数、…―不思議なふるまい (単行本)」に詳しく紹介されています。

● 「あられ数予想」
あられ数は、どの自然数から始めても4, 2, 1, 4, 2, 1 ...のループに
達すると予想されています。

● 有向グラフによる可視化
あられ数を、数字を矢印で繋いだ図として表すことができます。
例えば、5から始めたあられ数をこのように表します。

この図に任意の自然数を付け足すことができます。
「あられ数予想」が正しければ、全ての自然数が4, 2, 1, ... のループに繋がる
ひとつの有向グラフに現れます。

● 有向グラフの描画
有向グラフはGraphvizという
ソフトウェアで書くことができます。
GraphvizDOT言語で書かれたファイルから図を生成してくれます。

● Inubuyo Arareがすること
Inubuyo Arareは、あられ数を表す有向グラフを記述した
DOT言語のファイルを生成します。
任意の自然数(厳密にはJavaのint型)から始めたグラフを生成できます。


(インストールなど)
● 動作環境
Java。JRE 1.4以上。

● ダウンロード
inubuyo-arare-1.0.jar

● インストール
inubuyo-arare-1.0.jarを適当なディレクトリにおいてください。
Javaの実行時にパスが通っている必要があります。
このjarファイルがあるディレクトリで実行するならどこでも構いません。

● 配布について
実行可能なjarファイルです。
classファイルが含まれています。
ソースコードは同梱していませんが、
後日公開予定です。

● 利用条件
フリーです。
再配布不可。
jarファイルに含まれるclassを使用したプログラムを公開する場合には
こちらを経由して別途入手してもらうようにしてください。

(使い方)
● 実行方法
コマンドラインから実行します。
inubuyo-arare-1.0.jarがあるディレクトリで

> java -jar inubuyo-arare-1.0.jar

とすると、一応説明が表示されます。
inubuyo-arare-1.0.jarにパスが通っていれば

> java jp.inubuyo.cell.ArarePlot

でも同じです。

+ 例1:5から始める場合。

> java -jar inubuyo-arare-1.0.jar 5


以下のようなメッセージが出れば正しく動作しています。

digraph {
5->16;
16->8;
8->4;
4->2;
2->1;
1->4;
}

この出力の意味は気にしなくて構いません。

+ 例2:ファイルに書き出させる場合。
oオプションでファイル名を指定してください。

> java -jar inubuyo-arare-1.0.jar -o result.dot 5

こうして出来たファイル(この例ではresult.dot)を
Graphvizでグラフにします。
Graphvizの使い方は
Graphviz チュートリアルなどを参照してください。

以下で例として挙げている結果は、Graphvizでグラフにしたものです。
したものを

+ 例3:7から10までの自然数で始める場合。
「r」を指定して、最小と最大を指定します。

> java -jar inubuyo-arare-1.0.jar -o result.dot r 7 10



+ 例4:1から10までの自然数で始める場合。

> java -jar inubuyo-arare-1.0.jar -o result.dot r 1 10

最小が1の場合は省略できます。

> java -jar inubuyo-arare-1.0.jar -o result.dot r 10

どちらも同じ結果になります。

+ 例5:3と21と128から始める場合。
「l」を指定して、始める自然数を列挙します。

> java -jar inubuyo-arare-1.0.jar -o result.dot l 3 21 128



(展示)
● 200以下
arare1-200.pdf

● 800以下
arare1-800.pdf

Inubuyo Permutation (ver. 1.0 release)

2008-07-09 17:58:29 | news
● 概要
Javaの配列に置換を作用させるためのライブラリです。
詳細はInubuyo Permutationに書かれています。

● 動作環境
Java。JRE 1.4以上。

(動作確認)
+ J2SE 1.5.0 on Mac OS X

● 配布について
jarファイルです。
classファイルが含まれています。
ソースコードは同梱していません。

● 利用条件
フリーです。
再配布不可。
jarファイルに含まれるclassを使用したプログラムを公開する場合には
こちらを経由して別途入手してもらうようにしてください。

● ダウンロード
jp.inubuyo.brain.disc.perm-1.0.jar (8,863 bytes)

● 内容
以下のクラスを含んでいます。
+ Permutation
+ Permutations

また、Permutationの子クラスとして以下を含んでいます。
+ ArrayPermutation
+ Transposition
+ CyclicPermutation
+ Identity