(旧 Octave Cygwinメモ, 旧旧 Octave C++ Cygwinメモ)
(10/02/02 更新)
個人的なメモなのですが,HomePageに載せることにより,
ひょっとしてだれかのお役にたつかもしれないと思い掲載することにしました。
(備忘録ににもなるかな。)
07/06/12のメモにもありますが,日付ごとに"070612"のようなリンクタグを埋め込んであります
上のように特定の日付のメモにリンクを貼りたいときにお使いください。 特にこのページに関してリンクの許可は要りません。ただ,やはりコメントをいただけると幸いです。
ただし,質問されたことを「データ解析ツールoctaveを語ろう Part 2」 または,
「GNU Octave JP」にあげることがありますので,
その旨をご了解ください <m(__)m>。
Octave本家の
速報は2chの「データ解析ツールoctaveを語ろう Part 2」
または,「GNU Octave JP」 Cygwin 版 Octave 3.2.4 がでました
ちょっと前になりますがcygwin 版 のocatave-3.2.4-2, octave-forge-20090607-2がリリースされました。
ご存知かと思いますが,cygwin は,2009-12-23 から cygwin-1.7.1 が公式版になっています。
Cygwin のサイトから
setup.exe をダウンロードし,インストールしてください。
カテゴリーは,Math です。
基本的には,バグフィックスですが,3.2.4 からフィックスされたバグも,
結構多いので 3.2.4 がお勧めです。
なお,現在,octave-3.4のリリースに向けて作業が進められており,3.2.4 は 3.2 シリーズの最後のリリースになると
思います。以前の MSVC 版のメインテナーの Michael さんが,MSVC での開発版の
ビルドに着手されています。どのような形になるかは分かりませんが,3.4 からは MSVC 版が復帰するかもしれません。
cygwin 版の ocatave-3.2.4 をお使いで,
gnuplot で 2D の mouse zooming を使いたい方は,
gnuplot 4.5 (cvs) cygwin binaries prepared by gcc-4.x.x
の なお,MinGW 版は現在 Benjamin さんが,作業を進めておられるようなのでしばらくお待ちください。
Benjaminさんが MinGW でoctave をビルドするための HOWTO を書き始めました
MinGW 版 Octave の maintainer の Benjamin さんが MinGW でoctave
をビルドするための HOWTO を書き始めたとの報告が Octave の maintainers の ML でありました。
http://old.nabble.com/HOWTO-for-building-octave-using-mingw-msys-p26465144.html
これは,octave-forge の SVN の Tree 上に置かれていますが,テキストファイルなので直接読んだり,
ダウンロードできるようです。
https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge/admin/Windows/mingw32/HOWTO.txt
リンクリストも更新しました。
MinGW 版 Octave-3.2.3-2 for Windows が出ました
Octave 3.2.3-2/mingw32 がでました。 09/10/28でアナウンスしたもののバグフィックス版です。
http://old.nabble.com/Octave-3.2.3-2-mingw32-available-tt26353433.html
に記載されていますが,以下のようになります。
SSE3のATLASのある種の複素行列の計算SSE3版のATLASを組み込むとseg-faultしてハングする問題は次をみてください
http://old.nabble.com/Octave-3.2.3-mingw32-crashes-on-a-simple-complex-operation-tt26159558.html
MinGW 版 Octave-3.2.3 for Windows が出ました
09/10/24でMinGW 版 Octave-3.2.3 はスキップされるのではといいいましたが,ちゃんと出ました。
がせねた流してすみません 09/10/24に書いてありますが 3.2.3 は 3.2.2 より多くのバグがフィックスしてありましので
お勧めです。また,後述してありますがより安定したコンパイラへの変更がなされているので
この機会に是非バージョンアップをおすすめします。
09/10/28 現在,http://octave.sourceforge.net/でのWindows 版へのリンクがまだ古いままなのでMLに訂正を求めています。
次のアドレスをお使いください。
また,詳しいことは
リリースノートをお読みください。
最大の変更点は通常のユーザーには分かりにくいかも知れませんが,今回から gcc が TDM 版 4.3.0から
MinGW 公式版4.4.0になっていることです。MinGW 公式版4.4.0は,TDM 版 4.3.0 に
くらべコンパイラのバグが少なくclear allのバクも少なくなっています。
個人的に私は,MinGW 公式版 gcc-4.4.0 を使ってビルドしていたおり,clear all でのハングが少ないことなどを
MLで報告していたことが Benjamin さんがコンパイラを切り替えるきっかけとなったのかなとうれしいです。
その他としては gnuplot が wxt ターミナルに対応したことです。
MSVC版は,wxt ターミナルがデフォールトだったのですが,本バージョンではデフォールトではありません。
リリースノートに書いてありますが エディタについては,09/05/22を参考にしてください。
Less での日本語表示については 08/03/20 を参考にしてください。
3.2.2 同様インストール時のATLASについては,原則自動検出で選択されたものでいいです。
HT-Pentium は SSE3 対応なのですが,Core2Duo(SSE3) と表示されていますが,そのままで
結構です。Octave-3.0.2版にくらべかなり,性能がいいと思います。
また,FFTのライブラリであるFFTWにSSE/SSE2とgenericがつきました。
インストール時に自動選択されようです。
中身は パス名に半角スペースのあるフォルダ(C:\Program Files\ など)に
Octave のバイナリーをインストールすると,'pkg install' が使用できないのでデフォールトの
インストールフォルダーが C:\octave\3.2.3_gcc-4.3.0 になっています。
Cygwin 版 Octave 3.2.3 がでました
ちょっと前になりますがcygwin 版 のocatave-3.2.3-1, octave-forge-20090607-2がリリースされました。
ただし,cygwin-1.7 でのみのリリースなので
Cygwin release 1.7 in BETA testing の new setup-1.7.exe から
setup-1.7.exe をダウンロードし,インストールしてください。
基本的には,バグフィックスですが,3.2.2 からフィックスされたバグも,
結構多いので(20 個くらいあります) 3.2.3 がお勧めです。
一例として,わたしもかかわったバグフィックスは, gnuplot 利用して連続してプロットすると x11, windows, wxt
ターミナルにおいて,グラフ全体がちかちかする現象がありました。Ben Abbott 氏が作成された X11
ターミナルに対してのパッチを windows や wxt ターミナルにも適用するようにしました。
cygwin 版の ocatave-3.2.3 をお使いで,
gnuplot で 2D の mouse zooming を使いたい方は,
gnuplot 4.5 (cvs) cygwin binaries prepared by gcc-4.x.x
の なお,完全に書き忘れ^^;ですが,MinGW 版の octave は 現在 3.2.2 です。
Benjamin さんの動きを見ていると 3.2.3 は,スキップされるのではとおもいます。
Cygwin 版 Octave 3.2.2 がでました
cygwin 版 のocatave-3.2.2-1, octave-forge-20090607-2がリリースされました。
ただし,cygwin-1.7 でのみのリリースなので
Cygwin release 1.7 in BETA testing の new setup-1.7.exe から
setup-1.7.exe をダウンロードし,インストールしてください。
Category は Math を選んでください。
octave だけ選ぶと gnuplot がインストールされないので,gnuplot も忘れずにインストールしてください。
cygwin-1.7.0 用の gnuplot 4.3 cvs をup loadしました。cygwin 版の ocatave-3.2.2 をお使いで,
gnuplot で 2D の mouse zooming を使いたい方は,
gnuplot 4.3 (cvs) cygwin binaries prepared by gcc-4.x.x
の MinGW 版 Octave-3.2.0 for Windows でplotが異常に遅くなる場合があることへの対処法
MinGW 版 Octave-3.2.0 for Windows でplotが異常に遅くなる場合があることが,Octave本家のMLで話題になりました。
Plotting with 3.2.0 on Windows is SLOOOOOOWWWW
thread をよんで貰うと分かるでのですが原理的にはコアが一つのコンピュータでおこり,
HT-Pentium 以上 cpu 搭載のコンピュータでは起こらないことがわかりました。
Windows での pipe の実装の問題と octave 側の問題がありますが,octave 側の m ファイルのコードを工夫することで
この問題を回避できることが Olli Saarela さんがコードかかれ,私が試すことでわかりました。
m ファイルの問題ですので,インストールされた octave スクリプトを少し書き換えればいいだけです。
MinGW 版 Octave-3.2.0 for Windows でplotが異常に遅くなる問題にあったかたは,
上記の修正を試みられることをお勧めします。
Cygwin 版 Octave 3.2.0 がでました
cygwin 版 のocatave-3.2.0-2, octave-forge-20090607-2がリリースされました。
ただし,cygwin-1.7 でのみのリリースなので
Cygwin release 1.7 in BETA testing の new setup-1.7.exe から
setup-1.7.exe をダウンロードし,インストールしてください。
CategoryはMathを選んでください。
octaveだけ選ぶとgnuplotがインストールされないので,gnuplotも忘れずにインストールしてください。
cygwin-1.7.0 用のgnuplot 4.3 cvs をup loadしました。cygwin版のocatave-3.2.0をお使いで,
gnuplotで2D のmouse zoomingを使いたい方は,
gnuplot 4.3 (cvs) cygwin binaries prepared by gcc-4.x.x
の Wiki 「GNU Octave JP」 の立ち上げについて
「データ解析ツールoctaveを語ろう」
の916-927番あたりのスレッドで octave に関する Wiki を立ち上げてはということになり,立ち上げてみました。
立ち上げたばかりなので,まだコンテンツがほとんどありませんが,少しずつ充実できればなと思います。
また,wiki なので皆様からの投稿をお待ちしております。
スパム対策に非ログインユーザーの連続投稿回数に制限を加えていますが20回に設定していますので,
実用上問題はないかと思います。
よろしくお願いします MinGW 版 Octave-3.2.0 for Windows が出ました (06/25 補足)
つい,最近3.0.5が出たばかりなのですがもう,3.2.0がでました。
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=287261
おそらく,Benjaminさんは,開発版のソースで準備をすすめられたいたのだと思います。
3.2.0 自体の改変の詳細は以下をご覧ください。
http://www.gnu.org/software/octave/NEWS-3.2.html
いろいろな関数も追加され,MATLABとの互換性が増しているようです。
私が大きいなあと思ったところは疎行列(sparse Matrix)用の関数が変更になった点です。
これからは疎行列に対してもたとえば LU 分解なら以前は エディタについては,09/05/22を参考にしてください。
Less での日本語表示については 08/03/20 を参考にしてください。(06/25 補足)
中身は 3.0.5 同様インストール時のATLASについては,原則自動検出で選択されたものでいいです。
HT-Pentium は SSE3 対応なのですが,Core2Duo(SSE3) と表示されていますが,そのままで
結構です。Octave-3.0.2版にくらべかなり,性能がいいと思います。
パス名に半角スペースのあるフォルダ(C:\Program Files\ など)に
Octave のバイナリーをインストールすると,'pkg install' が使用できないのでデフォールトの
インストールフォルダーが C:\octave\3.2.0_gcc-4.3.0 になっています。
MinGW 版 Octave-3.0.5 for Windows 用のimage package のバイナリを配布
MinGW 版 Octave-3.0.5 for Windows 用のimage package のバイナリを配布することにしました。
http://www.tatsuromatsuoka.com/octave/Eng/Win/
image-1.0.8_prebuild_oct_3.0.5_mgw.zip,, Prebuild image-1.0.8 package for Octave 3.0.5 for Windows MinGW32 Installer. Please read the Readme.txt in the archive file to install.
をご利用ください。 MinGW 版 Octave-3.0.5 for Windows 情報 (06/25 補足)
MinGW 版 Octave-3.0.5 for Windows の情報です。
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=287261
エディタについては,09/05/22を参考にしてください。
Less での日本語表示については 08/03/20 を参考にしてください。(06/25 補足)
中身は インストール時のATLASについては,原則自動検出で選択されたものでいいです。
HT-Pentium は SSE3 対応なのですが,Core2Duo(SSE3) と表示されていますが,そのままで
結構です。Octave-3.0.2版にくらべかなり,性能がいいと思います。
Octave-Forge のパッケージで比較的使用者の多いと思われる,image パッケージが含まれていません。
'pkg install' コマンドでインストールできます。ただ,最新版のimage パッケージ image-1.0.9 は,
Octave 3.1.x 用なので,image-1.0.8 を使用する必要があります。
octave-forge packages (20080831)のimage-1.0.8 にはバグがあるので,
私が,バグを修正したものとその使い方を書いたものを
アップロードしてありますので,そちらをお使いください。
http://www.tatsuromatsuoka.com/octave/Eng/Win/
image-1.0.8p.zip, corrected image-1.0.8 package for Octave 3.0.5 for Windows MinGW32 Installer. Please read the Readme.txt in the archive file to install.
をご利用ください。 MinGW 版 Octave-3.0.5 for Windows がでました(09/06/12修正)
ついに,MinGW 版 Octave-3.0.5 for Windows がでました
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=287261
まだ,インストールをしたばかりなので,詳細は追って書きます。
MSVC 版 は,09/04/08に書いたようもう配布されませんので,MinGW 版が正式版となります。
エディタについては,以前紹介したようにバンドルされている Notepad++ (英語版)では,
ツールバーのFormat→Encode in UTF-8を指定すればいいようです。
日本語をSJISで使うには
MSVC 版にバンドルされていた SciTE を なお,SciTEは最新バージョンは1.78になっています。
MinGW 上での Octave のビルドキットの配布を初めました
Octave を自分でビルドして使うことは,一般には必要のないことだとは思いますが,
多次元偏微分方程式の解法などのように比較的大規模な行列計算が必要となる場合もあります。
この場合,高速化のために使用しているコンピュータのCPUに最適化した BLAS(Basic Linear Algebra Subprograms)を
使用することは,いまや数値計算の世界では常識となっています。
幸い現在では,ATLAS (Automatically Tuned Linear Algebra Software)や
テキサス大学の後藤研究員が中心となって開発した GotoBLAS など
優れた最適化 BLAS がフリーで使用できます。
(ただし,ATLAS と違い GotoBLAS は,ライセンス条項にかなりの制限がありますので
ライセンスをちゃんと読んで使用してください。
09/03/16,09/03/17を参照。)
これらを利用するためには,使用者自身のコンピュータで最適化 BLAS をビルドし,
それとリンクした Octave を自分でソースコードからビルドするという作業が必要です。
Unix 上では,ユーザーが自分でソースからソフトウェアをビルドすることは,
それほどめずらしいことではありません。Windows 上でも最近は,Cygwin という Linux (大雑把にいってUnix の種類の一つ)
のAPI (Application Programming Interface)を提供し,Unix 上のソフトを実行可能にした
システムの上ではOctave のビルドは,比較的容易にできるようになっており,
以前このページでも紹介しています。(09/03/16,09/03/17)
しかし,Octave のようなもともと Unix 上で開発されたソフトウェアを
Windows 本来の API だけでな開発するためのシステムである MinGW + Msys
上では,これらはそれほど容易なことではありません。
Unix API上にあり,Windows API 上にない機能については,Octave ソースそのものを書き換えることが
一番大変なことですが,これについては,Michael 氏や Benjamin 氏の努力で Octave ソースに組み込まれるように
なりました。それでもなお,Octave をビルドするための周辺のライブラリやプログラムを
そろえることは,容易ではありません。
以前,Benjamin 氏の MinGW 版のOctave が公式リリースされるまで,
MinGW 上でのバイナリを試験的に配布していた経験を生かし,
MinGW 上での Octave のビルドキットの配布をすることにしました。
今回,コンパイラをGCC-4.3.3-dw2-TDMに変更し,ライブラリを全面的にビルドしなおしています。
File list of Octave for Windows の
0005 OctaveBuild.zip (kit 本体)と 0006 ReadmeBriefOctBuildMingw.html (仕様書)が相当します。
見ればわかると思いますが,英語です。これは,このような情報は日本だけではなく世界中で不足しているので
英語で書いてあります。日本語に訳す気はありませんので,ご了解ください。
なお,そこにもかいてありますが,懇切丁寧には書かれていません。MinGW や Msysという言葉が,当たり前のように
わかる人やわからなくても 自分で調べて何とかしようというような覚悟のある人むけです。
もともと,Octave を自分でビルドするということは,
それなりの高いレベルの計算が必要な人か,
よっぽどの好き者(私はどちらかというと後者ですが^^;)以外には労力が大きいのでお勧めできないからです。
もし,このビルドキットに質問がある場合は,Octave ML の help_at_octave.org (_at_=@) か
「データ解析ツールoctaveを語ろう」
で行ってください。このようなことに関する質疑応答は,公開された場所で行われることにより,多くの方に
情報提供をおこなうことになるからです。個人のアドレスに質問されたかたは,上記のいずれかに勝手に
あげることがありますことをご了解ください <m(__)m>。
MSVC 版 Octave のバイナリが配布中止
MSVC 版 Octave にライセンス上の問題があり配布が中止になりました。
議論の始まりとなったスレッド "No symbolic package in future (Windows/VC++) releases"
そのスレッド中でのMichael氏からのMSVC版の削除の報告
困ったこと :-( ではありますが仕方ありません。
VC++のランタイムライブラリを Octave パッケージに入れて配布することがだめだったようです。
MSVC 版の配布を続けるには,VC++のランタイムライブラリを含めない形にして,
VC++のランタイムライブラリは,Microsoft のインストール先を示すなどして,
ユーザーが別にダウンロードしてもらう形式にするべきだったようです。
将来の octave では lapack 3.2 を採用の計画があります。Lapack 3.2 は fortran90 を使用します。
MSVC では Fortran のソースコードは,f2c 使ってコンパイルしておられましたが,f2c は fortran90
に対応していないため,MSVC では将来的に Octave のビルドはできなくなります。
それで,Michael 氏は,octave の次のバージョン(3.2)にむけて,
MinGW への切り替えをすでに決めていらっしゃいます。
http://www.nabble.com/Re:-Octave---Fortran-continued-p21249982.html
そのため,VC++のランタイムライブラリの削除版を再パッケージ化して配布する気はないようで単に,
配布停止となったようです。
08/10/15 に紹介している MinGW 版 (3.0.2) をお使いください。
このパッケージに入っている octave のショートカットで出てくるコンソール画面は
日本語に対応していないので,日本語の表示が必要な方は octave.exe に対し自分でショートカットを
作り直してください。作り直したショートカットを右クリックするとプロパティがでます。
「ショートカット」タブでアイコンの変更ができるほか,各種変更ができます。「オプション」タブでは,
「編集オプション」の簡易編集モードを使うとマウスの右ボタンを使った範囲指定やコピー,ペーストができる
ので便利です。そのほか,プロパティで「フォント」,「レイアウト」,「画面のサイズ」,
「画面のバッファのサイズ」なども変更できます。
適宜カスタマイズして使ってください。
エディタについては,バンドルされている Notepad++ (英語版)では,日本語はutf-8のみ正しく扱えるようです。
日本語をSJISで使うには
MSVC 版にバンドルされていた SciTE を なお,Benjamin氏がMinGW版で3.0.5のリリースを予定されているそうです。
http://www.nabble.com/Re:-Windows-build-p23245285.html
Octave 3.0.5 でました
09/04/08のメモに書いた Octave 3.0.5 がでてました。
以下はソースのダウンロード先です。(バイナリではないので注意!!)
http://www.gnu.org/software/octave/download.html
Octave 3.0.4 にバグが見つかり,3.0.5が出るようです。
Octave 3.0.4 に割と大きなバグが見つかりました。3.0.xは,これで最後なので,
開発版に取り入れられたパッチのバックポートやコードの整理をすすめて結果,3.0.4の
RC(Release Cadidate)はRC7までいったのですが,隠れた見落としがあったようです。
http://www.nabble.com/Possible-bug-in-"load"-function-in-octave-3.0.4-td22892300.html
というわけで3.0.5を出すべきだという議論になり,3.0.5RC1がでました。
http://www.nabble.com/3.0.5---td22924551.html
http://www.nabble.com/3.0.5-rc1-td22926230.html
ボランティアベースのプロジェクトなのである意味仕方ないとこともありますので,
開発グループを温かい目で見てやってください。逆にバグなどを発見したときは,MLで報告
していただくことで,octaveプロジェクトに貢献していただくことになると思います。
ユーザーからのフィードバックがあってこそのプロジェクトだと思います。
バグをらしきものを発見したが,英語に自信がないという方は,
「データ解析ツールoctaveを語ろう」
に書き込んでください。内容をそこで議論し,本家にあげる必要ありとおもった場合は,
本家にあげるよう努力したいと思います。
Octave 3.0.4 のソースが公開されました
http://artax.karlin.mff.cuni.cz/~hajej2am/ulozna/octave/
Octave の公式ページには,そのうち公開されるでしょう。基本的にはバグフィックスが中心です。
3.0.4 は,3.0.x シリーズ最後のバージョンになる予定です。
これからは,Ver 3.2に向けて3.1.xの開発版での作業が中心となると思います。
http://www.nabble.com/3.0.4-release-td22822789.html
なお,
http://www.nabble.com/Re:-Octave---Fortran-continued-p21249982.html
にあるように,開発版では,MichaelさんのMSVCでの仕事とBenjaminさんのMingw版での仕事は
Mingwをつかった開発に移行すると思われます。
そのため,MSVC版は3.0.3で終了し,3.0.4ではMingw版がリリースされると踏んでいます。
OctaveへのATLAS組み込みについて(マルチコア CPU の場合)
「データ解析ツールoctaveを語ろう」
で行列計算の高速化について議論していました,ATLASもMulti-coreに対応していることが分かりこれを利用すれば
Core2Duoなどで大変高速に行列演算ができることがわかりました。
823, 824番のスレッドにその結果が報告されています。それによると ATLAS と GotoBLAS
はほぼ同じ程度の性能が出せることが分かりました。ただし,GotoBLAS より組み込みは手間と時間を要します。
Windows に ATLAS と CBLAS をインストール(Windows 上の Cygwin にインストール)
に詳しい解説があります。
ATLASはGotoBLASとは違い BSD-style license で条件を満たせばバイナリの再配布が可能で同じCPUを使っている
方に自分がビルドしたライブラリを渡せしたりできるため,その点からの使いがってはいいです。
ライセンスの詳細は以下をご覧ください
私もMinGW で multi threads のATLASの組み込みに現在トライしています。
うまくいきましたら報告をしたい思います。
ATLASやGotoBLASの組み込みによるOctaveの行列計算の高速化について
「データ解析ツールoctaveを語ろう」
755番の書き込みに
http://hiyokoz.blogspot.com/2008/04/octave.html
に記載されたMacのAccelerate frameworkの速さの記事が話題になりました。
その後のスレッド上でWindows上でもATLASや
GotoBLAS
(Gotoは'後藤'先生のGotoであってgo to ではないです。
実は,私はずっとgotoだとおもっていました^^;)について議論され,Windows上でもATLASやGotoBLASの組み込みにより
かなりoctaveで行列計算の高速化ができることが分かりました。GotoBLASはHyper Threadingでは
それほど威力を発揮しないものの物理コアのあるCore2Duoではかなりの威力を発揮するようです。
(Core2quadではもっといいのはと思いますがHT Pentiumの私にとっては試すことができません。)
投稿者の方は,810番のスレッドでWindows に Octave バージョン 3 と octave-forge をインストール(ソースコードからビルド.Windows 上の Cygwin にインストール
を紹介されました。大変丁寧に書かれていて非常に参考になります。Cygwin版のOctaveもgcc-4がでて昔のようにインタープリタが遅いということもなくなりましたので,現状ではCygwinでのOctaveでGotoBLASを組みこんで使うのがよいと思います。
ただし,GotoBLASは,学術用,研究用,試験用,個人用にはフリーですが組み込んだバイナリーを配布するには
テキサス大学からライセンスを買う必要があります。このため,フリーで使うためにはソースからのビルドをする
必要があります。
私はmingwでGotoBLASの組み込みに現在トライしていますが,
Lapackの組み込みが思うようにいかずmake checkの疎行列のテストでハングアップして,成功していません。
ただし,ATLASなら,現在組み込みに成功しています。私の自宅で使っているCeleron M 1.2 GHzの場合は
GotoBLASよりATLASの方が高速でした。そのため,ATLAS だけの記事でも意味はなくはないと思い,
ライブラりの再構築を始めています。
なお,バイナリー配布の MSVC 版や MinGW 版の Octave には ATLAS が組み込まれていますが,
配布者のコンピュータに最適化されたものなので,やはり自分のパソコンで最適化したものにはかないません。
通常の使用では,バイナリー配布のOctaveで十分だと思います。ただ,大規模な偏微分方程式の解法などでは大規模な行列計算を行う必要があり,行列計算の高速化は非常に価値が高いので,そのような方にはお勧めです。
Cygwin版octaveが3.0.3になりました
Cygwin版octaveが3.0.3になりました。リンクリストの
・Cygwin Information and Installationからcygwinのページにいき,cygwin setupでインストールしてください。
ただし,パッケージの時のエラーによりmkoctfileが動きません。
当然pkg installも動かないでしょう。しかし,簡単にフィックスできます。Cygwin のプロンプトから
と打てば簡単に動作するようになります。また,すぐにフィックスされるでしょう。
今回は初めからgcc-4(gcc-4.3.2 dw2)でコンパイルされているので,
Windows Native版にはかないませんが,そこそこのパフォーマンスも出ます。
また,周辺のSuiteSparse,glpkなどのライブラリも更新されています。
これにより,自分で簡単にソースからoctaveをビルドできます。ソースを解凍したしてディレクトリから
で簡単にインストールできます。
自分でビルドする利点は,自分のマシンに対する最適化ができる点にありますので,
この点については,いずれ改めて書きたいと思います。
NotePad++ EUC-JP 対応版について(09/07/03 修正)
Benjamin氏による Mingw 版の Octave にはスクリプトエディターとして Notepad++ がついてきます。
(08/10/05 1. Octave Forge MinGW Windows (Benjamin氏による正式版)がリリースされました
を参照のこと)
Notepad++ は,プログラマー向けのパワフルなエディタとして最近注目を集めているようです。
もちろん Matlab スクリプト用のシンタックハイライトに対応しています。
ただし,日本語は,utf-8やsjisでは使えるですがsjisの場合カーソル移動時に文字化けするなどの
難点があるようです。
NotePad++ EUC-JP 対応版は, EUC-JP をサポートしているだけでなく,
「カーソル移動時に,一部の日本語表示が化けるのを修正(EUC-JP,SJIS)」,
「ショートカットをドラッグすると,リンク先を開くよう変更」がなされているようです。
Windowsユーザーの方でOctaveのスクリプトを NotePad++ で入力し,
コメントや文字列などで日本語の入力をされたい方には,お勧めです。
download したものを解凍するとansi版とunicode 版のそれぞれのフォルダができます。
http://notepad-plusplus-euc-jp.hp.infoseek.co.jp/
SciTE 1.77について
MATLABモードでコメントや引用符で閉じたところ以外に全角文字を書くと
SciTEが異常終了するというバグがありました。SciTE1.76では完全ではないものの
このバグが修正されていると報告しました。
(08/07/15 2. SciTE 1.76について を参照のこと)
SciTE 1.77.ではこのバグがさらに修正されており,
昨日から使っていますが全角文字をコメントフィールドや
引用符のなか以外で全角を書いても今のところ落ちたことがないです。
ぜひ,Windowsユーザーの方でOctaveのスクリプトをSciTEで書いている方は
バージョンアップを強くお勧めします。
http://www.scintilla.org/SciTEDownload.html
Windows → Windows Executables → A full download (830k)の「full download」をクリックすると
'wscite177.zip'がdownloadできます。カスタマイズの方法は
08/07/15 2. SciTE 1.76について を見てください。
ただし,フォントのサイズは例ではMSGOTHIC, size:10 にしていますが,カンマが見にくい
ですのでMSGOTHIC, size:11がいいかもしれません。好みにもよりますので,各人で調整してください。
Octave 3.0.3 Octave 3.0.3 for Windows Installer (MSVC版)がリリースされました(11/25修正)
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=40078
かなり時間をかけて,Michaelさんが準備されていたので完成度は高いと思います。
主な変更点は以下の通り,
http://sourceforge.net/project/shownotes.php?release_id=642199&group_id=2888
1. Octave Forge MinGW Windows (Benjamin氏による正式版)がリリースされました
http://sourceforge.net/project/showfiles.php?group_id=2888
BenjaminさんのMingw版Octave(3.0.2+forge 20080831)ががついにアップロードされました。
GCC-4.3.0-tdm-dw2でビルドしてあり,GCCとminiMsysがつくことからmkoctfileのために
MSVC Express Edtion のような容量を要する言語を導入する必要がないため,
mkoctfileを使いたい人には,こちらのほうがお手軽でお勧めです。
gnuplotは4.3(CVS版)をコンソールモードで動くgnuplotをpgnuplot.exeとして添付してあり,
マウスによる2Dプロットのズームが使えます。やはり,gnuplotはマウスズームがきかなくてはという人にもお勧めです。
Octave-forge-20080831のサポートは部分的であり,あとは自ら開発環境をつかって なお添付されるエディタはnotepad++ 5.0.3です。SciTEが使いたい人は,
.../share/octave/3.0.2/m/startup/octavercでのEDITOR関数の設定を変更してください。
Octave-forgeのサポートなど,より詳しい情報は,以下のOctaveForgeのMLのBenjamin氏のアナウンスをご覧ください。
2. Octave 3.0.3 のソースが公開されました
http://artax.karlin.mff.cuni.cz/~hajej2am/ulozna/octave/
Octave の公式ページには,そのうち公開されるでしょう。基本的にはバグフィックスが中心です。Michael氏はおそらく
この3.0.3でMSVC版のUpdateをするのではと踏んでいます。
1. Mingw版 Octave-3.0.2 + Octave-forge-20080831のバイナリを配布しました
MSVC版は3.0.2は出ないそうです。BenjaminさんのMingw版Octaveがまだでないので
痺れをきらして, Mingw版 Octave-3.0.2 + Octave-forge-20080831のバイナリを配布することにしました。
http://www.tatsuromatsuoka.com/octave/Eng/Mingw/
Benjaminさんが,Mingw版のOctaveを出すことを信じて,一応私からは最後のバイナリ配布と位置づけています。
2. cygwin用Octave 3.0.2-2 + forge 20080831-2が setupから,インストール可能になりました
cygwin用Octave 3.0.2-2 + forge 20080831-2は,gcc-4による高速版ですが,cygwin setupでインストールできるようになりました。
カテゴリはMathで,expの○ボタンを選択してインストールします。
08/09/17 cygwin公式版の3.0.2+Forge20080831がリリースされました。 cygwinのgcc-3.3以降では,例外処理が遅くなるsjlj EH(Exception Handling)問題があり,
私が,gcc-3.2で使われていた例外処理であるdwarf2 EH版のコンパイラを自力で
ビルドしてこれまで,遅くならない非公式版octaveを出してきました。
最近,アルファ版ですがgcc-4(4.3.2)がでてこれでOctaveがビルドできることがわかりました。
gcc-4は,dwarf2 EHを用いるので私のバイナリとほぼ同程度の速度がでてより安定なOctaveがビルドできます。
Marco Atzeri氏は,このgcc-4による3.0.2++Forge20080831を実験版としてリリースされています。 このリリースにより私が続けてきた非公式版cygwin版octaveは,その役割を終えたといえます。したがって,私のページは
近いうちにどじます。これからどうするかは未定ですが,せっかく続けてきたので何らかの形の貢献を考えています。
なお,公式リリースではgnuplotは4.3.2を用いるためマウス・ズームができません。
マウス・ズームを使うためには,gnuplotは4.3(cvs)版を用いなければなりません。
これにつきましては私のgnuplotのページからダウンロードできますのでマウスによるズームを使いたい方は以下から
ダウンロードしてください。 08/09/05 08/09/01 08/08/26 08/08/13 08/07/21 08/07/15(09/07/03修正) Jhandlesでのprintコマンドについて Jhandlesとgnuplotを両方インストールした場合の切り替え gnuplotでもprint('hoge.emf', '-demf')はこける。(emf形式のグラフが作成できない。) 以上の情報はOctave本家のMLでMichael氏に直接確認したものです。
なお,MSVCでcygwin版gnuplotを使うには,以下をご覧ください。
http://www.geocities.jp/tmoctwin/gp43X11msvc.html
2. SciTE 1.76について(09/07/03修正) SciTEは,windows上でcygwinでEmacsを使用する場合を除いて,Octaveのスクリプトを編集するためには,
使いやすいなテキストエディタの一つです。
ただし,MATLABモードでコメントや引用符で閉じたところ以外に全角文字を書くと
SciTEが異常終了するというバグがありました。SciTE 1.76では完全ではないもののこのバグが修正されています。
(バージョンがあがるごとにバグはよくなっていますが,ver. 1.78 でも完全ではありません 09/07/03)
http://www.scintilla.org/SciTE.html Windows → Windows Executables → A full download (xxx k)の「full download」をクリックすると
'wscite1xx.zip' がdownloadできます。
これを解凍すると wscite というフォルダができますので,これをたとえば を加えてください。
以前06/05/27にも書きましたが,日本語表示のためにはカスタマイズが必要です。
その当時より少し変更していますので,改めて また, なお,SciTE 日本語翻訳 & 1.62+ パックの使い方
http://h12u.com/scixx/about162plusjpn.html 「jalocale - メニューの日本語化ファイル」( 08/06/29 08/05/08 08/04/22 08/04/07 08/04/05 08/04/04 08/03/30 08/03/20(08/03/21 修正) Octaveは,標準でpagerのlessを使ってページごとの表示をします。これまでは,英語での表示
しか使わなかったので気にはしていたのですが,無視していた問題があります。
そのままでは日本が化けるという問題です。
しかし,最近のlessは,多言語対応になっており,Unix 由来のソフト
に共通のロケールのLANG環境変数などを正しく設定すれば,文字化けしないことに
気づきました。
Windows Nativeのlessでは,LANGにja_JP.SJISを設定すればいいです。いろいろ方法があります。
1. Windows自体の環境変数を設定する。 2.バッチファイルなどで行う。 3.Octavesで設定する。 現在のwindowsでのoctaveの設定では,バージョンの異なるoctaveを
同じフォルダーに入れることはないで最初の2つの区別は実質ありません。
ただし,()\share\octave\3.0.0\m\startupは,octave自身が設定をいれており
また,octaveのそれぞれのパッケージャーが扱っているところです。
上の2つの前者,後者いずれも,これらで行った設定は全ユーザーに影響を与えます。
設定を自分だけにしたい場合は,'.octaverc'に設定してください。
この場所がわからない場合は,octaveのプロンプトから
このページでも紹介した,ckw-mod では less がかかると私の場合は表示に問題が生じました。
ただし,現在のckw-modをメンテしている方に伺ったところ,octaveに添付している
less自体のページングには問題がないのことで環境などにも左右される問題かもしれません。
これについては,少し調べて見たいと思います。
(現時点では個人的なコンピュータトラブルで起こったものと推測され,問題は解消されました。
他の方でトラブルに見舞われた方はご連絡ください。 3/21加筆)
したがって,もし,ckw-modで問題が生じた方は,lessの起動をとめることで
とりあえず実用上の問題は回避できます。octavercなどに
なお,cmd.exeでも,lessはちゃんと動きます。評判はそれほどよくない cmd.exe ですが,簡易編集モードを設定すれば結構使えます。
簡易編集モードの設定は,cmdのウィンドウバーを右クリックしてメニューを出し,
プロパティを出します。編集オプションの簡易編集モードが標準でoffになってますので,
ボックスをチェックしてonにしてください。フォントや画面の色,画面サイズがカスタマイズできます。最後に「このウィンドウを起動したショートカットを変更する」を選んで設定を保存してください。
簡易編集モードの使い方はWindows 「スタート」から「ヘルプとサポートセンター」を起動し,
簡易編集モードとキーワードをいれて検索してください。
最後にCygwinの場合は,ホームディレクトリーの.bashrcに
また,08/03/17で紹介したgnuplotもスタートアップのバッチファイルを更新 http://www.geocities.jp/tmoctwin/
08/03/17 08/03/10 08/03/04 08/01/29 08/01/08 07/12/30 07/12/26 07/12/24 07/12/18 07/12/13 07/12/10 07/12/07 07/12/02 07/11/21 07/11/15 07/11/14 07/11/05 07/10/29 07/10/21 07/09/20 07/08/29 07/08/04 07/07/31 07/07/21 07/06/19 07/06/12 (07/06/13 一部加筆) 07/06/07(07/06/12 文章追加) 07/05/30 OctaveのHomepageによるとOctave 2.9.12(pre-release version of Octave 3.0)がリリースされました。Octave for windows メモ
http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html#070519
E-mail : tmacchant_at_yahoo_dot_co_dot_jp (_at_=@, _dot_=. )
に書き込みむ場合があります。
gp45-winbinX11.zip または,gp44rc1-winbinX11-cygwin-1.7.zip をお使いください。
putenv("GNUTERM","wxt")
を
....Octave\3.2.3_gcc4.4.0\share\octave\3.2.3\m\startup\octaverc になどに加えてください。
gp45-winbinX11-cygwin-1.7.zip をお使いください。
gp43-winbinX11-cygwin-1.7.zip をお使いください。
...\Octave\3.2.0_gcc-4.3.0\share\octave\3.2.0\m\plot\__gnuplot_get_var__.m の130行目の
if (! isempty (str))
を
if (isempty (str))
sleep(0.05);
else
で置き換えることで回避することができます。
gp43-winbinX11-cygwin-1.7.zip をお使いください。
spluを使用していましたが,
[L, U, P] = lu (A)と書けば,
A が疎行列なら疎行列用の演算がなされ,L, U, P も疎行列となります。
MATLAB と同じ仕様になったので,ここでも MATLAB との互換性が強化されたといえます。
なお,Readme.txtに書いてありますが,パス名に半角スペースのあるフォルダ(C:\Program Files\ など)に
Octave のバイナリーをインストールすると,'pkg install' が使用できないようです。
その場合,いったんアンインストールして,パス名に半角スペースのないフォルダ(C:\Programs\ など)に
octave を再インストールしてください。
『08/07/15 2. SciTE1.76について(09/07/03修正)』を
参考にして日本語を扱えるようにして使うか,
(参考情報 『08/12/04 SciTE 1.77について』補足情報)
『08/12/16 NotePad++ EUC-JP 対応版について(09/07/03修正)』に詳細を記載した
EUC-JP 対応版 NotePad++ をお使いください。
『08/07/15 2. SciTE1.76について(09/07/03修正)』を
参考にして日本語を扱えるようにして使うか,
(参考情報 『08/12/04 SciTE 1.77について』補足情報)
『08/12/16 NotePad++ EUC-JP 対応版について(09/07/03修正)』に詳細を記載した
EUC-JP 対応版 NotePad++ をお使いください。
$ mv /usr/lib/octave-3.0.3/libctave.dll.a /usr/lib/octave-3.0.3/liboctave.dll
$ CC=gcc-4 CXX=g++-4 F77=gfortran-4 ./configure
$ make
$ make check
$ make install-stirp
....\3.x.x_gcc-4.3.0\tools\notepad++のファイルをすべてNotePad++ EUC-JP 対応版のunicode 版
のファイルで置き換えてください。細かい設定は,SciTEとは違いメニューでできるのでお好みで変更してみてください。
詳しいことは以下のリリースノートを参考にしてください。
(08/07/15 2. SciTE 1.76についてを参照のこと)
pkg installを使って
インストールする必要があります。実装されていないパッケージは,あまり一般的には使用しないものが多いですが,
これらは外部ライブラリを必要とするなどするものが多く,この点では玄人好みのバージョンといえるでしょう。
Marco Atzeri氏によるOctave 3.0.2 + forge 20080831 cygwin公式版と
gcc-4による実験版について
http://cygwin.com/
からsetup.exeを利用し,Math Categoryからインストールしてください。
http://matzeri.altervista.org/
から,Octave-3.0.2-2とOctave-forge-20080831-2をダウンロードしてください。
http://www.tatsuromatsuoka.com/gnuplot/Eng/cygbin/
Topに行く。
Octave 3.0.2 + forge 20080831 on cygwin (by gcc-dw2)の修正
vrml (main) と symband (extra)がForgeに入ってなかったのと気づき,また,新たにftp (main)の
ビルドに成功したので,全体を書き直したものと, vrml, symband, ftpのプレビルドしたものそれぞれを
tar.bz2でアーカイブしたものをおきました。
http://www.tatsuromatsuoka.com/octave/Eng/Cygwin/
Topに行く。
Octave 3.0.2 + forge 20080831 on cygwin (by gcc-dw2)のリリース
octave-forge-bundle-2008031が0824版の修正版としてリリースされました。
このforgeを利用してOctave 3.0.2 + forge 20080831 on cygwin (by gcc-dw2)をリリースしました。
http://www.tatsuromatsuoka.com/octave/Eng/Cygwin/
マニュアルにグラフがつくなど,細かい改良がなされているようです。
Topに行く。
Octave-3.0.2 とoctave-forge-bundle-20080824のリリース
Octave-3.0.2 とoctave-forge-bundle-20080824がリリースされました。
各メインテナーは3.0.2自体の準備はできていますので,ForgeのつかないMac OS X用のバイナリは
すでに配布されてます。Windows版はいずれもForgeがつくのでForgeの準備をしているところだと思います。
私も,cygwin用バイナリ(gcc-dw2版)のForgeと格闘しています。
Topに行く。
開発版のMSVC Octave-3.1.50 のgnuplot-4.2.3を使用する
MSVC Octave-3.1.50にバンドルされているgnuplotは4.2.3です(MSVC-octave3.0.1情報参照)。
これを使用することにより,print('hoge.emf', '-demf')で,グラフをemf形式で保存できます。
emf形式は,Winfdowsの標準グラフィック形式なのでOfficeソフトなどに容易に貼り付けることができます。
ベクターフォーマットなので後からの加工もできます
まずOctave-3.1.50をインストールします。
すでにoctaveがインストールされているのでインストールしようとすると警告がでます。
インストールするフォルダー名を違うものにすれば問題ないです。
たとえば,いままでのoctaveが'C:\program Files\octave'にインストールされているならば,
'C:\program Files\octave-3.1.50'にインストールしてください。このときVS2008をインストールしていない方は
Cのランタイムライブラリもインストールを忘れずに。
あとは,'C:\program Files\octave\share\octave\site\m\startup\octaverc'に
gnuplot_binary('C:\progra~1\octave-3.1.50\bin\pgnuplot')
を記述してセーブしてください。
なお,Octave-3.1.50を使用しない場合,binフォルダーにあるもの以外消去してかまいません。
また,Octave-3.0.1-vs2008をインストイールしてある場合は,C:\program Files\octave-3.1.50\binにある
wgnuplot.exe,pgnuplot.exe,pgnuplot_win.exe,wgnuplot.mnu,wgnuplot.hlpをコピーして,
Octave-3.0.1-vs2008のインストールされているbinフォルダーにあるものと置き換えるだけで結構です。
Topに行く。
開発版のOctave-3.1.50 MSVC版がでました。
Ver.3.2(正式版)を目指した。Ver 3.1のリリースが,公式に始まり,Octave-3.1.50のソースが
配布されました。Michael氏は早速MSVC版のリリースをされました。
目玉はOpenGL/FLTKによるgraphics backendの実験的な実装です。
http://sourceforge.net/project/showfiles.php?group_id=2888
OpenGL/FLTKによるgraphics backendの使い方などの,詳しいことは,リリースノートをご覧ください。
http://sourceforge.net/project/shownotes.php?group_id=2888&release_id=614662
Topに行く。
1. MSVC-octave 3.0.1 情報
Jhandlesをグラフックバックエンドにした場合。print commandはpostscriptしかサポートしていません。
他の形式に変換するには,ghostscript, pstoeditなどが必要です。
gnuplot-->Jhandles
octave>pkg load jhandles
Jhandles-->gnuplot
octave>pkg unload jhandles
これは,MSVC-Octaveがgnuplotが4.2.2だからです。gnuplot 4.2.3では起こりません。
したがって,cygwin版octaveやMSVCでもcygwin版gnuplotを使えば起こりません。
次のリリースでバンドルするgnuplotを4.2.3に修正するそうです。
C:\Program Filesに移動します。
次に (Octaveをインストールしたフォルダ)\share\octave\3.x.x\m\startup\octaverc の最終行に
EDITOR('C:\Progra~1\wscite')
SciTEUser.propertiesの設定を書きます。
#*****ここから
# For Japanese version Windows, We must set or override code.page=932
# and character.set=128.
code.page=932
character.set=128
# 固定幅フォントでMSGOTHIC, size:11を設定
font.monospace=font:MSGOTHIC,size:11
# 固定幅フォントでTerminal, size:10を設定する場合 (参考です)
# font.monospace=font:Terminal,size:10
font.base=$(font.monospace)
font.small=$(font.monospace)
font.comment=$(font.monospace)
font.text=$(font.monospace)
font.text.comment=$(font.monospace)
font.embedded.base=$(font.monospace)
font.embedded.comment=$(font.monospace)
font.vbs=$(font.monospace)
# 行番号も初めから表示。基本三桁、必要なら桁を増やす。
line.margin.visible=1
line.margin.width=3+
# Octave用設定
tab.size.*.m=4
indent.size.*.m=4
open.suffix.*.m=.m
Octave|m||\
# 必要?
edge.mode=2
#wrap
wrap=1
#選択時の色の調整
selection.alpha=256
selection.back=#A0A0F0
#ツールバーを表示
toolbar.visible=1
#ステータスバーを表示
statusbar.visible=1
#起動時のWindowの設定
position.left=500
position.top=300
position.width=800
position.height=600
#eolをLFに
eol.mode=LF
#eolを表示
view.eol=1
#white spaceを表示
view.whitespace=1
view.indentation.whitespace=1
#**********ここまで
matlab.propertiesの12行目(付近)
file.patterns.octave=*.m.octave
を
file.patterns.octave=*.m;*.m.octave
に変更する必要があります。
locale.properties)
をSciTEをインストールしたフォルダー(たとえば c:\Program Files\wscite)
にコピーすればメニューが日本語化されます。
1. Page を移転しました
メンタル面の不調により更新をお休みしておりました。
新たにサーバーをレンタルし,こちらに移動して参りました。
今後ともよろしくお願いします。
http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html
2. VS2008 expess ビルドのMSVC Octave 3.0.1がでました
Microsoftの配布するフリーのVisual Studioが2008にバージョンアップされたのに伴い,
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=40078
VS2008でビルドしたOctave 3.0.1がでました。octave-3.0.1-vs2008-setup.exeというファイル名で配布されています。
Intel系CPUではSSE3に最適化されているため,SSE3がサポートされていないPCには通常のバージョンをおすすめします。
詳しくはリリースノートで
http://sourceforge.net/project/shownotes.php?release_id=597120&group_id=2888
3. Cygwin版公式版 Octave 3.0.1がでました
08/04/04の記事で紹介した,Marco AtzeriさんがCygwin公式版 Octave 3.0.1をリリース
されました。Cygwin setupでCategory Mathよりインストールしてください。
http://www.cygwin.com/
Topに行く。
Octave-3.0.1 MSVC-buildのリリース
Octave-3.0.1MSVC-buildがリリースされました。
今回の目玉はMichael氏によるGUIインターフェースです。(アルファ版ですが)
また,Octave-forgeもだいぶ充実しています。
私のバイナリは,....^^;新しいforgeにてこづってます。今しばらくお待ちを。
Topに行く。
Octave-3.0.1のリリース
Octave-3.0.1がリリースされました。現在,ビルドおよびテスト中です。cygwin版,mingw版を早めに
アップロードできるようにしますが,octave-forgeがでた後になると思います。
Davidさんは,3.0.1がでてらそれほど間をおかずに出すいわれていたのでそれほど時間はかからないと思います。
Octaveのソースのダウンロードのページに行くと気づかれると思いますが,今回はstable3.0.1があるだけです。
実は,次なるバージョンを目指した3.1ブランチが,開発レポリジトリにはできているようです。
Topに行く。
QtOctaveのメニューについて
私は,個人としてはあまり使わないのですが,GUIがほしいといわれるとQtOctaveを勧めています。
ところでヘルプを呼んでみるとメニューのカスタマイズも可能なようです。
うまくいくかどうか分かりませんが,メニューの日本語化も可能かもしれません。
挑戦するような方がいるといいなと勝手に思っています。
うまくいっても行かなくても結果を,私に連絡していただくか,
村上先生のHPの掲示板(リンクリスト参照)にアップしていただけるとありがたいです。
Topに行く。
3.0.1 release?
http://www.nabble.com/3.0.1-release--to16461978.html
jwe(John W. Eaton)氏が3.0.1aのテスト用のプレリリースをOctaveのmaintainersのMLだされました。
私は,cygwinとmingwでビルドして報告しました。一つのソースにwin32 nativeのコードのヘッダー
(windows.h)の取り込みなされていない点を指摘した以外,に問題はありませんでした。
3.0.1のリリースは近いです。
なお,いまMichaelさんが休暇中なのでMSVCでのビルドに挑戦したいというつわものがおられましたら,
スレッドに書かれているURLからソースをダウンロードして結果をOctaveのmaintainersのMLで
報告してみてください。
Topに行く。
Marco Atzeriさんのoctave on cygwin
http://http://matzeri.altervista.org/
Marco Atzeriさんがoctave-3.0.xシリーズのcigwin portについて準備中です。
standardなgccでビルドしてあるので,遅いのは否めませんが,私のバイナリより安定しています。
cygwin1.dllの改良のせいか旧2.1.73よりは若干速いようです。ハードな用途でなければ十分に使えるでしょう。
早くcygwinの公式portになればいいなと思います。
私のバイナリは,cygwinチームが例外処理のslowness issueを解決するまでは,challegingなdistributionとして
配布を続けていきます。
Topに行く。
OctaveのIDE
http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1150.html
http://sourceforge.net/projects/octclipse/
今,OctaveのMLでGUIに関する議論が盛んですが,その話題ででてきたOctave用IDEです。
Windows版もあります。起動してみただけですが,Visual Studioにも似た外観でなかなか本格的な雰囲気でした。
Topに行く。
lessについて
マイコピュータのを右クリックしてシステムのプロパティを立ち上げ,詳細設定,環境変数の設定
で設定しておけばいいと思います。「環境変数の設定」がよくわからない人は,
http://www.nsknet.or.jp/~tony/TeX/install/win/gs.htm#nt
参考にしてください。
また,octaveのスタートアップをバッチファイルなどで行っているかたは,
set LANG=ja_JP.SJIS
をバッチファイルに加えてください。WSHをなどをお使いの方は猛者なので説明は不要でしょう。
octaveには,putenvという関数があり,環境変数を設定できますのでこれを,起動時の設定ファイルに
putenv('LANG','ja_JP.SJIS');
を設定します。
octaveの設定ファイルは,
(Octaveをインストールしたフォルダ)\share\octave\site\m\startup
にそれぞれ,octavercがあります。
(Octaveをインストールしたフォルダ)\share\octave\3.0.0\m\startup
ユーザーのホームディレクトリにファイル'.octaverc'を自分で作成することができます。
(エディタで名前をつけて保存で作成してください。explorerからは作成できません。)
octave> tilde_expand('~/.octaverc')
で場所を知ることができます。
ans = C:\Documents and Settings\Tatsu/.octaverc
page_screen_output(false);
の記述をいれページングを切り,その代わりckw.cfgで
Ckw*saveLines: 3000
などとして,lessがなくてもckwのバッファで十分バックスクロールができるようにしておいてください。
ページャーに慣れていない方は,このほうが使いやすいかもしれません。
export LANG=ja_JP.SJIS
を加えてください。よくホームページなどに記述されているjam less(jless)は,
現在更新がとまっています。
あくまでも推測ですが,本家のlessが多言語対応になったので更新されていないのではと推測します。
export LESSCHARSET=dos
しました。
MSVC-Octaveからgnuplot 4.3 (cvs) (Cygwin)を使用できるセットをUPしました
http://www.geocities.jp/tmoctwin/
mingw版に加え,MSVC版octaveでも,mouse zoomingができるcygwinのgnuplot_x11を最小リソースで使用できる
環境を準備しました。
Topに行く。
Cygwin版,Mingw版のOctaveバイナリを更新しました
http://www.geocities.jp/tmoctwin/
3.0.1のリリースの情報もあり,迷っていたのですがOctave-forgeの20080216版が出たので
これに対応ししました。ただ,それだけでなく。Cygwn版は,gcc自体をオプションをsjljを
disableにする以外は,cygwinの標準のビルドと同じオプションで再ビルドし,ライブラリは
影響を与えないものについては標準のcygwinコンパイラでビルドしなおしました。
この外部ライブラリだけでも使用する価値があると思います。
mingw版では,mouse zoomingができるcygwinのgnuplot_x11を最小リソースで使用できる
環境を準備しました。
Topに行く。
QtOctave Portable for windows の新しいバージョンがリリースされました
http://www.geocities.jp/tmoctwin/
Octaveのフロントエンドとして地位を確立しつつあるQtOctaveですが,新バージョンがリリースされました。
上のサイトにミラーをしてます。ご活用ください。
Topに行く。
Octave 3.0.0 mingw testing binariesをリリースしました
http://www.geocities.jp/tmoctwin/
これまでTrial binaryでしたが,今回,Octave-forgeをサポートしたので,testingとしました。
Readmeを更新し,また,ckw-mod(詳しくは増田先生のページの
GNU Octaveの各種設定・カスタマイズの高機能ターミナルエミュレータ ckw を利用するを参照してください。)
を導入しました。
Topに行く。
講義 07年度コンピュータアルゴリズム 松岡担当分のリンクを変更しました
講義 07年度コンピュータアルゴリズム 松岡担当分は,Octaveによる数値計算入門のページです。
これまで使用していたサーバーが使用できなくなったため,臨時に場所をかえてあります。
リンクリストから,ページにいけます。
パスワードがかけられないので,公開版できるもの以外はアップロードしてありません。
Topに行く。
MSVC版Octaveが3.0.0になりました
http://sourceforge.net/project/showfiles.php?group_id=2888
07/12/28についにMichael氏によるOctave-3.0.0がリリースされました。
これで一般のユーザーのも皆さんも
GNU Octave, version 3.0.0
Copyright (C) 2007 John W. Eaton and others.
の画面に出会えます。うれしい限りです。
Topに行く。
1. MSVC Octave-2.9.19のパッケージミスの修正方法
http://www.geocities.jp/tmoctwin/
MSVC Octave-2.9.19のパッケージミスがあることがわかりました。この不具合は簡単に修正できます。
..\bin フォルダにliblapack.dllというものがあるのですが,これを複製してlapack.dllと変更してください。
2. QtOctave Portable 0.6.8のMSVC版のOctaveについて
OctaveのフロントエンドであるQtOctave Portable 0.6.8には,MSVC版のOctave-2.9.15がついていますが,
....\Octave の中身を新しいのバージョンのOctaveの中身に置き換えるだけで使えます。
以下にスナップショットの例があります。
http://www.nabble.com/Re:-Octave-MSVC-is-replacable-in-QtOctave-portable.-tt14493640.html
Topに行く。
祝 Octave-3.0.0がついにリリースされました。Octave-3.0.0のCygwin版とMingw版のBinaryの配布
http://www.cae.wisc.edu/pipermail/octave-maintainers/2007-December/005376.html
07/12/21にOctave-3.0.0がついにリリースされました。
上のjweからメールの中に自分の名前が載っているのをみてジーンときました。
なかなかいいものですよ。他の方もOctaveのボランティアに参加しませんか?
4.0.0は遠そうですが,3.1.0に貢献するのもありますよ。
また,Cygwin版とMingw版のBinaryを準備しました。
http://www.geocities.jp/tmoctwin/
Topに行く。
1.Octave-2.9.19のMSVCb版とCygwin版のBinaryの配布
http://www.geocities.jp/tmoctwin/
上のWebかリンクリストからとりにいってください。
Octave MLでは,いろんな報告がまだでてます。しかし,2.9.19を急いでリリースしたときとは違い,
重要なバグは出ていないようです。Ver.3.0へのアップデートは,jwe(John W. Eaton)氏
の決心しだいであると推測しています。クリスマスプレゼントは出るのかどうか。楽しみです。
2.Octave教科書
http://www.kohgakusha.co.jp/books/detail/978-4-7775-1326-0
「Octave教科書 」という書籍が出ているのに昨日気づきました。
Octaveが日本でもメジャーになりつつある証拠かなと思います。
そのことは,うれしいことです。もっといろいろな書籍がでるといいなと思います。
Topに行く。
1.Octave-2.9.19のリリースとMingw版のBinaryの配布
http://www.geocities.jp/tmoctwin/
驚くなかれもう2.9.19が出ました。David氏はVer.3.0のリリースをクリスマスプレゼントに
したらとのたまわっています。本当かな?
http://www.cae.wisc.edu/pipermail/octave-maintainers/2007-December/005269.html
2で書いているように新しいOctave-forgeがでたので,Cygwin版はとりあえず後回しで2.9.18のままですがmingw版の
2.9.19のバイナリはアップしています。しかし,Octave-2.9.18では以下のようにPlot関係でかなり問題なバグがあるので,
http://www.cae.wisc.edu/pipermail/octave-maintainers/2007-December/005218.html
Fixした__line__.mとsurface.mのDownloadについての情報がリンクリスト
の・Octave 2.9.xx Cygwin testing binaries (English)に載せてあります。
2.octave-forge-bundle-20071212がでました
octave-forge-bundle-20071212がでました。リンクリストの・sourceforge.net(English)
からダウンロードできます。
Topに行く。
Octave-2.9.18のリリースとOctave-2.9.18のCygwin版とMingw版のBinaryの配布
http://www.geocities.jp/tmoctwin/
07/12/04にOctave-2.9.18がリリースされました。今度こそVer.3.0の最後プレリリースとなるのか否か?
そこでなんとか,Cygwin版とMingw版のバイナリを作成し配布しています。Cygwin版にはOctave-forgeも
つけているのですが,David氏によるとこれもまもなく新しいものが出るようです。
Developper達のパワーに脱帽という感じです。私のMingw版のリリースは,PreliminaryからTrialに
名称を変えました。これは,若いチャレンジャーに挑戦して欲しいという中年のおじさん(=筆者)の
身勝手な気持ちもこめられています。
Topに行く。
Animal Breeding and Softwareへのリンクをリンクリストに入れました。
帯広畜産大学の増田豊によるページです。このページの「GNU Octaveに関するメモ」は大変よくできています。
「その他ソフトウエアに関するメモ」も力作でなかなか興味深いです。
Animal Breeding and Software
Topに行く。
MSVC Octave-2.9.16用のgnuplot_fixed.zipの中のgnuplotの不具合が解消されました。
MSVC Octave-2.9.16用のgnuplotですが,Michael氏は,リリース直後にカラーパレットに関する不具合を見つけ,
gnuplot_fixed.zipとして配布されました。しかし,MSVCのランタイムライブラリが,コンピュータによっては
ソフトウェアが要求するためすでにインストールしてある場合があり,このランタイムライブラリのバージョンによっては
gnulot_fixed.zipの中のgnuplotが動かないという不具合が発見されました。
07/11/29にこの問題とさらに見つかったメモリーリークの問題を修正したgnuplot_fixed.zipが配布されました。
MSVC Octave-2.9.16をインストールしている方は,gnuplotをこの新しいものに置き換えてください。
・sourceforge.net(English)
Topに行く。
QtOctave Portable:Qt4.0をにしたOctaveのGUIフロントエンドのWindows版を見つけました
http://qtoctave.wordpress.com/
QtOctave Portable:Qt4.0をにしたOctaveのGUIフロントエンドのWindows版です。
Michael氏のMSVC版のwindows版のOctave(現在は2.9.15)が含まれています。
私の英語のホームページにもバイナリーをミラーしています。
http://www.geocities.jp/tmoctwin/
Topに行く。
Benjamin Lindner氏のTesting buinaries of Octave-2.9.12 on mingwがUploadされました。
http://www.dbateman.org/?page=octave&lang=EN
David's Octave webpages (English)にBenjamin Lindner氏のTesting buinaries of Octave-2.9.12 on mingwがおかれています。
詳しいことは以下をご参照ください。(English)
http://www.cae.wisc.edu/pipermail/octave-maintainers/2007-November/004755.html
Topに行く。
Octave-2.9.17のリリースとOctave-2.9.17Cygwin版Binaryの配布とVer.3.0への動き
http://www.geocities.jp/tmoctwin/
07/11/10に早くもOctave-2.9.17がリリースされました。同じことを言いますがこないだ2.9.16のバイナリーをアップしたばかりなのに。
ついに,Jonn W. Eaton 氏が3.0に向けて動き出す宣言をしました。
http://www.cae.wisc.edu/pipermail/octave-maintainers/2007-November/004882.html
Topに行く。
Octave-2.9.16のリリースとOctave-2.9.16Cygwin版Binaryの配布
http://www.geocities.jp/tmoctwin/
07/10/31に早くもOctave-2.9.16がリリースされました。こないだ2.9.15のバイナリーをアップしたばかりなのに。
というわけで私の予想は見事に裏切られ,これからは3.0にむけて最後の不都合のFixという形ですすんでいくのでしょう。
いずれにしてもVer.3.0の登場は,近いと思います。
Topに行く。
Octave-2.9.15Cygwin版Binaryの配布
http://www.geocities.jp/tmacchant/
07/10/16にOctave-2.9.15がリリースされ,早速ビルドしたのですが,いろいろあってやっとアップしました。
今回の目玉は,特に目玉というものはありませんが,ヘルプやマニュアルはかなり完全に近いものになってきており,
Octave 3.0もそう遠くないといった雰囲気です。
ひょっとしたら2.9.xxxシリーズ最後かもしれません。
pkgコマンドのpkg prefixの仕様が変更になっており,戸惑いました。他にも細かい変更があるかも知れませんが,
マニュアルやHelpで確認してください。
Topに行く。
1. Octave-2.9.15のリリースとMSVC版の更新
07/10/13にOctave-2.9.15がリリースされました。MSVC版も2.9.15になりました。
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=40078
私のcygwin版はできれば来週にアップする予定です。(ビルド自体は終了し,整理などをしてます。)
今回は,大きな変更はないのですが,pkgコマンドなどの使用の細かい変更があります。
まだ,確定はしておりませんが,2.9.xxとして最後のリリースとなり次は3.0かも知れません。
すくなくとも3.0に向けてかなり近いづいてきていることはたしかなようです。
2. Tatsuro's Octave for Windows Page (English)を開設しました。
リンクリストに書きましたが,このページの英語版というわけでは,ありませんがInternationalな
情報発信も考え作成しました。試験的な,mingw版バイナリ(ただし,熟練者向き)などもおいてあります。
もちろんこのページは続けますが,いろんな配布物やテストコードなどはこちらに移っていくかも知れません。
Topに行く。
Octave-2.9.14のリリースとCygwin版Binaryの配布
http://www.geocities.jp/tmacchant/
07/09/17にOctave-2.9.14がリリースされ,早速ビルドし,アップしました。
2.9.xxもコードがかなり洗練されてきており,ほとんどトラブルなくビルドできます。
今回の目玉は,Qhullライブラリによるgeometric functionsの正式サポートのようです。
(2.9.13まではOctave-forgeのパッケージでした。したがって,geometryパッケージはOctave-forgeからはなくなります。)
私もよくわからないので今回から上のページにマニュアル(English)をおいていますので
詳しいことはマニュアルを読んでください。最近は,マニュアルもだいぶ充実してきました。
また,gnuplot4.3のCVS版(09/01版)にして,マウスズーミングが利かなくなってしまった点が全部ではないのですが
ある程度改善されているようです。
Topに行く。
Cygwin版Octave 2.9.13のBinaryを大幅改定しました。
http://www.geocities.jp/tmacchant/
ずっとCygwin でのOctaveビルドにはgcc3.3.3-3しか使えない思っていたのですが,gcc-3.4.4-3が使える
ようです。gcc-3.4.4-3を'--disable-sjli-exceptions'でビルドして
このgccでビルドしたCygwin版Octave-2.9.13のBinaryを作成し,公開しております
今回はほとんどの場合exitが正常にいきます。メモリを食うスクリプトようなの場合だろうとは
思いますが,時々segmentation faultがでます。^^;
Oregonatorのテストをしたら逆に少し遅くなりましたが,起動スピードやなりよりpkgコマンドでの
パッケージングのスピードが大幅に改善されているので使い勝手はいいです。
今回は,すべてではありませんが,Octave-forgeのfunctionもビルドして,アップしています。
自分では,それなりに使えるツールになったなと思っています。
また,Benjamin Lindar氏がmingwでのOctaveのビルドに成功し,source-forgeでの公開を目指して
おられるようです。私も試しにmingwでのOctaveのpreliminaryなものをビルドをしてみました。
実行速度は,Michael氏のMSVC版とほぼ同等でした。
Benjamin Lindar氏のOctaveがどのようなものになるかはわかりませんが,どっちを使うか迷いそうですね。
私自身は,最近,Xサーバーとして,mingwで構築されたXmingが性能がよくなっており,
gnuplotはどちらかというとCygwin版をつかっている関係と自分が作ったものに情がわいて,
Cygwin版を使っています。
Topに行く。
Cygwin版Octave 2.9.13のBinaryを作成し,公開しました。
http://www.geocities.jp/tmacchant2/
sjlj exceptionのを問題でビルドしたOctaveが遅くなる問題がありますが。
今回,gcc-3.3.3-3を'--disable-sjli-exceptions'でビルドして
このgccでビルドしたCygwin版Octave-2.9.13のBinaryを作成し,実行速度を速め,公開しております
ただし,そのせいなのでしょうが,exitが正常にいきません。^^;
だいぶ待たされたあと,segmentation faultかcore dumpedがでて異常終了します。
実行速度は,以前のものに比べるとだいぶ速いので,それを考慮して割り切ってお使いください。
gnuplotのpipelineの問題を回避するために新しいCVS版の4.3をビルドしてこれもつけております。
gnuplotのビルドにはgcc-4.2.1を使いました。gcc-3.3.3でビルドしたものと比べ定量的な評価は
していないのですが,体感ではレスポンスがよくなっています。
したがって,Octaveもgcc Ver.4でのビルドを試みましたが,うまくいきませんでした。
gcc-Ver.4が使えるようになるといいなと思います。
また,mkoctfileやpkgコマンドのために今回ビルドに使用したgcc-3.3.3もアップしてあります。
速度的には,MSVC版にはかないませんが,plotの安定性はこちらのほうが上だと思います。
MSVC版はwindows版gnuplotのwxt terminalの完成度がまだまだのためな気がします。
Topに行く。
Octave 2.9.13のリリースとMSVC版のWindows Binaryとしての正式採用。
Octave 2.9.13がリリースされ,MSVC版がWindows Binaryとしての正式採用されました。
いままで,David Bateman氏のページにおいてあったのですがこれからはsourceforge.netに
おかれるようです。
http://sourceforge.net/project/showfiles.php?group_id=2888
2.1.92-3よりも起動も動作も速くなっており,だいぶバグもFixされているようです。
********speed test
****MSVC-2.1.92-3
octave:2> testOregoB
ans = 1.8906
****MSVC-2.1.93
octave:2> testOregoB
ans = 1.6563
****2.1.50
>> testOregoB
ans = 1.4680
********testOregoB.m
clear;
## The `oregonator'.
##
## Reference:
##
## Oscillations in chemical systems. IV. Limit cycle behavior in a
## model of a real chemical reaction. Richard J. Field and Richard
## M. Noyes, The Journal of Chemical Physics, Volume 60 Number 5,
## March 1974.function dx = oregonator_m (x, t)
function dx = oregonator_m (x, t)
dx = zeros (3, 1);
dx(1) = 77.27*(x(2) - x(1)*x(2) + x(1) - 8.375e-06*x(1)^2);
dx(2) = (x(3) - x(1)*x(2) - x(2)) / 77.27;
dx(3) = 0.161*(x(1) - x(3));
end
% The test of `oregonator'.
x0 = [ 4; 1.1; 4 ];
%t = [0, logspace (-1, log10(303), 150), logspace (log10(304), log10(500), 150)];
%t=linspace(0,500,1000);
t=0:0.5:500;
ts=cputime();
y = lsode ('oregonator_m', x0, t);
cputime()-ts
plot (t',y(:,1));
ただ,空白のあるパスにインストールする(c:\Program Files\... など)にインストールすると
mkoctfileが依然として動作しません。
空白のあるパスにインストールしても,うまく動きません。
*********
octave:3> mkoctfile oregonator99.cc
'C:\Programs\Octave-2.9.13\bin\mkoctfile-2.9.13" "oregonator99.cc' は、内部コマ
ンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
*********
octave:6> system('cmd')
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
E:\backtatsu070730\program\Octave\test>mkoctfile oregonator99.cc
*********
とすれば,なんとかしのげますが。
一応,Michael Goffioul 氏には報告してあります。
Topに行く。
1. メモリストを作りました
長くなってきたので,メモリストを作りました。ご活用ください。
2. Octave 2.9.12のplotについて
最近わかったのですが,MATLABとの互換性のため,plotの仕様がかなり変わっています。
1.plotは,プログラム終了時にまとめて行われます。
途中でプロットするには,'drawnow'コマンドをいます。
2.plotコマンドはaxisとかlabelをリセットします。
したがって,plotコマンドの後にaxisとかlabelコマンドを書き,drawnowでグラフをプロットさせます。
3.plotコマンドなどの新しいplotシステムのドキュメントはまだ,不十分です。
これは,subplotの使い方などでに大きな影響を与えます。
2.1.xxでは,以下のように書いていたsubplotは,違った書き方になります。
%****subplot exmple for octave 2.1.xx
subplot(111);clg;
x=linspace(0,3*pi,301);
subplot(211);
xlabel("x \n");
ylabel("sin(x)\n");
axis([0 2*pi -1.1 1.1]);
plot(x,sin(x));
%
subplot(212);
xlabel("x \n");
ylabel("cos(x)\n");
axis([0 2*pi -1.1 1.1]);
plot(x,cos(x));
Octave 2.9.12では,次のように違った書き方になります。
%****subplot exmple for octave 2.9.12
subplot(111);clg;
x=linspace(0,3*pi,301);
subplot(211);
plot(x,sin(x));
xlabel("x \n");
ylabel("sin(x)\n");
axis([0 2*pi -1.1 1.1]);
drawnow;
%
subplot(212);
plot(x,cos(x));
xlabel("x \n");
ylabel("cos(x)\n");
axis([0 2*pi -1.1 1.1]);
drawnow;
もしどちらでも通用するものを書くとすれば,以下のようになります。
%****subplot exmple for both octave 2.1.xx and 2.9.12
subplot(111);clg;
x=linspace(0,3*pi,301);
subplot(211);
xlabel("x \n");
ylabel("sin(x)\n");
axis([0 2*pi -1.1 1.1]);
plot(x,sin(x));
xlabel("x \n");
ylabel("sin(x)\n");
axis([0 2*pi -1.1 1.1]);
drawnow;
%
subplot(212);
xlabel("x \n");
ylabel("cos(x)\n");
axis([0 2*pi -1.1 1.1]);
plot(x,cos(x));
xlabel("x \n");
ylabel("cos(x)\n");
axis([0 2*pi -1.1 1.1]);
drawnow;
Topに行く。
SciTEの設定について
SciTEの設定でselection.backが1.7x以降では,きかないなと思っていましたが,
https://sourceforge.net/projects/scintilla/
にバグレポートコーナーがあってバグではとたずねたところ,
仕様が変わってselection.alphaを256に設定する必要があるようです。
06/05/27のSciTEの記事に変更を加えました。
また,このページのリンクタグをまちがって"#070527"としていたのを"#060527"
に修正しました。
Topに行く。
Cygwin版Octave 2.9.12のBinaryを作成し,公開しました。
http://www.geocities.jp/tmacchant/
MSVC版があるのにsjlj exceptionの問題でわざわざ遅いcygwin版を
公開するのもどうかとは思うのですが,せっかくビルドしたので公開することにしました。
MSVC版のテストなどにお使いください。
現在,MSVC版はgnuplotでのsubplotがうまくいかない場合があります。一応これでは起こりません。
例によって英語のページで,インストールガイドのReadme.txtも英語です。
gnuplot_binaryが意味のない変数になっていますので,
pgnuplotでWindows版のgnuplotを現在使うことはできません。
(これは,間違いで gnuplot_binary("pgnuplot") とすれば使えるようです。
とご指摘を受けました。ありがとうございます。ただし,あまりうまく動かないようです。 07/06/13)
日付ごとに"070612"のようなリンクタグを埋め込みました。
私の個人の便宜のためですが,特定の場所にリンクを貼りたい場合に使えます。
http://www.nuce.nagoya-u.ac.jp/e8/Matsuoka/OctaveWinMemo.html#070519
という感じでお使いください。
Topに行く。
MSVC Octave 2.9.12-3がリリースされました
2.9.12-3は,かなりお勧めです。
また,MSVC版でoctファイルを作るためのInstructionを無謀にも英語で書きました。
http://www.nuce.nagoya-u.ac.jp/e8/Matsuoka/msvcoctmemo.html
要望があれば,日本語版も作りますが,なければ作りません。
メアドはそのページの最後に@をat '.'をdotのように書いてあります。
ご意見はそちらにください。
ただし,一言,現状ではバグのため,C:\Program Filesのようなフォルダー名に
スペースが場所にインストールするとmkoctfileがうごきません。
(ここは,07/06/12 文章追加)
また,MaintanerのMLをみていたら,MingwでOctave 2.9.12をビルドしたという人が現れました。
これは期待できそう。
一応,自分でもCygwin上ではgcc-3.3.3-3を使ってビルドして見ました。
SuitesparseのCxsparseがどうしてもうまくいかずほおってあります。
sjlj-exceptionをdisableしたgcc-3.3.3-3ではうまくビルドできず,通常のgcc3.3.3-3でビルドしました。
そのせいかodeのソルバーlsodeはMSVC版に比べるとずいぶん遅いです。
行列計算は,2.1.73より速くなって以下のLU分解のtestでは,MSVC版ともそれほど遜色ありませんでした。
2.1.xxでは以下のようなLU分解をのテストをしても何も高速化できず,かえって遅くなっていたのですが,
これが見事にLU分解の効果がでます。
(これまではLとUを強引にsparse化して高速化する必要がありました。それよりも速いです。)
% LU分解のテスト
Num=1000; ItNum=10;
id=1:Num;
rand("seed",1);
A=rand(Num)-0.5;
rand("seed",2);
B=rand(Num,ItNum)-0.5;
[L U P]=lu(A);
%単純な左除算による繰り返し。
disp("Simple left division");
ts=cputime();
for k=1:ItNum
b=B(:,k);
x=A\b;
end
cputime()-ts
x1=x;
%LU分解による繰り返し。
ts=cputime();
disp("LU decomposition");
ts=cputime();
for k=1:ItNum
b=B(:,k);
c=P*b; y=L\c; x=U\y;
end
cputime()-ts
x2=x;
plot(id,x1,"o1",id,x2,"+2");
(LU分解については,07/06/12 文章追加)
Topに行く。
Octave 2.9.12(pre-release version of Octave 3.0)がリリースされました
http://www.dbateman.org/?page=octave&lang=EN からMSVC版も取れます。
MSVC版は,JAVAのRuntimeが必要です。要注意。
Cygwinでinstallするには,pt-loop.ccというファイルにパッチを当てる必要があります。
https://www.cae.wisc.edu/pipermail/bug-octave/2007-May/002487.html
ビルドはそこさえクリアすればできます。
結構,快適に動きそうです。2.9.12版に乗り換えようかと思います。
また,MSVC版でoctファイルを作るには,技がいります。
Michael Goffioul さんと直接メールして聞き出しました。
今日は,時間がないのでまた,機会を見てここに書きたいと思います。
Topに行く。
ちょっとメモ書き
MSVC compiled 2.9.9+ CVS version of octave with a Windows installer 続報
http://www.dbateman.org/?page=octave&lang=EN
少しさわってみると,コンソール画面を提供するConsoleというプログラムが裏でコマンドプロンプトをつかっていて
これがコードページが日本語だと,表示がみだれてしまうのでなんか使えないなと思っていましたが
それを解決すれば,結構使えそうです。
簡単には,octaveのプロンプトから
system("us");
と打つだけです。スタートアップにでもいれておけばいいでしょう。Cygwinネタ
Cygwinのftpのサイトからgcc-3.3.3のソースをとってきて,そこにあるスクリプトを参考にすれば,
Cygwin上のOctaveを遅くするsjlj exceptionをdisableにしたgcc-core, g++, g77がビルドできて,これでOctaveも
ビルドできる。やはり速くなるようであるが,上の2.9.9のほうが速いので熱意は冷めている。
#gcc のビルドのスクリプトは本当は手間のかからないようにするスクリプトであるがどうもそのままでは動かない。
マニュアルでいろいろ変えて動かした。試行錯誤の結果がgcc -v ででるので,ビルドしなおそうとしたが,
どうも今回はうまくいかない。うーん。
07/01/16
MSVC compiled 2.9.9+ CVS version of octave with a Windows installer
Octave のMainterのMLのアーカイブをみてたらこんなん見つけました
MSVC compiled 2.9.9+ CVS version of octave with a Windows installer
http://www.dbateman.org/?page=octave&lang=EN
ちょっと試したけど不安定そう。でもこれからを期待したいです。
06/05/27 (07/06/19 一部修正)
ちょっとメモ書き(時間があれば整理します。できそうにありません。すみません)
SciTE
Octave-2.1.73などの現在Windows版として公式配布されているものには,
SciTEというEditorが標準でついてくる。
SciTEは,octaveのキーワードハイライトができるので,
コードを書くのにいい。
有名なPaul Soederlindさんもお勧め。
しかも,バイナリーも小さいのでよい。
ただし,日本語のサポートが標準ではない。
文字幅が固定でない。
拡張子mのファイルがdefaultのままではでは,キーワードハイライトできない。
などがあり,カスタマイズが必要。
SciTEUser.propertiesに以下を設定している。(07/06/18修正)
"#"はコメントを表す記号です。#を前につけるとその設定は無効になります。
# For Japanese version Windows, We must set or override code.page=932 # and character.set=128. code.page=932 character.set=128 # # フォント Terminal, size:11,等幅フォントにする。 font.monospace=font:Terminal,size:11 font.base=$(font.monospace) font.small=$(font.monospace) font.comment=$(font.monospace) font.text=$(font.monospace) font.text.comment=$(font.monospace) font.embedded.base=$(font.monospace) font.embedded.comment=$(font.monospace) font.vbs=$(font.monospace) # # 行番号を表示 3桁。必要なら増やす。3のあとの'+'が必要なら増やすの意味。 line.margin.visible=1 line.margin.width=3+ # # Octave用 tab.size.*.m=4 indent.size.*.m=4 open.suffix.*.m=.m Octave|m||\ # # 長い行対策に必要か? edge.mode=2 # # 選択時の色を濃い目に :Ver.1.7x以降ではselection.alpha=256も設定が必要。 selection.alpha=256 selection.back=#A0A0F0 # # 起動時の位置,大きさの設定 #position.left #position.top position.width=640 #position.height # # タブバーの表示 tabbar.visible=1 # ステータスバー(line, column, INS, CR+LFなど状態を下方に表示するバー)の表示 statusbar.visible=1 # ツールバーの表示 toolbar.visible=1
また,matlab.properties
の
file.patterns.octave=*.m.octave
を
file.patterns.octave=*.m;*.m.octave
に変更した。
なお,SciTE 日本語翻訳 & 1.62+ パックの使い方
http://h12u.com/scixx/about162plusjpn.html
日本語用メニューやカスタマイズしたbinaryがおいてある。
cygwinのgcc 3.3.3でmkoctfileを使う。
現状ではcygwinで標準配布のoctaveはgcc3.3.3でビルドされている。
また,現在のcygwinのgccは標準でgcc3.4.4がインストールされる。
gcc3.4.4でoctave本体をビルドすると問題があることから
octファイルもgcc3.3.3でビルドすることが推奨されている。
gcc3.4.4でビルドしものは運がよければ使えるが,octaveが落ちることもあるので
使えない。
gccを3.4.4から3.3.3にcygwinインストーラーをつかってdowngradeする方法がある。
利点
操作はシンプル。
欠点
他のものをビルドするとき,gcc3.4.4が使えない。(困ることがあるか不明)
cygwinインストーラーでsetupしなおすとき注意しないと3.4.4に勝手に戻される
ので,いちいちsetupの設定を3.3.3をkeepするように戻す必要がある。
Octaveworkshop関連
1.プロット周りのバグの回避
Octave Workshopに付属の
MinGWのOctave 2.9.4はどうもプロット周りにバグがある。
関連情報は以下
MinGW version binary gobbledygook error messages?
http://velveeta.che.wisc.edu/octave/lists/archive//octave-maintainers.2006/threads.html#00400
うまくプロットできない場合は__gnuplot_plot__で直接gnuplotでplotすることで,
とりあえずは回避できそう。
2.mkoctfileの利用
Octave 2.9.4(mingw)
で
octファイルで関数をbinary化するとcygwinの場合で同じことした場合よりかなり
速くなる場合がある。
(私の例では,5倍違った。これは極端な例だと思う。)
Windows Nativeのせいなのだろうか。
ということでプロット周りのバグは上で回避してでもつかっていきたくなった。
(このページのタイトルは変更しないといけないと思います。^^;
そのうち変更します。)
mkoctfileを起動するには
octave-launcher.vbsでOctave 2.9.4(mingw)(workshopでなくコマンドプロンプトモード)
で立ち上げ,プロンプトで
system('sh')
とうち,shを起動すればmkoctfileを使用できる環境になる。
ただし,mkoctfileを一箇所書き直す必要がある。
デフォールトのインストールでは
C:\octave-workshop\msys\octave-2.9.4\bin
にmkoctfileがあるが
エディターで
: ${SED="/c/octave/msys/bin/sed"}
を
: ${SED="/usr/bin/sed"}
に書き換える必要があった。
# 最近,Cygwin Terminalをck,コマンドプロンプト用窓をckwにしている。
これはすばらしい使い心地です。
http://www.geocities.jp/cygwin_ck/
ちょっとメモ書き(時間があれば整理します。)
Ocatave Workshop
http://www.math.mcgill.ca/loisel/octave-workshop/
Mingwベースの統合環境の試み β版
Ocatave 2.9.4をベース
大きなデータのプロットでバグがでたが計算そのものはうまくいっているよう。
バグがでるとOctaveを再起動する必要あり。
起動は重い。
速度は,cygwin baseで私がビルド(Octave 2.1.72 gcc3.2を使用)のものより,少し速い。
ATLASを組み込めばさらに速くなると思われるが自分でビルドするのは難儀そう。
これが実用になればこのページのタイトルを変更すべきなんでしょうね。
Octave-Compiler.org
http://www.program-transformation.org/Octave/WebHome
これができるとOctaveの利便性が非常に大きくなるだろう。
GLPKOCT - Octave Interface to GLPK
http://www.dii.unisi.it/~giorgetti/
Octave-forgeのlpは信頼性に問題があるようなので有用なのでしょう。
まだ,ためしていない。(個人的には線形計画法を用いる場面はないので)
(上のOcatave WorkshopのOctaveでは取り込み済み。)
GLPKOCT - Octave Interface to GLPK
:
GLPKOCT is an Octave interface for the GLPK library.
Main features:
Solution of LP/MILP problems;
Selection of simplex or interior point methods;
Definition of control parameters;
Examples of use.
Current version is 1.0
(released on 3/17/05)
Octave
2.1.71Cygwin標準配布版の速度と現在gcc-3.2を使う方法
05/6/7のOregonatorのテストをCygwinの標準配布のもので試してみた。
ans = 12.238
となった。
ちなみにStand-alone版として配布されている2.1.50では
ans = 3.6870
であった。
自分でgcc-3.2を使って作成した2.1.71では
ans =
4.3510
であった。
gcc-3.3.3でビルドしてあるのが原因かもしれない。
ただ自分でgcc-3.3.3でビルドした2.1.49では
ans =
21.042
だった(05/6/7)ことを考えると最適化がすすんでいるとも考えられる。
まあ当面,自分でビルドした2.1.71を使うことにしよう。
Cygwin上ではgcc-3.2でのOctaveのビルドもまだ選択肢の一つとして考慮する余地があるということになる。
注意:現在のCygwin Installerをつかうと05/06/09の方法でgcc-3.2をInstallすることができないようである。
gcc-3.2をつかうには,つぎのようにする。
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII3.0/cygwin.htm
から
cygwinDevel.exe (34.6 Mb)を持ってきて適当なフォルダーにインストールすると
Local Directryからのインストールできるフォルダイメージが出来たあとcygwin installerが起動する。
このcygwin installerは古いので,キャンセルしていったん終了する。
(ここまでは前回と同じ)
フォルダイメージ(devel)のrelease/gccにいきgcc-3.2-3.tar.bz2をコピーして
適当な場所に持っていく。たとえば,/usr/local/gcc-3.2など。
そこで
tar xvfjk gcc-3.2-3.tar.bz2のように展開する。
export PATH=/usr/local/gcc-3.2/usr/bin:$PATHとする。
Octave 2.1.71がCygwinの標準配布になった
まったく気づいていなかったのだがOctave 2.1.71がCygwinの標準配布になった。CategoryはMath。
fftwが使われているよう。octave-forgeなどもある。
gnuplotとしてcygwinのgnuplotを使うようになっている。
wgnuplotをつかうためにはgnuplot_binaryを設定しないといけないだろう。
なんにしても推薦バージョン2.1.71が簡単に使えるようになったのはめでたいことだ。
gcc-3.2でのOctaveのビルド
gcc-3.2でOctaveをビルドして速度が向上するかどうか試してみた。
gcc-3.2のcygwinバイナリーは,通常のサイトにはもはや置いていない。
ソースからのgcc-3.2のビルドを試みるも失敗。
そこでOctave MLを探して
http://www.octave.org/mailing-lists/help-octave/2004/2419
を発見。ここに書いてあるとおりにする。
まず,cygwin installerでgcc-3.3.3をuninstallする。
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII3.0/cygwin.htm
からcygwinDevel.exe (34.6 Mb)を持ってきて適当なフォルダーにインストールすると
Local Directryからのインストールできるフォルダイメージが出来たあとcygwin installerが起動する。
このcygwin installerは古いので,キャンセルしていったん終了する。
その後,いつも使っているCygwin installerを起動し,Install From Local Directoryを選び,
Local Package Directoryでイメージを
置いたところを指定する。
Octaveのcygwinバイナリーを導入するときと同様にsetup.iniについて警告がでるが
無視して継続し,カテゴリーDevelのgcc-3.2-3をinstallする。
Octaveのビルドは普通に行えばよい。
このようしてinstallしたgcc-3.2でバイナリ配布のOctaveをもちいる場合,
mkoctfileはオリジナルのものをそのまま用いる。
このやり方ではgcc-3.3.3とgcc-3.2の共存はできないので
共存させたい人は工夫がいるだろう。
Octave2.1.49を./configure --prefix=/usr/local/bin/octave --enable-shared
--enable-dl --disable-static
で作成し05/6/7のOregonatorのテストをおこなった。
結果はが21.042から5.3280となり,
バイナリ配布のものとほぼ同程度のスピードとなった。
結論。
現時点では,Octaveのビルドはgcc-3.2で行うほうがよい。
liboctaveについてスピードが違うのかまだ検証していない。
もう一度最近のOctaveをビルドして見る気になってきた。
Cygwin上Octaveの速度について
cygwin上でOctaveを自分でビルドすると遅いと感じていたが
これについてのOctave
MLで記事があった。
http://www.octave.org/mailing-lists/help-octave/2005/1925
実際05/5/28,6/2で紹介した2.1.49を自分で普通にビルドしたものと
以下のスクリプトで比べてみた。
## The test of `oregonator'.
x0 = [ 4; 1.1; 4 ];
%t = [0, logspace (-1, log10(303), 150), logspace (log10(304), log10(500), 150)];
t=linspace(0,500,1000);
ts=time();
y = lsode ('oregonator', x0, t);
time()-ts
plot (t,y);
関数
oregonatorは/usr/doc/octave-2.1.49/examplesのoregonator.mに記載されているものである。
初期条件はOctaveのhelpのExampleにある条件である。
バイナリ配布 ans
= 5.4920
自分でビルド ans = 21.042
3.8倍程度の差がある。
ちなみにstand
alone配布の2.1.42(p4atlas) ans =
3.4410であった。
oregonatorをoregonator.octのようにコンパイルしたものを用いると
バイナリ配布 ans
= 0.3920
自分でビルド ans =
1.1680
ともにぐっと高速化されるがやはりバイナリ配布のほうが3倍ほど速い。
Octave
MLによるとgcc.>=3.3だと遅くなるようである。
ここで書いてあるようにgcc3.2でビルドをいずれためして見たい。
Cygwin用のOctave パッケージ(補足)
05/5/28にTechnique
#1で失敗する場合について書いたが,
フォルダーごと落として
Install From Local Directoryをやればいいことが判明。
ftp://ftp.octave.org/pub/octave/cygwin
から
nmpc/ octave/ octave-forge/ octave-headers/ setup.ini*
をフォルダーごとコピーしてイメージを適当なフォルダに作る。
Cygwin InstallerでIntall From Local Directoryを選び,
Local Package
Directoryでイメージを置いたところを指定するとよい。
setup.iniのバージョンについて警告がでたが無視してインストールした。
問題があるかとうかは不明。
ちなみにCategoryはMathである。
mkoctfileをいじる必要があるのはおなじなので,05/5/28のようにすればよい。
Cygwin用のOctave パッケージ
久々の更新。
OctaveのCygwin用binaryパッケージを発見。
なんと本家のWikiからたどれるページにある。
http://www.octave.org/からWikiにいきCategoryInstall
へ飛びOctaveForWindows
にいくとさまざまなinstall方がが書いてある。
(http://wiki.octave.org/wiki.pl?OctaveForWindows)
Octave
on CygwinのTechnique #1のとおりにやればinstallできるはずなのだが
Cygwin
Installerでsetup.iniにアクセスできんといってはじかれる。
研究室の別のマシンだとなぜかうまくいく。どういうことなのだろう。
しかたがないので
ftp://ftp.octave.org/pub/octave/cygwinから圧縮ファイル
octave-2.1.49-2.tar.bz2
octave-headers-2.1.49-2.tar.bz2
octave-forge-2003.06.02-1.tar.bz2
nmpc-1.0.4-1.tar.bz2
をとってきて,cygwinプロンプトからtar
xvfjk
xxxxxxxxxx.tar.bz2のように展開。
usr以下にファイルやフォルダができるのでこれを/usrへ移動。
(WindowsのExplorerなどで動かすときは,cygwin\binが/usr/bin,
cygwin\libが/usr/libにmountされていることに注意!!)
(nmpcは化学工学用のシミュレーションパッケージである。私は所属している学科が化学工学なので興味がありinstallした。)
これにてoctaveがcygwin上で使える。
このパッケージの特徴はmkoctfileが使えるのでoctave C++
(liboctave)が使えることである。
ただし,古めのものなのでmkoctfileをすこしいじる必要がある。
/usr/bin/mkoctfile-2.1.49の
:
${FLIBS="-L/usr/lib/gcc-lib/i686-pc-cygwin/3.2
-L/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../.. -lm -lfrtbegin -lg2c -lcygwin
-luser32
-lkernel32
という行のgccが3.2なので現在ものに書き直す。(現時点では3.3.3)
i686-pc-cygwin/3.2をi686-pc-cygwin/3.3.3に2箇所書き直す。
これにてうまくいくはず。
/usr/doc/octave-2.1.49/examplesのhello.ccを
mkoctfile
hello.ccでhello.octができたら成功だろう。
--link-stand-aloneでstand
aloneのバイナリーも作成できる。
現状ではATLASやFFTWがサポートされていないようなのでこの点は不満だが簡単にliboctaveが使える。
また,最近のoctaveはcygwin上で自分でビルドすると実行速度が遅いのだがこれは比較的速い。
Stand
aloneインストール2.1.50より若干遅い程度である。
CygwinでOctaveを使うときは実用的であろう。
cygwin上で自分でビルドしたOctave2.1.67などは非常にメモリを食いCPUの占有率も高いためか実行速度が遅い。
celeron2GHz+memory
512+windows xp
sp2なのであるがコンピュータ資源の臨界を越えているのかもしれない。
したがって,別の環境であればそれほど重くならないかもしれない。
liboctaveをmingwで構築する
以下は完全なメモ書き以外のなにものでもないが,これでも役にたつ人がいるかもしれない。
また,自己責任でやってください。
mingw+msys+msys
DTKをすべて導入する。
ATLASはしょうがないのでcygwinで構築する。
FFTWはmingw+msys+msys DTKで構築できる。
./configure は --disabel-readline, --enable-shared
makeはエラー覚悟の上make -i &> make.err.txtで実行する。
make.err.txtにエラーのlogをとる。
srcの中のsighandlers.cc: In function `void
octave_signal_handler()':
sighandlers.cc:116: `SIGCHLD' undeclared (first use
this function)
sighandlers.cc:116: (Each undeclared identifier is reported
only once for each
function it appears in.)
sighandlers.cc:124: `SIGPIPE' undeclared (first use this function)
sighandlers.cc: In member function `bool
octave_child_list::octave_child_list_rep::wait()':
sighandlers.cc:857: `WNOHANG' undeclared (first use this function)
sighandlers.cc:857: `waitpid' undeclared (first use this function)
857あたりをなぶる。
bool
OCL_REP::wait (void)を
bool
OCL_REP::wait (void)
{
/* bool retval = false;
for (iterator p =
begin
(); p ! =
end (); p++) { octave_child& oc=
*p;
pid_t pid =
oc.pid; if (pid
> 0) {
int
status; if
(waitpid (pid, &status, WNOHANG) > 0)
{
oc.have_status = 1;
oc.status = status;
retval = true;
break;
}
}
}
return retval;*/ return true;
}
のように単にtrueを返すようにした。
また,lo-cutils.cのoctave_gethostnameの返り値を強制的0にした。
pathsearch.oができないのでエラーがでる。これを除いてにライブラリおよびdllを構築する。
make.err.txtで
ar rc liboctave.a Bounds.o.......
でpathsearch.oをのぞいてコマンドラインをつくり,msysプロンプト上でliboctave.aを作る。
libcruft.aはなにもしなくてもできた。
./confugre
で`--enable-dl'も指定すれば,実行時dllを使うライブラリができる。
このときはg++ -shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--out-implib=liboctave.dll.a -o liboctave.dll \
Bounds.o ...
でpathsearch.oをのぞいてコマンドラインをつくり,msysプロンプト上でliboctave.dllを作る。
ただし,msys上ではシンボリックリンクが無効なので,liboctave.dll.2.1.xxなどをliboctave.dllとする。
mkoctfileでのリンク用に
libcruft.dll.a.2.1.xxから libcruft.dll.a
liboctave.dll.a.2.1.xx からliboctave.dll.a
liboctinterp.dll.a.2.1.xx からliboctinterp.dll.aなども同様に作成する。
このやり方はdll依存はたまに傷だが実行ファイルが飛躍的に小さくなるので私はこれで作っている。
私の環境だとlsodeを繰り返して使うような計算だとcygwin上より計算速度がかなり向上した。
Octave C++で連立微分方程式を解く
連立微分方程式を解く必要が出てきたが,
例によってインタープリタの速度に不満を感じたのでOctave C++への移行を試みた。
LSODEの使い方をなんとか探りだす。
分かってしまえば当たり前だがわかるまでに結構時間がかかった。
関数名の設定はODEfuncを使う。
LSODEでODEfuncで設定した関数と初期条件と積分の初期値を設定する。
解を出すにはdo_integrateを使う。
サンプルコードを2つ挙げる。
例1は横軸をtとしたとき,一つの時刻での値を求める方法。
例2は横軸をtとしたとき,ColumnVectorで与えられた時刻についての解を
Maxtrixで与える方法である。
最後にgnuplotで解析解と比べるスクリプトを書いた。
例2のほうがOctave インタープリタで書くコードに近い。
例によってC++らしくないコードが混じるし,まだ手についていない部分もある。
より分かっている人からここはこう書けと教えてほしい。
/* 例1
Octave C++のソースコードです。
LSODEを使った連立微分方程式の解法
*/
#include <iostream>
#include <octave/config.h>
#include <octave/Matrix.h>
#include <octave/LSODE.h>
ColumnVector test(const ColumnVector& y, double t){
ColumnVector dy(2);
dy(0)=y(0)+2*y(1);
dy(1)=-4*y(0)-3*y(1);
return dy;
}
int main()
{
ColumnVector yi(2), y(2);
ODEFunc odef(test);
int i;
yi(0)=0.0;
yi(1)=
1.0;LSODEls(yi,0.0,odef);for(i=0;i<=40;i++) {
y=ls.do_integrate(0.1*i);
printf("%f %f %f\n", 0.1*i,y(0), y(1));
}
}
//ここまで
/* 例2
Octave C++のソースコードです。
LSODEを使った連立微分方程式の解法
*/
#include <iostream>
#include <octave/config.h>
#include <octave/Matrix.h>
#include <octave/LSODE.h>
using namespace std;
ColumnVector test(const ColumnVector& y, double t){
ColumnVector dy(2);
dy(0)=y(0)+2*y(1);
dy(1)=-4*y(0)-3*y(1);
return dy;
}
int main()
{
ColumnVector yi(2), t(41);
Matrix dat_m(41,3);
ODEFunc odef(test);
int i;
yi(0)=0.0;
yi(1)=
1.0;LSODEls(yi,0.0,odef);for(i=0;i<=40;i++) t(i)=0.1*i;
dat_m.insert(t,0,0);
Matrix y=ls.do_integrate(t);
dat_m.insert(y,0,1);
cout << "# Matrix dat_m" << endl << dat_m << endl;
}
//ここまで
#出力をリダイレクトして(ファイル名'test.txt')でgnuplotで確かめるgnuplotスクリプト
plot 'test.txt' using 1:2, '' using 1:3, \
exp(-x)*sin(2*x), exp(-x)*(cos(2*x)-sin(2*x))
#ここまで
Octave to C++ compiler
以下のようなページを発見。今は多忙で試せないが,是非試したいものだ。
Documentも参考になりそう。
http://www.stud.tu-ilmenau.de/~rueckn/
Octave to C++ compiler
As a student research project I implemented a
minimal Octave to C++ compiler. It is not really good - just a proof of
concept.
The compiler supports a subset of Octave. It keeps Dynamic Typing.
It builds a stack machine to evaluate expressions. This way the execution speed
of loops is doubled.
Octave C++ Cygwin メモ メモ補足
分散関係を求める式がある条件であまりたちがよくなかった。
slove(インタープリターだとfsolve)だけでは
収束先が余りよろしくなかったので,2分法で収束先の改善を図った。
2分法はsimpleだが収束の安定性が高いので今回は役に立った。
インタプリターのときは結構速度に不満を感じていたのでループの増える2分法の導入には
二の足を踏んでいたが,Octave C++の導入を機にコーディングした。
速度も満足いくものでOctave C++をいれた甲斐があったというものだ。
John W. Eaton氏をはじめとするこの偉大なツールを作成してくださった方々に感謝!!
Topに行く。
Octave C++ Cygwin メモ
C++のキーワードであるコンストラクタを理解することが鍵のようだ。(まだよくわかっていない。)
(よく分からなくても何とかなっている。ほんとうはよくないのだろうが。Dec.
2004)
行列の扱いは大変楽であり,Octaveに似た感覚で扱える。
Complexの扱いも楽である。(Octave C++ではcomplexではなくComplexと書かねばならない。)
sinやcoshやsqrtはComplex型の変数を引数とすれば,自動的にComplex型の関数になる。
ここらあたりはCでは決して実現できないのでC++であるのは必然であると納得した。
3.参考のソース
2で述べた。
http://vision.kuee.kyoto-u.ac.jp/~hiroaki/numerical/
のソースファイルは大変参考になります。
これがなければ決してここまでこれなかったでしょう。
また
最後のテストコードが参考になればと思います。
C++はド素人なので,変なコードもあると思います。
その点はご容赦ください。また,ご指摘は大歓迎します。
このページに関する連絡はここ。
#include <iostream>
#include <octave/config.h>
#include <octave/Matrix.h>
#include <octave/NLEqn.h>
//#include <complex.h> これは不要。
using namespace std;
ColumnVector nl(const ColumnVector& x){
ColumnVector y(2);
y(0)=0.5*x(0)*x(0)+x(1)+1.0;
y(1)=x(0)+x(1);
return y;
}
int main()
{
Complex C_i, a=-1.0;
C_i=sqrt(a);
double b,c,pi=
4*atan(1.0);Matrixm(2,2),k(2,2),l(2,2);ColumnVectorcv1(10),cv2(2);cv2(0)=0;cv2(1)=3;
NLFunc nlf(nl);
NLEqn nle(cv2,nlf);
int i, j;
cout << "nl" << endl << nl(cv2) << endl;
for(i=0;i<10;i++){
cv1(i)=i*2.0;
}
cout << "column cv1" << endl << cv1 << endl;
cv2(0)=pi/3;
ColumnVector cv4=nle.solve(cv2);
cout << "column cv4" << endl << cv4 << endl;
//
//
m(0,0) = 3; m(0,1) = 2;
m(1,0) = 2; m(1,1) = 0;
//
cout << "test" << endl << C_i << endl;
cout << "test" << endl << sinh(C_i*pi/2.0) << endl;
b=C_i.real();
c=C_i.imag();
printf("%f\n",b);
printf("%f\n",c);
m=m/100000;
k=m;
l=k*m;
DET dm=m.determinant();
DET dl=l.determinant();
b=dm.value();
c=dm.exponent();
cout << "Matrix m" << endl << m << endl;
cout << "Matrix k" << endl << k << endl;
cout << "Matrix k" << endl << l << endl;
printf("%e\n",b);
printf("%f\n",c);
return 0;
}
Topに行く。