2014年11月20日木曜日

HSPICEの乱数生成器を指定する(.option randgen)

HSPICEで乱数を生成する場合において,乱数生成器を指定する事ができる.

.option randgen=value

valueはそれぞれ

0: デフォルト. マニュアルには"traditional random generator"を使うとある.これが何なのかは調べてもわからなかったが,古典的擬似乱数生成法のどれかだろうか.
1: キャリー付き乗算(Multiply-with-Carry)を使う.
moa: 1と同じ

より品質の良い乱数が必要であれば,randgen=1を指定すると良いだろう.

広く商用で利用され,それなりに高精度な解析に使われるのでてっきりメルセンヌツイスタでも使っているのかと思っていた.がっかり.

2014年11月7日金曜日

Rの標準出力への出力をファイルに出力する

最近Rを使っているが,出力の仕方がよくわからない.
あるWikiにはteeを使ってログを書き出すよう指定しているので,面倒なのでファイル名を指定してログファイルを書くようfunctionを書いた.

function R-log () {
        local R_log_name
        if [ $# -eq 0 ]
        then
                R_log_name="R.log"
        else
                R_log_name=$1
        fi
        R | tee $R_log_name
}

shell> R-log "file"

で,Rの出力をteeを使って"file"に書き出す.引数を指定しなければ"R.log"に出力する.


Rは終了時にログを取るか聞いてくるが,この機能もいらない.
そこで問答無用で終了させる関数をブログを参考にして.Rprofileに書き込んだ.
R を終了させる最短コードがおもしろい

Q <- 1="" b="">
class(Q) <- b="" quit="">
print.quit <- b="" function="" x="">
    q("no")
}

これでだいぶ便利になった.
# 調べたらもっとスマートな方法がきちんと用意されている気もする...