つぶつぶなるままに

物理とかプログラミングとか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Avesta を Visual Studio Community 2015 でビルドする

タブ型ファイラ Avesta を愛用している。
もはやこのファイラがないとほとんど作業ができないと言っても過言ではない。

ただ、Avesta は既に開発が終了しているようで、2006 年から更新されていない(Avesta マニュアル)。
流石に XP を想定して開発されたプログラムを Windows 10 で使うのは色々と辛い。

しかし、幸いなことにソースコードが公開されている。
さらに幸いなことに、ライセンスは Artistic License 準拠で、改変・再配布も制限なしとなっている。

というわけで、とりあえず Avesta を Visual Studio Community 2015 でビルドすることにチャレンジしてみた。

https://github.com/takechi/Avestan

Avesta を名乗るわけにはいかないので、1 文字追加して Avestan とした。深い意味はない。

変更内容は commit のログを参照。
テンプレートが多用された多態的かつ変態的なコード(褒め言葉)で、そのままでは色々とエラーが出たが、一つずつ潰していって、何とかコンパイルを通すことができた。


とりあえず Windows 10, Windows 7 上でビルドできたので、互換モードを利用することなく Avesta を起動できるようになった。
スポンサーサイト

1次関数の離散Fourier変換

1次関数$$f(x) = a x + b$$の離散フーリエ変換 \begin{align*} {\hat f}(k) = \sum_{x = 0}^{N-1} f(x) e^{\frac{-i 2 \pi k x}{N}} \end{align*} を求める。 先ず、$k = 0$のときは \begin{align*} {\hat f}(0) &= \sum_{x = 0}^{N - 1} (a x + b) \\ &= \dfrac{1}{2} a N (N - 1) + b N. \end{align*} 次に、$k \neq 0$のときは \begin{align*} {\hat f}(k) &= a \sum_{x = 0}^{N-1} x e^{\frac{-i 2 \pi k x}{N}} + b \sum_{x = 0}^{N-1} e^{\frac{-i 2 \pi k x}{N}} \\ &= \left( a \frac{N}{-i 2 \pi} \frac{\partial}{\partial k} + b \right) \sum_{x = 0}^{N-1} e^{\frac{-i 2 \pi k x}{N}} \\ &= \left( a \frac{N}{-i 2 \pi} \frac{\partial}{\partial k} + b \right) \dfrac{1 - e^{-i 2 \pi k}}{1 - e^{\frac{-i 2 \pi k}{N}}} \\ &= a \frac{N}{-i 2 \pi} \frac{\partial}{\partial k} \dfrac{1 - e^{-i 2 \pi k}}{1 - e^{\frac{-i 2 \pi k}{N}}} \\ &= a \frac{N}{-i 2 \pi} \dfrac{i 2 \pi e^{-i 2 \pi k} \left( 1 - e^{\frac{-i 2 \pi k}{N}} \right) - (i 2 \pi / N) e^{\frac{-i 2 \pi k}{N}} \left( 1 - e^{-i 2 \pi k} \right)} {\left(1 - e^{\frac{-i 2 \pi k}{N}} \right)^2} \\ &= a \dfrac{N}{-i 2 \pi} \dfrac{i 2 \pi}{1 - e^{\frac{-i 2 \pi k}{N}}} \\ &= - a N \dfrac{1}{1 - e^{\frac{-i 2 \pi k}{N}}} \\ &= - \dfrac{a N}{2} \left( 1 - i \cot \left( \dfrac{\pi k}{N} \right) \right). \end{align*} ただし、第4等号と第6等号で、$k \in \mathbb{N}$より \begin{align*} e^{-i 2 \pi k} = 1 \end{align*} を使い、第8等号では \begin{align*} \dfrac{1}{1 - e^{-i 2 z}} &= \dfrac{1}{2} \dfrac{1 + 1}{1 - e^{-i 2 z}} \\ &= \dfrac{1}{2} \dfrac{1 - e^{-i 2 z} + 1 + e^{-i 2 z}}{1 - e^{-i 2 z}} \\ &= \dfrac{1}{2} \left( 1 + \dfrac{1 + e^{-i 2 z}}{1 - e^{-i 2 z}} \right) \\ &= \dfrac{1}{2} \left( 1 + \dfrac{e^{i z} + e^{- i z}}{e^{i z} - e^{-i z}} \right) \\ &= \dfrac{1}{2} \left( 1 + \dfrac{2 \cos z}{i 2 \sin z} \right) \\ &= \dfrac{1}{2} \left( 1 - i \cot z \right) \end{align*} を使った。

MathJaxのテスト

$y = a x + b$ のとき、
$$
y' = a
$$

Solaris 11 on VMware で nettle-2.7.1 をインストール

Solaris 11 on VMware に nettle-2.7.1 をインストールする。
OpenSSL の最新バージョンが /usr/local/ssl にインストールされている環境。
% wget http://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
% tar xvfz nettle-2.7.1.tar.gz
% cd nettle-2.7.2
% env LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib -lcrypto" ./configure --with-include-path=/usr/include/gmp:/usr/local/ssl/include --enable-shared
% emacs Makefile (最終行の include をコメントアウトする)
% emacs tools/Makefile (同上)
% emacs testsuite/Makefile (同上)
% emacs examples/Makefile (同上)
% make
% make check
% sudo make install
make check で全てのテストをパスしたので、多分 Makefile の最終行は何もしてないんだと思う。

テーマ:ソフトウェア - ジャンル:コンピュータ

CentOS 6.4 + TeX Live 2013 において pxdvi で日本語を表示する

追記
tlptexliveリポジトリ
にあるように,texmf に texmf-dist へのシンボリックリンクを張っておく方がスマートな解決法です.(つまり /usr/local/texlive/2013 で ln -s texmf-dist texmf を実行)

というわけで以下の内容は obsolete です.



CentOS 6.4 に TeX Live 2013 をインストールして tlptexlive リポジトリから pxdvi をインストールしたところ
xdvi: Warning: Unable to find "pxdvi.cfg"!

kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 min10
mktexpk: don't know how to create bitmap font for min10.
mktexpk: perhaps min10 is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.
こんな感じのエラーが出て日本語が表示されなかった。

色々試行錯誤した結果、とりあえず次のようにすれば日本語を表示できることが分かった。
なお、TeX Live 2013 はデフォルトの /usr/local/texlive/2013 以下にインストールされているものとします。

1. texmf.cnf

/usr/local/texlive/2013/texmf.cnf を /usr/local/texlive/2013/texmf-dist/web2c/texmf.cnf で置き換える。
コマンドで言えば
% cd /usr/local/texlive/2013
% sudo mv texmf.cnf texmf.cnf.org
% sudo cp texmf-dist/web2c/texmf.cnf .

2. pxdvi.cfg

/usr/local/texlive/2013/texmf/xdvi/pxdvi.cfg を表示したい dvi ファイルと同じ場所にコピーする。
コマンドで言えば
% cp /usr/local/texlive/2013/texmf/xdvi/pxdvi.cfg .


これでとりあえず日本語が表示されるようになる。
2番目の pxdvi.cfg については、環境変数 XDVIINPUTS に /usr/local/texlive/2013/texmf/xdvi を設定することでも同じ効果が得られる。

texmf.cnf を置き換えたことで起きる副作用は多分ないと思うが、とりあえず pxdvi が TeX Live 2013 に対応してくれるまでの一時凌ぎということで。

環境によっては /usr/local/texlive/2013/texmf.cnf を編集する必要があるようです。
xdvi - TeX Wiki
にある通り、TEXFONTMAPS に /usr/local/texlive/2013/texmf/fonts/map/pxdvi を追加すればよいようです。

xdvi-ptex.map を読み込ませれば O.K. なので、texmf.cnf を編集する代わりに、~/.texlive2013/texmf-var/fonts/map/xdvi に xdvi-ptex.map を配置しても同じ効果が得られます。(少なくとも私の環境では得られました。)
コマンドで言えば
% mkdir ~/.texlive2013/texmf-var/fonts/map/xdvi
% cd ~/.texlive2013/texmf-var/fonts/map/xdvi
% cp /usr/local/texlive/2013/texmf/fonts/map/pxdvi/xdvi-ptex.map .
root の作業は最小限にしたいという方はこちらを :-)

この設定は updmap pxdviUse=true で出来れば幸せなのですが、どうも上手くいかない模様。 【“CentOS 6.4 + TeX Live 2013 において pxdvi で日本語を表示する”の続きを読む】

テーマ:Linux - ジャンル:コンピュータ

次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。