JavaとScilab
フリーの数値計算パッケージScilabのオンラインヘルプを眺めていたらJavaからScilabにアクセスするJNIがあることに気付く。
ちょっと試してみた。
■準備
javasciフォルダをjarに固めて、\scilab\binにpath通す。
■ソースコード
とりあえず、以下の様なプログラムを書いてみる。
package scilab; import javasci.SciDoubleArray; public class Test { public static void main(String[] args) { SciDoubleArray a=new SciDoubleArray("a",3,3,new double[]{1,2,3,4,5,6,7,8,9}); SciDoubleArray b=new SciDoubleArray("b",3,3,new double[]{-5,-4,-3,5,6,7,1,3,4}); SciDoubleArray c=new SciDoubleArray("c",3,3,new double[]{0,0,0,0,0,0,0,0,0}); a.Send(); b.Send(); c.Send(); c.Job("c=a+b"); double[] r=c.getData(); int n=0; System.out.println("---"); for(int i=0;i<r.length;i=i+3)System.out.println(r[n++]+" "+r[n++]+" "+r[n++]); c.Job("c=inv(c)"); r=c.getData(); n=0; System.out.println("---"); for(int i=0;i<r.length;i=i+3)System.out.println(r[n++]+" "+r[n++]+" "+r[n++]); } }
■結果
おお、計算できてる。
--- -4.0 -2.0 0.0 9.0 11.0 13.0 8.0 11.0 13.0 --- 0.0 1.0 -1.0 -0.5 -2.0 2.0 0.4230769230769231 1.0769230769230769 -1.0