Mercurial > op > Looping
diff Looping.R @ 12:dab1e83799e4 >>178 tip
R版のソースコードを追加。
author | "uncorrelated zombie" <uncorrelated@yahoo.co.jp> |
---|---|
date | Sat, 04 Feb 2012 04:10:01 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Looping.R Sat Feb 04 04:10:01 2012 +0900 @@ -0,0 +1,28 @@ +# クラス定義 +setClass("Looping", contains = "numeric") +# 総称関数を宣言 +setGeneric("calc", function(obj, n){ + standardGeneric("calc") +}) +# メソッドを追加 +setMethod("calc", signature="Looping", definition=function(obj, n){ + n1 <- obj@.Data + (1 - 2*(n%%2)) + obj@.Data <- n1 + return(n1) +}) + +# インスタンスを作成 +l <- new("Looping") +c <- 0 +n <- 1 +t1 <- proc.time() +# 本当は2147483647でベンチマークすべき +repeat { + if(c>=2147483) + break + n <- calc(l, n) + c = c + 1 +} +t2 <- proc.time() +print(paste(" R", t2["elapsed"] - t1["elapsed"])) +print(paste(" R", (t2["elapsed"] - t1["elapsed"])*2147483647/2147483, "[Estimate]"))