scala
scalac -optimise xxx.scala
JNAを使ってc++のシャッフル関数と連携. c_shuff_test.scala import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.NativeLibrary; object c_shuff_test{ def main(args: Array[String]): Unit={ val lib=NativeLibrary.getInstance…
scalaからjnaでc++関数を使う。 少しはまった.ポイントは関数にextern "C" をつけること. C++では、関数のオーバーロード(多重定義)などが原因で 関数名で関数が特定できない(識別子がつくらしい)。そこで、C方式の関数名として宣言しておく. http://…
cpp_test.scala import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.NativeLibrary; object cpp_test{ def main(args: Array[String]): Unit={ var a=Array(1.0,2.0,3.0); println("Input"); a.foreach{println} val lib=NativeLib…
scalaからcの関数をよび内積を計算loop.c #include<stdio.h> #include<stdlib.h> #include<math.h> #include"loop.h" int loop2(double* v1, double* v2,int n){ double tmp=0; int i; for(i=0;i</math.h></stdlib.h></stdio.h>
(1)まず準備。 C言語のダイナミックリンクライブラリ(dll)を作る #include<stdio.h> void test_hello(char* v){ printf(v); } dll化する gcc -c test_hello.c gcc -shared -o test_hello.dll test_hello.o 実行用プログラム void main(){ test_hello("This is test</stdio.h>…
20を4に置き換える。 match が b match であり,b.match でないことに注意 scala> a res9: Array[Int] = Array(1, 20, 20, 30, 40, 50) scala> a.map{i=> i match{case 20 => 4;case _ => i;}}; res10: Array[Int] = Array(1, 4, 4, 30, 40, 50)
var a=List(1,2,3,4); var v=List(2,3,4,5); a.zip(v).map{i=> i._1*i._2;}.sum res15: Int = 40
import org.apache.commons.math3.distribution.NormalDistribution import org.apache.commons.math3.distribution.PoissonDistribution object test{ def main(args:Array[String])={ var norm=new NormalDistribution(1.0,0.5); println(norm.cumulativeP…
import scala.collection.mutable.ArrayBuffer import scala.math._ object test5{ def main(args:Array[String]) ={ var a=new ArrayBuffer[Int]; Math.pow(10,3); (0 to 3).foreach{i=> (1 to 9).foreach{j=> a+=(j*(Math.pow(10,i))).toInt } } a+=10000 …
scalaでランク関数(順位づけ). (重複データはないとする) qq_rank=qq.map{a=> qq.filter(_>=a).length}
配列を要素とするMapに値をつめていく。qqにb(1)をキーに配列としてつめる。 var qq=Map[String,ArrayBuffer[float]]() qq.update(b(1),qq.getOrElse(b(1),ArrayBuffer [Float]())+=n);
scalaでメモリ―オーバー; scalaのjava.lang.OutOfMemoryError: Java heap space の対処法: ヒープの最大値をオプションで指定 scala -J-Xmx1024m xxxx.scala scala -J-Dfile.encoding=UTF-8 -J-Xmx1500m -deprecation xxxx.scala http://www.javaroad.jp/f…
scalaでファイル出力 import java.io.PrintWriter object test{ def main(args: Array[String]){ var p=new PrintWriter("test.txt") p.println("hello\n"); p.println("java\n") p.flush p.close } }
ArrayBufferクラスを用いる. import scala.collection.mutable.ArrayBuffer object ArrayTest{ def main(args:Array[String])={ var a=new ArrayBuffer[Double] a.append(1.0) a.append(2.0) a.append(7.0) //a+=(7.0)も同じ! println(a(1)); a.foreach{pr…
タスク: ランダムウォークを2つ発生させて,それらをいくつかの時間スケールでbox平均をとり, 各時間スケールでグレンジャー因果検定をし,すべての時間スケールでもっとも小さい値を調べる. 上記を100回繰り返す. 計測結果 R 369.96秒 scala 6.655…
scalaでファイルの内容一括読み込みと表示 var text1=Source.fromFile("text1.txt").getLines.toArray Source.fromFile("text2.txt").getLines.foreach{println} Source.fromFile("text3.txt","utf-8").getLines.toArray.map{b=>| b.split("\t")(4).toDouble…
処理結果が-1の場合は0を返す。それ以外は値を2倍して5をたす. http://xawa99.blogspot.jp/2012/09/Scala-MatchBasic.html var a=-1 var b=(2*a+5).match{case -1=>0; case other => other}
scalaでrubyのjoin的なものを書く場合はmkString Array(1,2,3,4).mkString(",")
Scalaで単位根検定 unit root test (Phillips-Perron Tests in scala) RのPP.testをscalaに翻訳 import scala.math._ import org.apache.commons.math3.stat.correlation.SpearmansCorrelation; import org.apache.commons.math3.stat.regression.OLSMultipl…
scalaで移動ボックス平均 object test{ def box_mean(x:List[Double],n:Int=2):List[Double]={ var y=List[Double](); var k:Int=0; var nn=n-1; var sum=0.0; x.foreach{ a => k match{ case k if k%n==n-1 => sum=sum+a/n;y=y::sum; sum=0; case _ => sum=…
入力 $ cat test1.txt abc xxx 11 efg yyy 23 hij zzz 33 lmk qqq 41.3 $ cat test2.txt abc xxx 11 efg yyy 39 hij zzz 22 lmk qqq 17 プログラム import scala.io.Source import org.apache.commons.math3.stat.correlation.SpearmansCorrelation; object …
例1) 基本よみとって出力 import scala.io.Source object test{ def main(args: Array[String]){ var source =Source.fromFile("test.txt","utf-8") val lines=source.getLines var a1: String =""; var k=0; lines.foreach{println(_);} } } foreachの- …
http://sourceforge.jp/projects/milm-search/lists/archive/public/2012-April/000174.html がわかりやすい。 mkdir -p ~/.vim/{ftdetect,indent,syntax} で、できた各フォルダに それぞれのフォルダの http://lampsvn.epfl.ch/svn-repos/scala/scala-tool-…
関数などはjavaで順位相関を参照 http://d.hatena.ne.jp/arupaka-_-arupaka/20130218/1361176768 import org.apache.commons.math3.stat.correlation.SpearmansCorrelation; object test6{ def main(args: Array[String]){ val data1=Array(20,17,30,42.3,17…
Commons Mathはjavaの準正規ライブラリ的なのもの数学ライブラリ 統計計算などいろいろできて便利。ライブラリできること http://ja.wikipedia.org/wiki/Apache_Commons_Math 公式 http://commons.apache.org/導入は http://wiki.unfindable.net/webbook2/in…
(1)まず、ダウンロード http://www.scala-lang.org/downloads (2)次に、解凍 tar zxvf scala-2.9.0.1.tgz .basrcに以下を追加。 (ホームに展開した場合) export SCALA_HOME=~/scala-2.10.0 export PATH=$PATH:$SCALA_HOME/bin https://sites.google.com/si…