裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

最適化なんかしなくてよい その2

2012年05月17日 | ブログラミング

> x <- runif(100000000)
> y <- runif(100000000)
> z <- runif(100000000)
> ## 最初のものより二番目の方が速い
> # 割り算2つよりは掛け算と割り算一つずつが得
> system.time(x/y/z)
   ユーザ   システム       経過  
     1.719      0.420      2.129
> system.time(x/(y*z))
   ユーザ   システム       経過  
     1.116      0.423      1.533
> # べき乗は高くつく
> system.time(1.1*x^3+2.2*x^2+3.3*x+4.4)
   ユーザ   システム       経過  
     5.338      1.964      7.270
> system.time(((1.1*x+2.2)*x+3.3)*x+4.4)
   ユーザ   システム       経過  
     1.442      1.437      2.863
> # べき乗は高くつく
> system.time(x^3+2*x^2+3*x+4)
   ユーザ   システム       経過  
     5.014      1.666      6.649
> system.time(((x+2)*x+3)*x+4)
   ユーザ   システム       経過  
     1.209      1.197      2.393
> # べき乗は高くつく
> system.time(x^y)
   ユーザ   システム       経過  
     8.824      0.229      9.018
> system.time(exp(y*log(x)))
   ユーザ   システム       経過  
     3.492      0.647      4.120
> # 前もって定数 log(10) を計算しておいても何の得もない
> system.time(10^y)
   ユーザ   システム       経過  
     9.068      0.220      9.253
> system.time(exp(y*log(10)))
   ユーザ   システム       経過  
     1.671      0.426      2.087
> system.time({a <- log(10); exp(y*a)})
   ユーザ   システム       経過  
     1.670      0.425      2.085


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村