1 名前:Einstain [03/01/16 20:16] 科学技術計算のコードを作るんだけど、 FortranでなくてCで作った方がこの先有利?
2 名前:名無しさん@1周年 [03/01/16 21:14] >>1 matlabまたはmatlabクローンでおながいします。
3 名前:名無しさん@1周年 [03/01/16 21:26] Cだろうねぇ。
4 名前:名無しさん@1周年 [03/01/16 22:46] >>3 なぜですか?
5 名前:世直し一揆 [03/01/16 23:27] <血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙されるな!) ●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い) ●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ、自己中心) ●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする (ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けている) ●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本の常識は世界の非常識) ●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く、弱い者には強い) ●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす) ●基本的に悲観主義でマイナス思考に支配されているため、性格がうっとうしい(根暗) ●一人では何もできない(群れでしか行動できないヘタレ) ●少数派の異質、異文化を排斥する(差別主義者、狭量) ●集団によるいじめのパイオニア&天才(陰湿&陰険) ●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい) ●他人からどう見られているか、体裁をいつも気にしている(「世間体命」、「〜みたい」とよく言う) ●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度も言う、知障) ●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い) ●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う) ●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬する(不合理な馬鹿) ●執念深く、粘着でしつこい(「一生恨みます」タイプ) ●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷) ●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(他人をけなして相対的に自分の立場を引き上げようとする等) それと、O♀はエコヒイキきつくて、冷酷だからな。 A♂の異質排除×O♀の冷酷=差別・いじめ とあいなる。
6 名前:名無しさん@1周年 [03/01/17 19:18] 一回のシミュレーションの時間によると思います。 最適化コンパイルでCとFORTRANの計算速度差が10%くらいですと私はFORTRANを選びますね。 それだけで数時間から数日時間を節約できます
7 名前:名無しさん@1周年 [03/01/19 17:44] 保守性の観点からはFortran9xの方がCよりも格段に良いだろう。
8 名前:名無しさん@1周年 [03/01/21 16:08] FORTRANのほうが簡単だし
9 名前:名無しさん@1周年 [03/01/22 22:58] >>7 保守する人によるだろ
10 名前:名無しさん@3周年 [03/01/22 23:32] ______________ /:\.____\ |: ̄\(∩´∀`) \ <先生!こんなのがありました! |:在 |: ̄ ̄ U ̄:| saitama.gasuki.com/mona/
11 名前:d [03/01/22 23:35] ★あなたのお悩み解決致します!! ●浮気素行調査 彼氏、彼女、妻、夫の浮気を調査致します!! ●盗聴器盗撮機発見 あなたの部屋に誰かが仕掛けているかも!! ●行方調査 行方不明になっている家族の消息を調査致します!! ●電話番号から住所割り出し 一般電話、携帯から住所を割り出し致します!! ●ストーカー対策 社会問題ともなっているストーカーを撃退致します!! その他人生相談からどんなお悩みでも解決いたします!! 24時間受付 090−8505−3086 URL www.h5.dion.ne.jp/~grobal/ メール hentaimtt@k9.dion.ne.jp グローバル探偵事務局
12 名前:名無しさん@3周年 mailto:sage [03/01/24 22:52] >>1 コメントさえ、きちんとつければ何だろうといいんだよ。
13 名前:名無しさん@3周年 mailto:sage [03/01/26 00:31] >>1 スパコン(死語?)とかでも使えるようにするならまだまだFORTRANなんかな? 「慣れてるほう」でやりゃいーんぢゃない 科技ソフトの保守なんて言語が なんだろーとどうせタルいし
14 名前:名無しさん@3周年 [03/02/21 13:45] 引数に値をセットして欲しかったり、 配列などを使うと、本当はそれほど必要でもないのに ポインターを使わないとプログラムがかけないC言語は、 プログラムの動作安全性や理解しやすさの観点からは、 落第だ。以前のFortran66などでは構造化プログラミング ができなかったし、データ−構造も満足にはかけなかったが、 Fortran9xではそのどちらもちゃんと扱えるし、動的記憶も 割付できる。しかもオブジェクト指向に似たモジュール プログラミングもできるのだ。 Cでなければ出来ないという ようなことは、ほぼなくなったといってよい。OSがCベースで 計算機システムのOS機能を呼び出すことでもなければ、 Fortranで書いたほうが、システム間の移植性もよい。
15 名前:名無しさん@3周年 [03/02/21 16:07] ★遂に発見!!ココだ!ココだ!★ jsweb.muvc.net/index.html
16 名前:名無しさん@3周年 mailto:sage [03/02/22 14:10] 親身になって教えてくれる人がいればC、独力で作るならFORTRAN。
17 名前:名無しさん@3周年 [03/02/22 16:39] C++
18 名前:名無しさん@3周年 mailto:sage [03/02/22 21:22] C++なら簡単なことならポインター解らなくても大丈夫になったし、 inline展開で問題を分割統治して見通しをよくしながら効率を維持できるし、 templateなんかは例えばさまざまな種類のベクトルなどの表現が容易で拡張性も効率もOKだし。 速度についていえばfortranが頑張ってきた最適化の技術も役に立っているようだ。 なによりPCでかつ只で広く使える。ついでにいうと最近はcはコンパイラを一生懸命改善してくれるが fortranはwinだと使い手もいないし、あんまり頑張ってくれないぽ
19 名前:名無しさん@3周年 [03/04/08 09:45] IntelのコンパイラはF90もあるよ。Windows版もあるよ。
20 名前:名無しさん@3周年 [03/04/08 16:07] ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ・∀・) < イイ!! /, / \_________________ (ぃ9 | / /、 / ∧_二つ / / / \ ((( ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ / /~\ \ ( ・∀・) < イイ! / / > ) (ぃ9 ) \_______ / ノ / / / ∧つ / / . / ./ / \ (・∀・) イイ! / ./ ( ヽ、 / /⌒> ) ゚( )− ( _) \__つ (_) \_つ / > (・∀・)イイ! 玩具/AV買うならココでつよ lovetec-jp.com/
21 名前:aa [03/04/08 20:16] www5b.biglobe.ne.jp/~ryo-kyo/osu.html my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh
22 名前:名無しさん@3周年 [03/04/08 21:49] ↓↓ ちょっとエッチなDVDが今ならなんと!一枚900円! ↓↓ www.net-de-dvd.com/ ↓↓ 支払いは安心の商品受け渡し時でOK!! ↓↓ www.net-de-dvd.com/ ↓↓ 売り切れ続出 数に限りあり 早いもの勝ち!! ↓ ↓ www.net-de-dvd.com/
23 名前:名無しさん@3周年 [03/04/09 04:43] www.k-514.com/ (σ・∀・)σ ゲッツ!!
24 名前:かおりん祭り mailto:あぼーん [03/04/09 05:25] saitama.gasuki.com/kaorin/ 〜oノハヽo〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ^▽^) < こんなのがございまーす♪ = ⊂ ) \_______ = (__/"(__) トテテテ...
25 名前:あぼーん mailto:あぼーん [03/04/09 05:25] ( ・∀・)< こんなのみつけたっち♪ muryou.gasuki.com/moe/hankaku10.html muryou.gasuki.com/moe/hankaku09.html muryou.gasuki.com/moe/hankaku08.html muryou.gasuki.com/moe/hankaku07.html muryou.gasuki.com/moe/hankaku06.html muryou.gasuki.com/moe/hankaku05.html muryou.gasuki.com/moe/hankaku04.html muryou.gasuki.com/moe/hankaku03.html muryou.gasuki.com/moe/hankaku02.html muryou.gasuki.com/moe/hankaku01.html
26 名前:名無しさん@3周年 [03/04/09 05:36] yahooo.s2.x-beat.com/linkvp/linkvp.html
27 名前:あぼーん mailto:http://www.saitama.gasuki.com/2ch/ [03/04/09 05:54] あぼーん
28 名前:かおりん祭り mailto:あぼーん [03/04/09 06:10] www.saitama.gasuki.com/kaorin/ 〜oノノハヽo〜 ( ^▽^)/⌒\ , −- ((ニ[二=( こんなのがございま−−==≡≡す♪ )) /∧=:|| \_/ `ー‐‐' じ/___/
29 名前:7777 [03/04/09 19:01] www5b.biglobe.ne.jp/~ryo-kyo/osu.html my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh
30 名前:名無しさん@3周年 [03/04/09 19:39] ★★★バイク板発の合コンです。★★★ 出来れば各所にコピペしてくださいまし。 ☆場所 秋 ヶ 瀬 公 園 ☆日付と曜日 4 月 12 日 土 曜 日 1 4 : 0 0 〜 ■集合場所 秋ヶ瀬公園 map.yahoo.co.jp/pl?nl=35.50.34.422&el=139.36.54.366&la=1&fi=1&sc=4 ※(R17BP使う場合)田島交差点はボーっとしてると下くぐり抜けちゃうので注意しる! 秋が瀬は一本道沿いとはいえ結構たくさん駐車場あるんで、この辺↓が無難じゃないかと思う just-out.hp.infoseek.co.jp/cgi-bin/imgboard/img-box/img20030320051139.gif ■今回の趣旨 『バイク海苔同士でカプール作ろう』 □予定スケジュール 追加したい事有ったら意見レス!( ´∀`)ドウゾ PM2:00 合コン開始(ヘルメットは脱ぎましょう) pm4:00 合コン終了 注 必ずバイクで来て下さい。(女性は別) 合コンしようよ♪さいたまで♪ hobby2.2ch.net/test/read.cgi/bike/1049274745/l50
31 名前:名無しさん@3周年 [03/04/10 06:39] (σ・∀・)σ ゲッツ!! www.k-514.com/
32 名前: ◆NjJALam... [03/04/10 17:40] 俺もC++マンセー 最初からある程度使えるテンプレートライブラリが付いてるし その都度アロケータや数値計算ライブラリを差し替えればいいだけ ただFortranはポインタが無かったり、文法がシンプルな分、 最適化はしやすいと聞いたことがある
33 名前:名無しさん@3周年 [03/04/10 18:59] yahooo.s2.x-beat.com/linkvp/linkvp.html
34 名前:あぼーん mailto:あぼーん [03/04/10 19:08] ( ・∀・)< こんなのみつけたっち♪ muryou.gasuki.com/hankaku/hankaku03.html muryou.gasuki.com/hankaku/hankaku04.html muryou.gasuki.com/hankaku/hankaku02.html muryou.gasuki.com/hankaku/hankaku01.html muryou.gasuki.com/hankaku/hankaku10.html muryou.gasuki.com/hankaku/hankaku09.html muryou.gasuki.com/hankaku/hankaku08.html muryou.gasuki.com/hankaku/hankaku07.html muryou.gasuki.com/hankaku/hankaku05.html muryou.gasuki.com/hankaku/hankaku06.html
35 名前:bloom [03/04/10 19:23] www2.leverage.jp/start/
36 名前:名無しさん@3周年 [03/04/14 12:31] . / ̄\ +. ∧_∧アハハハ テンゴクヘイッチャウヨー + イクナヨー( ´∀`) (´∀` ) (つ つ (つ つ■ . + ( ヽノ ( ヽノ + し(_) し(_) society.2ch.net/test/read.cgi/traf/1046749189/l50 tmp.2ch.net/test/read.cgi/company/1046775680/l50 田中真紀子と親密な日本ロジテムでサービス残業しすぎによる過労死者
37 名前:名無しさん@3周年 [03/04/14 15:16] yahooo.s2.x-beat.com/linkvp/linkvp.html
38 名前:名無しさん@3周年 mailto:あ [03/04/15 13:23] 四則演算だと今、どっちが速いの? まだFORTRAN?
39 名前:名無しさん@3周年 mailto:sage [03/04/15 22:27] >>38 単純な四則演算だけなら差は無いんじゃない? それに、使うコンパイラや計算機によっても変わってくる。 同じ会社のコンパイラだと、フロントエンドが違うだけで コード生成部分は同じものを使ってる事だってあるし。 言語的にはC++よりFortran90の方が並列処理化しやすい(らしい)が 並列処理できない計算機じゃ、あまり恩恵がない。
40 名前:名無しさん@3周年 [03/04/16 01:27] すいません、私用のPCでもフォートラン使いたいんですけど、 Linuxをインストールすればフォートランのコンパイラも入って るんですか?Cコンパイラは普通入ってますよね? 初心者な質問で申し訳ないです。
41 名前:名無しさん@3周年 mailto:sage [03/04/16 01:34] >>40 Windowsならcygwinでg77もgccも使える。 Linuxインスコするの止めはしないが。これはこれで楽しいし。 手っ取り早く済ませるならcygwin。 使い方がぐぐるか、該当スレ探せ。
42 名前:名無しさん@3周年 [03/04/16 01:37] g77いれれば使える。 Win環境で使いたければcygwinで使う手もある。
43 名前:名無しさん@3周年 [03/04/16 01:48] >>40 一般的なディストリビューションなら g77 が入ってるはず。 ただし、名前の通り(拡張)FORTRAN77。 Fortran90/95 が使いたいなら、Intel Fortran Compiler for Linux の 非商用バージョン(フリー)をダウンロードしてインストールすればよい。 ttp://www.intel.co.jp/jp/developer/software/products/global/eval.htm
44 名前:(σ・∀・)σ [03/04/16 04:05] (*´д`)ダメポ digikei.kir.jp/ digikei.kir.jp/img1.html
45 名前:40 [03/04/16 13:43] みなさんありがとうございます。 cygwinというのは高価なんでしょうか? フォートランのコンパイラは非常に高価だときいていますが、 フォートラン90というのは77と大きく異なるものですか? 自分は今までCを使ってきたのですが、研究室が変わって フォートランを使わねばならない状況になってしまって とまどっています。全く使ったことがないものですから。
46 名前:名無しさん@3周年 [03/04/16 20:38] >>45 Cygwinもg77も無料。 ネット上にも情報いろいろ転がってる。 本も出てきてる。 www.amazon.co.jp/exec/obidos/search-handle-url/index=books-jp&field-keywords=cygwin&bq=1/ref=sr_aps_all_b/250-1288486-0482626
47 名前:! [03/04/16 20:43] すごいねこれは! www.39001.com/cgi-bin/cpc/gateway.cgi?id=kiyomi
48 名前:山崎渉 mailto:(^^) [03/04/17 08:45] (^^)
49 名前:山崎渉 mailto:(^^)sage [03/04/20 04:18] ∧_∧ ( ^^ )< ぬるぽ(^^)
50 名前:山崎渉 mailto:(^^) [03/05/21 22:23] ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
51 名前:山崎渉 mailto:(^^) [03/05/28 14:37] ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
52 名前:名無しさん@3周年 [03/06/04 18:35] age
53 名前:名無しさん@3周年 mailto:sage [03/06/04 19:35] 自分が作ったプログラム ime.nu/www55.tok2.com/home/lobby/cgi-bin/pic/img20030603181905.jpg
54 名前:名無しさん@3周年 [03/06/05 16:11] fortran90と77では何がどう違うの?
55 名前:直リン [03/06/05 16:24] homepage.mac.com/yuuka20/
56 名前:名無しさん@3周年 [03/06/05 16:39] ★クリックで救える○○○○があるらしい??★ yahooo.s2.x-beat.com/linkvp/linkvp.html
57 名前:_ mailto:sage [03/06/05 16:47] homepage.mac.com/hiroyuki43/moe/jaz08.html
58 名前:_ mailto:sage [03/06/05 20:17] homepage.mac.com/hiroyuki43/2ch.html
59 名前:名無しさん@3周年 [03/06/26 19:49] そういえば、 戸川 隼人さんってまだ存命ですか?
60 名前:山崎 渉 mailto:(^^) [03/07/12 12:19] __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
61 名前:山崎 渉 mailto:(^^)sage [03/08/02 02:40] ∧_∧ ( ^^ )< ぬるぽ(^^)
62 名前:山崎 渉 mailto:(^^) [03/08/15 19:03] (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
63 名前:名無しさん@3周年 [03/08/23 14:50] 数値計算のため、フォートランを覚えなくてはならない状況になったわけですが、 フォートランの定番入門書を教えてくださいませんか? よろしくお願い致します。
64 名前:名無しさん@3周年 mailto:sage [03/08/23 16:12] >>63 定番かどうかはわからないが、お勧めは 「Fortran90プログラミング」, 冨田博之, (培風館) 基本的な構文からポインタ、モジュールまで 例題を基にFortran90の機能が一通り解説されている。 また、以下のHP上でHTML版および正誤表が公開されている。 ttp://www.ip.media.kyoto-u.ac.jp/htomita/ え、FORTRAN77を使う?そんな処理系、窓から(ry
65 名前:63 mailto:sage [03/08/23 17:23] >>64 ありがとうございます! アマゾンで検索したらその本が一番上でひっかかりました。 フォートランのことは全く知らないのですが、従来のワークステーションとか 最近はやりのcygwin上でもフォートラン90は走らせられるのですか? その辺がさっぱりで・・・すいません。
66 名前:名無しさん@3周年 mailto:sage [03/08/23 21:36] >>65 ワークステーションでもWindowsでも、商用のcompilerを購入すればOK。 貴方が学生か社会人かは分からないけど、数値計算のためにFortranを 覚えろと言う人がいるということは、そこにFortranを使える環境が あるということでは? 自宅などでFortran90を使える環境が欲しいということなら、 LinuxやFreeBSDでIntel Fortran Compilerの無料版を使えば良い かと(ただし、個人・非商用限定)。
67 名前:名無しさん@3周年 [03/08/26 17:05] >>66 レス遅れてすいません。 えっと、何がわからないかというと、フォートラン90というのは77とかいうのと 全く異なるものなのですか? つまり、フォートラン90の本を買って、覚えても90用のコンパイラが入ってなければ 使えないとか。 研究室のワークステーションでは、コンパイルのときにg77 というコマンドで 実行してましたから、90とは違うのかな? とりあえず、自宅でフォートランを走らせたいんですけど、Linuxを入れるのは 難しいらしいですし、自分もPC自体初心者ですから、簡単なcygwinを入れようと 思ってるんです。これには77のコンパイラは入っているようです。
68 名前:名無しさん@3周年 [03/08/26 18:52] 色白美巨乳の綾ちゃんです。 サムネイルの通り騎上位での下からのアングルが 最高の抜きどころですかねぇ。 冒頭のビキニでのオナニーシーンもいいし・・・ とにかく抜きどころが満載ってことです。 それにしても綺麗なオッパイです。 無料動画はこちら www.exciteroom.com/
69 名前:名無しさん@3周年 mailto:sage [03/08/26 23:44] >>67 メインに使っているのはC/C++なので、分かる範囲で。 > えっと、何がわからないかというと、フォートラン90というのは77とかいうのと > 全く異なるものなのですか? 基本的には77の拡張が90。ただし、削除された機能もある。 > つまり、フォートラン90の本を買って、覚えても90用のコンパイラが入ってなければ > 使えないとか。 > 研究室のワークステーションでは、コンパイルのときにg77 というコマンドで > 実行してましたから、90とは違うのかな? g77は部分的に90をサポートしているので、頻度はともかくコンパイル できない状況は有り得るかと。 > とりあえず、自宅でフォートランを走らせたいんですけど、Linuxを入れるのは > 難しいらしいですし、自分もPC自体初心者ですから、簡単なcygwinを入れようと > 思ってるんです。これには77のコンパイラは入っているようです。 cygwinに入っているのもg77。 参考URL: ttp://www22.ocn.ne.jp/~moriyama/notes/robust-programming.html
70 名前:名無しさん@3周年 [03/08/27 08:51] >>69 ありがとうございます。 自分もこれまでCを使ってきたので全然判らなくて・・・ すいません・・・ 一番気になってるのは、フォートラン90の本は77を完全に含んで いるのかということです。90と77の違いがよく判らないのですが、 みなさんがg77でコンパイルしていたので、77のほうを使っているので はないかと思っているのですが・・・ 90の本を買っても全然77が組めない、なんてことになると、また 本を買いなおさないとなりませんよね。 個人的には、物理の数値計算が出来ればいいです。あとLAPACKが使えれば。 フォートランはそもそも数値計算用に開発されたものなので、それを 覚えろと異動先の教授に言われました。研究室の学生も全員フォートランのようです。 それに、Cより簡単らしいですし、いろいろ利点があるそうなんです。 ウィンドウズ用のコンパイラもフリーであるとききました。 90の本を買って、g77でコンパイルできない機能は使わない、という ことは可能でしょうか?そんなことは不可能なくらい大きく拡張されて しまったのでしょうか?おバカな質問で申し訳ないです。
71 名前:69 mailto:sage [03/08/27 21:14] > みなさんがg77でコンパイルしていたので、77のほうを使っているので > はないかと思っているのですが・・・ とか、 > フォートランはそもそも数値計算用に開発されたものなので、それを > 覚えろと異動先の教授に言われました。研究室の学生も全員フォートランのようです。 ということなら、その異動先の人たちに訊いた方が早いのでは? この程度の質問ができないで、その人たちと上手くやっていけるとは 思えないが…それに、>>64 で紹介されているURLにも有用な情報がある。 不馴れな環境で戸惑っているのかもしれないけど、2chで質問する前に できることが色々あるのでは。
72 名前:名無しさん@3周年 mailto:sage [03/08/27 22:14] >>70 F90の本で勉強してF77のプログラムをつくることは可能ですが、 かなり難しいでしょう。(C言語を使っていたのなら特に) 私はF90を覚えてからF77でプログラムをつくるのが苦痛になってしまいました(w F90は規格上、F77のすべてを含みますが拡張された部分がかなりあるので 逆にF90のプログラムをF77のコンパイラでも動くようにするのは かなり大変な作業になると思います。 FORTRAN77の参考書は最近あまり見ていないのですが 竹内則雄/ 平野広和 著 「FORTRAN77とFortran90」 (森北出版) はどうでしょうか? 題名に反して(?)内容はほとんどFORTRAN77の文法書になっています。 後半でFortran90で追加された機能についてもふれているので、 F77を覚えながらF90についても知ることが出来ると思います。
73 名前:名無しさん@3周年 [03/08/28 00:31] >>72 そうですか、、、 ありがとうございます。 みんなg77でコンパイルしているところをみると、90はまだまだ 少数派なんですかねぇ・・・
74 名前:お絵描きBBS [03/08/28 06:06] / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 同人をやっています! 明るく、楽しいHPですよ! \____ __________________ V , -―- 、 /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /了 l__〕 〈] /お絵描きBBSがたくさん,ありますよ! 7| K ノノノ ))))〉 ,、 | pink.sakura.ne.jp/~erotan/ l」 |」(l| ( | | ||. !lm \_ _________ | |ゝリ. ~ lフ/リ lアノ V | | /\∨/‐-/`'/ . l l | /ヽ/==|‐-- ' !リl/ // ヽ _ , '⌒ ⌒\ _〈 // \\\ ノ// ヘヘ、 . `つノl// ヽ // |||)、 <絵を描くのが好きな人は //'へ゛ーノ お絵描きしに来て下さいね!
75 名前:名無しさん@3周年 mailto:sage [03/08/28 13:24] 《《9月7日(日)コンビニで全国一斉?うまい棒?買い占め!!》》 とにかく9月7日(日曜)に、 近所のコンビニ,チェーン経営のスーパー等で(できれば両方) 「うまい棒」を買えるだけ買って下さい!!それだけです。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 狙いは、製造元 ?やおきんさん による「うまい棒記念日」の制定です。 過去スレ:off.2ch.net/test/read.cgi/offmatrix/1061889745/ 本スレ:off.2ch.net/test/read.cgi/offmatrix/1061996689/ まとめサイト:www.geocities.co.jp/Milkyway-Vega/9871/index.html
76 名前:名無しさん@3周年 [03/08/28 19:13] 皆さん数値計算の結果とかはGNUPLOT使ってます? これってフリーなんでしょうか?
77 名前:名無しさん@3周年 [03/08/28 19:27] 堤さやかちゃんの引退記念作です。 可愛らしい顔に大きなオッパイ少女っぽいパンティーがそそります。 絡み自体はいたってノーマルですがこの子がやっているだけで下半身に血が集まります。 本気で感じている姿はやっぱいいですね。 モロ見え動画を無料でゲッツ!! www.pinktrip.com/
78 名前:名無しさん@3周年 [03/08/28 23:42]
79 名前:名無しさん@3周年 mailto:sage [03/09/05 21:17] >>70 FORTRANやってメリットあるのはその研究室がこれまで作ってきた過去の 資産を使えること・・・ぐらい。 あなたが電気系のエンジニアになる予定がなければFORTRNでもMATLABでもいいです。 でも、そうじゃなければC/C++を使えるほうがはるかにメリットは大きいでしょう。 ちなみにC/C++からFORTRANライブラリを呼ぶことは可能です。 あと、 Cygwinは極めて遅いよ。
80 名前:名無しさん@3周年 [03/09/20 20:46] >>76 gnuplotはフリー。 ttp://t16web.lanl.gov/Kawano/gnuplot/ に逝けば、すべてわかるはず。 初めは取っ付きにくかったけど、Excelのウザさをしってれば、かなり使える。 Tex、linux使ってるならなおさら便利。
81 名前:名無しさん@3周年 [03/09/20 22:02] fortranってまだあったの?
82 名前:名無しさん@3周年 mailto:sage [03/09/23 00:47] >>76 Grace使ってる。
83 名前:名無しさん@3周年 [03/10/13 16:21] スーパーコンピューティングの世界ではFortranが常識。 日本のメーカーのスパコンは伝統的にベクトルマシンだが CよりFortranの方がベクトルマシン上での最適化が効きやすい。 NECのSX-7使ってるけど、いちおうスパコン用のCコンパイラーも 用意されているが周りでC使ってる人を見たことがない。 純粋に数値計算だけ行うために、スピードの出ないCを使わなくてはならない 積極的な理由があるのかよくわからん。
84 名前:名無しさん@3周年 [03/10/14 11:20] スーパーコンピュータではFortranのほうが少し速い のは知っているが、あくまでも少し速いという認識。 たしかに、数値解析をやる分にはFortranのメリットも感じるが、 世の中で普及しているのは圧倒的にC/C++。Fortranのほうが C/C++に比べて数倍速く動くのであれば別だが、ちょっと速い程度 では普及しているC/C++になびく人も多くなる。 実際のところ情報分野一般として見るとで、Fortranは壊滅的だし。 この状況だと数値計算の分野も例外なくC/C++化が どんどん加速されると思う。 現段階では、自分のためだけの計算コードというのであれば Fortranのほうがいいのかもしれんが、今後そのコードを他人に 配布したり、スパコンだけでなくWSやPCでも手軽に使ってもらえる ようにしておきたければ、C/C++のほうが有利さはあると思う。
85 名前:名無しさん@3周年 [03/10/15 03:36] >>84 コメントありがとさん。 拙者はずーっとFortranオンリーの人間なんでC言語はかじった程度しか 知らないんだけど、確かに情報処理にFortranは使おうとするのは厳しい。 だけど、流体とかモンテカルロシミュレーションではFortranがばりばり 現役だし、速度のこと言うとC言語のC言語らしいところ(構造体とか ポインターとか)はメモリアクセスの連続性を損なうとかで スカラーマシンでもそうだと思うけど、ベクトルマシンではかなり 性能を落とす要因になる(と両方使ってる人に聞いた)。 linpackみたいな性能評価プログラムがFortranで書かれてるのも スパコンの性能引き出そうとしたらそれがベストだからなのではと 思います。ちなみにFortran90で構造体とかサポートされたけど、それを使って シミュレーションコードを書くと同じ理由で遅くなるのでメーカーサイドからも お勧めできませんといわれます。あと、科学技術計算と言えば最近 並列計算が盛んになってきてますが自分の知る限りMPI+Fortranで やるのが一般的なんじゃないんですかね?もしCで並列計算している 人がいたらどんな分野の計算に使ってるのかちょっと興味あります。 ちなみに自分はHPFで粒子シミュレーションなどに使ってますが DO ループぶん回すだけの計算ならFortranで必要十分だしプログラムも Fortranの方が読みやすいと思うんだけどなあ。まあその辺りは それぞれ感じ方も違うと思いますが。 でもまあ、書いてて自分でも思ったんだけどFortranはやっぱりすでに 特定の分野以外では廃れつつある感は否めないっすね。 せめて数値計算科学の分野ぐらいでは生き残ってほしい。
86 名前:名無しさん@3周年 [03/10/16 03:27] >>85 >>84 のコメントしたものです。 こちらこそどうも! 自分もスパコンを使って研究などをしとります。 MPI+Cもやっとりますよ(w。流体計算に使ってます。 メモリアクセスの問題から考えれば、ポインタや構造体の使用は ベクトル化には不利に働くでしょう。これらの使用をできるだけ避け、 通常の配列を使用すれば、メモリアクセスという点ではあまり 問題ないっすね(当たり前)。ポインタの使用はCらしさの ひとつでもあるのでスパコンのベクトル化を考えれば、 言うとおりCを使用するメリットはあまりないかもね(w。 HPFは使ったことないので知らない。コンパイラ系の分散並列は 記述が簡単そうだし、HPFはメモリの配分がかなり自由なのは魅力だね。 MPIは汎用のライブラリだから、使い勝手はかなり良いメリット はあるともいえる。 並列化の最適化の点では…HPFはわからん。VPP FortranはVPP機に あわせて作られてる分、MPIより少し速くなるらしいが…。 Fortranのほうが見やすいというが、自分的にはあまり大差を 感じないっすね。この辺は慣れの問題だと思う。 ただ、仮にプログラムをほとんど知らない人にどっちの言語をやれば いいかと聞かれれば、C/C++となってしまう。なぜなら、C/C++が 多くの人々に認知されてて広い分野で使えるから。別にFortranやったあと C/C++でもいいんだけどね(その逆もあり)。
87 名前:名無しさん@3周年 mailto:sage [03/10/16 17:56] スパコン使ったことがないので教えてください。 ベクトル計算機っていわゆるマッチドフィルタでしょ? スカラプロセッサはΣx(i)*y(i)の計算に少なくともn回ループ まわす必要があるのに対して、最小システムクロック(1クロック とは言わないがハードウェアで一発で実行できる)で実現できると 言う点。 メモリの個々のアドレスにアクセスするのにポインタは便利だと 思うんだけどね。すべての計算が内積計算でもないんだし・・・?
88 名前:名無しさん@3周年 [03/10/17 01:27] >>86 実際、Fortranだけでこの先やってけるかというと不安ですね。 仕事の必要上Cのソースコード読まなきゃいけない時とかもあるんで。 ちなみにHPFですが、現状ではMPI分かるならそっちで書いた方が いいよー、と使ってる人間ですら言いたくなるような代物です。 おっしゃるように汎用性の面からも現状ではPGI製のHPFコンパイラくらい しか手に入らないという問題点もありますが、プログラムの方も 確かにコメント文をはさむだけで並列化されるのは楽ですが、なんというか 「安全第一」的な解釈をコンパイラーがして、余計な通信まで発生させて しまったり、通信バッファー用の配列を使いまわせばいいものを 通信の前後でallocateと開放を繰り返すのでオーバーヘッドが馬鹿に なりません。まだまだ開発途上の言語だと思います。
89 名前:名無しさん@3周年 [03/10/17 01:39] それから、>>87 さん、 えー、マッチドフィルタというのを知らないので答えになってるか 分からないんですが、ベクトルマシンで上の例のような計算するときに x(i),y(i)の値が各々メモリ上に連続に乗ってないとスピードがでないんです。 たとえばx(ix(i))みたいなリストベクトルだとか、iの値を10個飛ばしに ループをまわすとかだとあまり性能を引き出せません。 で、ポインターなんですがこれはC言語やっている人の方が詳しそう なんで間違っているかも知れないですけど、おそらくメモリ上の連続 アクセスになっている保障がないんじゃないでしょうか。 何か答えようとしてるのか聞いてるのか分からなくなってしまいましたが。
90 名前:名無しさん@3周年 mailto:age [03/10/24 02:26] 理論物理では未だにFORTRANが常識だよ。 でも俺もCかC++覚えたい。 暇がないが・・。
91 名前:名無しさん@3周年 [03/10/26 00:27] Javaは論外でしょうかね?
92 名前:名無しさん@3周年 mailto:sage [03/10/26 16:55] >>91 オマイフラグ立て忘れてるよ。
93 名前:名無しさん@3周年 [03/11/03 12:51] FORTRAN90以降のFortranなんて、使う意味があるのかな。 Fortran77以前は、膨大なソフト資産があるから意味があるけど、それを使わない のなら、cやc++でも十分と思うけど。 先生がFortranをmustにするのは、f77以前の話じゃないのかな。スーパーコンを ガチガチに使うのであれば、また少しちがうかもしれないな。 普通の人は、f77以前か、c++といところかな。
94 名前:名無しさん@3周年 mailto:age [03/11/03 22:35] >>93 90でもサブルーチンは77のを使えるからな。
95 名前:名無しさん@3周年 mailto:sage [03/11/03 23:59] 先生がFortran77をmustにするのは、御自身がF77しか使えないから というのは内緒です。
96 名前:名無しさん@3周年 [03/11/04 08:32] 11月9日(日)は第43回衆議院議員選挙の投票日です。 皆さん必ず投票に行きましょう!! 主要6政党のマニフェスト(政権公約) www2.asahi.com/senkyo2003/manifesto/index.html 候補者一覧、選挙関連ニュースなど www2.asahi.com/senkyo2003/index.html 初めて選挙へ行く方へ優しく解説!! 投票所での投票手順 www.senkyo.metro.tokyo.jp/touhyou/touhyou011.html 不在者投票の投票手順 www.senkyo.metro.tokyo.jp/touhyou/touhyou012.html 作成者より投票の薦め 今回の選挙は各政党が初めて、マニフェスト(政権公約)を掲げて戦う歴史的に意義深い総選挙です。 マニフェストとは政策の具体的数値目標・実行期限・財源などを明示する今までにない具体的な選挙公約。 これまでの選挙公約は曖昧で、約束が守られたのかどうか評価する事すら難しい物でした。 今回、各政党がマニフェストという形で具体的な国民との契約を掲げたことで、政権を取ればその遂行を求められ、 そして次の選挙の際には実績を評価される体制が整ったのです。今までのような曖昧さのない公約は、 実現出来なければ次の選挙で必ず厳しい評価を受ける非常に厳粛なものです。政治家の嘘はもう許されません。 政治、経済、社会、外交、さまざまな分野で難問が山積し、歴史の大きな曲がり角の中にあると言われる日本。 日本の新しい未来の選択にあなたも参加してみませんか?11月9日には是非お近く投票所にお出かけください。 ※この文章を何処か別の電子掲示板に一人一回コピぺするか、お知り合いなどにメールして頂けると嬉しいです。
97 名前:名無しさん@3周年 mailto:sage [03/11/05 14:12] >理論物理では未だにFORTRANが常識だよ。 >でも俺もCかC++覚えたい。 >暇がないが・・。 FORTRANは3日もあればそこそこ書けるようになるが C++はちと大変だ。The C++ Programming Language --- Over 1000 page
98 名前:名無しさん@3周年 [03/11/06 21:23] >97 名前:名無しさん@3周年 :03/11/05 14:12 >.... >FORTRANは3日もあればそこそこ書けるようになるが c++もそこそこ書けるよ。
99 名前:名無しさん@3周年 [03/11/07 10:52] 科学技術計算だけを考えるならFORTRAN
100 名前:名無しさん@3周年 [03/11/08 00:13] 仕事でFortranのPGのチューニングしたんだけど 配列データのメモリ格納の順番が数学と違うのでバンクコンフリクト を起こすんだよね。 チューニングしててはじめて知ったよ。 ループ入れ替えただけでパフォーマンスが向上したよ。
101 名前:名無しさん@3周年 mailto:sage [03/11/08 00:59] c
102 名前:名無しさん@3周年 mailto:age [03/11/08 06:29] >>100 どういうこと?もっと詳しく
103 名前:名無しさん@3周年 [03/11/08 08:22] 多次元配列でよくある話。特に、ベクトルマシンでは顕著。例えば、2次元配列 だと、cになれた人は、x[i][j]でjが先に回る。Fortranはx(i,j)でig先に 回る。x[i][j]の感覚でx(i,j)と書けば、バンクコンフリクトを起こすことがある。 これはわかりやすい例。ベクトルマシンだと、下手すると10倍くらい違ってくる。
104 名前:名無しさん@3周年 mailto:sage [03/11/08 09:09] え,フォートランってまだあったの?
105 名前:名無しさん@3周年 [03/11/08 14:57] >>103 漏れも大昔、電話回線でプラ研のVPには入り、バッファの配列を逆に廻したら とたんにパフォーマンスが落ちたらしく、後でボコられた。
106 名前:名無しさん@3周年 [03/11/08 15:46] >104 名前:名無しさん@3周年 :03/11/08 09:09 >え,フォートランってまだあったの? 健在、健在。科学技術はFortranはmust。c、c++は知ってていいけど、Fortran を知らなきゃ話にならない。 Fortranもequivalenceを常時使えればたいしたもの。昔(1960〜1980)のFortran プログラムを見ると、cの機能は、こんなことから出てきたんだなとよく わかるよ。cのプロも古いFortranソースプログラムを見ると勉強になるね。
107 名前:名無しさん@3周年 [03/11/08 16:50] Fortranで一番やっかいなのはWRITE文のFORMATだろう。 それにしてもDEC PDP-11のテンキーを使ったエディターは絶品だよね。
108 名前:_ [03/11/08 19:09] www5e.biglobe.ne.jp/~spbook/
109 名前:名無しさん@3周年 [03/11/08 20:02] jbbs.shitaraba.com/music/6029/yasuko.html
110 名前:名無しさん@3周年 mailto:age [03/11/08 22:06] CのコンパイルはFORTRANと違って論理とかの面で間違ってても簡単に 通ってしまうので結果を見てからじゃないと間違いに気づかないと UNIXマガジンに書いてあっんだけど本当? それならしばらくはFORTORANはmustですな。
111 名前:愛子 [03/11/09 00:40] ttp://aiko.fam.cx/
112 名前:名無しさん@3周年 [03/11/09 02:27] >>110 「論理面の間違い」というのがどんなことを指しているのかわからないけど コンパイル時の文法チェックという点ではFORTRAN77よりもANSI以降の Cの方が厳しいと思います(当然、コンパイラにもよりますが) FORTRAN77では規格上、空白を無視したり暗黙の型宣言がありますから。
113 名前:名無しさん@3周年 [03/11/11 04:21] >>112 > FORTRAN77では規格上、空白を無視したり暗黙の型宣言がありますから。 Fortran90になってから、"implicit none"が推奨になったんだけど f77から使っている人はやっぱりどうしても暗黙の型に頼って書くもんじゃ ないでしょうか(少なくとも自分は)。 使う変数いちいち型宣言するのって、どうもめんどくさいだけにしか思えない。 Cを使っている人はFortranのプログラム見て、「変数が沸いてくる」という 印象を持つと聞いたことがあるけど、陽に型宣言するメリットって 打ち間違いで未定義変数使っちゃう事を防ぐ以外に何かメリットあるんでしょうか。
114 名前:名無しさん@3周年 mailto:age [03/11/11 13:33] 会社に入ることになったんですが、シュミレーション系では 言語は何を使うんでしょうか? 今までは科学計算としては大学でFORTRANしか使ってこなかったのですが
115 名前:名無しさん@3周年 [03/11/11 17:54] >>114 シミュレーション系だったらほぼFORTRANしか使わないから安心汁!
116 名前:名無しさん@3周年 [03/11/11 19:11] >印象を持つと聞いたことがあるけど、陽に型宣言するメリットって >打ち間違いで未定義変数使っちゃう事を防ぐ以外に何かメリットあるんでしょうか このメリットは大きい。i0とioの違いに気付くのに1ケ月かかったなんて よくある話。暗黙の型宣言は、笑い話がある。yuukaは正しい答えを出すけど kumikoは間違った答えを出す。 implicit nonでもc++でも、整数はijklmnで始まる変数名にしてしまう。
117 名前:名無しさん@3周年 mailto:sage [03/11/11 19:47] DO 10 I=1. 100
118 名前:名無しさん@3周年 [03/11/12 01:27] I,Jを整数とするときに, Cで I/J と整数割算を実行するのと,FORTRANで I/Jを実行するのでは 結果が違うことを知らずに,ずいぶん悩んだことがあった.
119 名前:名無しさん@3周年 mailto:sage [03/11/13 00:08] 画像を扱うライブラリで Cのものは結構ありますが、 Fortran のはありますか? 画像データもFortran プログラムから 出力したいのでつ。
120 名前:名無しさん@3周年 mailto:age [03/11/13 07:16] >>115 そうですか。ホッ
121 名前:名無しさん@3周年 [03/11/15 10:52] >119 名前:名無しさん@3周年 :03/11/13 00:08 cとのリンクを勉強したほうがよい。アメリカのシミュレーションプログラムは ほとんど、cとForteanで切り分けています。その筋の大学や国研の人とコネが あれば、ソースレベルで入手できるから勉強になりますよ。
122 名前:数値計算屋さん [03/11/19 00:34] 現役のFortran使いです。 こんな事いっては何ですが、数値計算を行う場合、FortranだろうがC言語だろうが あまり関係ない。必要とする計算を実現できればよいのですから。 問題は、計算を行う場合アルゴリズムが大切で、これを理解するのが一番難しい。 まあ、ライブラリを使えばことは足りますが。 経験的には、C言語とFortranでは自由度の少ないFortranの方がより最適化が効いて 高速化しやすい。記述性、読みやすさは経験値によって異なりどちらが優位かなんて あまり関係ない。自分が分かりやすいプログラム言語を使えば良いのです。
123 名前:名無しさん@3周年 [03/11/20 23:11] ベクトルをプリミティブで扱える言語 (と言っていいのかな) は, のきなみ FORTRAN を呼べるようになっていますね. 適材適所かなと思います. 計算が膨大な部分は FORTRAN で, 計算でないところは流行りの高級言語, その他の計算は MATLAB 系で,という風でいいですか?
124 名前:名無しさん@3周年 [03/11/21 08:53] >121 名前:名無しさん@3周年 :03/11/15 10:52 >>119 名前:名無しさん@3周年 :03/11/13 00:08 >cとのリンクを勉強したほうがよい。 違う言語で生成したオブジェクトをリンクできるようになるのが現実的 ですね。エクセルをUIにすると結構便利です。
125 名前:名無しさん@3周年 [03/11/26 04:36] F9xでは、文関数を使うと、いろいろワーニングが出てうざいな。
126 名前:名無しさん@3周年 mailto:sage [03/12/01 20:21] >>125 文関数はFortran95で廃止予定事項になってるからね。
127 名前:名無しさん@3周年 [03/12/05 23:37] 僕は計算科学分野の数値計算においてオブジェクト指向に 意味がみいだせるのならC++(まあ、ちょっと問題もあるけど) で、そうでなく関数でやっていっていいのならFortran90で いいんじゃない?(文法的にCでやれることはほとんど F90の段階でできる。)計算科学分野での一種デザインパターン ができればC++でやっていくのは面白そう。
128 名前:名無しさん@3周年 mailto:sage [03/12/06 00:00] >>127 面白いだけになりそう... FORTRAN は高くて計算専用の計算機に, すごい商用コンパイラと入っていることが多いから, そこで動かすための言語っていう感じだね. (注意すれば) ポータビリティがあるアセンブリw
129 名前:名無しさん@3周年 [03/12/06 00:11] C言語とC++言語は、ポインタ(というが実際にはアドレス)を多用した プログラムをかける為、計算機科学のセンスがちゃんとした人間が 書かないと、バグだらけ、潜在的のなバグの温床のソ-スを大量に 書いてしまい勝ちである。しかもC言語C++言語は環境をインクル-ド することを前提になっていて、実はポ-タビリティの無いソ-スコ-ド になりがちだ。マクロを埋め込んで書く流儀は、保守性を損ねる。 長期に渡って使われるであろう大規模システムは、OSとの独立性も 考慮してFORTRAN90、95等で書く方が長期的にはメリットがあるはず。 プログラミングが本当の専門職ではない科学や工学の研究者が プログラムを書くのにちょうど適当な機能と複雑さ、レベルを備えた 言語としてFORTRAN90はお薦めである。CとC++は学習に時間がかかり すぎる上に、言語を完全に把握するためにはこまごましたことを しかもシステムに併せて理解しなければいけない。大規模システムを 全部そういったシステム依存にも書ける言語で開発することは 賢明ではないと思う。
130 名前:名無しさん@3周年 [03/12/06 00:31] Cを使おうがFORTRANを使おうが 所詮は道具なのだから何でもいいんじゃない? 結局、自分が使いやすいものを使えばいいと思う 研究データの蓄積もあるだろうから環境にもよるのだろうけど
131 名前:名無しさん@3周年 [03/12/06 00:46] >>130 処理系同士の互換やらがしっかりしていれば幸せなんだと思うよ. 人の思考の仕方によって,言語に向き不向きがあるのも 問題を複雑にするよね. C, FORTRAN じゃ同じようなもんだけど. シンボル名は 6 文字まで.これでうまくやっていく奥義をご存じの方いますか?
132 名前:名無しさん@3周年 [03/12/06 01:24] >>129 数値計算をやる分、環境をインクルードってのは それほどないとは思うけど、Fortran90が 「適度な機能と複雑さ、レベルを備えた言語として」 お薦めなどは納得。ただ、数値計算分野がオブジェクト 指向的な捕らえ方では本当にとらえきれないものだろうか? 明確な物理対象にたいしては、構造体を使うのはプログラムが まとまるし、で、構造体をつかいはじめるとそれに対する メソッドってのはいくつかつけたくなる。一方であんまりに こりすぎたクラスなんかを使うと、わけがわからなくなるって のもあったりもする。僕自身は、今は幾分クラスをつかった 関数型の書き方をしていたりするが。
133 名前:名無しさん@3周年 [03/12/06 02:07] cもフォーも両方習得できるだろ、普通に。 英語より簡単だ
134 名前:名無しさん@3周年 [03/12/06 04:21] いまの Fortran90 は長さが30文字のような名前を変数などに使うことが できるんだよ。 構造体も描けるし、モジュ-ルの機能によって一種の オブジェクト指向を極めて禁欲的にだけども実現できる。演算子の オ-バ-ロ-ドも可能。だけどもプログラミングのコツは、強力な機能は ポイントを押えて使うことにあり、なんでもかんでも、オブジェクト 指向に走るのは賢明ではない。あることを3行でかけていたことを 1行でかけるようにする為に、裏側で沢山のそのコ-ドに独自の定義を 凝らして書いてもしょうがない観たいなところがある。それよりも だれが読んでも何をしようとしているのかが、その言語を知っている 人なら自明に分かるのだとしたら、へんな定義を使わず素直に実現 した方が、よいだろう。程度の問題だけどね。
135 名前:名無しさん@3周年 [03/12/06 15:00] >134 名前:名無しさん@3周年 :03/12/06 04:21 >いまの Fortran90 は長さが30文字のような名前を変数などに使うことが >............................. >ポイントを押えて使うことにあり、なんでもかんでも、オブジェクト >指向に走るのは賢明ではない。あることを3行でかけていたことを >1行でかけるようにする為に、裏側で沢山のそのコ-ドに独自の定義を >......... もうすこし具体的に言うと、物理的意味がはっきりしているところは オブジェクト指向を心掛けてよいのではないか。たとえば、弾丸の飛行 距離を計算する場合、常識的には x=a*t**2+b*t+c と1行で終わるから、ベタ書きしてしまいたくなるけど、弾道計算はやりだせば キリがなく、それだで膨大なプログラムになるから関数を引用した方がよい わけだ。後で簡単に入れ替えられるから。 短ければ、ベタ書き、長ければオブジェクト化と、何も考えずにやる人が 結構多い。物理的意味がはっきりしているところは、後で入れ替えることが 多い。要は、何をしているのかきちんと理解していることですね。
136 名前:名無しさん@3周年 mailto:sage [03/12/06 18:42] >>135 頻繁に呼ばれるところの計算量を増やしても大丈夫でしょうか?
137 名前:名無しさん@3周年 [03/12/08 23:35] Fortranの演算ルーチンのソースをf2cでCに変換して、その他はCで書く!
138 名前:名無しさん@3周年 [03/12/09 18:41] >頻繁に呼ばれるところの計算量を増やしても大丈夫でしょうか? それはケースバイケース。必要ならしかたがない。もともとそういう 問題だから。計算量を減らす努力も勿論必要です。 あと、オーバーヘッドの問題もあるので、インライン展開も有効ですが 今はオプションでインライン展開する処理系もありますから、そいう 使い方も修得されては。
139 名前:名無しさん@3周年 mailto:sage [03/12/09 22:10] >>138 FORTRAN でもインライン展開できる処理系ご存じですか? ANSI C ではマクロを注意深く使うことになりますよね. だからと言って C++ では余計なコードが含まれてしまいそうです. C99 で書けばよさそうですね. gcc の対応状況 (ttp://gcc.gnu.org/c99status.html) が完全になってから w
140 名前:名無しさん@3周年 [03/12/10 22:19] Laheyの最新版あたりでは、PC系のFortrannコンパイラでもインライン展開も サポートしているのでは。
141 名前:名無しさん@3周年 mailto:sage [03/12/13 00:49] みなさん当然の如く承知でしょうが。。。。。。 C/C++ だと行列の扱いがアレなのがやっぱり痛い。 色々とクラスはあるけど、乱立してるし自作が一番とか言う人もおるし。 お手軽、ポータブルな実装に早く登場してもらいたいもんだ
142 名前:名無しさん@3周年 mailto:sage [03/12/13 11:33] >>141 しかも,matlab 系の方が行列の演算は速いらしいですね. octave などのフリーソフトウェアでさえもそうなんだとか.
143 名前:名無しさん@3周年 [03/12/13 19:40] 全く数値計算をしたことのない者ですが、フォートランを覚えなければならなくなりました。 フォートランの定番の教科書・参考書がありましたら教えてください。 Windowsと研究室のワークステーションで走らせることができればいいです。 よろしくお願いします。
144 名前:名無しさん@3周年 mailto:sage [03/12/13 20:43] >>143 英語が読めれば www.star.le.ac.uk/%7Ecgp/prof77.html
145 名前:名無しさん@3周年 [03/12/13 20:55] 富田って人のフォートラン90ってのがいいときいたんですが・・ あとフォートラン90サブルーチンライブラリって本も。 どうなんでしょうか?
146 名前:名無しさん@3周年 mailto:sage [03/12/13 21:00] 最適化よりアルゴリズム・コーディングの方が重要なヤカン
147 名前:141 mailto:sage [03/12/13 21:08] >>142 なんとまあ。。。 まあヤツらは内部でLAPACK大先生を呼出してるらしいし、速いでしょうな。 FORTRANも、90なら(Cに慣れた私にとって)イイ感じなんですが、何分gcc に無いってのは手軽さに欠けますよね。もうすぐF95が実装されるそうですけど !! 語り尽くされた事の蒸し返しスマソ
148 名前:名無しさん@3周年 mailto:sage [03/12/13 22:23] >>145 これですよね? www.geo.titech.ac.jp/fujimotolab/renewHP/numexe/manual/10_3/f90/start.html スレの >>1-10 くらいは読んだ方がいいでしょう. ライブラリリファレンス? わざわざ本を買わないと使えないライブラリがあるのですか? 無知ですみません.
149 名前:名無しさん@3周年 mailto:sage [03/12/14 03:03] MatlabよりOctaveの方が速いよ。 特にliboctave+atlasでPen4 3GHz SSE2使えばなら5GFLOPSぐらいは出ると思う。 いろいろライブラリがあるけど、liboctaveが一番使いやすいんじゃないの? Matlabちょこちょこいじって方向性が固まった段階でliboctave使って大規模 演算を実行するっていうのが効率高いと思うんだけど。 ところでWin環境で数値演算やってる奴なんているのかね?Unix環境と比べると シェルスクリプトが貧弱すぎてやっぱり使い物にならんな・・・いつまでたっても XPになってちょっとはましになったけど・・・
150 名前:名無しさん@3周年 mailto:sage [03/12/14 11:21] >>149 シェルスクリプトがないと,気軽にできないことが多いんですよね. 数値計算プログラムを動かすときだって,手間が減らせない. 計算機の奴隷ですね. .BAT が難しい割に貧弱なせいでしょうか. cygwin 無しでも快適なスクリプト環境が欲しいのです.
151 名前:名無しさん@3周年 [03/12/15 01:55] pen4で5GFLOPSもでるの?スパコン1ノード並じゃない?
152 名前:名無しさん@3周年 mailto:sage [03/12/15 02:06] Pen4 3GHzなら理論性能は6GFLOPSだな SX-7は1CPUで8.8GFLOPS
153 名前:名無しさん@3周年 mailto:sage [03/12/15 02:23] gccの -msse2 -mfpmathだともひとつ速度が出ないね? これが十分機能すればblitzでもいいんだろうけど、Pen4つかうなら atlas使うのが正解だな。atlasはMatlabでも採用が決まったそうだけど 現行の6.5はatlasは使ってないのかな?
154 名前:名無しさん@3周年 [03/12/16 03:09] 理論性能はなかなか出ないでしょ。 俺の記憶だと、pentium4はせいぜい出ても1〜2GFLOPSだと思うが (ベンチの仕方にもよるかもね)。
155 名前:名無しさん@3周年 mailto:sage [03/12/16 08:10] HT対応のPen4 3GHzなら理論性能は12GFLOPSだけど 実際はメモリがボトルネックになるからそんなに出ない intel compiler+ATLASでLINPACKやったら頑張っても4.5Gぐらいかな スパコンはメモリがCPUと同じクロックだから理論性能に近い値が出る
156 名前:名無しさん@3周年 [03/12/16 18:30] ニューメリカルレシピFortran90って必携ですか?
157 名前:名無しさん@3周年 mailto:sage [03/12/16 23:59] 何気にintel conpiler(Fortran)使いにくくね?
158 名前:名無しさん@3周年 mailto:sage [03/12/17 22:18] >>157 どの辺がですか? C まだファイルを 1 個 compile しただけなので,使い心地が分からず.
159 名前:名無しさん@3周年 mailto:sage [03/12/18 02:03] >>157 そりゃ、conpilerじゃ、使いにくいだろうね
160 名前:名無しさん@3周年 mailto:sage [03/12/18 12:31] スパコンで使ってる主記憶はPCと同等品だよ。調べてみ。NECの技報に載ってるよ。 スパコンが速いのはあくまでもベクトルプロセッサがあるから。 N回ループの次の計算で Σa(i)b(i) 乗算器N個、加算器N個用意すれば、組み合わせ回路だけで(1クロックで)、 演算可能。実際はデータフェッチに2Nクロックかかるんだけど・・・ 因みにベクトルプロセッサは別名マッチドフィルタともいうよ。 スカラプロセッサではそりゃ太刀打ちできない。
161 名前:名無しさん@3周年 mailto:sage [03/12/18 21:04] スパコンのシステムクロックって遅くなかったか? とても3GHzなんて値じゃなかったと思う。
162 名前:名無しさん@3周年 mailto:sage [03/12/19 23:13] ベクトル型スパコンはメモリアクセスも速いよ。 (部品はPCと同等品かもしれないけど) メモリから単位データを読みだすのにNクロック必要だとすると、 ベクトル型スパコンは主記憶全体をN個のバンクという部分メモリに分けて持ってる。 実は、アドレス上連続している領域は、飛び飛びに違ったバンク内のメモリに 格納されてる。 そんで、各バンクは、メモリ読み出しに必要なNクロックのひとつずつズレた状態に なっているように同期されてるの。 すると、配列データなどのアドレス上連続しているデータが、1データ/1クロックの 速さで読みだせ、そのままベクトルプロセッサに流しこめると。 (もっと詳しい人、添削たのむ) ちょっと古いけど、これ読むとおもしろいかも www.teu.ac.jp/kougi/tukamoto/ipsj/9909/ie9909.html
163 名前:名無しさん@3周年 mailto:sage [03/12/21 14:27] だからへっぽこコードだとバンクコンフリクト起こして 大変なことになるんだよなぁ
164 名前:名無しさん@3周年 [03/12/21 21:28] ZERO DIVIDER
165 名前:名無しさん@3周年 mailto:sage [03/12/23 16:49] アセンブリ言語最強。
166 名前:名無しさん@3周年 [03/12/23 18:15] 名前: 染霧田趣味男 年齢: 45歳 一人称: ぼく 髪型: ツインテール 服装: ミニスカ白衣 職業: 万年助手 性格: 真面目で陰湿 好きな物: うなぎ 嫌いな物: サメ 趣味: サメ狩り、映画鑑賞
167 名前:名無しさん@3周年 mailto:sage [03/12/29 00:59] Fortranてまだ現役なんだな 漏れが昔FORTRAN77(「ちっち」と発音してた)使ってた頃は、東大のスーパーコンピュータ 使用料金がダイヤルQ2よりもタケーよ、みたいな事言ってた 最近のパソコンは安くて早いから、そっちでサクッとやった方が良いんじゃないの? 計算させる内容にもよるんだろうけど
168 名前:名無しさん@3周年 [03/12/30 03:03] >>167 Fortran90, 95, 2000って規格も出たけど、なぜかまだF77で組んでる人がいっぱいいます。 なぜか大文字ONLYな人を良く見かけます。 スパコンを独占して一つのプログラムを動かすなら、そこらのパソコンより十分速いけど、 通常は使用出来るCPUの限度が決まってるんだよね。 結果、東大など日本で数本の指に入るスパコンなら、十分な演算能力が得られるけど、 それ以外の大学なら、最新のパソコン使った方が高速な事も多い。 パソコンもずいぶん安くなったし、理論で数値シミュレーションをする研究室では、 自前でPCクラスター組んでる所もよく見かけるようになった。
169 名前:名無しさん@3周年 [03/12/31 09:44] 格安のパソコンのフリーなフォートランコンパイラがFORTRAN77準拠 だからというのが理由としては大きいのです。もしもG77がG90に なれば、FORTRAN90への以降が急激に進むことでしょう。
170 名前:名無しさん@3周年 mailto:sage [03/12/31 11:00] g95はもうしばらく時間がかかりそう。 g95.sourceforge.net/ gcc.gnu.org/fortran/index.html でもGCCはコンパイラ自身の移植性は良いのかも知れないが 速度的に不利だなぁ(CもFORTRANも)
171 名前:名無しさん@3周年 [03/12/31 14:52] 今でも g95 で Fortran 95 なコードをコンパイルできます. 何の実装がまだなんでしょうか? 間違った計算結果が出てくるような bug もあるのでしょうか. >>1-170 なぜ Fortran 95 と書かずに 90 と書くのですか?
172 名前:名無しさん@3周年 mailto:sage [03/12/31 15:31] FORTRAN には 初代FORTRAN, FORTRAN66, FORTRAN77, Fortran90, F, Fortran95, Fortran2000 といったバリエーション(というか規格や仕様の違い)がある。
173 名前:名無しさん@3周年 mailto:sage [03/12/31 20:53] >>171 仕様がほぼ同じ ソースファイルの拡張子はどちらも*.f90 F90≒F95
174 名前:170 mailto:sage [03/12/31 21:51] >>171 G95: Runtime library status gcc.gnu.org/fortran/librarystatus.html ↑これを見てライブラリの実装がまだ不十分な感じがしたんだけど >g95 いまLinux用のバイナリ拾ってきて簡単なプログラムをコンパイル した限りでは使えそうですね。 しばらく使って様子を見てみます。
175 名前:名無しさん@3周年 mailto:sage [04/01/04 02:35] >>173 > F90≒F95 そうなんですか。それじゃあFortran2000は90/95と比べてどの辺が違うんでしょう?
176 名前:名無しさん@3周年 [04/01/06 10:16] 工学系のcpp屋なんでcppマンセーなんですが 結構、Fortran屋はcppを誤解しているかなぁって思います。 スパコン Fortran > cpp PCベースなら cpp > Fortran です。 なんでかって言うとスパコンにはFortranのすごい商用コンパイラがついていて PCではIntel-Cコンパイラが使えるからです。 (iccは経験的にgccの1.5〜2.0倍速いコードを吐きます) Fortranの方がベクタライズは得意ですが マルチスレッド(プロセス)同期はcppの方が得意ですしね。 ま、東大レベルのスパコンにアクセスできるんじゃなきゃ、 手元で気軽にテストできるPC環境でしこしこチューニングした方が速いコードが書けると思います。 チューニング用のソフトはPCの方が充実していますしね。 チューニングすれば結構簡単に10倍くらいは早くなりますので スパコンが有利なのはメモリが速いから キャッシュとかあまり気にしないでコードが書けるってトコかな 正直、Pen4*2PCを10台も並べればそこんじょらのスパコンよりよっぽど速くなります。 もちろんちょっと前にはやったSGIのロートル疑似スパコンなんかよりも速いですし、 で、cppはバグのあるコードを書きやすいって言いますが、 最近は可変配列(std::vector)もサポートされていますし 行列(boost::uBlas)もだいぶ整備されてきています ので昔ほどポインタを多用する必要はもうありません。 assertやdebug_newを使えば結構バグは自動的に発見できます。 あと、allocaも便利です。 最近のアルゴリズムは複雑なんで仮想関数は封印するにしても オブジェクト指向無しじゃそうそう、書けないと思うのですよ。
177 名前:名無しさん@3周年 mailto:sage [04/01/06 10:36] ようは 卒論生ならともかく、この道で食っていくつもりの 人間がcpp使いこなせないと言うのは恥ずかしいって言いたいんだがね。 別スレでcppけなしている奴がいるが無知と無能をさらけ出しすぎだ。 問題になるようなcppの欠点は現在はほとんど克服されているよ
178 名前:名無しさん@3周年 mailto:sage [04/01/06 11:01] オブジェクト指向マンセー
179 名前:名無しさん@3周年 mailto:sage [04/01/06 12:42] >>176 私自体はある程度CPPはできるのですが、過去のソフトウェアのメンテナンスやら速度面の都合でCで書いています。 CPPとCでの速度の差はほとんど無くなったと考えていいのでしょうか? 新しく興すソフトは便利さと可読性を考えるとCPPで書き起こしたいのですが・・・ 大学なのでメンテナンスを引き継ぐ人がcppを理解できるかという問題もありますが(--;
180 名前:名無しさん@3周年 mailto:sage [04/01/06 17:45] コンパイルして走らせて、変に遅い所だけ条件分岐工夫して、って 程度で最速の8割ぐらいいけるならそれでイイのではないだろうか。
181 名前:名無しさん@3周年 [04/01/06 21:15] フリーのfortranコンパイラーキボンヌの人が多いみたいだけど、 商用パッケージ使っている人たちはどんなのを使ってるんでしょうか。 自分の場合、今までにAbsoft,富士通、dec(compaq)、PGI(hpfコンパイラー) あとnecのスパコンなどいろいろ使ってみたけど、同一マシンで動かしてないので 計算性能とか最適化のされ具合いとか比較したことがないです。 使い勝手は、まあどれも同じようなもので日本メーカーのものが マニュアルやエラーメッセージが日本語なだけ楽かな、という程度。 でもgccよりはどれも当然速かった。
182 名前:名無しさん@3周年 [04/01/07 00:42] >>181 使った事があるFortranコンパイラは、 ・Intel(<-hp<-compaq<-DEC) Windowsとx86環境のLinuxな人に多い x86系、特にintel製のCPUへの最適化に優れる アカデミック向けの価格も安いし、Windows環境なら最大勢力のヨカン ちなみに、Linux版はフリーでも使えます DECはなくなっちゃったけど、DECなしには現在のIT技術を語れないッス ・PGI x86環境のLinux向け AMDのx86互換CPUへの最適化も可能 昔から実行速度に定評がある ・Absoft IDE付き Mac, Windows, x86環境のLinuxなど、幅広い環境をサポート あまり見かけないけど、Macで計算する人はこれを使ってるのでは? でも、「M a c で シ ミ ュ レ ー シ ョ ン ?」 ・Sun OSがSolarisでCPUがSPARCなら、これ PCというよりはスパコン向け SPARC並列計算機でよく使われている ・g77 フリーだから、PCクラスターでも安くつく
183 名前:名無しさん@3周年 mailto:sage [04/01/07 00:43] cppのcに対して速度が劣ると考えられる点 ・仮想関数呼び出し 仮想関数呼び出しはinlineが難しいので ループ深部での使用は避けること ・デストラクタの仮想化 デストラクタを仮想化するとオブジェクトサイズにペナルティーを 食うのでcomplexやquaternionのような軽量クラスを仮想にしてはいけない。 (と言うか、小さいクラスでは仮想関数を一切使ってはいけない) ・オブジェクトの初期化 オブジェクトはメモリ上に構築されるので complexのようなレジスタに収まる 軽量オブジェクトをループ深部で生成破棄を繰り返すと ペナルティーになる(iccでは最適化できるがgccでは無理) ・std::vectorの初期化 オブジェクト配列をstd::vectorで生成すると かならず、デフォルトコンストラクタが走るので注意 ・std::vectorの割り当て std::vectorの割り当てはのろいnew, deleteを用いるので ループ深部ではあらかじめバッファを作成しておくこと uBLAS等のライブラリでも似たようなことはあるので注意 ・for_each<>, begin(), end() これらのstl推奨文法は最適化が難しいので 極力回避すること ようはbetter Cとして使う分には絶対cppの方が有利です。 また、デバッグ版では配列の範囲エラーはASSERTで拾うようにしましょう。 大概の行列ライブラリにはそういったオプションがあります。 std::vector::operator[]にASSERTを仕込んでもいいです。
184 名前:名無しさん@3周年 mailto:sage [04/01/07 00:44] cのfortranに対して速度が劣ると考えられる点 配列の別名が簡単に作れるのでベクトル化が妨げられる。 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_.2f.oa.2c_2f.ow.asp を参照してください。 これは、コンパイラスイッチなどでコンパイラに通知できることが多いので 結構どうにかなります。 ・ベクトルでの a = b + c + d が遅い これは、ループが buf = b + c a = buf + d に分解されてしまうからです。 Expression Templatesと言うテクニックで回避できますが、 まだ一般的ではありません。
185 名前:名無しさん@3周年 mailto:sage [04/01/07 03:22] >>183 > (と言うか、小さいクラスでは仮想関数を一切使ってはいけない) 間違い。小さいクラスでもポリモーフィックにすべきものはそうすべき。 complex や quaternion で仮想関数を使わないのは当然だが、 それはあくまで大量に(数メガ、時には数ギガ)使うことが予想される データ型としての性質が強いから。 > オブジェクト配列をstd::vectorで生成すると > かならず、デフォルトコンストラクタが走るので注意 間違い。初期化時にデフォルトオブジェクトを渡すと コピーコンストラクタしか呼ばれない。 まぁ、C++ が速度に関して Fortran に負けるのは当然。 ただ、ホットスポット以外では速度なんて気にする必要はないし、 最初からチューンしまくったプログラムを作ってしまうと デバッグや保守が難しくなるので、 そういう場面では C++ の方が有利。
186 名前:179 mailto:sage [04/01/07 17:32] >>182-185 ためになる情報Thx 昔BASICをやっていたのでF77程度ならすぐに習得できそうな気もするけど コンパイラはうちの研究室の規模だとg77かな(^^; 今のところAlphaなのでCompaqのF90コンパイラ使えるけどOpteronになったら買わないと・・・。 RISCマシンのアセンブラは書く気になれないけどx86系ならアセンブラというても使えるw 科研費に受かっていることを祈ってMPIの勉強中o(*≧д≦)o"
187 名前:名無しさん@3周年 [04/01/07 20:58] ほんとに >>182-185 を読んだら C++ やらなきゃと思っちゃった. 仕様として C がきれいだから,なんて言ってた自分が痛ましいです. C++ のガイドライン付きチュートリアルがあればいいんだけどなぁ. Fortran 入門書にもガイドライン付きにしないといけませんよね.
188 名前:名無しさん@3周年 mailto:sage [04/01/07 21:02] アセンブリ言語でちまちま最適化しても、 コンパイラの最適化の方が速かったりすると鬱。
189 名前:183 mailto:sage [04/01/07 22:04] > コピーコンストラクタしか呼ばれない。 _| ̄|○ スピード上げるにはアセンブラどうこうよりも メモリの使い方に気をつけるのが一番ですよ ところで185よ。 cppがFortranに明示的に速度で負ける条件って なんか他に知っているかい?
190 名前:183 mailto:sage [04/01/07 22:17] 入門書 Essential C++ ガイドライン Effective C++ と More Effective C++ パフォーマンスチューニング Efficient C++ 数値計算ではオブジェクト指向はあんまり気にしなくていいので まずはこれをどうぞ
191 名前:名無しさん@3周年 mailto:sage [04/01/07 22:20] >>189 複素数かな。 Fortran だと組み込み型だから最適化しやすい。 GCC だと拡張組み込み型の複素数を ラップする形になってるけど、 クラスにして扱うが故に幾分不利。 C99 だと組み込み型を直接扱うことになるから いいんだけども。
192 名前:183 mailto:sage [04/01/07 22:32] >191 うーむ、クラスだって言ったって std::complexはメンバ全部inlineだし 変な無駄な初期化をしない限りペナルティーは無いと思うのですが、 それでも、最適化で差が出るものですか? 確かにgccレベルの最適化じゃ差は出そうですが r**i がC++に無い問題も テンプレートで解決できますし
193 名前:名無しさん@3周年 mailto:sage [04/01/07 22:36] inline だろうがオブジェクトがメモリに必ず置かれるなら、 テンポラリオブジェクトが必要になる d = a * b * c; とかでは差が出そう。 全部 inline ならテンポラリオブジェクトも レジスタに置いてくれるように最適化されるのなら問題ないかも?
194 名前:183 mailto:sage [04/01/07 22:41] それは確かKAIが特許持っているから ライセンス受けているiccしか その最適化できないと言う話を聞いたことはあります。
195 名前:名無しさん@3周年 mailto:sage [04/01/07 23:07] 95へぇ〜
196 名前:名無しさん@3周年 [04/01/08 00:39] >>195 へぇ多すぎ(w >>193 の式をVC7でP4最適化すると、std::complex<int>で d = a*b*c;は40命令。その中に3回要らないmovが入ってる。 2回書き込み、1回読み込み。書き込みのうち1回は完全に捨て。 ヘェーヘェー。インテルコンパイラだとどうなんだろ。
197 名前:名無しさん@3周年 [04/01/08 01:14] 急報、 LINUXのANSI Cの標準関数である、 fminf, fmaxf, fmin, fmax, fminl, fmaxl が LINUXのcc あるいは gcc で -lm により数学関数ライブラリをくっつけて 実行ファイルを作ると、最大、最小の値が でたらめです。 fmin(2.2, 3.3) fmax(2.2, 3.3) の値などを出力してみれば分かります。 インテルのコンパイラ icc ではこのような問題はありません。 RedHat や Vine では確実におかしいです。 IA32, IA64, AMD-64 全ておかしいです。 おそらく libm.a が変なのでしょう。 追伸: IA32 では gcc , icc 共に、 long double は 12 バイトなのですが、 AMD-64では 16バイトになっているようです。これはバグではないけど、 煩わしい問題を将来起こしそうですね。
198 名前:名無しさん@3周年 mailto:sage [04/01/08 23:19] いい加減にfortranやめろや
199 名前:名無しさん@3周年 mailto:sage [04/01/09 00:34] >>190 Essential C++ は訳本がピアソンから出ているやつですか? エッセンシャルが付くタイトルが多いですね. Effective ... はアスキー,Efficient ... はピアソンですね. // 大学の図書館には入門のやつだけ無い...
200 名前:名無しさん@3周年 mailto:sage [04/01/09 03:42] complex<int>でいったい何するのよ?
201 名前:名無しさん@3周年 mailto:sage [04/01/09 04:03] >>200 Gauss の整数だね。
202 名前:名無しさん@3周年 mailto:sage [04/01/09 07:25] >>200 だってレジスタ少ないんだもん。
203 名前:名無しさん@3周年 [04/01/09 09:42] 数値計算ならFortran なぜなら累乗の計算に**が使えるから。 Cなんてかったるくてやってられません。
204 名前:名無しさん@3周年 [04/01/10 12:00] >>203 このスレでは, 「C++ でも注意して使えば速度を落とすことなく開発を早くできる」 ということになっているようです.つまり, C++ にすれば?
205 名前:183 mailto:sage [04/01/10 12:30] 正直、Cを使うくらいならFortranでもかまわないと思う CとC++の違いは f77とf90以上だよ
206 名前:名無しさん@3周年 [04/01/10 15:39] うむ。fortranは簡単だし。でも90がなければCかも
207 名前:iimono mailto:iimono@kyj.biglobe.ne.jp [04/01/10 15:49] 画像安定を目的として一般量販店でも売られている、 デジタルノイズキャンセラー(正規品)です。↓ www5f.biglobe.ne.jp/~iimono/ 9100円即決で、即日発送可能です。 ヤフーオークションでも大人気!!!↓ user.auctions.yahoo.co.jp/jp/user/otoku_iimono
208 名前:名無しさん@3周年 mailto:sage [04/01/10 21:17] >206 c++も初心者にやさしいよ。
209 名前:名無しさん@3周年 mailto:sage [04/01/10 21:38] >>205 F90 は許せるが F77 は許せない。 構造体が無いのは気が狂う(改変とデバッグと保守が大変)。
210 名前:名無しさん@3周年 mailto:sage [04/01/10 22:59] ベクトル一つ扱うのにも氏ぬる>構造体がない。 とりあえず演算子多重定義マンセーしとく
211 名前:名無しさん@3周年 [04/01/15 18:36] Windows使いですが、Linux入れないとF90のコンパイルできませんか? どうしてもF90使いたいんですけど。
212 名前:名無しさん@3周年 mailto:sage [04/01/15 20:10] >>211 コンパイラ買え。10万あればインテルからMKL付きで買える。
213 名前:名無しさん@3周年 [04/01/16 03:37] 10万なんて高すぎます。
214 名前:名無しさん@3周年 [04/01/17 14:33] linuxで次のCプログラムは動作しますね(not CPP) #include <tgmath.h> main() { complex z=1+2i; printf("%f+%fi\n", __real__ z, __imag__ z); printf("%f+%fi\n", __real__ exp(z), __imag__ exp(z)); return 0; }
215 名前:名無しさん@3周年 mailto:sage [04/01/17 15:42] C99 なら複素数型が許されてましてよ。 seclan.dll.jp/c99d/c99d06.htm#dt20000131
216 名前:名無しさん@3周年 [04/01/17 16:06] >>214 linux で,と言われましても, linux には数多くの C コンパイラがあるのです. tgmath.h って何よ,と思ったら /usr/include にありました (w しかも, 1.000000+2.000000i -1.131204+2.471727i と出ました.これって ISO 公認の C?
217 名前:名無しさん@3周年 [04/01/17 21:46] > 211 cygwin から cvs -q -z3 -d:pserver:anoncvs@sources.redhat.com:/cvs/gcc co -r tree-ssa-2002061 9-branch gcc を実行してgcc-3.5のCVSツリーを取ってきてMakeすると動作するかな? gfortran.
218 名前:名無しさん@3周年 [04/01/17 23:28] C99なんて使っている人いるんだね 年寄りには興味のないことだが
219 名前:名無しさん@3周年 [04/01/18 01:58] C99 か… ただ、Matrix とかVertorについても X * Y + B とか書きたいとかなると結局クラスと演算子の多重定義が必要になってくる。 型に応じていっぱい関数書くのが面倒になればtemplateが必要になるし… Cの機能を拡張すると結局C++になってしまうんじゃないのかな? Cを改良しても結局C以上、C++未満にしかならないように思うんだけど? C++をもっと簡単にとか言い出すとCSになってしまいそうだし。 gccがCSをサポートしたら俺も使ってみたい。使ったことないからなぁ。
220 名前:名無しさん@3周年 mailto:sage [04/01/18 02:10] D という道も...。 まだまだ作成途上で実用したいとは思わんが、 そのうち...どうだろうねぇ...。
221 名前:名無しさん@3周年 [04/01/18 13:34] StroustrupもC++が最低最悪の言語であることを認めてしまった ttp://hp.vector.co.jp/authors/VA000092/jokes/strup.html
222 名前:名無しさん@3周年 mailto:sage [04/01/18 17:11] >>221 またずいぶん古いネタをひっぱりだしてきたもんだな。
223 名前:名無しさん@3周年 [04/01/20 02:19] そのネタ知らなかったけど。 >オブジェクト指向プログラミングは非直感的で、不合理で、効率が悪いということを見て取れます。 確かにそう思うわ。 一見よさげに見えるけど。 安心して使えるクラスライブラリをこしらえることはCで書きなぐることに比べたら5倍は時間が必要なように思う。 自分だけがわかって使ってる分にはいいかもしれないけど。人に提供するようなクラスはちょっと作る自信ないな。 大体、他の言語と比べて注意点が多すぎる罠。 ちょっと使わないと忘れちゃうし。Over 1000ページだろStroustrup本。
224 名前:名無しさん@3周年 mailto:sage [04/01/20 05:45] で、どこを立て読みすればいいの?
225 名前:名無しさん@3周年 [04/01/20 07:16] おはマンコー!!\(・∀・)/ www.k-514.com/
226 名前:名無しさん@3周年 [04/01/21 01:01] クラスライブラリと暮らすかということは、 アメリカに住むか、フランスに住むか、日本に住むかなどと同様に、 総じて文化的な問題に似ている。 同じ問題を解決するのに、まったく異なるクラスライブラリを前提として 作ったもの同士は、それぞれの主張を持っており、用意に統合や協調 出来ない要因を孕んでしまう。最後は力関係で決まることになろう。 武力による粉争の解決はこれを永久に放棄する、と決心してみたところで 粉争が解決しないだけではあるまいか? 戦国時代のように、どれかが 天下を統一しないうちは平和の状態は実現しないのかもしれない。
227 名前:名無しさん@3周年 mailto:sage [04/01/21 14:54] だんだん、プログラム書いたことの無い奴の発言が増えてきたな
228 名前:名無しさん@3周年 mailto:sage [04/01/21 21:01] >223 stlやboostはものすごく便利だと思うんですけど。 提供されるライブラリは使うだけ使っといて、それ以外(自分自身のコーディングスタイル)はbetter cとかじゃ駄目?
229 名前:名無しさん@3周年 [04/01/22 03:24] STLってそんなに便利?俺がいいと思ったのはbitset クラスぐらいかな? リスト構造とかって昔からCいじってた奴は大概自分で作った雛形とか持ってるんだよね。 テンプレートがなかったCだと格納するデータ型の部分をエディタで直接書き直したりしてたかもしれないけど。 vector にしても valarray にしても別になくてもいいものをたくさんこさえてくれた感じ。 ただ、純粋なC文法では既にソース書いてないよ。拡張子は.cc
230 名前:名無しさん@3周年 mailto:sage [04/01/22 06:40] STL を使った方が、他の人が読みやすいというのはある。 あと、自分のクラスライブラリを持ってこなくても使えるし。
231 名前:名無しさん@3周年 mailto:sage [04/01/22 16:08] Cっていうのはハードウェアが見えたところが良かったんだけど、 C++はそれを隠蔽する方向なのが気に入らない。ハードウェアを無視しちゃまともな ソフトにならないでしょ?ハードを動かす手順がソフトなのに。 でも、 Matrix<complex<double>> X, Y, Z Z = X * X +Y; って書けるのは大好きだったりする。ダイナミックキャストも遊びで 使ってる分には面白い。
232 名前:名無しさん@3周年 mailto:sage [04/01/22 20:12] 本当に C++ を使ってるのかと小一時間...。 C# ならそういうところもあるけどさ。
233 名前:名無しさん@3周年 mailto:sage [04/01/22 21:17] >ハードウェアを無視しちゃ 何のためのBLAS,やLAPACKなのかと。 今ならATLASみたいなのだってあるし…… それに、c++が隠蔽するんじゃなくて、OOPが隠蔽するんでしょ。 実装部分では性能重視にいけるのが純粋なOOPLではないc++の強み。 でも二重ディスパッチが用意されてないのでちょっと寂しい……
234 名前:名無しさん@3周年 mailto:sage [04/01/22 23:26] >本当に C++ を使ってるのかと小一時間...。 何言ってる?ダイナミックキャストのことか?コンパイル時点で 決まってしまうアップキャストなんて、所詮はif で条件判断書くのと同じだろ? if分で条件判断するよりseich case使いましょってのと大差ないだろうが。 しょせん人間の見た目の違いだけ。 実行速度求めるならベクタテーブル作るべきだし、実行時に型を決めて動作する なんてのはCではなかなか実現しにくいからおもちゃとして動かすのは面白いって 言ってんだよ。 >何のためのBLAS,やLAPACKなのかと。 >今ならATLASみたいなのだってあるし…… ATLASは単にBLASからSSEコールするだけの仕組みでしょ? BLASやLAPACKなんてFORTRANのライブラリであって、FORTRANから ハードウェアを見通せるなんて尋常じゃないな。FORTRANのコード見て アセンブリコード見えるか?俺にはCの方がよっぽどアセンブラコードを イメージできる。 例えばもともと計算機がもってるデータ型 char. int, double をできるだけ隠蔽しようとするポリシーがC++にはあるってこと。 OOPじゃないよ。
235 名前:名無しさん@3周年 mailto:sage [04/01/22 23:36] >>233 ストラウストラップのP949 L2あたり見てみ。 組み込み配列は出来るだけ避けて、STL使えってのがC++の方向性。 俺は、数値計算やるうえでSTLの必要性は全く感じてないし、配列の要素アクセスは 出来る限りポインタのインクリメント/デクリメントでやらなきゃ気持ち悪い。
236 名前:名無しさん@3周年 mailto:sage [04/01/23 00:06] >>234 >if分で条件判断するよりseich case使いましょ フラグによる分岐と状態変数による遷移とでは意味が違うのですが。 そこを見た目の違いだけと言ってしまうセンスは頂けない気がします。 >FORTRANのコード見てアセンブリコード見えるか? 大体分かると思うのですが?メモリのアロケーションとかもちゃんとしてるし。 Cみたいに演算順序がテキトーなのよりずっとましだと思うのですが? コンパイラオプション付けりゃええじゃんと言われればそれまでだけど。 でも私も>>234 さんのようにC++はおもちゃ感覚でしか使ってないんですけどね(汗 ただ数値計算においても規模と環境によってはSTLの必要性が十分あると思います。
237 名前:名無しさん@3周年 mailto:sage [04/01/23 00:19] >>236 > ただ数値計算においても規模と環境によってはSTLの必要性が十分あると思います。 ちなみに、>>236 さんはどのような場合に必要性があるとお考えでしょうか? 私はやっつけで書くときにSTLをよく使っています。頭で考えたデータ構造がそのまま使えることが多いので。 で、規模がでかくなってくると計算時間との兼ね合いで結局Fortranで書いてもC/C++で書いてもたいしてかわらん記述になることが多いです。
238 名前:名無しさん@3周年 mailto:sage [04/01/23 00:28] >>234 >本当に C++ を使ってるのかと小一時間...。 ハードの隠蔽の話だよ。 ハードを叩く必要があれば別に C++ だろうと直接叩ける。 直接叩かずハードを隠蔽したクラスを使うとか言っても、 そのクラスを作るときにはハードを直接叩くし、 C でハードを隠蔽したライブラリを使うのと大差ない。 仮想関数をハード的に呼び出すのはちょい難しいけど、 メンバ変数へのアクセスや仮想でないメンバ関数の呼び出し程度なら 簡単にできることも多い。 速度を最高にチューンするのが目的としても、 それなりの組み方ができる。 C++ は better C としても使えるのだから。 あと、必要のない場面でそういう組み方をするのは無駄。 最適化の性能まで要求するのなら、そこでだけ C や Fortran を使って、 速度の必要のないところは C++ を使えばいい。 > コンパイル時点で決まってしまうアップキャストなんて、 > 所詮はif で条件判断書くのと同じだろ? 確かに条件判定書くのと処理的には同じだが、 変更を加えたり拡張したりした際に そのメソッドを使う側で一切の変更を必要としないというのが どれほど重要なことか分かってるのだろうか。 実行速度を求めるのではなく、 安全性、保守性、拡張性を求めているのだ。 > おもちゃとして動かすのは面白いって言ってんだよ。 まぁ、おもちゃとしては面白いけどね。>ダウンキャスト ただ、ダウンキャストが必要なコードは可能な限り避けるよう 心がけた方が安全なコードが書ける。
239 名前:名無しさん@3周年 mailto:sage [04/01/23 00:30] >STLの必要性 ・数値計算を実行したいが数値計算処理だけが目的ではない場面 ・これから他人の手が入ることが想像され、そして高速化について辛辣でない場面 ・教育の場面 大体こんなところではないでしょうか? 要は保守性と性能とのトレードになると思うのですが、 研究機関だと材料系などでは二つ目の状況が多発してると思います。 (うちの大学だけかもしれません。その場合はすいません。 処理部分は数分から数十分程度なので、それよりもデータのフォーマットや管理が大切になります。 必然的に安心して手軽に実装したいわけです。 学生も二三年周期で変わりますし、可読性は重要です。 こういう場面では優秀な人がポインタ使って高速なコード書いても、 部分的に処理を変更する際など大変な労力が生まれます。
240 名前:239 mailto:sage [04/01/23 00:36] あまり考えずに書いてしまいましたが、 "ポインタ使って高速なコード書く云々"ってアレな表現ですね。 けど大体トラブルが発生するのはその辺りで、 関係ない人(私含む)がヘルプに走る事態になるので、 そのうっぷんがこういう表現を生み出す要因だったりします(w
241 名前:名無しさん@3周年 mailto:sage [04/01/23 01:11] 234の眼前でおもむろに「部分最適化」と呟いたら顔真っ赤にして怒り出しそう
242 名前:名無しさん@3周年 mailto:sage [04/01/23 01:26] >最適化の性能まで要求するのなら、そこでだけ C や Fortran を使って、 >速度の必要のないところは C++ を使えばいい。 実際これをやろうとしてもなかなかできないだろ? friend 関数作って中で他言語のサブルーチンコールするか、 private メンバ使わないようにするとかだろ? 俺は実際、liboctave 使うことはあっても、FORTRANライブラリのblasを Cから直接コールしたことなんかないんだけど、 FORTRANサブルーチンっていうのはCの関数とは引数並びが逆順になるんじゃないの? >そのメソッドを使う側で一切の変更を必要としないというのが >どれほど重要なことか分かってるのだろうか。 表面的にはスマートな拡張とか再利用とかいうのが理想であっても、 実情はそうじゃないことが多いだろ? 逆に言うと、変更したことがソースを見てもわからない-> 結局バグの温床になるってことが多いような気がする。 ストラウストラップの96年のインタビューがジョークなのか本気なのかも一つ よくわからないけど、コードの再利用っていうのを続けていくとどっかで、もう わけがわからなくなって結局リセットってならない?逆に言えばそういう作業が あるから飯のネタになるんだろうけどね。
243 名前:名無しさん@3周年 mailto:sage [04/01/23 01:43] > 実際これをやろうとしてもなかなかできないだろ? やってるけど? 行列クラス作って、 対角化とか特異値分解とかでは LAPACK のルーチン呼んでる。 friend 関数やら private メンバやらがどう必要になるのかは理解できない。 > FORTRANサブルーチンっていうのはCの関数とは引数並びが逆順になるんじゃないの? 厳密に言えばコンパイラ依存なんだろうけど、実際には逆順になることはないだろう。 両方ともプロトタイプを必要としない言語だから(C では限定的に)、 両方とも可変長引数の場合と同じ順番で引数を渡す必要がある筈。 実際、逆になってるのは見たことないしね。 多次元配列の添え字は逆順だけどな。 > コードの再利用っていうのを続けていくとどっかで、 > もうわけがわからなくなって結局リセットってならない? 検証範囲が限られるので、むしろチェックは楽。 単体テストもできるし。 再利用しなかったら、全部検証しなきゃいけなくなる。 死ぬ。
244 名前:名無しさん@3周年 mailto:sage [04/01/23 01:44] >private メンバ使わないようにするとかだろ? こうしないとprivateメンバにアクセスできないからって意味。最適化するには こういうメンバにアクセスする必要があるだろうから。 ところで、研究用にC++使うのって実際どのくらい効率いいのかかなり疑ってるんだけどね? クラス使うにはそれなりの分析と設計が必要だけど、海のものとも山のものともわからない 研究用のコードだとそれが障害になってない?Cだとすぐに書きなぐれるところをC++つかうとクラスいじりに あーだこーだ余計な時間ばっかり費やしているような気がしてる。ストラウスとラップのインタビュー読んで、 自分が懐疑的に思ってたことがほとんど書かれててので思いっきり納得してしまったんだけどね。
245 名前:名無しさん@3周年 mailto:sage [04/01/23 01:55] >厳密に言えばコンパイラ依存なんだろうけど、実際には逆順になることはないだろう。 まぁ実際やってるんだから間違いないだろうね。前にFORTRANライブラリコールの手順を説明した サイトがあったのでそれ読んで嫌になってやめた。 >多次元配列の添え字は逆順だけどな。 これもあきらめた大きな理由。 >対角化とか特異値分解とかでは LAPACK のルーチン呼んでる。 対角化、LU/UDあたりだけなら直截Cで組んでも知れてるよ。 >再利用しなかったら、全部検証しなきゃいけなくなる。 いやそういう意味じゃなくて、新たなクラス追加してアップキャストのお世話に なる場面ってそんなにある?数値計算ならなおさら。
246 名前:名無しさん@3周年 mailto:sage [04/01/23 01:55] > こうしないとprivateメンバにアクセスできないからって意味。 何となく分かった。 確かに場合によっちゃ必要かな。 > 研究用のコードだとそれが障害になってない? なってない。 複数の手法を試してみたいときにポリモーフィズムが便利だし、 書きなぐりたければ better C として使えばいい。 C より便利な標準ライブラリも多いし。 どれだけ真面目に設計するかは時間とのトレードオフで決める。 どの言語で組んでも設計まずけりゃ つまるのは同じ。 まぁ、その言語に慣れてないとまずい設計しやすいだろうけどね。
247 名前:名無しさん@3周年 mailto:sage [04/01/23 02:11] > いやそういう意味じゃなくて、新たなクラス追加してアップキャストのお世話に > なる場面ってそんなにある?数値計算ならなおさら。 継承が必要じゃないなら使わなければいい。 まぁ、そのときはダウンキャストも必要ないだろうけど。 継承は、それが必要になるから使うのであって、 OOP 言語を使ってるからって無理矢理使うものではない。 例えば四元数クラスは継承を必要としないだろうけど (三次元ベクトルクラスを内包はするかもしれないけど)、 継承してないから存在意義がないってことはないでしょ? 構造体でもいいとか言おうものなら、 すぐさまアクセス制限とか演算子オーバーロードとかどうするよ、と反論するだろう。 あと、継承を使う場面はある。 数値計算それ自体にもそれなりに使ってるし、 そのプログラムを利用するためのインターフェイス部分ではもっと使う。 > 対角化、LU/UDあたりだけなら直截Cで組んでも知れてるよ。 数値誤差の軽減を考えると意外と面倒い。 それに、車輪の再発明はタルい。
248 名前:名無しさん@3周年 mailto:sage [04/01/23 02:17] 使いこなせる自信がない言語は 本番では使わないのが無難ダ。
249 名前:名無しさん@3周年 mailto:sage [04/01/23 02:54] >複数の手法を試してみたいときにポリモーフィズムが便利だし、 ホントに便利か?新たなクラスを起こすだけで大変だし。 一つのクラス起こすだけで本質的じゃない関数をいっぱい作らなきゃならん。 コンパイラオプションの#ifdef 使った方がよっぽど便利だろ? 構 >造体でもいいとか言おうものなら、 >すぐさまアクセス制限とか演算子オーバーロードとかどうするよ、と反論するだろう。 いや、書きなぐり、実験にはprivateが滅茶苦茶邪魔だろ?マジで俺のコードからprivate 指定を無くしてしまおうかと思ってる。これが無駄作業の第一要因だとつくづく思うよ。 MSの方は結局、生産と保守効率考えてあまり望ましいと思わなかったからC#用意したんだろ? Sunとのからみももちろんあるだろうけど。 まぁ俺のレスにコメントするより、ストラウストラップのインタビューみてどうよ。 俺はこれはかなり同意できる。
250 名前:名無しさん@3周年 mailto:sage [04/01/23 09:11] > ホントに便利か?新たなクラスを起こすだけで大変だし。 別に大変じゃない。書きなぐるなら、コピペしてちょっと変えるだけでいいし。 > 一つのクラス起こすだけで本質的じゃない関数をいっぱい作らなきゃならん。 そんなにいっぱいは作る必要はないと思うけど。 1つのクラスに何でも詰め込みすぎてない? でも、C# みたいにプロパティが欲しいときはあるね。 > コンパイラオプションの#ifdef 使った方がよっぽど便利だろ? 手法切り替えるたびに毎回コンパイルするのは苦痛以外の何者でもない。 コマンドラインやインプットファイルで切り替えられるようにするのがスマート。 コマンドラインの解析も、コマンドライン解析クラスを作ってるので楽チン。 > いや、書きなぐり、実験にはprivateが滅茶苦茶邪魔だろ? あんたのコードは全部書きなぐりなのか? 何で書きなぐりのときしか考えないのか理解できん。 あと、場合によっては C++ 以外の言語(例えば Ruby とか)も使うね。 ケースバイケースで言語や組み方を変えれば何も問題ない。 > マジで俺のコードから private 指定を無くしてしまおうかと思ってる。 そんなコードは保守したくないが、 デフォルトで public にしたいのなら class じゃなくて struct を使えばいい。 > MSの方は結局、生産と保守効率考えてあまり望ましいと思わなかったからC#用意したんだろ? よりオブジェクト指向が進んだ、ハードも叩きにくい C# は あんたにとってはむしろ悪なんじゃないのか? 俺は C++ より C# の方が文法的に好きだけど、そりゃ後発言語だから当然やね。 ver 2.0 になって generic とイテレータが入ればかなり満足。 ネイティヴコンパイラでないから、速度が必要なやつには使えないけど。 > まぁ俺のレスにコメントするより、ストラウストラップのインタビューみてどうよ。 ネタにマジレスしても仕方ないでしょが...。まぁ、C++ に対する不満は沢山あるけどね。
251 名前:名無しさん@3周年 [04/01/23 14:24] >数値誤差の軽減を考えると意外と面倒い。 それに、車輪の再発明はタルい。 車輪である最も重要な部分を自分じゃ工夫も出来ず。末端のインターフェース実装だけのプログラム遊びやっただけで卒論をでっち上げたと正直に言え。 日本の将来も暗いねぇ。
252 名前:名無しさん@3周年 mailto:sage [04/01/23 15:23] 車輪の再発明って言葉知らないの?
253 名前:名無しさん@3周年 mailto:sage [04/01/23 16:06] Bless you !
254 名前:名無しさん@3周年 [04/01/23 18:31] 数値計算を全くやったことがなく、これから初めて取り組むって人に 最適な言語ってやっぱりフォートラン? とっつきやすさとか、将来性とかも含めての話だけど。
255 名前:名無しさん@3周年 mailto:sage [04/01/23 18:46] CとかC++とかでいいんじゃねーの
256 名前:名無しさん@3周年 mailto:sage [04/01/23 19:48] >数値計算を全くやったことがなく、これから初めて取り組むって人に fortarnは間違いなく最悪の選択。 こんなものは過去のしがらみにとらわれた老人達の為に残されているだけだからな
257 名前:名無しさん@3周年 mailto:sage [04/01/23 19:49] たいぽ_| ̄|〇
258 名前:254 [04/01/23 20:43] Fortranは最悪の選択なんすか?! 科学技術計算といえばfortranって思いこんでたんですが。。 Fortran90でもオススメできないですか? Cはともかく、C++は入門書をちょっとみたら凄く難しそうでした。
259 名前:名無しさん@3周年 mailto:sage [04/01/23 21:00] Cの方が辛いと思うが ああ、複素数が標準になったんだっけ?
260 名前:名無しさん@3周年 mailto:sage [04/01/23 21:39] 科学技術計算ならPrologが最高だ。
261 名前:名無しさん@3周年 mailto:sage [04/01/23 21:48] 時代はまさにVBだろ
262 名前:名無しさん@3周年 mailto:sage [04/01/23 22:21] Haskell だろ?
263 名前:名無しさん@3周年 mailto:sage [04/01/23 22:37] C やってたら Fortran は鼻糞ほじりながらでも覚えられるので、 C やりつつ、他の人のソース読むためにでも Fortran を覚えるのがええんでない?
264 名前:名無しさん@3周年 mailto:sage [04/01/23 23:26] まあ漏れは今まさに鼻糞ほじっている訳だが(苦笑
265 名前:名無しさん@3周年 mailto:sage [04/01/23 23:37] >数値計算を全くやったことがなく、これから初めて取り組むって人に Javaとかでプログラムの基礎を勉強して なれたらC++に移行 正直、Fortranは化石 万が一数値計算で一生食っていくような身分にでもならない限り 使う機会はやってこない また、Fortran使う機会が来ても他の言語を知っていれば 1週間でマスターできる。
266 名前:名無しさん@3周年 [04/01/24 02:21] >>265 しかし、研究室単位で全員フォートランということも珍しくないからなぁ・・ まあ教官がフォートランしか知らないからって理由が大きいんだろうけど。 物理の理論系では大半がフォートランだね。
267 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
268 名前:名無しさん@3周年 mailto:sage [04/01/24 10:25] >266 そういうのは出戻りの若い助手などが積極的に研究室を変えていかないとなぁ 講義・演習だって今時はc++/Javaとか数値計算関係ならmatlabみたいなのに移ってるぽだし ウチも研究室入りしたらfortranをやることになって大量のcommon文と同じく大量かつ適当な行番号を 振られたdoループの山に泣いた。
269 名前:名無しさん@3周年 mailto:sage [04/01/24 11:16] common 無かったら無かったで、 今度は引数が肥大するんだよなぁ。 とにかく FORTRAN は死滅すべし、と。 Fortran なら許せるが。
270 名前:名無しさん@3周年 mailto:sage [04/01/24 11:29] fortranってプログラムを構造化したときに、サブルーチン呼び出し時のオーバーヘッドってどうなるの? コンパイラが最適化してくれるの?c++みたいなinlineキーワードが処理系依存か何かであるのかな?
271 名前:名無しさん@3周年 mailto:sage [04/01/24 21:31] Javaの講義ねぇ?どうせ時代に媚びるのが好きなしょーもない大学だろ? あんなもんを大学の講義に取り入れるなんて。学校のレベルがわかるねぇ。 matlab にしても単なるblasのwrapperだろうが。
272 名前:名無しさん@3周年 mailto:sage [04/01/24 22:03] うちの大学は文系の学部でrubyの講義をやって 理学部ではFortranかCの選択だぞ。 入門用の講義ならrubyの方がずっといいと思う。
273 名前:名無しさん@3周年 [04/01/25 00:22] COMMONが嫌なら,MODULEを使えばいいんだよ. FORTRAN90を勉強してね.
274 名前:名無しさん@3周年 [04/01/25 20:59] 日本人拉致事件についての川口外相の演説に対し、昨年9月24日の国連総会で北朝鮮代表は、「日本は 朝鮮半島占領時代に840万人を強制連行し、筆舌に尽くしがたい被害を与えた。たった数人の拉致被害者の 死とは比べものにならない」と反論した。拉致という犯罪を、ありもしない「強制連行」で帳消しにしようという たくらみである。 ところが、最近になって、この北朝鮮の宣伝に呼応するかのような動きが日本国内に現れた。驚くなかれ、 大学入試センター試験の問題としてである。1月17日に行なわれた世界史の試験で、「日本統治下の朝鮮」 に関連して次の中から正しいものを一つだけ選ばせる問題(第一問の問5)が出題された。 〈@朝鮮総督府が置かれ、初代総督として伊藤博文が就任した A朝鮮は、日本が明治維新以降初めて獲得 した海外領土であった B日本による併合と同時に、創始改名が実施されたC第二次世界大戦中、日本への 強制連行が行われた〉 正解はCとされる。しかし、これは極めて不公正で不適切な問題である。まず、@からCまでの文中に登場 する用語のうち、「朝鮮総督府」や「創始改名」は、当時もその言葉が使われており歴史的事実に属するが、 「強制連行」は次元が異なる。「強制連行」は政治的な糾弾の機能を担う造語であり、その語の使用者による 歴史の解釈を示す用語であって、歴史の事実を指し示す言葉ではない。 日本政府は徴兵による戦時中の労働力不足を補うため、「国民徴用令」によって工場などに労働力を動員 したが、朝鮮半島についても、1944年9月から徴用が実施された。当時は朝鮮半島の人々も日本人であり、 徴用は日本人に平等に課せられた、国家による合法的な行為であった。だから、Cを「第二次世界大戦中、 日本本土へ徴用された」とすれば、それは歴史的事実を述べたものであり、設問として何の問題もない。 では、「強制連行」という言葉はいつから使われたのか。鄭大均氏によれば、1965年に出版された朴慶植著 『朝鮮人強制連行の記録』の影響である(『中央公論』2002年12月号)。しかし、「徴用」を「強制連行」 とするのは不当な言い換えであり、虚構である。 nitiroku.hp.infoseek.co.jp/cgi-bin/i-nikki.cgi
275 名前:名無しさん@3周年 mailto:sage [04/01/26 01:30] 初めてこのスレ覗いたけど面白い議論してるね。 OOと数値計算の最適化の融合ってあたりは漏れもすごい興味ある。 現在のところはC++がこれを高いレベルで達成できる言語だと思ってるけど。 まぁ、PCでちまちまやってる人間だからベクトライズのベの字も知らないんだけどねw OOに従ってやってると、最初は「こんなんで開発効率上がってるのか?」って 疑問に思ってたけど、まぁ慣れてくるとそれなりにOOの意義ってモノが見えてくる。 そこまでに時間がかかりすぎるのが難点だけど。 OOが本質的に効いてくるのはバグフィックス・保守・改良・試験・再利用といった どちらかといえば開発の影の部分だからなおさら意義が見えにくい。 しかし、こういうのこそ長期的に利用・改良・試験され、信頼性が要求される 数値計算に必要なものだと漏れは思っているんだけどね。
276 名前:名無しさん@3周年 mailto:sage [04/01/26 01:31] それからOOによるカプセル化と(データを直接取り扱うという意味で) 低レベルな最適化がバッティングするのは漏れもよく経験するけど、 そういうときは漏れはデータを直接取り扱うfriendな関数オブジェクトなりを作って 回避することが多いな。もう少しスマートなやり方があったら教えて( ゚д゚)ホスィ… STLに関しては、確かに詰まった最適化を求めようとするには不満だけど、 それならより最適な解を自分で作ってしまえば良い訳で、そういうときにこそ STL自体ではなくその枠組みであるgeneric programmingが生きてくると思うよ。 STLの要求定義に合わせた形で自分のを作っておけば、部品の取替えが簡単にできてしまうからね。 再利用について、より効率的にやろうとするにはやはりある程度まとまった人数、 例えば研究室なら研究室単位で意識改革をやる必要があるだろうね。 自分があるソースを再利用したいと思う条件として、 「他の誰かがそのコードを再利用した経験がある」というのを、 どこぞのハゲオヤジが挙げてたよ。まずは一人でも良いから 自分のコードを使ってもらうってところからはじめないとな。 漏れも今度研究室で呼びかけてみるかなぁ・・・
277 名前:名無しさん@3周年 mailto:sage [04/01/26 01:37] とまぁ、つらつら書いたわけだけど・・・ 本体のコーディングが労力1だとしたときに、 要求定義、クラス機能・関係の洗い出し、テストケース書き出し、クラス書き起こしと 予備段階で労力10は費やしてたりして、 これって本当に効率的なのかやっぱり疑問は残るわなw
278 名前:名無しさん@3周年 mailto:sage [04/01/26 04:20] クラスを使わないときと比較しなきゃ。
279 名前:名無しさん@3周年 [04/01/26 21:09] ぬぁんだ拉致事件に興味持ってるんじゃないのくぁ。
280 名前:名無しさん@3周年 [04/01/26 21:29] 数値計算でなくてもOOがホントに生産効率が高いかどうか疑問が残るよ。
281 名前:名無しさん@3周年 mailto:sage [04/01/26 21:40] 設計が下手な人に,無難な解を与えてくれるのが STL. これからは Lisp が数値計算界のメジャーになります.( ̄ー ̄)ニヤリッ 型指定もできるよ.
282 名前:名無しさん@3周年 mailto:sage [04/01/26 21:44] >280 エンドユーザーとしては便利だけど。
283 名前:名無しさん@3周年 mailto:sage [04/01/26 23:57] > 数値計算でなくてもOOがホントに生産効率が高いかどうか疑問が残るよ。 こういう人っていまだにいるんだよねぇ 素人じゃないんだからさぁ
284 名前:名無しさん@3周年 mailto:sage [04/01/27 01:01] 普通だったら、cにしがみつく香具師を 「fortranがあれば何でも出来ますが何か?」 とか二言目には言う化石になぞらえて揶揄するところなのだが、 この板では生きてる化石がホントに存在するからのう……
285 名前:名無しさん@3周年 mailto:sage [04/01/27 01:13] >>284 このスレ的には、数値計算に関してはFortranがCに劣っているとは言えないという 見解で一致してるのかと思ってましたが。
286 名前:名無しさん@3周年 mailto:sage [04/01/27 04:23] で、FORTRAN77 は糞、と。
287 名前:名無しさん@3周年 [04/01/27 07:29] ひょいと思い出してしまいました。 c2f ってのがありましたね. C -> F90 へのソーストランスレータ。 vector processorへの移植したいという学生に紹介した覚えが…
288 名前:名無しさん@3周年 mailto:sage [04/01/27 07:36] 本物のプログラマは Fortran を使う。
289 名前:名無しさん@3周年 [04/01/27 08:29] そもそも、CでもFortranでも、自分自身で1から書くのであれば、 自分の使い勝手のいい方を使えばいい。(数値計算は少しのミスが 命取りになる、デバッグできないなら意味がない) しかし、Fortranは古臭いからCを使いますと、宣言して一人いきまいている 学生ほど、卒論・修論の提出間際になってプログラミングは済みましたが、 うまく動きません?どうしてでしょう?なんで馬鹿なことを言ってくる。 人のもの当てにするのなら、文句を言わずにはじめから両方覚えろ。
290 名前:名無しさん@3周年 mailto:sage [04/01/27 08:39] 本当にそういう人が多いのか ちゃんと統計とったことがあるのだろうか。 また、そういう人が Fortran を使った場合にも 本当にちゃんと動くプログラムを提出できるのだろうか。
291 名前:名無しさん@3周年 mailto:sage [04/01/27 09:24] >>290 フランス人の中で、私は日本人だし、日本語の方が上手いので、日本語で 論文を書きますといって、すべて日本語で書いて、なにか上手くいきませんから 内容をチェックしてくださいといっても、しらんといわれるだけ。 多少下手でもフランス語で書いとけば周りがサポートしてくれるから、救われる 可能性が高いでしょう。 Fortranの遺物は依然大きいということ。ただし、すべて自分でやるなら、 問題なし。
292 名前:名無しさん@3周年 [04/01/27 10:28] F2CでフォートランからCにかえちぇえばいいわけで、フォートランだけでも十分な気はしなくもない。
293 名前:名無しさん@3周年 mailto:sage [04/01/27 12:42] 何万回も呼び出す関数はstaticにしないと呼び出すたびにメモリ確保しようとしてオーバヘッドできるじゃない? シングルスレッドだとstaticで解決なんだけどマルチスレッド(2CPUで並列)したいときにstaticだとメモリが関数1つ分 確保されてるだけなのでメモリアクセスの排他制御とかがややこしくなるよね。 だから関数と確保するメモリとかをclassでまとめてしまってそのクラスを2つ確保してスレッド1つにオブジェクト1つ というようにしようとしてるんだけどもっとマシな解決方法ないかな(^^; (MPIで1ノードに2プロセス走らせてもいいけど通信のオーバヘッドを減らしたいのでスレッドを使いたい)
294 名前:名無しさん@3周年 mailto:sage [04/01/27 17:34] >>293 私なら,スレッドもオブジェクトにしてしまいますね.
295 名前:名無しさん@3周年 mailto:sage [04/01/28 00:26] スタック上でのメモリ確保自体は非常にオーバーヘッドが小さいので 数万回程度では問題にならないと思われ。
296 名前:名無しさん@3周年 mailto:sage [04/01/28 08:18] ちゃんと時間計ってみてる? そんな最終手段なところよりも、 先に最適化するところが別にあるんでないケ?
297 名前:名無しさん@3周年 [04/01/28 18:30] >データを直接取り扱うfriendな関数オブジェクトなりを作って >回避することが多いな。もう少しスマートなやり方があったら教えて( ゚д゚)ホスィ… 例えばMatrixクラスを作って、数値演算しようとして、 どうしても元のMatrixクラスのプライベートメンバである配列データそのものをいじりたい時、 どうしてもっていうのはやっぱり速度。 せっかく完成したと思ってるMatrixクラスに エディタで friend XXX と追記するのが滅茶苦茶抵抗があるよな。なんとかもっとスマートなやり方ないのか俺も知りたいよ。
298 名前:名無しさん@3周年 mailto:sage [04/01/28 22:04] >>297 別にデータの先頭のアドレスさえ分かれば いくらでも配列そのものをいじれるけどな。 どうせ &m[0][0] みたいにすれば取得できるんだし、 データの先頭アドレスを返すメソッド作りゃぁええやろ。
299 名前:名無しさん@3周年 [04/01/28 22:16] >>&m[0][0] こんなアドレンシッグだと乗算実行する羽目になるだろうが?そんなこともわからんかね? 勉強しなおして来い。
300 名前:名無しさん@3周年 [04/01/28 22:40] 本人は科学技術計算してるつもりでも、単なるC++で遊んでることに気がつかない奴が居るんだよ。 どういうアセンブリコードに展開されるか全く理解してない典型だな。
301 名前:名無しさん@3周年 mailto:sage [04/01/29 00:28] そんなもんインライン+最適化でどうにでもなる。
302 名前:名無しさん@3周年 mailto:sage [04/01/29 00:32] 一度取得すればいいだけなので大抵の場合は無視できるオーバーヘッドだし、 何よりデータの先頭アドレスを返すメソッド作ればどうにでもなることだ。 そもそもここで言いたかったのは 元々隠蔽されてないデータだから、 取得できる関数を作ったところで問題ないよということだ。 相手の言いたいことの真意も汲めないのかよ、全く...。
303 名前:名無しさん@3周年 mailto:sage [04/01/29 02:30] >>299 コンパイラによって最適化された実行コードでも、この演算は乗算を使うんですか?
304 名前:名無しさん@3周年 mailto:sage [04/01/29 11:00] コンパイラのソースも読んだことがない厨ですみません. 科学技術計算をやるには,アセンブリコードまで意識しないと困る場面が 多々あるということなのでしょうか. 自分が使用するコンパイラが出すアセンブリコードの性質くらいは 熟知していないと,本物にはなれないのですね. うーーん.やることがいっぱい _| ̄|○
305 名前:名無しさん@3周年 mailto:sage [04/01/29 11:38] 301が正解 get(i,j) 経由でも速度は落ちない。 ちゃんと両バージョンの速度を測ってから出直しなさい 302がもっと正解 密Matrixの実データを隠蔽することにはまったく意味が無い オブジェクト指向本の説明を鵜呑みにしないこと こんなマヌケがいるからオブジェクト導入すると速度が落ちるとか 勘違いする奴が増えるんだよ
306 名前:名無しさん@3周年 mailto:sage [04/01/29 12:01] 漏れが勘違いしてるのかもしれないけど、299が言いたいのは double& get(size_t i, size_t j){ return val[N * i + j];} で、乗算が必要になってしまうということじゃないの?(こういうインタフェイスを提供する以上は) それよりは、例えば列(行?)方向のiterationでは for(i = j; i < N*N; i += N){ m.val[i] = ...; } というように、データを(1次元の配列で)直接見せた方が 圧倒的に速いコードが組めるということではないの?
307 名前:名無しさん@3周年 [04/01/29 12:41] >>一度取得すればいいだけなので大抵の場合は無視できるオーバーヘッドだし、 いなぁ学生は、"大抵の場合"はだるいコード書いてもそれで許されて。 >>305 お前ホントに痛いな!頭の中にしかない2次元配列を物理メモリ上にマッピングして いきなりdata[i][j]というアドレッシングで乗算を必要としないコンパイラがあるなら紹介してみろ。 行列一つずつの要素にアクセスするたびに乗算を必要とするか否かでどれだけ速度が違って くるか考えたことあるのか? 糞ガキは出直して来い。 >>306 正解
308 名前:名無しさん@3周年 [04/01/29 12:51] >>306 強いていうなら行方向の連続アクセスは極力避けて列方向アクセスに出来るように並べ替えておくことだな。 可能であればの話。 pval = val+j; for(i=j; i < N*N; i++){ *pval++ =... ; } ループカウンタをインデックスとせず、ポインタインクリメントとするのが最も速いな。データ移動と同時に インクリメント計算できるCPUも多いからな。
309 名前:名無しさん@3周年 [04/01/29 13:04] for() の部分は for( i = N*N-j; i>0; i--) としておけば完璧。CPUは0と比較する命令は持ってる。 ただこれはオプティマイザが最適化してくれる。 >>305 >オブジェクト導入すると速度が落ちるとか >勘違いする奴が増えるんだよ 必ず速度は落ちる。
310 名前:名無しさん@3周年 mailto:sage [04/01/29 14:35] >307-309 まぁ,私も学部のときに行列積の最適化の課題で298と同じことをして 最適化云々以前の問題だったという苦い経験しましたからねぇw 列だけを複数回舐めるような演算では,あらかじめ空間を転置したほうが 恐らく良いでしょうね.そのほうが他の最適化も効くでしょうし. >必ず速度は落ちる さすがに「必ず」ってのには賛同しかねますけどね.まぁ,ほとんどの場合落ちますけど. 速度低下もそうですが,上のように真の操作とそのコストが隠蔽されるために, まったく意図しないオーバーヘッドが発生するってことが 数値計算におけるオブジェクト指向の大きな弊害だと感じますね.
311 名前:名無しさん@3周年 mailto:sage [04/01/29 15:49] > 307 get(i,j)を書いても不要な乗算は最適化される。 もちろん、コンパイラがタコな場合は話が別。 307のコードが行列にアクセスするパターンに特徴があって うまく最適化してくれないんなら話は別だが それでもたいがいget_row_slice(i)さえ書いておけばどうにかなる。 iccの出力結果、ちゃんとmul命令無しでコンパイルされる。 ;;; for (i=0; i<SIZE; ++i) ;;; for (j=0; j<SIZE; ++j) ;;; {
312 名前:名無しさん@3周年 mailto:sage [04/01/29 15:49] ;;; dat[i][j] = dat[i][j]+1.0; fld QWORD PTR _2il0floatpacket.1 ;26.16 xor ecx, ecx ;26.16 ; LOE ecx ebp esi edi f5 .B1.6: ; Preds .B1.8 .B1.5 mov eax, ecx ;24.8 lea edx, DWORD PTR [ecxM] ;24.8 ; LOE eax edx ecx ebp esi edi f5 .B1.7: ; Preds .B1.7 .B1.6 jmp .L1 ; Prob 0% ; ALIGN 4 .L2: ; fstp QWORD PTR [esp+eax-8] ; .L1: ; fld QWORD PTR [esp+eax] ;26.16 fadd st, st(1) ;26.16 fstp QWORD PTR [esp+eax] ;26.4 fld QWORD PTR [esp+eax+8] ;26.16 fadd st, st(1) ;26.16 fstp QWORD PTR [esp+eax+8] ;26.4 fld QWORD PTR [esp+eax+16] ;26.16
313 名前:名無しさん@3周年 mailto:sage [04/01/29 15:50] fadd st, st(1) ;26.16 fstp QWORD PTR [esp+eax+16] ;26.4 fld QWORD PTR [esp+eax+24] ;26.16 fadd st, st(1) ;26.16 add eax, 32 ;24.23 cmp edx, eax ;24.3 jg .L2 ; Prob 99% ;24.3 fstp QWORD PTR [espャy8] ;26.4 ; LOE eax edx ecx ebp esi edi f5 .B1.8: ; Preds .B1.7 add ecx, 800 ;23.22 cmp ecx, 80000 ;23.2 jl .B1.6 ; Prob 99% ;23.2 ; LOE ecx ebp esi edi f5 .B1.9: ; Preds .B1.8 fstp st(0) ; ;;; }
314 名前:名無しさん@3周年 [04/01/29 16:27] double *p, data[SIZE*SIZE]; p = data; for(i = SIZE-1; i >=0; i--){ for(j =SIZE-1; j >=0 j--){ *p = *p + 1.0; p++; } } と比較すれば?
315 名前:名無しさん@3周年 [04/01/29 16:31] gcc結果 ループの部分は5命令 __Z4funcv: pushl%ebp fldz fld1 fxch%st(1) movl%esp, %ebp subl$808, %esp leal-808(%ebp), %eax fstpl-808(%ebp) L10: fldl(%eax) fadd%st(1), %st fstpl(%eax) addl$8, %eax jmpL10
316 名前:名無しさん@3周年 [04/01/29 16:33] void func() { double data[10][10];q data[0][0] = 0.; for(unsigned i = 0; i < 10; i++){ for(unsigned j = 0; j < 10; j++){ data[j][i] += 1.0; } } }
317 名前:名無しさん@3周年 [04/01/29 16:39] >>316 のgcc結果 -O2 -march=pentium4 __Z4funcv: pushl %ebp fldz xorl %ecx, %ecx movl %esp, %ebp fld1 fxch %st(1) subl $808, %esp fstpl -808(%ebp) L11: xorl%edx, %edx movl%ecx, %eax L10: fldl-808(%ebp,%eax,8) addl$1, %edx fadd%st(1), %st fstpl-808(%ebp,%eax,8) addl$10, %eax cmpl$9, %edx jbeL10 addl$1, %ecx cmpl$9, %ecx jbeL11 fstp%st(0) leave ret 内ループ7命令、 外ループ5命令 >>311 ご感想は?
318 名前:名無しさん@3周年 [04/01/29 16:48] どーでもいいけど data[i][j] = data[i][j] + 1.0; って意味あるか? *p++ = p[-1] + 1.0; を計算したかったのかな?
319 名前:名無しさん@3周年 mailto:sage [04/01/29 17:02] iccはループアンロールしているからわかりにくくてスマン cmpはさすがにiccでも最適化されないんだな 確かに逆回しの方が有利だな 316は data[j][i] += 1.0; -> data[i][j] += 1.0; に書き換えた方がいいと思う、2重ループが展開できない 書き換えても似たようなコードを吐くようだったらそれがgccの限界だろう
320 名前:名無しさん@3周年 mailto:sage [04/01/29 17:07] >318 混乱させてスマン 意味は無い data[j][i] += 1.0; をしたかっただけだ
321 名前:名無しさん@3周年 [04/01/29 17:40] >>319 というかな。2次元配列にアクセスする時点でiccもはるかに実行命令数が多くなるでしょうが。 楽して速いコード書こうなんて発想そのものが間違いなんだよ。
322 名前:名無しさん@3周年 [04/01/29 18:03] gcc っていつから fstpl -808(%ebp) 8なんてつけるようになったんだろ?どー言う意味? fstpl -8(%ebp) の意味だよね?
323 名前:名無しさん@3周年 [04/01/29 18:28] データに100個のdouble確保してるから。
324 名前:名無しさん@3周年 mailto:sage [04/01/29 18:29] ごめん、ボケた 314でいい
325 名前:名無しさん@3周年 mailto:sage [04/01/29 18:31] 自然言語でもプログラム言語でも20年前からほとんど進歩してないな。 少なくともハードの進歩に比べたらゴミだね。こりゃSystemCも先行きは暗い罠。
326 名前:名無しさん@3周年 mailto:sage [04/01/29 18:57] 専門分野に限定してもいいからまともな英2日、日2英翻訳できるようになったらオプティマイザに頼ってもいいんじゃないかな? いつになるんだろうね?^1000 もっとも最適化に頼れるようになったらエンジニアは飯の食い上げ。
327 名前:名無しさん@3周年 mailto:sage [04/01/29 19:15] なんつーかだな まぁ、楽はしたいな、その分だけ他にリソースをまわせるからな ラスト3%の高速化には興味は無い、それは他に優先するべきことがあるから その時点で話がかみ合わないのは勘弁してくれ んで、317のループは10添え字飛びアクセスしているから 余分な命令が入っているのは当たり前 それは置いて置いて 行列に対するスカラ演算や行列加算はそれ用のメソッドを用意するべ それくらいはものぐさなオレでもやる。 つーか、そうしないと疎Matrixとかのもうちょい複雑なデータ型でペナルティーが出まくる でさぁ、オレの手抜き実装でも行列の乗算くらいじゃ インナーループまでは添え字用の乗算は入ってこない、 それは納得してくれるよな それより複雑な演算をする場合は逐次の添え字用の乗算は 発生するしその場合は最適化の難易度は一気に上がる。 その場合は乗算の排除よりもデータ構造と計算順序の見直しをする これくらいで、勘弁してくれ
328 名前:名無しさん@3周年 mailto:sage [04/01/29 19:34] >んで、317のループは10添え字飛びアクセスしているから余分な命令が入っているのは当たり前 それでは順次アクセスするコード。結局、インナー 7、アウター 5で命令数は一緒。実クロックは知らないけどね。 __Z4funcv: pushl%ebp fldz fld1 fxch%st(1) movl%esp, %ebp xorl%ecx, %ecx pushl%ebx subl$804, %esp xorl%ebx, %ebx fstpl-808(%ebp) L11: xorl%edx, %edx L10: leal(%edx,%ecx), %eax addl$1, %edx fldl-808(%ebp,%eax,8) cmpl$9, %edx fadd%st(1), %st fstpl-808(%ebp,%eax,8) jbeL10 addl$1, %ebx addl$10, %ecx cmpl$9, %ebx jbeL11 fstp%st(0) addl$804, %esp popl%ebx popl%ebp ret
329 名前:名無しさん@3周年 [04/01/29 19:37] >> 328のソース double data[10][10]; data[0][0] = 0.; for(unsigned i = 0; i < 10; i++){ for(unsigned j = 0; j < 10; j++){ data[i][j] = data[i][j] + 1.0; } }
330 名前:名無しさん@3周年 mailto:sage [04/01/29 19:57] そんなもんか、 icc -O3,-G7,-Qunroll0でインナー6命令 ;;; for (i=0; i<SIZE; ++i) ;;; for (j=0; j<SIZE; ++j) ;;; { ;;; dat[i][j] +=1.0; fld QWORD PTR _2il0floatpacket.3 ;26.4 xor ecx, ecx ;26.4 .B1.6: ; Preds .B1.8 .B1.5 mov eax, ecx ;24.8 lea edx, DWORD PTR [ecx+800] ;24.8 .B1.7: ; Preds .B1.7 .B1.6 jmp .L1 ; Prob 0% ; ALIGN 4 .L2: ; fstp QWORD PTR [esp+eax-8] ; .L1: ; fld QWORD PTR [esp+eax] ;26.4 fadd st, st(1) ;26.4 add eax, 8 ;24.23 cmp edx, eax ;24.3 jg .L2 ; Prob 99% ;24.3 fstp QWORD PTR [esp+eax-8] ;26.4 .B1.8: ; Preds .B1.7 add ecx, 800 ;23.22 cmp ecx, 80000 ;23.2 jl .B1.6 ; Prob 99% ;23.2 .B1.9: ; Preds .B1.8 fstp st(0) ; ;;; }
331 名前:名無しさん@3周年 mailto:sage [04/01/29 20:02] インナー6命令、 もちろんアウターのペナルティーに関しては甘んじて受ける ;;; double *p = (double*)dat; ;;; for (i=SIZE*SIZE; i>=0; --i) mov eax, 10000 ;30.7 jmp .B1.10 ; Prob 100% ;30.7 ALIGN 4 .B1.11: ; Preds .B1.10 ;;; { ;;; p[i] += 1.0; fld QWORD PTR _2il0floatpacket.3 ;32.3 .B1.10: ; Preds .B1.11 .B1.9 fadd QWORD PTR [esp+eax*8] ;32.3 fstp QWORD PTR [esp+eax*8] ;32.3 add eax, -1 ;30.28 test eax, eax ;30.2 jge .B1.11 ; Prob 99% ;30.2 .B1.12: ; Preds .B1.10 ; Infreq ;;; }
332 名前:301 mailto:sage [04/01/29 20:34] 何か色々発展してるが、 もともと俺の言いたかったのは 先ずインライン展開され、 そして添え字が 0 だから 0 乗算が最適化で消えるのではないかということだ。 添え字が他の場合のことは知ったこっちゃない。
333 名前:名無しさん@3周年 mailto:sage [04/01/29 20:55] >>307 「いなぁ」って何さ? って突っ込まれてどう感じるよ? あんたの突っ込みはそんなのと同レベル。 重要なところを無視して、どうでもいいところに突っ込んでるだけ。
334 名前:名無しさん@3周年 [04/01/29 21:27] >ラスト3%の高速化には興味は無い、それは他に優先するべきことがあるから 片や7、片や5、 3%どころかN->∞で 初めて最小効率差 40%だな。
335 名前:名無しさん@3周年 mailto:sage [04/01/30 01:19] >332 そこは話題にしているとことちゃう [0][0]にだけアクセスしておしまいと言うわけでもないだろう 一次配列の場合はそれでいいが、二次配列の場合は[0][0]だけ取得しても意味がない という話題のつもり すまんな話しが鳥取に行っていて それわかっての突込みだったらさらにごめん >334 ごめん、君、シリアスなコード1から書いたことないね 素人に話しするのも嫌いじゃないんで、それはそれでいいんだけどさ
336 名前:名無しさん@3周年 mailto:sage [04/01/30 06:01] >>335 > 一次配列の場合はそれでいいが、二次配列の場合は[0][0]だけ取得しても意味がない ポインタ配列で二次元配列扱うのならともかく、 二次元配列を一次元配列として確保するタイプ(乗算が必要なほう)なら 先頭アドレスと一行の要素数さえ分かっていれば、 どの要素にもアクセスできる。 必要なら行列をリニアに扱うこともできる。 というか、そういうことがやりたいから 生の配列が扱いたいんじゃないの? >>297 は。 m[0][i] でも同じことができるかもしれんが (どうせ 0 除算は最適化で消えるんなら)、 m[0] を別変数に入れといた方が書きやすい/分かりやすいし、 m[0][i] を最適化できるコンパイラなら両方で同じコードを吐くだろうし、 最適化の精度に影響されにくいコードになる。 もしくは、リニアにアクセスできるメソッドを追加したのでもいいかもね。 デバッグ時に添え字のチェックを入れれるし。
337 名前:名無しさん@3周年 mailto:sage [04/01/30 08:19] 一次元配列、二次元配列で心血注いで 自己満足してる暇があったら Matlab 使った方が よっぽど時間を有効に使える。
338 名前:名無しさん@3周年 mailto:sage [04/01/30 11:08] 336に同意 337そりゃそうだ。 実際にはより重要な課題が他にいくらでもあるわ
339 名前:名無しさん@3周年 mailto:sage [04/01/30 14:00] >>338 お前ごときがほかにすることは何もないよ。ままごとプログラム組むのが関の山。 せいぜいGUIプログラム作って喜んでな。
340 名前:名無しさん@3周年 mailto:sage [04/01/30 22:06] 実際問題としてまともなUI作るのに時間かけた方がよほど研究もはかどるぽ。
341 名前: [04/02/01 12:22] Fortoranになれているのならそれでもよいだろうが、 これから言語を学ぶならCだろうな(次の言語につながるからー>C++, Java) どれぐらい複雑な計算をするかによるな。走らせてたかだか2−3日ぐらいで 答えがでるような問題だったら言語にこだわる必要もないと思うが。 それよりアルゴリズムに気をつければいいでしょ。 あとどれぐらいの環境がつかえるのか?例えばMPIのライブラリー等 が使えるのか、スパコンが死語といっているがそれに使いこなせる プログラムを書くまでが大変だから使えていないというのが現状だろう。 研究者も技術者もしっかりかけるまでの時間がかかるからね。 普通のプログラムでさえ大変たいへんなのに並列のプログラムはもっと いろいろなこと考えなければいけないからな。 Matlab, Simlink, Mathematica等のソフトが買えて、またそのようなソフトで 済むような問題ならいいんだけどね。
342 名前:名無しさん@3周年 [04/02/01 19:18] turbo pascal++ これ、最強。
343 名前:名無しさん@3周年 mailto:sage [04/02/01 21:29] Mathematica を Matlab と何で同列に扱ってるのよあんた。
344 名前:名無しさん@3周年 [04/02/02 08:01] >>343 Matlabは主に数値計算、Mathematicaは主に数式処理なので toolの分類は少し間違えている気がするが、 でもやることによってはほぼ同じことができるっていうこと じゃないのかな?
345 名前:名無しさん@3周年 [04/02/02 12:16] Matlabって遅いってきいたけど、どうなの?
346 名前:名無しさん@3周年 mailto:sage [04/02/03 00:07] >>345 大きいもの作ったことないけど,場合によるでしょうね. 制御の分野では大人気ですから.書きやすいのが一番かも. matlab 系のソフトウェアの中での話なら, どこかでベンチマークが載せてあります. matlab6 になって大幅に速くなったらしいです. でも商用だし. このスレの人がやる計算には向いてないんですか?
347 名前:名無しさん@3周年 mailto:sage [04/02/03 01:19] ・プログラム作成に要する時間 ・計算時間 ・計算データの解析時間 3つの時間の合計が少なくなるなら、MatlabだろうがMathematicaだろうがなんでもいい。 さほど計算時間を多く要するものでない場合、よく利用されてる。 >このスレの人がやる計算には向いてないんですか? です。
348 名前:名無しさん@3周年 mailto:sage [04/02/03 09:19] 今までFortranを77だけみて差別してました。 C,C++を勉強してきたけどFortran90はええなぁ・・・ コンパイラが高いことだけを除けば⊂⌒~⊃。Д。)⊃ 予算下さい(Tд⊂ (´.`)y─┛~~~~まぁうちは独自プログラムの前に計算WSのいいのが必要なんだが
349 名前:名無しさん@3周年 mailto:sage [04/02/04 12:24] >> 対角化、LU/UDあたりだけなら直截Cで組んでも知れてるよ。 >数値誤差の軽減を考えると意外と面倒い。 >それに、車輪の再発明はタルい。 チッ。やったこともないくせに偉そうに。ま、おまえにゃ無理。
350 名前:名無しさん@3周年 mailto:sage [04/02/04 23:33] >>349 もしや熟練者の降臨?よろしければ具体的なことを教えてください.
351 名前:名無しさん@3周年 mailto:sage [04/02/05 01:14] Matlab はフリー & コマンド互換の Octave, Scilabがあるけど MathematicaやMaple のような数式処理のできるフリーのソフトってない? コマンド互換とか描画とかは特に問わないです。
352 名前:名無しさん@3周年 [04/02/05 02:13] Linux用のインテルFORTRAN90コンパイラは無料でダウンロ-ドして 使えるよ。
353 名前:名無しさん@3周年 [04/02/05 03:26] >>352 Cygwin用のF90コンパイラはないの?
354 名前:名無しさん@3周年 mailto:sage [04/02/05 11:06] >>351 maxima.lisp で書かれているという. 手で動かせる 3D グラフも出せましたよ.
355 名前:351 mailto:sage [04/02/05 19:47] >>354 ありがと。試してみます。 これで商用ソフトに頼らなくても済むようになるかも。。。
356 名前:351 mailto:sage [04/02/05 20:02] 早速Maxima使ってみました。 なるほど、商用っていうのはそういうことなのね・・・・ インテグラルがアスキー文字で出力されてるのを見てわかりました。 それはともかく、リターンキーを押す度に新たな行が出来て、不要な行が どんどん出来ていくんですね〜。文句言っちゃいけないけど。
357 名前:名無しさん@3周年 mailto:sage [04/02/06 00:55] Intel Cコンパイラってテンプレートを使ったクラスでfriend関数を宣言するときどうやったらいいの? 例えば template<typename X> class A{ friend double func<X>(); }; っていうのが通らない。func<X>が気に入らないみたいで、、、 gccなら問題なく通るし、文法的には間違ってないと思うんだけど? バージョン8.0 for windows使ってます。
358 名前:名無しさん@3周年 mailto:sage [04/02/06 01:03] >>356 texmacs (だったかな) から呼んで使うと,キレイな数式が拝めますよ. screenshot しか見ていないのに感動しました. 「不要な行」とは何か分かりませんが,インタラクティブ (対話モード) なら 当たり前のような気がします. まとまったらソースをファイルに書けば良いのですし, curses ライブラリのお陰で上キーとか押すと履歴が出るんじゃないでしょうか? 最近動かしていないのでアレですが...
359 名前:358 mailto:sage [04/02/06 21:56] ひそかに texmacs 体験談を期待していたのだが...(´∀`)
360 名前:名無しさん@3周年 mailto:sage [04/02/07 11:16] >>345 MATLAB Compiler使えばいいじゃん。
361 名前:名無しさん@3周年 mailto:sage [04/02/08 13:15] maxima ってスレ違いじゃ,,,と思っていましたが, これの数式の出力を Fortran 形式にすることもできるんですね. ちゃんと 72 カラムで折り返して, 5 カラム目に文字を入れて継続してくれるんですよ.しかも文字は連番. 今度使ってみようと思います. 「どっちがいい?」か.やはりスレ違いでしたね.
362 名前:名無しさん@3周年 mailto:sage [04/02/08 21:03] 珍しく人が集まるスレだし、シム板はこのとおりの状態だからあまり堅苦しく考えないほうが良いかと……
363 名前:名無しさん@3周年 mailto:sage [04/02/09 02:52] MATX 使ってる椰子レポート希望
364 名前:名無しさん@3周年 mailto:sage [04/02/09 22:45] >>363 こっちのスレで聞いてみては? なんか閑古鳥が鳴いてるけど・・・ MaTXを語るスレ science2.2ch.net/test/read.cgi/sim/1061897746/
365 名前:名無しさん@3周年 mailto:sage [04/02/11 22:01] QZ法の解説してる本 or URL 教えてください
366 名前:名無しさん@3周年 mailto:sage [04/02/24 21:07] なんというか幾らなんでもスレ違いすぎぽ。 vbaがデフォで複素数サポートしたら とりあえずエクセルで何でも計算>>>>>>>>>>>fortranと逝って見るテスト
367 名前:名無しさん@3周年 [04/02/25 07:14] 初めて書き込みます。とても興味深いスレッドですね。 既に議論されている内容かもしれませんが、 私の経験から、ひとつコメントさせてください。 ベクトル演算機の場合、Fortran用のコンパイラの開発がC,C++よりも歴史が長く、 現状では大きな差があるようです。 以前、BiCGStab(連立方程式の反復解法)で50000正方7重対角行列を解くプログラムを CとFortran77 の両者で作成し、計算時間を測定してみましたが、 Fujitsu VPP5000 ではFortranの方が1/15の時間で終了しました。 ベクトル化率の違いがありますので、なんとも言えませんが、 (ちなみに、理論上、平均ベクトル化率90%を超えたあたりからベクトル化による速度向上率が指数関数的に上昇するようです。) まだまだC,C++のベクトル化コンパイラは発展途上なのかもしれません。 PCで比較した場合(VC6,VF6)、Cの方が10%程度早い結果となりました。 ケースバイケースでしょうが、上記の経験から私は PCの場合は全てC or C++、 ベクトル機の場合は、計算部分をFortran,ファイル処理部分をCで書いて、リンク時に結合 というスタイルを取っています。(文字列処理やファイル処理はCの方が慣れているし、優れていると思うので) >365 QZ法、一般化固有値問題の解法ですよね? Matrix Computation という本(洋書ですが)がよさそうです。 ブラックボックスで使うならLAPACKにルーチンがあった気がします。 安定性解析などで固有値問題を解く場合、最大固有値のみを得たいことが多いのですが、 この場合QZ法は非効率的(n^3の計算量らしいです)で、逆反復法などが有効かと思います。
368 名前:名無しさん@3周年 mailto:sage [04/02/26 22:53] もれ、Fortran使うことないけど、そのうちFortranもつかってみようと思う。 どっち良いか議論できるのは両方使えるか、両方使ったことがない場合だろうな。 gslとか使ってんだけど、ライブラリー関係、どうよFortran.
369 名前:名無しさん@3周年 mailto:sage [04/02/27 01:12] >367 cはポインタなど、「自由度の高さ」が最適化の妨げになっていると聴いた事があるけどどうなんです? c++だったら改善が期待できる?
370 名前:名無しさん@3周年 mailto:sage [04/02/27 01:28] C++ は余計に...
371 名前:名無しさん@3周年 mailto:sage [04/02/27 02:23] ポインタの存在が最適化の妨げになるって言うのはちょっとピンと来ないけど どういうことなんだろうか・・・
372 名前:名無しさん@3周年 mailto:sage [04/02/27 03:38] ハウスホルダー法を一般のエルミート行列にまで拡張したいのですがどうやったらいいでしょう?
373 名前:名無しさん@3周年 mailto:sage [04/02/27 03:42] すれば?
374 名前:山崎 渉 mailto:(^^) [04/02/27 20:00] (^^)
375 名前:名無しさん@3周年 mailto:sage [04/02/28 09:00] >>371 たとえば ttp://www.mentorg.co.jp/solution/embedded/technical/risc.html の「エイリアス分析」の項とか ttp://www.microsoft.com/japan/msdn/library/ja/vccore/html/_core_.2f.oa.2c_2f.ow.asp
376 名前:名無しさん@3周年 mailto:sage [04/02/28 09:53] >>375 にゃるほど.さんくす. 確かに,エイリアスがあるときの最適化ってどうなってるのか気になってたんだよな. 言語仕様でoverheadが漏れなくついてきますとか言われるとちょっと頭痛い. C++の例外処理とか.(はずせるけど)
377 名前:名無しさん@3周年 [04/02/29 17:05] 質問なんだが、インテルのFortranコンパイラ(efc)で、 実行時に行列の定義した領域外への参照をチェックしてくれる オプションってありますか? (DECコンパイラでの-Cオプション相当のやつのことなんですが) いまいちefcはコンパイルオプションがわからないので苦労しています。 富士通のはいいね-Haesuxでほとんどバグをつぶせるから。
378 名前:名無しさん@3周年 [04/03/01 04:16] Blitz++でMatrixの初期化するとき A= 10, 20, 30; みたいに書いてるけど、どうやったらこんな書式が実現できるんでしょ? ソース見たけどよくわからん。 むりやりva_arg使ってみたけど A.operator=(10,20,30); ではうまくいくけど、A = 10, 20, 30;と書いてもうまくいかないや! さらに要素がdoubleやらintならまだしもcomplexだとnon-POD typeで コンパイルもできない・・・
379 名前:名無しさん@3周年 mailto:sage [04/03/01 11:41] C++? それならoperator,をオーバーロードしてるんじゃない? commaが出てくるたびに数字を一時変数のvectorにpushしていけば良いかと. (template expressionにしてるかも知れないけど,というか漏れならそうするが) もしそうなら,complexだと A=complex(1,0),complex(0,1),complex(0,0); つー書き方になるのかねぇ
380 名前:名無しさん@3周年 mailto:sage [04/03/01 11:54] しまった.expression templateだった・・・_| ̄|○
381 名前:名無しさん@3周年 mailto:sage [04/03/01 23:06] >376 でも逆にtemplateやinlineでオーバーヘッドをなくせるし…… クリティカルでない部分は便利かつ高水準な機能で楽をして、 大事な所は今までどおり+追加機能で(゚Д゚)ウマーというのがc++のいい所だと思われ
382 名前:名無しさん@3周年 mailto:sage [04/03/02 00:18] そうか、みんなそんな風にカいてたのか。 マトリクスはでっかいのが普通だから、ファイルにまとめといて、 gsl_matrix_fread(file,m); してた。C++もつかえな…。 _| ̄|○
383 名前:名無しさん@3周年 mailto:sage [04/03/02 14:20] >> 379 operator,だけでなくてopetrator= も定義しておかないと A=complex(1,0) でエラーになるよ。
384 名前:名無しさん@3周年 mailto:sage [04/03/02 15:43] >381 クリティカルな部分と楽ができる部分を見極められるかが大きなポイントでしょうな. >382 でかいマトリックスなら普通そうするでしょ? >383 あー忘れてたw ところでC++で数値計算ってスレを立ててみたいのだが,ダメかねぇ このスレはそもそもCかFortranかってスレだし それに今あるC++スレってろくなスレがないもんで・・・
385 名前:名無しさん@3周年 mailto:sage [04/03/02 18:11] blitsと同じことやろうとすると相当大変じゃない?初期化のためにリスト とアイテレータを用意してるみたいだね。 それなら operator=( complex * ) を定義しといて、 complex<double> dummy={complex<double>(1,0),.....}; Matrix A(2,2); A=dummy; でどうよ?いったんcomplexの配列を作る手間はいるけど、Matrixクラスに 初期化のためだけに必要なカウンタやポインタを用意するよりずっとすっきり してると思うけどな?
386 名前:名無しさん@3周年 mailto:sage [04/03/02 18:19] ごめんdummy[]={....}; だった。
387 名前:379 mailto:sage [04/03/02 18:35] うげげ.commaより=の方が優先順位高いのか. だから A=10, 20, 30; は,A=10のところで初期化のためのプロキシオブジェクト返さないといかんのか. アホだ俺.欝だ・・・ >385 syntax sugarのためだけにそこまでする必要があるのかってことですね. まぁ,でもC++ではそれがやりたければ可能な範囲で最大限のことができますよ, ってことは少なくとも(実装者が注意する限り)欠点にはならないかと.
388 名前:名無しさん@3周年 mailto:sage [04/03/03 07:08] 実際ちょっと書いてみた。元のmatrixクラスにカウンタ持たせるのがもっとも楽だと思うが、 ここはblitzのように初期化のためにinitialクラスつくってメンバにもとのmatrixクラスへのポインタと カウンタを用意した。 A=10のところでinitialオブジェクトを返すようにすればなんとか書けるんだけど、 B=A=10,20,30; とかやろうとするとmatrix & operator=(initial &)なんてのがいるんだね。 それでも演算子の優先順位から B=(A=10,20,39); と括弧でくくらないと望みどおりにはならない。 括弧がないとBもAも10が設定されるだけなんだなこれが。 このスレ見たおかげで徹夜してしまった鬱
389 名前:名無しさん@3周年 mailto:sage [04/03/03 23:31] FreeBSDでMaple9のLinux版インストールできた人居る? インストール段階でアポーンしちゃう。ctrl-zもcrl-cも死んでしまう。 別ターミナルから入ってkillしないと駄目
390 名前:名無しさん@3周年 [04/04/23 01:18] すみませんFortranよく知らないんですがFortranのsubrutineをC/C++から呼ぶ時 Fortranのsubrutineが F(f,a,b) となっててa,bが倍精度、fが倍精度の引数を受け取って倍精度を返す関数の場合 Cからf2cで呼ぶとき extern "C" { f_( double(*f)(double),double& a,double& b}; としてもコンパイルはできるけどセグメンテーションエラーとか出てきます サブルーティンが関数を引数とする場合は呼べないんでしょうか?
391 名前:名無しさん@3周年 [04/04/26 07:58] Haskellが一番いいよ。
392 名前:名無しさん@3周年 [04/05/09 02:41] C++で組んで流体解析してた←10年前の俺 あのころは風洞実験のシミュレートだけでもdx66ってへぼいcpuで何時間かかったことか。 fortranってそんなにいいのか・・・ 今時のPCなら29800円でもすんげーはやくできるよな。 いいな、今の研究者は・・・
393 名前:名無しさん@3周年 [04/05/09 08:34] Ruby!
394 名前:名無しさん@3周年 mailto:sage [04/05/09 14:07] ■当スレご利用中の皆様へ ジャンル別にいくつかの掲示板を設置しているゴロックを利用してみてください。 各種規制等も緩く、書き込み検索、ヘッドライン等も無料にて提供。 dat落ちしてもすぐにHTML化するので●いらず! 真面目な討論、議論等に使っていただきたいと思ってます。 もちろん雑談するとこや遊べるとこもあります。 真面目なスレ、真剣議論をしたいスレ、現住人だけでマターリしたいスレなどは 当サイトが最適だと思いますのでぜひ次スレは当サイトに立ててみてください。 今なら2getもし放題(藁 www.569.jp/
395 名前:名無しさん@3周年 mailto:sage [04/05/11 02:09] expression template を自分で使いこなしてる人居る?
396 名前:マソコ [04/05/17 18:00] Cにきまってんじゃん!!
397 名前:名無しさん@3周年 [04/05/19 19:25] (・∀・)イイ!!
398 名前:名無しさん@3周年 [04/06/14 00:42] 忍者スレはここでつか
399 名前:名無しさん@3周年 [04/06/21 23:12] VC用のGSL1.4が落とせるとこってない?
400 名前:名無しさん@ぬるぽ mailto:sage [04/06/21 23:31] Dにきまってんじゃん!!
401 名前:名無しさん@3周年 [04/06/26 03:43] GNUのG95がはやくしっかりしたものになると良いですね。
402 名前:名無しさん@3周年 [04/06/27 06:56] 数値演算ライブラリーの豊富さとその演算結果の精度(信頼度)の高さではFORTRANが優位?
403 名前:名無しさん@3周年 [04/06/29 02:09] 多次元の配列が、きちんと塊として言語でネーティブに扱える FORTRANはCに比べて安心出来る。ポインタを使わないとまともな プログラムがまったく書けないC言語は、プログラミングの エキスパートではなくて対象とする問題の専門家の科学者に とっては、不必要な複雑さと危険性を提供している。 元来C言語は資源の貧弱な計算機システムのOSを記述する為に、 極力効率化とコンパイラの軽さを信条として開発された。 OSの資源としてのメモリーは、一次元的な資源管理をされており、 とかくポインターを多用し、リスト構造が重要。メモリのアクセス 効率よりも容量節約を重視するものだった。 アセンブラに比べれば、はるかに読み易く、書き易いといいつつも、 生成されるアセンブラを見通してソースを書く為の言語であった。 そうしてデーターの基本は整数や文字。 科学技術計算の為のFLOATやDBLEは付け足し的なものだった。 (PDPー11では、浮動小数をハードで実現していたモデルは 上位の機種である。)
404 名前:shuu [04/07/06 21:24] 助けて! XPにCygwinをインストールして、Cygwinの下で、Fortran90で書いたプログラムを コンパイルしたいけども、どうすれば良いでしょか?教えてください。
405 名前:名無しさん@そうだ選挙に行こう mailto:sage [04/07/11 19:11] >>404 g95 は動かないんですか? 一瞬で終わる計算ばかりなら cygwin でもいいのですが, 数十秒でも待たされるなら Linux を入れた方が快適ですよ.ifc があるし.
406 名前:名無しさん@3周年 [04/11/06 10:49:36] あげ
407 名前:名無しさん@3周年 mailto:sage [04/11/07 03:25:51] コンパイラだけでいいならcygwinよりもmingwのほうがいいと思うんだが・・・ まぁ--mno-cygwinでもいいんだけど
408 名前:名無しさん@3周年 [04/11/11 13:18:34] age
409 名前:名無しさん@3周年 mailto:sage [04/11/12 22:55:46] >407 mingw ってFortran あったっけ?
410 名前:名無しさん@3周年 mailto:sage [04/11/14 00:48:46] >>409 g77ってのがFortran 確かめてないが、インストーラーにも入ってると思う www.mingw.org/download.shtml
411 名前:名無しさん@3周年 mailto:sage [04/11/14 16:15:47] >>410 普通に使えますよ. Ada, fortran, C, C++, java のコンパイラがあります. configure スクリプトを動かしたりするときは MSYS も入れます.
412 名前:名無しさん@3周年 mailto:sage [04/11/24 19:05:21] とりあえず使えるといった方がいいよ。 確かに動くけど遅すぎる。>>405 が言ってるようにまともに使うならネイティブ Unixの環境使った方がずっといい。 最近数値計算やシミュレーションをWin環境でやってる人いるけど、計算させるならUnix。 俺は計算用のためのFreeBSDを1台、事務処理その他もろもろ用XPを1台常時起動してる。
413 名前:名無しさん@3周年 [04/11/29 01:26:11] cygwinならともかくmingwでも遅いの?
414 名前:名無しさん@3周年 mailto:sage [04/11/30 02:34:15] g77(GCC) の出力するコード自体もそんなに速くないから・・・
415 名前:名無しさん@3周年 mailto:sage [04/12/01 00:40:02] UNIX を入れたついでに ifort を入れてしまうのであった. g77 -> ifort に変えるだけで 2, 3 割も速くなっちゃうんだもんねぇ...
416 名前:名無しさん@3周年 mailto:sage [04/12/02 02:39:43] 最適化オプション次第でで2、3割どころか
417 名前:名無しさん@3周年 [04/12/24 03:11:37] 東北大学のスーパーコンピュータSX-7が、HPCチャレンジベンチマークにおいて世界最高速記録を達成!! NECはこのたび、東北大学情報シナジーセンター(根元義章センター長www.isc.tohoku.ac.jp/ )に納入し、2003年の1月から稼動しておりますスーパーコンピュータSX-7www.cc.tohoku.ac.jp/service/super/super-2.html において、HPC(高性能計算)分野での 新しいベンチマークテストであるHPCチャレンジベンチマーク(icl.cs.utk.edu/hpcc/ )で、28項目中16項目で世界最高速を達成いたしました。 HPCチャレンジベンチマークは、米国政府の援助のもと、テネシー大学のJ.ドンガラ(J.Dongarra)博士を中心に米国や日本のHPC関係者が参画して、作成されたものであります。 従来、高性能計算機の性能番付として主流であったTOP500ベンチマークで使用されてきたLinpack(連立方程式の計算)を補完し、高性能計算機の性能を多面的な観点から評価する目 的で開発されたベンチマークであります。同ベンチマークはHPCシステムで重要となる複数の性能テストから構成されており、コンピュータの演算性能だけではなく、メモリアクセ ス性能、並列処理のためのライブラリであるMPI(Message Passing Interface)の通信性能など、HPCシステムにおける様々な機能の性能を総合的に評価することが出来ます。 今回のベンチマークテストでは、NECのSXシリーズのようなベクトル型スーパーコンピュータだけではなく、汎用プロセッサを使用したスカラー型スーパーコンピュータの性 能も数多く登録されており、今後のHPCベンチマークテストの主流になるものと見込まれております。 このたび、SX-7が世界最高速を達成した、HPCチャレンジベンチマークは、Linpackベンチマークも含んだ7カテゴリー28項目のベンチマークから構成されております。 プレスリリース全文はこちらです。 日本電気株式会社プレスリリース 2004年12月21日 www.nec.co.jp/press/ja/0412/2102.html
418 名前:名無しさん@3周年 [04/12/24 18:47:18] 電磁界シュミュレータを作るのに、最適と思われる言語はなんですか?
419 名前:名無しさん@3周年 [04/12/24 23:00:38] >>418 LOGO
420 名前:名無しさん@3周年 mailto:sage [04/12/25 13:19:19] >>418 Excel
421 名前:418 [04/12/25 15:05:47] >>419 >>420 申し訳ありませんが、却下です。。。
422 名前:名無しさん@3周年 mailto:sage [04/12/25 15:31:57] ジャワでいいじゃん
423 名前:名無しさん@3周年 mailto:sage [04/12/25 18:08:14] いっそ言語厨房を召喚してしまおうか
424 名前:名無しさん@3周年 mailto:sage [04/12/26 04:11:20] 呼んだ〜? オレだよ、オレ
425 名前:名無しさん@3周年 mailto:sage [04/12/30 09:33:35] >>418 ボスは中年以上で頭が固い → FORTRAN77 それ以外 → FORTRAN9x, C++
426 名前:名無しさん@3周年 mailto:sage [05/01/03 18:39:06] >>418 浮動小数点演算が内蔵していないIntel486SXは、とんでもなく遅いから気をつけろ。
427 名前:岸本要一郎 mailto:sage [05/01/08 09:44:22] わからんね
428 名前:山.崎 渉 mailto:(^^) [05/02/22 20:24:00 ] ...これからも僕を応援して下さいね(^^)。 ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━― ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉 __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄ ∧_∧ ( ^^ )< ぬるぽ(^^) (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン ∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
429 名前:名無しさん@3周年 [05/02/23 22:53:02 ] 実質C/C++のスレになっていると思う
430 名前:名無しさん@3周年 [05/02/24 15:07:27 ] じゃあ、ここからFORTRANスレ。
431 名前:名無しさん@3周年 [05/03/04 21:59:04 ] GNUのf95がもうすぐ出るみたいだね gcc.gnu.org/fortran/ 最近ひさしぶりにFortran使ってみたが、とてもじゃないけどまともな アプリケーション作れる言語じゃないと再確認した。 宣言しない変数が使えるのはつづり間違いの致命的で見つけにくいバグを起こしやすい。 宣言して使っていないのはバグの卵。 まとめてコメントができない。 static関数が書けない。 大文字小文字むちゃくちゃ。 f90では少しはまともになったのかな。
432 名前:名無しさん@3周年 [05/03/09 22:37:23 ] 暗黙の変数宣言の問題は、コンパイルオプションで対応しれ。 まとめコメントは、エディタで対応しれ。 staticは、f90のモジュールで対応しれ。 大文字小文字の区別は、コンパイルオプションで対応しれ。 もっとも、大文字小文字だけで区別される変数の使い方は、Cでも推奨されてないだよ。
433 名前:名無しさん@3周年 mailto:sage [05/03/13 04:05:13 ] ソースにどれだけコメント入れてますか?
434 名前:tena mailto:age [05/03/13 08:52:32 ] >>433 だまれ馬鹿。
435 名前:名無しさん@3周年 mailto:age [05/03/13 09:29:44 ] >>432 漏れはマイルールで、グローバル変数とローカル変数は頭文字を大文字にしてる。 大文字と小文字の違いだけで同じ綴りの変数は使わないな。
436 名前:名無しさん@3周年 [05/03/13 11:08:58 ] 暗黙の型宣言
437 名前:sumiratar7 [2005/03/21(月) 04:57:03 ] 今週も絶好調です! ★キャラクタ競馬予想ソフト★見て下さい! 毎週勝ってます! ★先々週も★ 土曜日 中京11R ロックカーニバル◎8→注7 馬連 7-8 3500円 馬単 8-7 7090円的中! 日曜日 阪神9R 人気馬5→◎7 馬連 5-7 3120円 馬単 5-7 5140円的中! ★先週も★ 土曜日 阪神11R ビッグゴールド◎6→注9 馬連 6-9 140720円 馬単 6-9 258360円的中! 日曜日 阪神11R ラインクラフト◎8 結果1着 ★今週も★ 日曜日 阪神11R アイポッパー◎1 馬連 01-08 3,770円 このソフトは、デビュー以来、毎週一回も裏切っていません! あなたも次回から、当てる喜びを毎週味わってみてはいかがでしょうか? page6.auctions.yahoo.co.jp/jp/auction/f32060088
438 名前:鬼検索 ◆ONIoniKkao [2005/03/30(水) 20:19:15 ] 渡辺安治 qb5.2ch.net/test/read.cgi/saku/1030165467/222 qb5.2ch.net/test/read.cgi/saku2ch/1048556628/13 有限会社IRD www.ird.co.jp/
439 名前: [2005/04/16(土) 03:30:54 ]
440 名前:名無しさん@3周年 [2005/04/16(土) 07:03:26 ] ttp://www.geocities.jp/douga_2ch/
441 名前:名無しさん@3周年 [2005/04/20(水) 06:10:34 ] 歴史が古いせいか,Fortranは,最適化コンパイラで,高速化しやすい. Cは,それほどでもない. でも,CPUのスピードが上がってきたから,どっちもどっちでは? プログラマがきちんとプログラムすれば,どちらも性能差は無いと 思うけど. 吐き出したバイナリを比較したことが無いので,断定的なことはわかりません. いまからやるならCではないかと.そんなにちがいませんよね?
442 名前:名無しさん@3周年 mailto:sage [2005/04/20(水) 06:42:23 ] 両方使えるようにしておくのが吉。 数値計算に使うだけならたいした手間にはなるまい。
443 名前:名無しさん@3周年 [2005/04/21(木) 04:52:21 ] >>800
444 名前:名無しさん@3周年 [2005/04/21(木) 07:03:08 ] >>442 どちらもやれというなら こたえにはなってないぞ たしかに数値計算だけなら たいした差はないがな BASICコンパイラ使ってもそんなもんだろ
445 名前:名無しさん@3周年 [2005/04/28(木) 04:40:36 ] c++って結構難しいと感じた。 fortran90は俺みたいなあほでも一応書けるのがいいとこか・・・ 現代のプログラミング言語の概念を取り入れつつ、煩雑でない 次のバージョンのfortranが早く出て欲しい。 でもやっぱりc++を学ばざる負えないのかなあ?
446 名前:名無しさん@3周年 mailto:sage [2005/04/28(木) 18:27:55 ] C++はプログラム言語のなかでも最も難しいと思うよ。 Cをベースに継ぎ足したところがより煩雑
447 名前:名無しさん@3周年 [2005/05/05(木) 22:03:16 ] 結局スピード、読みやすさ、でFORTRANの勝ち。 数値計算に限ってはね。他は知らん。 FORTRAN馬鹿にする人って77しか知らないし。
448 名前:名無しさん@3周年 mailto:sage [2005/05/05(木) 23:49:15 ] better cとして利用し、STLに頼るプログラミングする限りはめちゃくちゃ楽だけどね>c++ スピードも、windows上だと……
449 名前:名無しさん@3周年 mailto:sage [2005/05/07(土) 13:45:17 ] better C ってことをム板で言ったらめちゃめちゃ叩かれたことある。 アホちゃうかこいつらと思ったけど。 ツーかC++ はbetter C以外ではないわけなんだが。
450 名前:名無しさん@3周年 mailto:sage [2005/05/08(日) 02:10:40 ] >>448 C++のプログラミングの楽さってのはCと比べてでしょ。 FORTRANの楽さには勝てん。DEBAGの楽さも含めて。 スピードもWINDOUS上だろうがUNIXだろうがFORTRANが上ですが何か? 数値計算=単純計算 ROOPがでかいだけ。
451 名前:名無しさん@3周年 [2005/05/08(日) 06:10:55 ] Yahoo!辞書 roop ですべての辞書検索した結果 : 0件
452 名前:名無しさん@3周年 [2005/05/08(日) 06:42:59 ] debag de・bag[dib] 〔動〕〔他〕《英俗》(いたずら・罰として)〈人の〉ズボンを脱がす
453 名前:名無しさん@3周年 [2005/05/08(日) 08:15:54 ] Fortranって読みづらいから嫌いだ 世の中全部Perlで書けたらいいのにな〜
454 名前:名無しさん@3周年 [2005/05/08(日) 08:27:11 ] Fortranのいいところは最適化コンパイラがよくできているところだ CやC++だとポインタ操作がエイリアスといって最適化の際に障害となるんだ. でもそれは,結局Fortranの言語仕様が古いだけなんだよな 単純という意味だ 予約語も無い これってすごいよね DO=50 と書いてもOKだ FORMAT=30もいいし END=50 も可 あまりやらないほうがいいとは思うけど 詳しくは知らないが なにしろFortran77の世代だからな! 最新のFortranは構造化言語みたいになってるんだろうな. なにしろFortranはIBMのSystem360にも搭載されていた由緒正しき言語だ たとえて言えば 古代フェニキア文字みたいな どちらの言語も使い分ければいいんだ でもCでFEMを書いたことはあるけど Fortranでお絵かきソフトをかいたことはないね Fortranにこだわって山のようなCライブラリを呼び出すか Cで作ってすべてスクラッチから書き直すかということでしょう 全部Cで作ることはできる でも断言するがFortranですべて作ることはできない 作る価値も無いがな 向き不向きがある 数値計算に限定したとして 核となるソルバーの部分だけなら Fortranの出る幕は十分ある 問題は一人の人間がいろいろな言語を使い分けて デバッグできるのか? 変な勘違いをしないのか? ということだそっちのほうが問題だよ Fortranの使い手とチームを組むのならそれがベストだろうね 長々書いたが 一度使ってみれば?としかいえないよ
455 名前:名無しさん@3周年 mailto:sage [2005/05/08(日) 08:35:33 ] >>450 >WINDOUS上 Windows or MS-DOSの略? 昔、MicrosoftのC++とFortranとSunのJavaで、同等の数値計算プログラムを つくってWindowsNT4.0上でベンチマークしたが、C++とFortranはほぼ同じだった。
456 名前:名無しさん@3周年 mailto:sage [2005/05/08(日) 19:14:37 ] 数値計算にもよるけど、同じアルゴリズムをFORTRANとCで書いたわけだろ。 C++固有の技を使わない。配列を添え字だけで参照するとかしてればおな〜じようなアセンブルコードになると思うけど? 普通に書いたコードで比較しないと、技を使い出すと比較にならんよな。asmとかさ。
457 名前:名無しさん@3周年 [2005/05/09(月) 21:07:38 ] >>456 同意見だね 数値計算の核の部分はそれほど複雑ではないから どんな言語で書いてもあまり差はない 質問がコードのどの部分のことを言ってるかで違ってくるね ソルバーの核の部分に限れば BASICもCもFortranも大して変わらないと思う そこでは単純な四則演算しかやってないからな
458 名前:名無しさん@3周年 mailto:sage [2005/05/09(月) 22:31:06 ] >ソルバーの核の部分に限れば 計算時間の大部分ですなぁ。 結局開発しやすい言語がいいってことで。
459 名前:名無しさん@3周年 mailto:sage [2005/05/09(月) 23:03:55 ] CコンパイラをもたないシステムはまずないからCで書いときゃ安心だけど、 Fortranと同等の最適化を受けるには変数に修飾子付けたり、プラグマつけないといかんから まんどくさいよ
460 名前:名無しさん@3周年 mailto:sage [2005/05/11(水) 11:56:45 ] Cはエイリアスの問題が付きまとうので、明示的に依存関係のないことをpragmaなどで示さないと最適化してくれない。 C++は、クラスの中に配列を持っているときに、配列の一要素を変更しただけで、オブジェクト全体が変更したと認識されるので、ループ最適化してくれない(某H社のスパコン)。依存関係を無視するコマンドをつけてもダメだった。 fortranならこの辺の苦労はないのだろう。
461 名前:名無しさん@3周年 [2005/05/14(土) 04:39:53 ] アセンブラをもたないシステムはまずないからアセンブラで書いときゃ安心だけど、 Fortranと同等の最適化を受ける必要なんてさらさらなくて、変数に修飾子付けたり、プラグマつける必要も全くないから 楽ちんこだよ。
462 名前:名無しさん@3周年 mailto:sage [2005/05/17(火) 21:28:41 ] >460 よくわからんが、クラスのメンバ変数で配列を持っていて、 メンバ関数内でループを回そうとすると最適化かけてくれないの? それコンパイラがよほどタコなんと違う?
463 名前:名無しさん@3周年 mailto:age [2005/05/28(土) 22:20:15 ] liboctaveのFortran版ってないのかな?調べた限りではC++向きのようです。 libScilabとかでもよいのですが。
464 名前:名無しさん@3周年 [2005/05/29(日) 02:56:55 ] ,/|ミ=、 / .|ミミミ| .| |ミミミ| ,/|ミ| |ミミミ| ,/ |ミ| |ミミミ| | |ミ| |ミミミ| | |ミ| |ミミミ| | |ミ| |ミミミ| | |ミ| |ミミミ| | |ミ| |ミミミ| _,-'"|. |ミ| |ミミミ| _,. -'' " ̄~゙三=-_、_ _,.-'" |. |ミ| !ミミミ| ,,.-''" r _、 三三タ_,.-''" | |ミ| ,.彡ヾミ| / i {ぃ}} _ニ/ -=三| 」ミヒ彡彡イミヾ /,.、 `--" ニl -=ニ三=-''レ彡ミミr'" |ミミミ| l {ゞ} i .ニl==三三ニ=''" ,>'"|ミ| |ミミミ| .l `" i_,,...-''| ニ`=-=i'" | |ミl,..-=彡ヾミ| _,.-! ! i -ニ三三/ L.. -ニヾ|ヾ彡'='''" l´,.- l \/ -ニ三三/ ヾ-‐''" _. ! ri l\ __--三三三='" j'‘´l `´ | ! ` ミ三三三三三=''" i',.. '´} | | l,.. r´ '´
465 名前:名無しさん@3周年 [2005/06/03(金) 21:09:08 ] CとFortranのどちらが優秀かで研究室の助教授と論争になってます 相手はCよりもFortranの優れてる点として、「今までのオブジェクトが流用できるから」「fotranは77,90と進化してきたのでCに勝っている」ってのをあげてますが これに対する「Cで作成したプログラムのほうが演算処理が速い」って主張は「今のパソコンでは、どちらも処理速度が変わらない」と一蹴されました これを論破するにはどうすればいいんでしょうか
466 名前:名無しさん@3周年 [2005/06/03(金) 21:15:37 ] ケースバイケースでしょうから 結果に興味があるなら,実際の問題で ベンチマークを競ってみたらどうでしょうか.
467 名前:名無しさん@3周年 mailto:sage [2005/06/03(金) 22:04:18 ] >>465 が実は教授であると想像すると(・∀・)ニヤニヤできる
468 名前:名無しさん@3周年 [2005/06/03(金) 22:53:11 ] www.nag-j.co.jp/FortranBuilder.htm ↑ これで2つとも使えば。 Eラーニング機能ありだとさ
469 名前:名無しさん@3周年 [2005/06/03(金) 23:36:58 ] >>465 両方でき、用途によって使い分けるのが今の主流。
470 名前:名無しさん@3周年 [2005/06/03(金) 23:58:26 ] ヘッダファイルってなんのメリットがあるの?
471 名前:名無しさん@3周年 mailto:sage [2005/06/04(土) 00:38:13 ] >465 c++ならOOPできるし、STL使えるから圧倒的に勝っている。
472 名前:名無しさん@3周年 mailto:sage [2005/06/04(土) 00:50:21 ] >>470 短いプログラムでもコンパイルに時間がかかってなんか凄いことやってる気分になれる。 プリコンパイルヘッダを使うとディスクを余計に消費してリッチな気分になれる。
473 名前:名無しさん@3周年 [2005/06/04(土) 02:27:29 ] 助教授財前の言うとおりだと思うよ。東教授
474 名前:名無しさん@3周年 [2005/06/06(月) 22:23:00 ] >>465 計算機のCPUは何? そのCPUに最適化されたコンパイラが用意されているほうが速いと思う。
475 名前:名無しさん@3周年 mailto:sage [2005/06/07(火) 10:21:51 ] 4004
476 名前:名無しさん@3周年 [2005/06/22(水) 17:26:14 ] fortran使って作ったプログラムがコンパイルできるんだが 実行するとaddress errorって出るあるよ どうしてあるか?
477 名前:名無しさん@3周年 [2005/06/22(水) 17:58:24 ] 郵便番号間違ってないか?
478 名前:名無しさん@3周年 mailto:sage [2005/07/07(木) 04:22:25 ] 両方使いますが,Fortranの場合, ・多次元配列: x(i,j,k) ・べき乗: a**b ・整数から実数へのキャスト: dble(i) ・行末:何も必要なし それに対して,Cの場合, ・x[i][j][k] (2文字も多い) とか x[JMAX*KMAX*i+KMAX*j+k] (!!) ・pow(a,b) (4文字も多いし,括弧の中に変数を打つのが面倒) ・(double)i (2文字も多いし,括弧の位置がわけわからん) ・";" (激しくうざい.コンパイラはいちいちエラーメッセージを表示するな) また,Fortranだと dimension y(-128:128,-64:64) のように,負のインデックスが普通に宣言できて,非常に便利. 変数が多かったり,高精度の差分が必要だったりする大規模科学技術計算の場合, コーディングはFortranの方が楽だと思う. (もちろん,Cの方が楽な場合もあるけど.)
479 名前:名無しさん@3周年 mailto:sage [2005/07/11(月) 13:25:14 ] >>478 >・x[i][j][k] (2文字も多い) とか x[JMAX*KMAX*i+KMAX*j+k] (!!) #define X((i),(j)) x[JMAX*KMAX*i+KMAX*j+k] を使え。 >・(double)i (2文字も多いし,括弧の位置がわけわからん) 文字数が多くて気に入らなければ上と同様#define使え。 あと、double(i) としてもキャストがかけられるようになってる。 >Fortranだと dimension y(-128:128,-64:64) >のように,負のインデックスが普通に宣言できて,非常に便利. Cでも負のインデックスが使える。 double x[100], *p; p= x + 100; p[-1] = 50.0; とかな。 コーディングそのものはCの方が楽だろ。例えば任意の被積分関数を関数引数に与えて、 任意区間を積分するような関数をfortranで書けるか? こんな奴 double Sekibun( (* double)f(), double start, start end ) f()には任意のdouble型の関数が来る。 可読性に問題はあってもポインタがあるのでコーディングはCの方が楽だろ。
480 名前:名無しさん@3周年 mailto:sage [2005/07/11(月) 13:26:27 ] しまった。訂正ね #define X(i,j) x[JMAX*KMAX*(i)+KMAX*(j)+k]
481 名前:名無しさん@3周年 mailto:sage [2005/07/11(月) 19:12:39 ] >>478 たぶん478さんは基本的にFortran使いなんですね。 C使いだった自分がFortranをはじめたときは、 ・implicit noneを全部の関数に書くのがウザイ ・一行でif 〜 then 〜 else が書けない(…書けるけど ; つけたり endif つけたりと鬱陶しい) ・文末に ; を打たないことに慣れない ( Cに慣れてると無意識につけてしまうもので… ) ・2行以上に渡ったときに & を入れると次の行のオートインデントがうまくできなくてウザイ ・グローバル変数が定義できない など、不満はいっぱいありましたよ。 でも、今では手軽に読みやすいプログラムの書けるFortran(90以降限定)の方が Cよりも好きになりました。配列演算も強力ですしね。 >>479 Fortranでも関数を引数に取れますよ。なのでSekibun()は実現可能です。 しかも引数チェックができたり多次元配列でもサイズを記憶して渡せたり、 厳しいチェックが可能なんでトラブルが起こりにくいです。
482 名前:478 mailto:sage [2005/07/12(火) 01:37:41 ] >>479 479 → 480のとかは,Fortranではまず有り得ないけど, Cでやりがちな,よい例ですね. Cで負のインデックスが使えるのは,確かにだと思いますが, 多次元になると面倒くさいし,バグが付き纏いそうで,お断りです. 任意関数の積分みたいなことに対して,Cに分があるのは納得. 実際,Fortranが苦手なことは,Cを使えばいいんですよ. ただ,1次元区間での積分なんかに対して,わざわざ, サブルーチンを作って,呼ぶというのが,C使いらしいというか: 被積分関数に特異性がなければ,do 足し算 enddo で十分で, こんな計算時間の無駄は冗談じゃないし. 特異性があれば,精度を出すために, 特異性に配慮した格子生成などの工夫が必要になり, 汎用化したサブルーチンが使えないし.あまりメリットを感じない. Cの方に「汎用性」があるのは,もちろん理解していますよ. 科学技術計算に特化していないし,Fortranでやれることはできる. ただし,Fortranだとコンパイラが勝手にやってくれることを, 479氏が例示したように#defineやポインタを駆使してCでやろうとすると, 余計なことを意識する必要が生じる,タイプ量が増える, バグが発生しやすくなる,という面倒な問題は避けられない.
483 名前:478 mailto:sage [2005/07/12(火) 01:39:43 ] >>481 大域変数は,common文をずらずら書いたファイルを作っておいて, サブルーチン毎にincludeすればOKだと思います.これじゃ,だめ? 元々,私はC使いです.Fortranを使い始めたとき,同じような不満があり, 「2種類の座標系を扱うのにCだと(まともな)構造体が使えて楽なのに」 とか,「sscanfの代わりにどうしよう」とか思ってました. 今でも装置の制御とか,可視化とか, ちょっと複雑な文字列やファイルの処理とかだと,Cです. ただし,私にとっての科学技術計算とは,単純な物理法則に基づく 多次元・非定常シミュレーションのことでして, この主要部のコーディングはFortranの方が楽だと思っています. 478, 482で挙げた以外にも,配列を表すのに必要な「(),ijklmn」が キーボード上の近い位置に並んでいて,タイプしやすいのはメリットかと. (i,j,k) あー,打ちやすいー.
484 名前:481 mailto:sage [2005/07/12(火) 02:29:46 ] >>483 > 大域変数 大域変数はModuleで定義してuse文で取り込んでます。 > 元々,私はC使いです. そうですか・・・。それはすみませんでした。 セミコロン打つのになれてなかったり、Cに向かって打つキーが2文字とか4文字とか 少ないなんて細かいことおっしゃってるもんですから。 それ言ったらendifなんて書いてる時点でFortranの負けですよ。 +=とか使えない時点でさらに負け。
485 名前:483 mailto:sage [2005/07/12(火) 04:20:13 ] >>484 endifは,初めは何それ(ぷ)だったけど,今じゃ 「エンドイフ」とか「カッコトジ」とか 口でしゃべるより,速く打てるようになったよ.(おい) +=はごもっともですね. でも,yank-rectangle で一発処理ということでどーすか? バグが発生するような手間じゃないし. で,話は変わるけど,今の学生さんは,学部時代に授業でC/C++を習うそうな. 教えているのが,情報系の若い教官で, 「Fortranは時代遅れ」とか喧伝しているらしい.使ったことないくせに! そのオブジェクト指向野郎の好しとするプログラムが,これがまた, しょっぼいサブルーチンの中に他のしょっぼいサブルーチンがあって,さらに...とか, ループの中がif文,switch文だらけだったりとか. 流体屋,材料屋にとって典型的な「とても悪い例」なわけですよ,したり顔で. で,それに感化された学生が,これまた,Fortranを馬鹿にして, Cで,3重ループの中にoverhead発生しまくりのプログラムを書くわけだ. 小一時間(ry とにかく,[i][j][k],あー打ちにくい...
486 名前:名無しさん@3周年 mailto:sage [2005/07/13(水) 22:29:04 ] 見た目で関数と配列の区別がつかないのがそんなにうれしいか?
487 名前:名無しさん@3周年 mailto:sage [2005/07/14(木) 05:54:18 ] >>486 C使いのように,配列を very_long_variable_name(looong_index_name, incredible_index_name) とか書くと,関数と混同するかも. そりゃ,配列と関数が識別できなかったら,うれしくないさ! まず,「ループインデックスを引数にして関数を呼ぶ?」 という疑問が湧いたけど,dble(loop) とか頻繁に書くね. ただ,配列と混同しないよ.する?慣れか? また,他人のコードを読み解くときに,汚いと思うことはあっても, ループ内で関数と配列を混同して困ったという経験は皆無だね. 当然,この未経験は一般化できないが, 自分の研究分野の場合,ループ内は似た形式の配列ばかりで, 紛らわしい関数が稀で,要するに,高い規則性に起因するのだろう. 他分野のシミュレーションの多くも同様だと思う. 配列と関数を混同する可能性のあることがFortranの欠点の1つ, という事実は否定しない.しかしながら,この識別性の問題は, 変数の命名則や計算内容に由来するものであって, 十分に判別できる状況であれば,全く気にする必要はないかと. 万が一の混同の可能性があるからといって, FortranからCに乗り換えなくては,とならないな.
488 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 15:58:30 ] >487 長文の割によくわからん 命名則で関数と配列は区別できる と言いたいらしいのだが 他人が書いたコードと格闘しないのならそれでもいいか >485 [i][j][k]程度が打ちにくいなんてアホか? どの言語がいいかなんて動かす環境(とその環境でのコンパイラ)で変わってくるから 単一解はないと思うが 情報系の人間が速度的な面を無視するコードを書くのはよくあることだけどね そういう人間は1回の計算で数日かかるようなものを書いたことがないから
489 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 16:14:33 ] 結局、言語よりも書く人間のレベルの問題
490 名前:487 mailto:sage [2005/07/15(金) 19:23:23 ] >>488 Fortranを推しているのだが,正直,アホなことしか長所は思い浮かばない. でも,プログラムの多くが[i][j][k]で占められていると, 打ちにくいのは本当に嫌になってくるんだよ.
491 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 20:44:47 ] >>490 プログラマーではなく、キーパンチャーの発想w
492 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 21:37:47 ] >>488 昔のベクトル計算機だと,同じようなプログラムでも, スピードはFortranの方が圧倒的に高かった. Cの方が自由度が高いので,誤る可能性のある構文は ベクトル化しないという,コンパイラの仕様に問題があった. それで,やむを得ず,Fortranに乗り換えさせられたのだが. もちろん,現在の状況は知らん.が,コンパイラにとって Fortranの方が,高速化可能かどうかの判断は簡単だと思う. 今の若い学生の多くは,初めからCを使えて,器用なのだが, 些細なことでもサブルーチンを呼びたがるし, コンパイラが最適化してくれないものを書いてくる. 情報系屋の書いたものを参考にしてきたからだろう. Fortranの文献は少ないが,数値計算ばかりなので, コンパイラが最適化してくれそうなプログラミングを 学ぶにはよいと思ってるんだが.
493 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 22:31:34 ] Cでは,[i][j][k]が打ちにくい,というのもあるが, アドレス割当が飛び飛びで,メモリが無駄になるので, まず,これは使わない.一次元配列にして,さらに, 以下の定義を使って簡単化しています. #define ijk(i,j,k) JMAX*KMAX*(i)+KMAX*(j)+(k) こうすると,多重ループを使わなくても書けるときに, Fortran(77) よりも最適化してもらえるなー. ただ,例えば,負のインデックスを使うため, 定義を書き換えようとすると, 自分は480のようなミスをやらかさないわけがないんですよ. ポインタと格闘してうまくいくと,一仕事した満足感が得られるのだが, やはり,頭を使わず負のインデックスを使いたいな.
494 名前:488 mailto:sage [2005/07/15(金) 23:08:42 ] >492 ベクトル計算機でFortranが優位だったのは同意 現在のPCレベルの演算能力で何とかなる(含むクラスタ化)計算の場合 Fortranが優位かどうかは不明 #Cの方が優位なコードがかける気もするが >些細なことでもサブルーチンを呼びたがるし サブルーチン化することが悪とは必ずしもいえないので もちろん、その速度面に対するコストを把握しての上でなら
495 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 23:15:33 ] >493 >#define ijk(i,j,k) JMAX*KMAX*(i)+KMAX*(j)+(k) これだと毎回演算発生しないか? メモリはリニアに確保して、ポインタ配列(3次元ならポインタ配列の配列)作らない? doubleの配列 A[0..n][0..m]なら double** A = (double**)malloc(sizeof(double*)*(n+1)); A[0] = (double*)malloc(sizeof(double)*(n+1)*(m+1)); for(int i=1; i<=n; i++) A[i] = A[0] + m + 1; もちろん参照用のポインタ配列分のメモリは消費するけど
496 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 23:22:18 ] >492 >コンパイラが最適化してくれそうなプログラミングを これを言っているとCに勝てない ハード系のプログラムでは必須だから 場合によっては、コンパイラがはき出したコードを確認しながら非力なCPUで最適化 必要クロック数数えながらコード書く場合もあるから 数値計算でも簡単になるだけで(割込みとか考えなくて良い分)いっしょ
497 名前:495 mailto:sage [2005/07/15(金) 23:29:53 ] >493 >負のインデックスを使うため, doubleの配列 A[1..n][1..m]なら double** A = (double**)malloc(sizeof(double*)*n); A[0] = (double*)malloc(sizeof(double)*n*m); A[0] -= 1; for(int i=1; i<n; i++) A[i] = A[0] + m; A--; これの逆のポインタオフセットかければ負のインデックスもできる このままだと確保、解放がめんどくさいので配列のメモリ管理だけC++でクラス化するとか
498 名前:名無しさん@3周年 mailto:sage [2005/07/15(金) 23:41:23 ] >>495 KMAXとかが変数だとA[ijk(i,j,k+1)]とA[ijk(i,j+1,k)]の間にエイリアスが無いということを コンパイラは仮定できないのでその点はマイナスだが、 定数なら最近のコンパイラはうまく処理してくれるようだ。 あと、掛け算で書いていても、固定ストライドアクセスならアドレスの計算で実際に掛け算を するなんてことはない。 mallocは、エイリアスの問題もあるけど、要素へのアクセスが間接参照になるので 各行の長さが全然違うという場合を除いては積極的にやるべきものではないと思う。 性能に、大差ないことも多いけど。
499 名前:492 mailto:sage [2005/07/16(土) 00:01:28 ] >>494 クラスタ計算だと,メジャーなCの方が, 何かと新しい技術の恩恵を受けられやすいと思う. サブルーチン化の善し悪しは了解なんだけど,とにかく, 若い人の多くは,頭ごなしにFortranを古いマイナー言語だと馬鹿にして, Fortranを学んだら当然の,コンパイラが高速化してくれそうなプログラム を書いてくれないんだよ.情報系の人が教える悪い例だとか言ってるし.
500 名前:名無しさん@3周年 [2005/07/16(土) 00:07:38 ] 「フランス語は数を勘定できない」と驚愕の発言した 石原都知事なら、 「FORTRANは、ファイルの読み書きができない」、 「プログラミング言語としては失格」などと言うかな?
501 名前:492 mailto:sage [2005/07/16(土) 00:42:20 ] >>495 メモリ確保の融通が必要になる場合は便利だろうけど, なんかとても頭を使うなー.
502 名前:名無しさん@3周年 mailto:sage [2005/07/16(土) 00:54:37 ] Fortran学んだら最適化しやすいプログラムを書くようになるってのも行き過ぎでは? 命令セットレベルでどうなるかわかっているかどうかが重要なので。 あと、Cの関数呼び出しの引数は、基本的に参照渡しじゃないので、Fortranと違って、 load/store命令を一切使わないでも行える場合が多いんで結構軽い。 しかも命令キャッシュの節約に貢献するので、早い場合だってありうる。 ここらはIPOとかコンパイラがまだまだ改善してくれる余地があるんじゃなかろうか。 if文についても最近のCPUは分岐予測が結構当たったり、条件付実行/代入とかの命令が 使えるCPUもあるので一昔前と違い、以外と軽い。 Fortranが進化したのと同様にCPUやコンパイラも進化しているってことも Fortran信仰が薄れてCでいいじゃんていう流れを後押ししていると感じる。
503 名前:492 mailto:sage [2005/07/16(土) 02:52:37 ] >>502 別にFortranでなくてよくて,確かに言いすぎですね. ただ,Cをちょっとかじって,シミュレーションをやりたいと言って, 「命令セットレベルでどうなるかわかって」 くれるようなそこまで素晴らしい子は周りにいないのよ. 自分は,意識が昔のベクトル計算機ユーザーのままだからか, 一見して高速化可能とコンパイラに判断してもらえるような 論理を理解してほしいわけなんだが. まあ,今は,すでに,コンパイラが総合的に判断して 勝手にインライン展開したりとか, PCのCPUが演算の先読みをしたりする夢のような世界なので, 手作業による最適化は,今後,どんどん不要になっていくのだろうな. そして,マイナーなFortranは淘汰されて,我々の職人技は無駄になり...
504 名前:名無しさん@3周年 mailto:sage [2005/07/16(土) 08:01:07 ] だからお前がジジイすぎんだよ。 いい年こいて、進歩が止まったままの脳でプログラムなんか書いてるな!ったくよ。
505 名前:495 mailto:sage [2005/07/16(土) 09:32:35 ] >メモリ確保の融通が必要になる場合は便利だろうけど, >なんかとても頭を使うなー. こういう部分だけC++を使うと、完全な隠蔽化を犠牲にすればオーバーヘッドなく管理しやすくなる テンプレート化すればなお楽 >498 >要素へのアクセスが間接参照になる ごめん意味がわからん
506 名前:名無しさん@3周年 mailto:sage [2005/07/16(土) 09:34:54 ] >手作業による最適化は,今後,どんどん不要になっていくのだろうな. >そして,マイナーなFortranは淘汰されて,我々の職人技は無駄になり... あくまで言語は道具 目的にあった、最適で、もっとも楽なものを使えばよい どのような言語であっても、「状況に応じた」最適なコーディングは変化するし
507 名前:名無しさん@3周年 mailto:sage [2005/07/16(土) 13:46:05 ] >>505 A[i]をmallocで確保した場合、a[i][j]にアクセスするにはまず、 a[i]をメモリorキャッシュから読み込まないとa[i][j]のアドレス(a[i]+j)が計算できない。 ので、a[i][j]のloadは、a[i]のloadを待たないとだめな場合がある。 そこでメモリアクセス遅延が生じる可能性があるんよ。 さらにこれがjに関するループでもa[i]が一定という仮定をコンパイラがやらない場合さえある。 a[i][j]に書き込む場合、&a[i][j]と&a[i]がエイリアスになってる可能性だって無いわけではないから。 さすがに、a[i]とa[i][j]は型が違うからコンパイラオプション等で救済はあるようだけど。
508 名前:503 mailto:sage [2005/07/16(土) 19:26:20 ] 昔,何日もかけて手動最適したプログラム (姫野ベンチのような3D Poisson方程式. 2方向をFFT,1方向を差分で離散化.Fortran77. 約400万自由度) をifc8 で以下のようにコンパイルして, @手動最適あり+IP最適なし A手動最適なし+IP最適あり 比較してみた.Aの方が20%も速いんですけど... すごい. 当時,業者から借りた診断ツールでチェックしながら, ソースレベルのオーバーヘッドを極限までなくしたつもりだったんだが.
509 名前:名無しさん@3周年 mailto:sage [2005/07/16(土) 20:42:06 ] 手動最適あり+IP最適あり はどうなの? 姫野ベンチは最適化かけるともっと効いたような記憶が。
510 名前:名無しさん@3周年 [2005/07/16(土) 22:07:48 ] >ソースレベルのオーバーヘッド ってなんだ? サブルーチンをコールしない、メインにすべて書いたということか?
511 名前:名無しさん@3周年 mailto:sage [2005/07/17(日) 02:27:54 ] 手動最適化って、なんなのか気になる。 コンパイラができなそうなのがブロック化とパディングで、 コンパイラと競合しそうなのはアンローリング、SIMD命令、プリフェッチかな?
512 名前:名無しさん@3周年 [2005/07/18(月) 15:25:54 ] >>507 あのなぁ。 速度がはじめから必要というならmallocなんか使わず、固定領域をはじめから作っとけ。数値計算であれば固定域で問題ないだろ?
513 名前:名無しさん@3周年 [2005/07/18(月) 15:58:12 ] >>507 IPってなんだよ。 おれの分野だと全く違った意味なんだよ。 人に通じるように書けや。ボケが。
514 名前:名無しさん@3周年 mailto:??? [2005/07/19(火) 07:20:13 ] 俺ならMLでスマートに書くけどね。
515 名前:名無しさん@3周年 [2005/07/28(木) 14:20:55 ] .┌━┐ ┌━┐ ┃┌╋──╋┐┃ └╋┘ └╋┘ ┃ ・ ・ ┃ ┌━━┐ ●━╋┐ ┌╂━━━━╂┐ ┃ └━┷┴━━╂┘ └╋━┘ 同じスレにはコピペ ┌╋┐ ┌╋┐ できるけど、違う ┃└╋╋━━╋╋┘┃ スレにはコピペでき ┃ ┃┃ ┃┃ ┃ ない不思議コピペ ┃ ┃┃ ┃┃ ┃ └━┘┘ └└━┘
516 名前:名無しさん@3周年 [2005/08/08(月) 00:27:31 ] やっぱふぉーとらんだねー。 簡単だからさっ。ぐちぐち悩んでるより、ぱしぱし書いた方が良いよ っていうか、matlab好き(^^♪簡単だし、いっぱい関数あるから。 matlabが早かったらmatlabで書きたいくらい。
517 名前:名無しさん@3周年 mailto:sage [2005/08/13(土) 23:17:47 ] cとfortranという比較が既にアレだな。 c++とfortranでc++に軍配があがって終了だろ
518 名前:名無しさん@3周年 mailto:sage [2005/08/22(月) 16:59:29 ] 言語としての機能云々より、 科学技術計算に関してだけでいえる事だがC/C++はFortranユーザを取り込めてないってのが現実
519 名前:名無しさん@3周年 mailto:sage [2005/08/23(火) 21:23:27 ] というよりfortranユーザーが取り残されてるだけ
520 名前:名無しさん@3周年 mailto:sage [2005/08/25(木) 16:12:42 ] んなぁこたあない、 FORTRANで書かれた膨大なプログラムが山ほどあってかつ他言語に乗り換えるメリットがほとんどないものもいっぱいある。 あと、もっとも数値計算ライブラリが充実してるのはいまだにFortranだ。 C++にしてもExpressionテンプレートなんか一見よさげでも結局適用範囲が限定されてるのもあるしな。
521 名前:名無しさん@5周年 [2005/09/03(土) 19:58:08 ] fortranってまだあるの?
522 名前:名無しさん@5周年 [2005/09/04(日) 01:49:59 ] 松本「いま選挙にケバいオバハン連中でてるでしょう?」 聞き手芸人「はい」 松本「で、どこのテレビも、美人候補や!美人候補や!いうてるでしょう?」 聞き手芸人「マドンナや!とかゆうてますねぇ」 松本「でも、あんなかにSEXしたいヤツおるか?」 聞き手芸人「おらへん(笑)おらへん(笑)」 松本「なんか地方のピンサロの"ハズレ"みたいなオバハンばっかりやん!」 聞き手芸人「たしかに、水商売風のファッションですよねぇ」 松本「あぁいうあからさまなブサイクをですよ、美人とかマドンナとか呼ぶの無理ありまくりちゃうん?」 聞き手芸人「そのブサイクのなかでも、誰が一番キツいですか?」 松本「ナンバーワンのブスを選べっていうことかぁ?」 松本「そやねぇ〜 枡添の元オクサンは、80年代の服まだきててナフタリン臭そうやね」 聞き手芸人「カビ生えているかもしらん(笑)」 松本「不倫しまくって地位築いたっていう岐阜の刺客女は、日本版アニータそのものやろ(笑)」 聞き手芸人「あ〜横領事件の」 松本「まだチッチョリーナのほうがいさぎエエわ(笑)」 聞き手芸人「イタリアの国会議員ね」 松本「いっそのこと亀井も女刺客つかったらええねん。AV女優とかどんどん出したれよ」 聞き手芸人「AV女優に落とされたら、そりゃ相当ヘコみますね(笑)」 松本「お前でもヘコむんか(笑)」
523 名前:名無しさん@5周年 [2005/09/23(金) 20:29:08 ] コンパイラ次第だね。長年 VC 使ってて、ある時 IntelC で コンパイルしたら、速度の向上ぶりに驚いた。 IntelのCPU使うならIntelCがオススメ。 ちなみにマイクロソフトはC#に今後力入れるので C、C++、MFCあたりはやばい予感。
524 名前:名無しさん@5周年 [2005/09/25(日) 16:40:00 ] ...そうかな。
525 名前:名無しさん@5周年 mailto:sage [2005/10/02(日) 12:39:44 ] MFCてMicrosoft Fortran Compilerか?
526 名前:名無しさん@5周年 [2005/10/03(月) 09:47:07 ] Microsoft Foundation Class Library (C++で記述されたWindows用クラスライブラリ) 次期Windowsが成功すれば,C#主流の流れが加速されるかもしれないが 数値計算の世界からは遠くなるような気がする. C++も数年後には言語使用や標準ライブラリが見直される と思うけど,相変わらずマニアックな仕様だろうか? 言語は所詮,言語であってC++のように言語自体の自己主張 が強すぎるとマニアックな傾向になってしまう.初心者に 優しい仕様になってほしい.
527 名前:名無しさん@5周年 [2005/10/03(月) 09:53:14 ] 言語使用→言語仕様
528 名前:名無しさん@5周年 [2005/10/09(日) 23:16:30 ] Cを使わずにFORTRANつかってる学生は、 なんかムカつくヤシだったな。
529 名前:名無しさん@5周年 mailto:sage [2005/10/11(火) 16:27:33 ] C++はごちゃまぜ言語だから、現状の延長でのスペック改定にならざるを得ないんじゃないか? 今更多重継承は無くせないだろうし。 やるとすればC#のインデクサ、インターフェースクラスの導入、 =0はあまりに不細工なのでabstruct修飾詞認めるぐらいじゃないの。 あ!テンプレート引数にdoubleとか認めるとかすると大きくプログラミング手法が変わるかもね。
530 名前:名無しさん@5周年 [2005/10/11(火) 20:03:49 ] あと言語仕様としてスレッド操作もサポートしたほうがいいよな
531 名前:名無しさん@5周年 [2005/10/17(月) 01:15:07 ] Java++に期待する。
532 名前:名無しさん@5周年 [2005/10/17(月) 01:58:10 ] インテルC、欲しいなぁー。でも予算がとれん・・。
533 名前:名無しさん@5周年 [2005/10/17(月) 10:55:58 ] Why? インテルC++はWin/Linux共無料だぜ。
534 名前:名無しさん@5周年 [2005/10/21(金) 08:47:38 ] 数値計算というのは具体的にどういうコードになるのだか知りませんが たとえばCやC++には複素数や行列のクラスはありませんから そういうクラスを定義したほうが分かりやすいんでしょうかねー。 Boostバリバリ使用中ですっ!て人いらっしゃるのかな。 それなら数学用言語を選んだほうがいいですか…。
535 名前:名無しさん@5周年 [2005/10/21(金) 12:11:35 ] >C++には複素数や ハァ?
536 名前:名無しさん@5周年 mailto:sage [2005/10/21(金) 20:06:29 ] 行列演算はともかく、複素数はC99にもある。
537 名前:名無しさん@5周年 mailto:sage [2005/10/22(土) 20:38:05 ] C++の複素数や行列のクラスは、探せばある つーか、自作できるだろ、こんくらい
538 名前:名無しさん@5周年 mailto:sage [2005/10/23(日) 12:18:09 ] >C++の複素数や行列のクラスは、探せばある C++の複素数クラスライブラリはISOで標準化されてる。なんで探す必要があるんだ?
539 名前:名無しさん@5周年 mailto:sage [2005/10/23(日) 12:22:31 ] >つーか、自作できるだろ、こんくらい 遅いライブラリなら学生のお遊びでいくらでも自作できるだろうが、 Expression Templateを使ったマトリックスクラスを自作してみな。
540 名前:名無しさん@5周年 mailto:sage [2005/10/23(日) 13:16:55 ] も〜、そんなムキにならなくたって〜 どうせすぐおわる計算ばっかりのく・せ・に♥
541 名前:537 mailto:sage [2005/10/23(日) 21:28:38 ] >>538 >>534 は標準化されてるかどうかも、知らないだろうが、猿 始めにもう入ってるライブラリから探しゃいいだけだろうが、揚げ足取り万能信望者 たまたま知ってたからって鬼の首でも取ったつもりか、厨房 >>539 遅かろうが何だろうが、自作すりゃ理解するのに意義があるだろうが、要領いいだけの中級人材
542 名前:名無しさん@5周年 [2005/10/24(月) 16:11:33 ] >>糞の537へ >たまたま知ってたからって鬼の首でも取ったつもりか、厨房 Complexクラスそのものを知らんかったようだな。ええ?アホ学生の537よ。 まさにアホの活け造り。人の質問に答える暇があったら勉強しろ。おまえがやることは テメエの頭の上のハエを先ずは追い払え。アホ。 >遅かろうが何だろうが、自作すりゃ理解するのに意義があるだろうが、要領いいだけの中級人材 >つーか、自作できるだろ、こんくらい 車輪の再発明が得意中の得意か? よかったなぁ。無駄な時間を使う暇がいっぱいあって。 糞学生のおまえにとっちゃ研究以前の自作して過程を理解するのが精一杯だろうて。 卒論書くのに四苦八苦 大笑い。 どうせ、研究はこの3月までで、4月からは糞企業でこき使われるだけだから、理解なんかしなくていいよ。 あ・ほー
543 名前:名無しさん@5周年 [2005/10/25(火) 07:50:02 ] 便乗質問。ちょこちょこっと使えるCで書いた行列演算ライブラリってないでしょうか。 サイズを自由にできて、逆行列と固有値あたりが計算できるやつ。
544 名前:名無しさん@5周年 mailto:sage [2005/10/25(火) 10:18:18 ] >>542 >車輪の再発明 まだこんなこと言う奴がいるとは 一種類の車輪が、旅客機でも装甲車両でも自動車でもイスのキャスターでも使えると思ってるのか? 最適な部品を用意することを知らない奴には、品質という概念がないな 韓国や中国の会社がお似合いだよ 日本でなら、やっつけ仕事で自転車操業でもしてなさい 自転車用の車輪使ってw
545 名前:名無しさん@5周年 mailto:sage [2005/10/25(火) 11:18:03 ] C?gslはどうよ?逆行列があるかどうかは知らん。 C++ならnewmatというのがちょこちょこっとつかえる行列ライブラリ。こっちは逆行列はあったはず。 あとTNTも逆行列はあったと思う。すぐに使いこなせると思う。 Expression Template を使ったBlitz++ は原理的に逆行列実装は大変困難で実際提供されてない。 用途にもよるが、使いにくい & 数値計算に必要な機能が少ない & 改造は大変困難。テンプレートを駆使した実装に興味ある人以外はお勧めしない。 無難なのはliboctave、歴史も長い。機能も充実。
546 名前:名無しさん@5周年 [2005/10/25(火) 11:20:50 ] >>544 糞学生は戯言ほざいてないでcomplex クラスの使い方でも覚えろ。アホ
547 名前:名無しさん@5周年 mailto:sage [2005/10/25(火) 11:56:26 ] 既に存在するものを調べてできるだけ有効利用して、足りない部分は新規に開発するなら正当なやり方だが、 アホのお前のやり方は、何も調べず突撃するだけ。 マヌケ丸出し。お笑い。ドンキホーテ。
548 名前:名無しさん@5周年 [2005/10/25(火) 12:59:30 ] >> 543 こんなの↓もあるようだ。 robot.cs.kobe-u.ac.jp/~hanahara/programs/matlib.html なんか書き方が古いんですけど…。
549 名前:名無しさん@5周年 mailto:sage [2005/10/25(火) 23:05:23 ] >>546 >>547 2連続書き込み乙 よっぽど悔しいようだなw
550 名前:名無しさん@5周年 mailto:sage [2005/10/25(火) 23:07:41 ] 学生を罵倒してる奴って、社会人なのか? 随分品性が低いな
551 名前:名無しさん@5周年 mailto:sage [2005/10/25(火) 23:22:44 ] きっと会社でたたかれまくってストレス溜まってるんだよ。 そっとしておいてやろうよ。
552 名前:名無しさん@5周年 [2005/10/26(水) 00:43:16 ] >> 545, 548 ありがとうございます。 ちらっと見たところでは(書き方の古さはともかく)548さんに 紹介していただいたのが動けば用は足りそうですが…。 ま、マニュアル!?があるようなので見てから考えます。
553 名前:名無しさん@5周年 [2005/10/26(水) 01:39:49 ] >>549 == >>550 == >>551 >そっとしておいてやろうよ。 ↑ ↑ ↑ 別人を装ったつもりか? アホすぎるんだよお前。
554 名前:名無しさん@5周年 mailto:sage [2005/10/27(木) 15:06:16 ] >>553 いや、550は俺だけど、後は知らんぞ
555 名前:名無しさん@5周年 mailto:sage [2005/10/27(木) 22:58:44 ] 社会人ならば必ず分別がある、ってんなら刑務所はいらんわな
556 名前:名無しさん@5周年 mailto:sage [2005/10/27(木) 23:18:43 ] なんだこりゃ、 久しぶりに盛り上がってると思ったら・・・
557 名前:名無しさん@5周年 [2005/11/01(火) 03:58:22 ] GNU Scientific Library使ってる人いますか? これ使って行列の和のプログラム書くにはどうすればいんでしょうか? なんか、このライブラリ癖があるように感じるんですが・・・
558 名前:名無しさん@5周年 mailto:sage [2005/11/01(火) 07:34:22 ] すこぶるアホだな。 行列の和のプログラムごとき自分で作れ。 AddMatrix( double *a, * double *b, double *c, int nm ) { for( ;nm == 0; nm-- ){ *c++ = *a++ + *b++; } }
559 名前:名無しさん@5周年 mailto:sage [2005/11/01(火) 12:31:46 ] >>558 違いますよ。GSLを使った書き方ですよ。
560 名前:名無しさん@5周年 mailto:sage [2005/11/01(火) 18:32:49 ] 557 自己解決しました。すみません
561 名前:名無しさん@5周年 mailto:sage [2005/11/02(水) 10:26:34 ] 死ね
562 名前:名無しさん@5周年 [2005/11/17(木) 22:45:29 ] C++の様なオブジェクト指向言語は、以下の辺りを読むと高速なプログラム を書く、という点では論外のようですね。 www.icot.or.jp/FTS/REPORTS/H12-reports/H1303-AITEC-Report3/AITEC0103-R3-html/AITEC0103-R3-ch3_4_4.htm Cもポインタがあるので、高速化を望ならFortranでしょう。
563 名前:名無しさん@5周年 mailto:sage [2005/11/17(木) 22:52:29 ] エイリアスの問題を解決するためにイロイロやってきたんじゃん。ちゃんと嫁
564 名前:名無しさん@5周年 [2005/11/17(木) 22:58:50 ] 色々やったところで論理的に限界がある。
565 名前:名無しさん@5周年 mailto:sage [2005/11/17(木) 23:09:54 ] イロイロやらなくても楽に速いプログラムが書ける方がいい。
566 名前:名無しさん@5周年 [2005/11/18(金) 00:05:30 ] >Cもポインタがあるので、高速化を望ならFortranでしょう。 どういう意味だ?アセンブラにもポインタ相当の間接アドレッシングは普通のCPUなら用意されてるわけだが。
567 名前:名無しさん@5周年 [2005/11/18(金) 00:41:36 ] アセンブラはコンパイラで翻訳しませんからねぇ。
568 名前:名無しさん@5周年 mailto:sage [2005/11/18(金) 00:54:54 ] アセンブラ級の低水準命令つかいまくりんぐでコンパイラが最適化をどうやったらいいかわからないという、自由度の高さがアダになってんのよ。 その点fortranは構文が硬直化してるので、制約の大きさがコンパイラにとっては楽ちんな罠。 まあC++でも、制約条件を設けたクラスを用意して高速化するとか可能ではあるんだけど、STLの某コンテナは……
569 名前:名無しさん@5周年 [2005/11/18(金) 02:48:41 ] 科学技術計算に限ればポインタの使い方なんて for( i = 100 i > 0 ; i-- ){ *x++ += *y++ * *z++; } ぐらいだろ?インテル系のように直接指定できるレジスタが少ないCPUでなければ、 x[i] += y[i] * z[i]; なんて書くより早いはずだ。
570 名前:名無しさん@5周年 [2005/11/18(金) 03:25:31 ] >>562 C++のようなオブジェクト指向言語じゃなくて、 C++を使ってハードウェア条件を考慮せずにメモリアクセスを無駄に増加させる場合という意味だろ? オブジェクト指向は決して現状のハードウェアにとって効率のいいアプローチじゃないのは間違いないが、 C++を使って限りなくCに近く記述すれば、Fortranの最適化に比べれば多少劣ることはあってもほとんど問題ないはずだ。 Cのポインタの問題(C++にはそこに書いてるのは別な問題があるようだけど)にしろ、もしポインタを使って遅くなるような処理系なら 使わない選択肢だってあるわけよ。配列の行、列のアクセス順と0から始まるインデックス以外はほとんどFortran風にかけるはずだ。 あと、 C++にしても、例えば Matrix A,B,C,D;で A= Inv(B) * C +D; と書いて、メモリコピーに時間がとられているようなら、別途高速化のためにC風の2項演算用の関数をしておけばいい。 C++だとそういう選択の自由だってあるし、テンプレートを使えばループのアンロールだってやってくれる。 テンプレート機能のない他の言語だとこうはいかない。処理が短くてループ処理のオーバーヘッドを無視できない場合は是非使いたい機能だろ? 限りなくCに近いコードで適所にテンプレートによるループのアンロール機能をすれば、普通にCで書くより速いと思うけど。 それと、そこに書いてるExpression templateは和や積程度ならいいけど、逆行列のように行列のひとつの成分の算出に全行列成分が絡んでくるような場合は、 ほとんどやる意味ないと思うわ。Expression templateで逆行列作った人いる?もしいたら感想を聞きたいんだけど。
571 名前:名無しさん@5周年 [2005/11/19(土) 11:57:27 ] でも、オブジェクト指向を勉強して、それで自然にプログラミングをすると とっても遅いプログラムになる可能性が高いということでしょう。 C++を使ってCに近いコードを書く、とかCを使ってFortranに簡単に変換できる 様なコードを書く。それでFortranに近い性能を確保する、というのは たぶん可能なんだと思うけど、あまり嬉しくはないのではないだろうか。
572 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 12:02:36 ] 数値計算の奥深くはどうせ単純なループなんだからそういうとこだけは古式ゆかしきコーディングスタイル。 その他のところはOOPでざっくり。 全体をfortran的に書くような屈辱的なスタイルをわざわざとらなきゃイカンと思う必要はないわな。 どうせ全体の処理時間の8割は2割のコードが負担する。そこをピンポイントで叩けばよい。
573 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 14:51:11 ] >>571 OOが目的じゃないだろ?多くの目的においてOO的プログラミング開発をすれば開発、保守でいいことが あるんじゃないかな?って話。 実行速度だけみれば絶対に速くならん。そりゃそうでしょ、OOは実体を仮想的に計算機の上に構築してる わけで、計算機の都合なんか二の次。速くなるはずがない。 それでもC++だとOO的プログラミングも手続き型プログラミングもどっちでもいけるから数値計算にも使えるってこと。 何がなんでも数値計算を効率よく(プログラミングも実行も)やろうと思えばFortranの牙城はいまだに崩せてない。 ライブラリもオプティマイズも。 それ以外の目的(将来数値計算以外のプログラミングで飯食うかもしれないので今のうちに慣れておきたいとか。。。) があるからC++やらOOやらを考えてるわけだろ? 数値計算をもっとも効率的にこなしたければ電卓代わりにMatlab使って、ある程度目処がついたら Fortranでプログラムがお勧めだ。
574 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 15:04:20 ] >>571 OOを勉強するのはいいとして、 一般的なことをいうと既に手順が明示された数値計算プログラムでわざわざOOが必須の場面なんてほとんどないよ。 >>570 でC++の利点かいたりしてるけど決してOOを使えることが数値計算上のC++の利点なんて言ってないよ。 ・演算子の多重定義 --> 見やすい ・テンプレートを使ったループのアンロール --> 実行時ループ判定不要になって速度改善 ってことしか書いてない。 A=Inv(B) * C + D; なんて別にOOとは全く関係ないテンポラリメモリコピーのオーバーヘッドだから。 端的に言って、プログラム構造からすればOOか非OOかは継承機能を使うかどうかだ。 数値計算で継承を使いまくる場面があるかどうか考えてみればいいよ。
575 名前:名無しさん@5周年 [2005/11/19(土) 16:23:04 ] 分かんないんですけどMathcadとC言語ってどう違うんですか? Mathcadは数式を視覚的に入力できるメリットが大きいんですが。。。
576 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 16:25:36 ] 茶化してる?
577 名前:名無しさん@5周年 [2005/11/19(土) 16:32:20 ] 茶化してるのではなく、汎用性がCの方が高いということですか?
578 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 16:54:01 ] >>575 Mathcad → 科学技術計算・ドキュメント作成支援に特化したソフトウェア C言語 → コンピュータ上で動くプログラムを作成するための言語 Mathcadで事足りるんなら、それはそれで良い。 どちらも目的(科学技術計算)を達成するための手段でしかないのだから。
579 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 20:24:27 ] 難しいことはよく分からんけど、 要はクソめんどくさい事をすればC++でも Fortran程度のスピードはでますよってコト? 何も考えずに今使ってるシミュレーションプログラムを記述すると Fortranの倍近くかかるぽ。
580 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 20:43:33 ] クソメンドクサイことをしなくても人間の思考は、コーディング量が少なければ、本来手続き型プログラミングを考える方が はるかに向いてる。OOっていうのはコーディング量が大きい場合にこそ意味がある。 手続き手法に基づいてプログラムすればFortranであろうがCであろうがC++であろうが、差はほとんど誤差だ。 コーディングスタイルを変更して、OOやるとコーディング量が減るとでも思ってるのか? あと、オブジェクトのテンポラリコピーを多用させなければOO流儀に基づいてプログラムしようが速度的に 許容範囲のものができる。コーディングしててそのことに気づかんようなアホなら初めからOOなんかに手を出すなってこった。 >何も考えずに今使ってるシミュレーションプログラムを記述すると >Fortranの倍近くかかるぽ。 倍で済むと思ってるのか?ソフトウェアはな、ちょっとした配慮をするか否かで簡単に一桁違ってくるんだよ。 どうせ学生なんだろうがとっととコーディングして結果出さんと卒論間に合わんぞ。 これからOOなんかやってる暇あるのかい?OOはC++の教科書読んだだけでは簡単に身につかんぞ。
581 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 20:54:47 ] >>575 Mathcad,Mathematica,Mapleはいずれも数式処理をこなしてくれるソフトだ。 特にMathcadはエディタを使って数式どおりに入力すれば式計算してくれる。 Matlabは数値計算と可視化をあわせたソフトだ。 Cを使った科学技術計算というのは、Matlabの数値計算でさらに速度を稼ぎたいような場合に意味がある。 中には数式処理をCでやる情報処理分野の研究者も居るかもしれんが、Cは本来人工知能的な目的には向かない。 いったんCを使って処理システムを作ってその上で処理させるのが一般的な手法。
582 名前:名無しさん@5周年 mailto:sage [2005/11/19(土) 21:43:37 ] まあいざとなりゃcからfortranのサブルーチンを呼び出したっていいんだから。 速度の問題は入念なアルゴリズムの選定と、それなりの実装への気遣い。 まずもって重視すべきは簡単に組めてそれなりの結果を出すこと。 必要なら速度の向上や規模の拡大を行うこと。 結局回答のひとつは573の「電卓代わりにMatlab使って、ある程度目処がついたらFortranでプログラム」 ちょっと違うやりかたというか、仕切り線がかわるが、GUIやプリポストをc++でOOP的に組んで、ソルバはbetter c(c++のc的使用)というのもある。 そんな自分はというと、あえてExcelでvbaを走らせて、本格的なシミュレーションは市販ソフト
583 名前:名無しさん@5周年 [2005/11/21(月) 22:06:57 ] ところであなたたちは何をシュミレートしているのですか? ちなみに自分はあるデバイス中のキャリア伝送ですが。
584 名前:名無しさん@5周年 mailto:sage [2005/11/23(水) 14:58:17 ] >>580 回答ありがと。大した規模じゃなきゃ変わらんはずなのね。 そうすると、単にコーディングの仕方が悪いだけなのかな。 メインルーチンは、ほとんど配列の隣の要素同士を四則演算して ループするだけなんだけどなぁ。 C++にしたいのはユーザインターフェイス周りが作りやすいから ってだけ。もちろんシュミレーション部とインターフェイス部を 別々の言語で記述してもいいんだけど、同じ方が受け渡しがやり易い。 FortranとC++じゃファイル出力取っても正確に同じじゃないし。 学生ではないが、モノ作るための参考程度のシミュレーションのための コーディングなので、プログラミングについては詳しくない。 シミュレーションなんて一切せずにモノ作ってる人のが多いしね。
585 名前:名無しさん@5周年 mailto:sage [2005/11/23(水) 16:24:55 ] >>584 なるほど、大体わかったけど、C++でユーザインターフェースは決してやりやすくないと思う。 単純にGUIにしたいだけならTcl/Tkってのがあるけど。 とりあえずユーザインターフェースは後回しにしてメインの部分だけC++で作ってみればどうよ。 引数の引き渡し方と計算結果の出力の仕方だけ仕様を決めといて、それはあとから考える。 引数の引き渡し方なんて製品でもなければバッチファイル作ってしまえばどうとでもなるし。 計算結果の可視化あたりもわざわざ自分で作らなくても探せばそこそこ使えるものがあるんじゃないの? もっと実用に即したことを言うと、、、 何をシミュレーションしたいかわからんが、技術屋が必要とするようなアプリケーションは大抵市販されてる。 もっと汎用性のあるMatlabとかOctave/gnuplotやScilabあたり確かめた? Cと比べてはるかにプログラミングが楽だし、数値演算に必要なライブラリもほとんど揃ってる。 自分で作った数値演算ライブラリの試験するの大変だよ。 なによりOctaveやScilabは無料だし。
586 名前:名無しさん@5周年 mailto:sage [2005/11/25(金) 15:21:08 ] >>584 >メインルーチンは、ほとんど配列の隣の要素同士を四則演算して >ループするだけなんだけどなぁ。 そのプログラムのどこが一体オブジェクト指向なんだ?
587 名前:名無しさん@5周年 mailto:sage [2005/11/25(金) 20:51:41 ] >C++にしたいのはユーザインターフェイス周りが作りやすいから だからでしょ。 メインルーチンってか、ソルバが、だろうね。普通GUIまで含めた設計ならメイン関数で計算するはずないから
588 名前:名無しさん@5周年 mailto:sage [2005/11/26(土) 00:38:34 ] CUIベースでもメインルーチンで主要な計算はやらん。getoptで解析したスイッチを割り振るだけ。 クラスつーかプログラムの構成とかモジュールとかの粒度を一切考慮してねえのにオブジェクト指向もへったくれもない罠。 ごちゃごちゃ考える前にとっとと手を動かせば?って話しだと思う。 悪いことは言わんMatlab使え。ど素人でも半日もあればプログラムは完成するはずだ。それがなければOctaveダウソしてとっとと仕上げろとせ。
589 名前:名無しさん@5周年 mailto:sage [2005/11/26(土) 00:40:14 ] 最後にごみ入ったみたい "とせ"削除
590 名前:名無しさん@5周年 mailto:sage [2005/11/26(土) 07:31:13 ] >CUIベースでもメインルーチンで主要な計算はやらん。 ああ、いや原則論としてはそうなんだけど、実際問題は…… サブルーチンがどこにも見当たらずに延々と続くメインルーチンという恐ろしいものを生産し続ける人達も世の中にはいるんです。 親の顔がみたいわ
591 名前:名無しさん@5周年 mailto:sage [2005/11/26(土) 10:26:42 ] そんなことも親の問題になるのか。
592 名前:名無しさん@5周年 [2005/12/03(土) 19:47:12 ] >590 とことんまでチューニングすると、そうなるらしいよ。
593 名前:名無しさん@5周年 mailto:sage [2005/12/03(土) 21:52:52 ] それはインライン展開もできないfortranみたいな旧式言語の話ではなくて?
594 名前:名無しさん@5周年 mailto:sage [2005/12/06(火) 01:37:59 ] インライン展開やマクロ展開できればそんなメイン関数ひとつなんてありえないし、 する必要もない。大体そんなプログラム書く奴はオブジェクト指向どころか構造化プログラミングからやり直せ。 ローカル変数の概念のないアセンブラでもN88 BASICでもそんな書き方はしない。
595 名前:名無しさん@5周年 [2005/12/12(月) 23:21:40 ] >std::vectorの割り当て >std::vectorの割り当てはのろいnew, deleteを用いるので >ループ深部ではあらかじめバッファを作成しておくこと どんな感じで作成すればよいのでしょうか?
596 名前:名無しさん@5周年 mailto:sage [2005/12/13(火) 21:22:13 ] なんかループの中で無意味に割り当てと解放を繰り返してるんじゃね?
597 名前:名無しさん@5周年 [2005/12/15(木) 23:01:20 ] Fortranでもインライン展開ぐらい出来ますよ。
598 名前:名無しさん@5周年 mailto:sage [2005/12/15(木) 23:57:59 ] え?標準のfortranにインライン機能あったんだ
599 名前:名無しさん@5周年 [2006/05/02(火) 16:31:46 ] はぁー、死にスレ
600 名前:名無しさん@5周年 mailto:sage [2006/06/25(日) 12:28:02 ] >595 reserve >598 標準には無い。 コンパイラ指示行かコマンドラインオプションで(環境依存)。
601 名前:名無しさん@5周年 [2006/07/19(水) 01:34:36 ] 上げます
602 名前:名無しさん@5周年 [2006/07/19(水) 03:23:04 ] 標準といえば、Fortran90の自由形式でも、いまだに1行あたりの文字数に制限がある。 この制限をかたくなに準拠しているコンパイラがあって驚いた!
603 名前:名無しさん@5周年 [2006/07/28(金) 23:34:02 ] >>602 むしろこの制限に準拠していないコンパイラの方が珍しい。 Fortran2003でもやっぱりこの文字数制限は変わらないんだよね…
604 名前:名無しさん@5周年 mailto:sage [2006/08/13(日) 17:49:49 ] >1行あたりの文字数に制限 これに拘るメリットってあるのかな? 別に文字数制限がないとコンパイラが最適化しにくいとかあるの? 他の言語を見習ってもうちょっと使いやすくなってほしいなぁ
605 名前:名無しさん@5周年 mailto:sage [2006/08/14(月) 13:23:32 ] バッファオーバーランw
606 名前:名無しさん@5周年 mailto:sage [2006/09/10(日) 03:58:50 ] うちの研究室もFORTRANしかだめだったな〜 Cで書いたら教授が"私はCを知らないから指導のしようがない"と 困ってたことがある。つまり日本ではFortranの方が計算式の評価や検討には 絶対有利だよね。 複雑な科学技術計算をCで書くならひとつだけアドバイスが出来る。 絶対にポインタを使わないこと。後で死ぬような地獄を見たくなければ…
607 名前:名無しさん@5周年 [2006/09/24(日) 15:03:20 ] 世の中からFortranが駆逐されない限り、スパコンの運用もこれ以上ナンも変わらないと思う。 全部Javaで書けばなにかが変わる。
608 名前:名無しさん@5周年 [2006/09/24(日) 23:33:59 ] homepage.mac.com/keroppi_keroppi/tama/
609 名前:名無しさん@5周年 [2006/09/25(月) 00:12:44 ] >>607 全角で書かれても説得力なし。
610 名前:名無しさん@5周年 mailto:sage [2006/09/25(月) 00:41:09 ] Javaとか言ってる時点でネタだろう
611 名前:名無しさん@5周年 mailto:sage [2006/10/09(月) 20:31:42 ] 世の中Fortranしか知らない役立たずの研究者ばっかだから、 Javaなど使いこなせるわけもなく、OOすら理解できず。 だからFortarnが生き残っていけるのさ。
612 名前:FAQ mailto:sage [2006/10/22(日) 00:25:10 ] Cの方が汎用性があるけど、Fortranは楽でいいよ でも両方使えればいいんじゃね
613 名前:名無しさん@5周年 mailto:sage [2006/10/26(木) 17:56:10 ] Fortranで済む研究ならそれでいいじゃない 道具をあれこれするのも楽しいけどね
614 名前:名無しさん@5周年 [2006/11/03(金) 13:44:02 ] FORTRANは一見楽そうな言語に見えるけど、読みにくい プログラムをついつい作ってしまう。 また、FORTRANではプログラムをある程度完成しないと 走らせることができない。ということはバグの場所の特定が難しい。 C言語やC++のようにとりあえずここはダミーの関数 を仮においといて、部分的にテストしていく、というのが やりにくい。 結局、学生がFORTRANで数千行の数値計算プログラム を組むと、3ヶ月から半年動かないということも珍しくない。
615 名前:名無しさん@5周年 [2006/11/09(木) 20:59:59 ] >>614 技術計算は全部完成させなきゃ動作確認できん訳で、数ヶ月動かんなんてCで書いても状況同じ。 部分部分だけ観察しても意味ないのでね。 演算量多いからデバックも難しい。文法簡単なFortranが楽だが今時は古いね。
616 名前:名無しさん@5周年 [2006/11/11(土) 02:20:09 ] >>606 遅レス。俺はプログラマーになりたかったんで、Cが使いたかったの でも教授が分からないからってんでFortrun使わされた。 おまけに他の学生にBASICのレクチャーまでさせられた。
617 名前:名無しさん@5周年 [2006/11/11(土) 03:52:11 ] c++用の数値計算クラスライブラリーってある?
618 名前:名無しさん@5周年 [2006/11/11(土) 12:02:50 ] @ boostのuBlas A Blitz++ B Lapack++ @は実際にダウンロードして使ってみたが、自分のVC++.net2003の 環境下では、エディタで特定の文字列を入力するとハングアップする という不思議な現象が発生した。sampleプログラムを見ても自分は その仕様が好きになれなかった。 Blitz++は使ったことがないが、実行速度の速さでは世界最速では なかろうか。しかし、template機能使いまくりで古いコンパイラ ではソースコードをコンパイルできない。また、ちょっと複雑な 行列計算では、コンパイル時間がものすごくかかることを覚悟して おいた方がいい。自分は行列計算の一部の仕様が気にいらない。 Lapack++はLapackの機能をC++用に移植したものだが、機能が 限定される。 結局、自分にあった行列計算ライブラリ、数値計算ライブラリは 少なく、みなさん自作されていることが多いようです。 ただし、自作の場合、行列計算で便利だからと言って 演算子のオーバーロード機能は使わないようにしましょう。 (数万から100万個の行列要素のコピーしまくりが発生して 致命的なほどに遅くなるから)
619 名前:名無しさん@5周年 [2006/11/11(土) 12:10:58 ] >>616 ただのプログラムなら寿命は35歳。使い捨ての業界なのに そんなものになりたいの? 単なるプログラミング技術だけでなく(そんな人は日本国中 にいくらでもいる)、他の分野の技術を2,3マスターして いると視野も広がるし、強みになると思うけど。
620 名前:名無しさん@5周年 [2006/11/11(土) 12:12:34 ] ただのプログラム→ただのプログラマ
621 名前:名無しさん@5周年 mailto:sage [2006/11/11(土) 12:59:03 ] >>619 >ただのプログラマなら寿命は35歳。使い捨ての業界なのに >そんなものになりたいの? そんなわきゃーない。 最近は覇権のなんちゃってプログラマが増えたおかげで 企業も地雷を踏むのを避けるためにちゃんとコーディングできる香具師は それなりに仕事がある。それなりにだけど。 時代と共に価値観も移り変わっていくものだ。
622 名前:名無しさん@5周年 mailto:sage [2006/11/11(土) 14:10:47 ] 四十路過ぎで只のプログラマってのもそれはそれで悲しいものがあるな
623 名前:名無しさん@5周年 [2006/11/12(日) 09:20:18 ] 年収1千万円以上のプログラマなんて数えるほどしかい。 今はWindows XPでOSが固定されてるからいいようなものの、 vistaが出てくるとまた次から次と新しいことを覚えなくちゃ いけない。年をとるとそうそう覚えきれない。 プログラミングは日本では苦労の割にはあまり評価されない。 平均的なプログラマと他の技術分野の平均的な技術者を比べる なら後者の方が絶対良いと思う。 プログラマは苦労の割には報われない。
624 名前:きあんたら mailto::sy12345@kjb.biglobe.ne.jp [2006/11/12(日) 13:09:43 ] /\ /\ /:::::::ヽ____/::::::::ヽ、 丿 ::.__ .::::::::::::: __ ::::ヽ_ / /。 ヽ_ヽv /: /。ヽ ::::::ヽ ~~~~| | | |Ο ./ / ̄ ̄√___丶  ̄ ̄\ ::::| ■■ \/ / | ~~|~~ ━━| .:::::::::: / / tーーー|ヽ ...::::: ::|━━━━▼▼ /\丿 |丿/ | ヽ .| .:::::. ..: | |ヽ .::|. ●● | ::: | |⊂ニヽ| | .:::::| \ / /| : | | |:::T::::| ! .::| \ \ / / \: ト--^^^^^┤ 丿 \\
625 名前:名無しさん@5周年 mailto:sage [2006/11/12(日) 16:13:45 ] よこぎ内科胃腸科クリニック平中央医院いわき市国民健康保険田人診療所中野中央病院佐藤医院野崎整形外科医院高月整形外科高木医院木村クリニック新潟手の外科研究所
626 名前:名無しさん@5周年 mailto:sage [2006/11/17(金) 15:07:23 ] F#ってFortranが.net上で動くのかと思ったら全然違ったorz
627 名前:名無しさん@5周年 mailto:sage [2006/11/17(金) 17:19:21 ] >>626 F# = 嬰ヘ
628 名前:名無しさん@5周年 mailto:sage [2006/11/17(金) 19:02:43 ] >>626 Lahey/Fujitsu Fortran Ver.7.1 for Windows Enterprise とか Salford FTN95 とか
629 名前:名無しさん@5周年 [2007/05/08(火) 07:49:36 ] FortranかCかなんて議論は馬鹿げているよ。 Fortranなんてもはや化石言語。 だから消去法でCを選ぶ他ない。 しかし君たち。 実はもっとも身近で簡単な科学計算用言語があるのだ。 それがExcelVBA。 答えは案外足元にあったわけだ。 いわゆる青い鳥ってやつだね。
630 名前:KIDING [2007/05/09(水) 00:17:42 ] JAVAが最強に決まってるだろ。 JAVAを使う数値計算の本もたくさん出てるし これからはJAVAの時代だよ。
631 名前:名無しさん@5周年 [2007/05/09(水) 10:46:39 ] JAVAで数値計算やる奴の気がしれない
632 名前:名無しさん@5周年 mailto:sage [2007/05/09(水) 11:05:00 ] C使いがFortranを学ぶことはあっても、Fortran使いがCを学ぶことは無いから どちらがいいかは明白だわな。
633 名前:名無しさん@5周年 mailto:sage [2007/05/09(水) 12:09:21 ] fortran使い必死だな、とスレを斜め読みして思った 一昔前の小鯔ーのようだ
634 名前:名無しさん@5周年 [2007/05/13(日) 01:10:51 ] どう考えてもFortranなのだが・・・
635 名前:名無しさん@5周年 [2007/05/26(土) 17:51:59 ] 愚乳フォートランで描いておいて、プリプロセッサ使ってCのソースを吐かせれば、 愚乳Cで混配留できるよ。
636 名前:名無しさん@5周年 [2007/05/31(木) 21:12:03 ] sonnnamonnyoutoniawasetetukausikanai
637 名前:名無しさん@5周年 [2007/06/01(金) 02:30:52 ] ココ見て思い出したけどfortranで複素数使うなとか言われてたけど fortran200?では、改良されたの? 未だに自分でルーチン作って複素数の計算してます。
638 名前:名無しさん@5周年 mailto:sage [2007/06/02(土) 14:17:14 ] >fortranで複素数使うなとか言われてたけど kwsk
639 名前:名無しさん@5周年 [2007/06/04(月) 02:00:51 ] >>638 f77で用意されてるけど、結果が出鱈目なんだよ。 そういうのが多いので、自分で複素数を作って計算してた
640 名前:名無しさん@5周年 mailto:sage [2007/06/04(月) 02:25:25 ] マジに? 処理系に問題ありってことはない?
641 名前:名無しさん@5周年 mailto:sage [2007/06/04(月) 23:01:13 ] 複素数使うなじゃライブラリに問題あるだろ。 そりゃそういうライブラリ提供してるメーカ品使ってるお前の個別の話 少なくともg77じゃコード品質はともかく間違うことなんかありえない 例えばCの数値演算ライブラリもフォートランライブラリをラップして使ってるものだって多い、 octaveだってそう。octaveの演算結果がでたらめで誰も気づかないなんてありうると思うか?
642 名前:名無しさん@5周年 mailto:sage [2007/06/04(月) 23:05:57 ] あっと。 言い忘れたけど精度に関しては数値演算プロセッサに依存するのでそのつもりで。 X87系とSparc,ACOSそれぞれで微妙に違うのは当たり前。 数値演算プロセッサを無視してソフトで処理するとかしない限り末尾数桁はハードウェアによって異なる。 しかし、これは複素数云々じゃなくフローティング演算すべてに絡んでくる話なので念のため
643 名前:名無しさん@5周年 [2007/06/05(火) 09:56:37 ] >>639 昔のLah*yか?倍精度複素数計算にバグがあって 正しい計算結果が出ないことはきいたことがある。
644 名前:名無しさん@5周年 [2007/06/05(火) 20:41:19 ] -------------------------------------------------------- 現在、日本多板籍連合軍はハンガリー共和国軍に押さえれています! ハンガリー共和国軍は我々の数倍の戦力!絶対絶命のピンチ! あと30時間以内で勝負が決まります! 私達は、戦友を求めています!あなたのクリックで 私達を助けてください!いっしょに闘ってください! 会場: www.clickclickclick.com/default.asp 日本チーム本部: www33.atwiki.jp/clickvip/ --------------------------------------------------------
645 名前:名無しさん@5周年 [2007/06/07(木) 03:32:04 ] >>641-642 俺個人の話なら、それで良いが計算ソフトを商品として客先に売ってる。 「エンディアンの違いとか、CPUを統一せよ」って言えない訳。 各社でIrix,HP-UX,SUNとかバラバラなんだよ。x86やEWSでFreeBSDの 結局f2cのf77とか。それら全部で精度保つプログラムが必要なんだよ。 処理系とで違うは十分分かってるよ。 >>643 La*eかどうかは、ちょっと不明。だけど多分そう。 最近は各社インテル系でlinux+g77に以降したので再現性高く便利。 ここって、趣味人だったけか?職業人もいると思ってたけど。 客先とか想定できない人も居るなんて。
646 名前:名無しさん@5周年 [2007/06/09(土) 19:00:22 ] GNUのgfortran ならFortran9xに対応しているから、コンパイラを 買わなくてもFortran90でプログラムできるぞ。
647 名前:名無しさん@5周年 [2007/06/15(金) 23:18:18 ] 全員C言語で
648 名前:名無しさん@5周年 [2007/06/16(土) 19:28:19 ] 地球シミュレータとかのスパコンではCやC++よりも Fortranの方が性能が出るらしい。また、ポータビリティの 店から言ってもCやC++はアーキテクチャー依存があって 苦労するらしい。だから、必然的にFortranになるわけだ。 可視化するときはCだけどね。
649 名前:名無しさん@5周年 [2007/06/16(土) 22:50:40 ] 文字や数値の扱いやすさでfortranだね。
650 名前:名無しさん@5周年 mailto:sage [2007/06/17(日) 00:13:44 ] >>649 工作員乙
651 名前:名無しさん@5周年 [2007/06/17(日) 08:19:12 ] なぜに工作員?
652 名前:名無しさん@5周年 [2007/07/01(日) 01:13:41 ] C++とFortranの両方使ってるけど、数値計算はFortran、 データ処理・可視化にはC++と使い分けてる。 科学技術計算ならFortranのほうが圧倒的に有利でしょ。 数式どおりに書けるし、Fortranのほうが直感的でわかりやすい。
653 名前:名無しさん@5周年 [2007/07/01(日) 10:56:39 ] >数式どおりに書けるし、Fortranのほうが直感的でわかりやすい。 本当に C/C++ を知っているのか。俺は両方知っているが新規に作るなら C/C++ しか使わないぞ
654 名前:名無しさん@5周年 mailto:sage [2007/07/01(日) 14:22:21 ] エー(´д`)
655 名前:名無しさん@5周年 [2007/07/01(日) 15:17:39 ] これからはCOBOLを知ってるとNTTデータで活躍できるよ
656 名前:名無しさん@5周年 mailto:sage [2007/07/01(日) 17:26:10 ] >>655 事務屋はよそ逝けや
657 名前:名無しさん@5周年 [2007/07/02(月) 02:11:18 ] >>655 俺もそれ思った。 >>653 そうか?まー、好きにして
658 名前:名無しさん@5周年 [2007/07/07(土) 19:34:48 ] >>653 パソコンで計算してるんだな 可哀想に
659 名前:名無しさん@5周年 [2007/07/07(土) 19:40:29 ] 地球シミュレータでのプログラムはほとんど全てFortranだよ。 C++なんかで動かそうとすると「それで性能出るの?」って 言われる。
660 名前:名無しさん@5周年 mailto:sage [2007/07/07(土) 23:51:49 ] >>659 PC上でg77とかしか使ったことないんで聞きたいんだけど、 そういうのってOSやコンパイラは何なの?
661 名前:名無しさん@5周年 [2007/07/08(日) 00:16:30 ] >>660 OSはSUPER-UXでUNIXの一種。 コンパイラはクロスがesf90、セルフがf90。
662 名前:名無しさん@5周年 [2007/07/08(日) 02:01:54 ] 分散は弱いよね。
663 名前:名無しさん@5周年 [2007/07/08(日) 02:03:13 ] あ、C系の話ね。
664 名前:名無しさん@5周年 [2007/09/09(日) 14:40:44 ] C++の話なんですが、 Numerical Recipes C++ に敵う日本語のお勧め本ってありますか?
665 名前:J [2007/09/15(土) 12:13:56 ] Fortranは最初にちゃんと理解することが大切。 教えてくれる人が古いところではいまだにF77を平然と 使ってたりする。 Fortranは必ず90以降でやる。 最低限:自由形式、モジュール、インターフェース 配列(引数、戻り値、演算、部分配列、動的割当て)、intent implicit none、COMMOMブロック不使用、代表的な組込み手続き あたりを押さえてから先に進むと良い。 今のFortranは使い方を先に正しく勉強すれば、 安全、早いコードが書きやすい、メンテも楽な言語だ。 ただし歴史が古いぶん、昔ながらの悪いものも サポートしないといけない宿命を背負っているので 謝った使い方も簡単にできてしまう。 まず正しく勉強。これが大切。
666 名前:名無しさん@5周年 [2007/10/31(水) 00:22:10 ] 配列を手続きに渡すときに、 DIMENSION A(N,N) に対して CALL SUB(A) とやるのと、 CALL SUB(A(1,1)) とやるのと CALL SUB(A(:,:)) とやるのと、 CALL SUB(A(:N,:N)) などとやるのと、どう違って、引数の結合の効率がかわるんだろうか?
667 名前:名無しさん@5周年 mailto:sage [2007/10/31(水) 00:43:44 ] 77しか知らないので、3,4番目はわからないが、 1番目と2番目はどちらも、サブルーチンに配列の先頭ポインタを渡すだけだか ら、変わらないはず。3,4番目も値渡しでなければ変わらないんじゃないの? コンパイラにオプション付けてアセンブラ出力比較すれば?
668 名前:名無しさん@5周年 mailto:sage [2007/10/31(水) 01:43:19 ] >>666 Fortran90以降の場合はSUBの定義の仕方で変わってくる。 ヘタをするとSUBの仮引数に合わせて一時的な配列のコピーが作られるので 効率が悪くなる。 詳しくは処理系のマニュアルを読め。
669 名前:名無しさん@5周年 [2007/11/04(日) 18:34:16 ] Fortranの一冊目の本でおすすめあったら教えてください
670 名前:名無しさん@5周年 mailto:sage [2007/11/04(日) 18:58:01 ] >>669 くだすれFORTRAN(超初心者用)その2 pc11.2ch.net/test/read.cgi/tech/1164121236/ に行くといい。 とりあえず下記を薦める。 書店で立ち読みして、あう物を選べばよい。 Fortran 90プログラミング 冨田博之 www.amazon.co.jp/dp/4563014095/ 数値計算のためのFortran90/95プログラミング入門 牛島省 www.amazon.co.jp/dp/4627847211/ FORTRAN77入門 浦昭二 www.amazon.co.jp/dp/4563013587
671 名前:669 [2007/11/05(月) 15:57:46 ] >>670 おおー ご親切にありがとうございます。 お礼遅くなりましたm(__)m
672 名前:名無しさん@5周年 [2007/11/07(水) 01:49:00 ] >>666 それはa(:)などと指定すると、いったん暗黙のうちに配列のコピーが テンポラリ配列に取られて、実行後にまた、元の配列にコピーし戻さ れるからだ。なぜかといえば、たとえばa(1:n:2)見たいな書式が許さ れている事を考えれば分かるだろう。ほとんどの実装では、たとえ メモリー上で連続しているはずの、全渡しa(:)や部分渡しa(100:)等 でも、いったんコピーしている。 これを容易に確かめたいなら、超巨大な1Gクラスの配列を使って 実験してみるといい。SGIのORいぎnとかMatMulにまでコピーを 暗黙に使うので、昔、意味不なSegmaentationFaultでウンコ漏れた。 F77にくらべてF90がうざいのは、この辺だ。 このサイトに、情報が書いてあった記憶がある。あいまい。 10年位前に読んだので、すぐには見つからなかったw ttp://www.cs.rpi.edu/~szymansk/oof90.html
673 名前:名無しさん@5周年 mailto:sage [2007/11/07(水) 13:33:02 ] >>672 参照渡し以外はコピるから無駄が多いってことね まぁ仕方ないか
674 名前:名無しさん@5周年 mailto:sage [2007/11/10(土) 21:32:49 ] そこでCONTIGUOUS属性ですよ
675 名前:名無しさん@5周年 mailto:sage [2007/11/12(月) 15:15:02 ] 2008か よさげだから早く普及しないかな
676 名前:名無しさん@5周年 mailto:sage [2007/11/16(金) 22:30:14 ] その前にFortran 2003の処理系を何とかしないと・・・
677 名前:名無しさん@5周年 [2007/11/17(土) 03:47:20 ] Fortran2003はいつになったら出るのかな。 OOPブームが終わっちゃうよw Fortran2008はCoArrayFortranを取り入れたが、 ハードウェアに依存する機能を入れるのはとても疑問だ。
678 名前:名無しさん@5周年 [2007/11/17(土) 23:40:45 ] Fortranとは違いますがF#ってのはどうなんですか? なかなかな感じですか?
679 名前:名無しさん@5周年 mailto:sage [2007/11/18(日) 00:36:51 ] .netでFortranっすか・・・ というかオブジェクト指向と数値計算は、少なくとも速度面では相容れないと思うけど
680 名前:名無しさん@5周年 [2007/11/18(日) 00:54:33 ] F#はFortranとは別物みたいだけど、科学計算を想定してるみたいね
681 名前:名無しさん@5周年 mailto:sage [2007/11/18(日) 01:24:53 ] Fなら知ってるがF#は知らないや
682 名前:名無しさん@5周年 mailto:sage [2007/11/18(日) 02:03:56 ] F#は関数型言語なんだね
683 名前:名無しさん@5周年 mailto:sage [2007/11/18(日) 18:27:51 ] もんすごい普及しなさそう
684 名前:名無しさん@5周年 mailto:sage [2007/11/19(月) 02:13:50 ] FortressとF#、どっちの方が普及しそうかな
685 名前:名無しさん@5周年 [2007/11/20(火) 01:29:07 ] FortressはSUNがアメリカスパコン計画フェーズ3に脱落したから もうおしまいだろ。
686 名前:名無しさん@5周年 mailto:sage [2007/11/20(火) 01:31:36 ] F77最強
687 名前:名無しさん@5周年 mailto:sage [2007/11/20(火) 02:49:36 ] >>685 まじか 期待させておいて
688 名前:名無しさん@5周年 [2007/11/21(水) 00:06:00 ] >>687 まじ。 ttp://hpc.livedoor.biz/archives/50409533.html こことか。 少なくとも米政府からの資金は断たれた。 オープンソースになったのも、資金を断たれたのがきっかけとか。 並列言語として、SunはFortress、IBMはX10、CrayはChapelを やっているが、結局たたき台におわって、 いいところがFortranに取り込まれるのではと妄想。
689 名前:名無しさん@5周年 mailto:sage [2007/11/21(水) 15:14:02 ] 「本物のプログラマ」からみたFortran90ってどんなんでしょ?
690 名前:名無しさん@5周年 mailto:sage [2007/11/21(水) 15:35:12 ] >>688 共倒れか・・・w まぁよくある話だ
691 名前:名無しさん@5周年 mailto:sage [2007/11/21(水) 22:22:01 ] >>689 本物のプログラマは、科学技術計算なぞしない
692 名前:名無しさん@5周年 mailto:sage [2007/11/22(木) 14:17:32 ] あいつらは奴隷だからな 自分の研究のためだけにプログラムを組めるのはある意味幸せだ
693 名前:名無しさん@5周年 mailto:sage [2007/11/22(木) 20:51:51 ] まぁ”ある意味”な・・・
694 名前:名無しさん@5周年 mailto:sage [2007/11/22(木) 21:56:23 ] 俺は好きで書いてるからいいんだよ。 決してMATLAB買ってもらえないからじゃな(ry
695 名前:名無しさん@5周年 mailto:sage [2007/11/23(金) 17:08:50 ] >679 「ホントの最適化」はどうだかしらないけど、並列化とかの隠蔽に有効とか聞いたがどうか。 CPU単体の性能向上が頭打ちになってマルチコアとクラスタ化が主流になりつつあると、 一般ユーザー的には面倒な並列化プログラミングを意識しないですむなら価値あり
696 名前:名無しさん@5周年 mailto:sage [2007/11/23(金) 17:17:42 ] それはそうだけどね 全ては出来のいいコンパイラが出るかどうかにかかってる
697 名前:名無しさん@5周年 mailto:sage [2007/11/24(土) 00:20:35 ] 日曜プログラマ的には少しばかりのオーバーヘッドよりもバグ取りの時間が圧倒的な悪寒だから
698 名前:名無しさん@5周年 mailto:sage [2007/11/27(火) 11:38:15 ] 日曜PGでなくても同じ・・ まぁさじ加減の問題
699 名前:名無しさん@5周年 [2008/01/15(火) 16:24:24 ] Fortran2003/2008についてはこのひとにきいてみなはれ 日本にいるよ www.nag-j.co.jp/DeveloperIntroduction.htm 著書 www.amazon.co.jp/Explained-Numerical-Mathematics-Scientific-Computation/dp/0198526938/ref=sr_1_1?ie=UTF8&s=english-books&qid=1196669222&sr=8-1
700 名前:名無しさん@5周年 [2008/01/22(火) 14:22:36 ] 真のFORTRANは 66までだ。 77はヒヨッタボケで、その後のは最早FORTRANではない。 マイコンのプログラム開発に昔のFORTRANは最適だと思う。 ANSIになる前のCでも言い様にも思うけど・・・
701 名前:名無しさん@5周年 mailto:sage [2008/01/22(火) 21:34:43 ] 一応こんな記事を紹介してみる www.itmedia.co.jp/enterprise/articles/0801/21/news008.html
702 名前:名無しさん@5周年 mailto:sage [2008/01/22(火) 21:49:27 ] プログラムは流行の対象になるようなものじゃないんだが・・・ 今までの基幹システムを作り直すことになるとSEは当分食うのに困らなくなるな
703 名前:名無しさん@5周年 [2008/01/29(火) 11:43:34 ] CがいいFortranがいい、というより 結局コンパイラがどれだけ賢いかにかかってるんじゃ?
704 名前:名無しさん@5周年 mailto:sage [2008/01/29(火) 12:43:16 ] とりあえずオススメのコンパイラをうp
705 名前:名無しさん@5周年 mailto:sage [2008/01/29(火) 23:57:55 ] Fortranがいいなんていわれても大学の研究室でのあの gotoやらcommonやらが多用されてて、 しかも変数はaやaaやらx1とかx2なんてもんで 引数が何十個もあるサブルーチンばっかのプログラムしか 印象になくてどうしても引いてしまう。思い出してぞっとした
706 名前:名無しさん@5周年 mailto:sage [2008/01/30(水) 11:20:41 ] そーいう低次元の話はやめとこうぜw まっとうな使い方をしたとして、CとFortranでどーなんだ、という話だ。 スパコンのスタッフとかだとFortranを強く推してる人もいるな。 Cも相当速くなったとはいえ、やっぱりFortranなんだろう、というのが個人的な認識だが。 openFOAMなんかはFortranだとGUI周りの作成が困難だからCに変えた、とか言ってたな。
707 名前:名無しさん@5周年 mailto:sage [2008/01/30(水) 20:57:41 ] 機能が限定的≒規則が単純≒最適化しやすい≒速い でないか?
708 名前:名無しさん@5周年 mailto:sage [2008/01/30(水) 21:57:08 ] >>706 openFOAMって知らないんだけど、普通はソルバー=Fortran、GUI=C系で書いてリンクさせんじゃね常考
709 名前:名無しさん@5周年 [2008/01/31(木) 14:47:27 ] 59 2007/06/13(水) 16:34:34 名無しさん@5周年 開発元はOpenCFD社.もともとNabla社が作っていたFOAMという商用コードをオー プン・ソースにして,OpenCFD社が管理するようになった. FOAM物語 web.archive.org/web/20050425233801/http://www.fluid.co.jp/docs/FOAM/foam_story.htm (SJISコード) コミュニティは以下の掲示板が主. OpenFOAM discussion site openfoam.cfd-online.com/cgi-bin/forum/discus.cgi いくつかの企業はスポンサになっているし,コンサル業や寄付で稼いでいると思うけど, 国(英国?)からお金を貰っているかどうかはしらん.
710 名前:名無しさん@5周年 mailto:sage [2008/02/02(土) 14:30:43 ] >>705 研究室で学生が書いたものならFORTRANだろうがC/C++だろうが 言語によらず解読困難なプログラムが山盛りの予感。
711 名前:名無しさん@5周年 mailto:sage [2008/02/04(月) 17:28:06 ] 研究室ならどこもそうだよ
712 名前:名無しさん@5周年 mailto:sage [2008/02/04(月) 23:19:17 ] >>711 学生をナメンナ
713 名前:名無しさん@5周年 mailto:sage [2008/02/04(月) 23:48:45 ] こんなとこで遊んでないで勉強しろ
714 名前:名無しさん@5周年 mailto:sage [2008/03/16(日) 17:53:38 ] 大規模計算や並列計算だと、まだしばらくはFortranじゃないかなあ。 企業レベルでも、欧米の研究機関全体で見ても、Fortranコンパイラの最適化とか チューニングにつぎ込まれてる資金と人材は、まだまだC/C++より多い気がする。 一般ユーザだったら、既出だけど「開発(含むデバッグ)+実行(+保守)」のコストが 一番少ないのがいい気がする。 漏れは、Fortran、MATLAB、C++の順に流れて、今はMATLABとFortranの併用。 純粋な数値計算なのでC++は不要な機能が多すぎた。というかFortranで十二分に 便利。 ただ、大人の事情(上司が違う言語)とかだとそう単純じゃないよね。漏れは、直属の 上司はC++、その上の上司はFORTRAN77(not 90/95)という微妙な状態。
715 名前:名無しさん@5周年 mailto:sage [2008/03/25(火) 19:56:37 ] >>714 C++な人なら説得すれば分かってくれるんじゃないの?
716 名前:名無しさん@5周年 mailto:sage [2008/03/25(火) 23:13:45 ] C++使いはFortranを今更プゲラで鹿にしてるから駄目なんじゃないかな? F77使いだと、Cは複素数が使えないから駄目とか素で言い出すしなぁ。ウチの場合
717 名前:名無しさん@5周年 mailto:sage [2008/04/19(土) 18:08:38 ] C、C++ でやるなら restrictキーワードとかの"裏仕様"も知っとかないといけない
718 名前:名無しさん@5周年 mailto:sage [2008/05/28(水) 01:21:07 ] >>704 g95や、silverFlost F95とか…かな あ、俺は駆け出しの者なんですけどね
719 名前:名無しさん@5周年 mailto:sage [2008/05/31(土) 03:37:32 ] ____ / \ / ─ ─\ / (●) (●) \ | (__人__) | ・・・ / ∩ノ ⊃ / ( \ / _ノ | | .\ “ /__| | \ /___ /
720 名前:名無しさん@5周年 mailto:sage [2008/06/04(水) 11:46:10 ] IntelなCPUなら普通にIntelコンパイラだろ 確か非商用ならタダだったような
721 名前:名無しさん@5周年 mailto:sage [2008/06/10(火) 01:45:17 ] >>720 今確認したけど評価版だけで、そんなのなかったよ… 探し方がわるかったかな。
722 名前:名無しさん@5周年 mailto:sage [2008/06/10(火) 11:44:57 ] ここからAccept を選択するとLinux版のC++やFortranのコンパイラー等が取れる。 規定等は自分で読んでください。 www.intel.com/cd/software/products/asmo-na/eng/219771.htm
723 名前:名無しさん@5周年 [2009/01/14(水) 16:55:14 ] age
724 名前:名無しさん@5周年 [2009/01/17(土) 19:19:13 ] 使用用途が科学計算のみの場合、プログラミング未経験者が 一から勉強して習得しやすいのは、FortranとCだとどっちですか?
725 名前:名無しさん@5周年 mailto:sage [2009/01/18(日) 15:23:29 ] >>724 どう考えてもFortran
726 名前:名無しさん@5周年 mailto:sage [2009/01/18(日) 15:47:55 ] >>725 ちょっと待て。もっとよく考えてみろ。 と言うわけで Fortran95 以降推奨
727 名前:名無しさん@5周年 mailto:sage [2009/01/18(日) 15:55:24 ] Fortranって書いた場合、一般に90以降を指すような? まぁ90より95のほうが確かにベターだが
728 名前:名無しさん@5周年 [2009/01/18(日) 18:13:43 ] >>725 >>726 ありがとう。ではFortranを勉強したいと思います。 >>727 本は90でも95でもどっちでもいいのでしょうか? 調べてみたら90と95ではあまり変わらないようですが
729 名前:名無しさん@5周年 mailto:sage [2009/01/18(日) 19:24:41 ] 大して変わらんからどっちでもいいよ
730 名前:名無しさん@5周年 [2009/01/18(日) 19:32:27 ] >>729 わかりました ありがとうございます
731 名前:名無しさん@5周年 mailto:sage [2009/01/18(日) 20:21:58 ] 頑張ってね いきなりガッツリ本読むより、適当にネットの入門サイトをザッと見るほうがいいかも
732 名前:名無しさん@5周年 [2009/01/19(月) 00:50:08 ] >>731 アドバイスありがとうございます 頑張ります
733 名前:名無しさん@5周年 [2009/02/17(火) 22:33:46 ] ― 離 婚 モ ー ド 突 入 ― 。. ゜ 。 ヽ / ゚ 。 ・ .\ / . ゚ 。 ' , , ' 。 ・ . ゜ 。 ` ー _ - ' ゜ . 。 . 。 ゚ ゜ : 。 ゚ . m n _∩ .∩_ n m ⊂二⌒ __). _____ (_ ⌒二⊃ \ \. /⌒粕 ⌒ \ / / 、_ノ、_人_人_人_人_人_人_人_人 \ \. /-=・=- -=・=- \ / / ノ \ \. / (__人__) \ / / _) もう思い残すこともねえ! \ | `Y⌒y'´ | / ヽ \.\ ゙ー ′ // '^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ \. ̄  ̄/ .| |
734 名前:名無しさん@5周年 mailto:sage [2009/02/19(木) 22:10:14 ] このスレの最初の方で Fortran90を使ってる俺は少数派? みたいなレスがあったことを思うと 時代もずいぶん変わったんだねぇ
735 名前:名無しさん@5周年 mailto:sage [2009/02/21(土) 15:00:45 ] 人の慣れって恐ろしいね。 年取ると環境替えらんないんかな。 C++使っとけば、Fortranなんて捨てられそうなもんだが
736 名前:名無しさん@5周年 mailto:sage [2009/02/21(土) 16:07:14 ] 汎用性という点ではC++のほうが上だろうね でもね、研究以外に時間を割きたくない研究者としてはFortranのほうがいいんだよね 速度の点では昔はC++はFortranに及ばないって話聞いたけど、最近はそうでもないという話も・・・
737 名前:名無しさん@5周年 mailto:sage [2009/02/21(土) 16:14:58 ] コストに見合った速度と成果さえ出ればFortranだろうがC++だろうがカシオの電卓だろうが構わないよ。
738 名前:名無しさん@5周年 mailto:sage [2009/02/21(土) 20:23:31 ] そりゃそうだ
739 名前:名無しさん@5周年 mailto:sage [2009/02/22(日) 00:17:09 ] >736 いまどきのfortranは計算機センターwで走らせるんじゃなきゃ、中身はc++だから意味なし。 いちいちfortranなんて時代遅れな情弱のために開発してられるかよってのが本音。 速度面でも、ループの中で呼び出すライブラリさえ速ければいい訳だしな……
740 名前:名無しさん@5周年 mailto:sage [2009/02/22(日) 02:36:05 ] まあ、まともなプログラム組めるまでには5年くらい経験いるわな 道具覚えんのに5年もかけれないというのはわかるな
741 名前:名無しさん@5周年 mailto:sage [2009/02/22(日) 13:39:27 ] 一流の研究してる人のコードって結構汚かったりしょぼかったりするもんな
742 名前:名無しさん@5周年 mailto:sage [2009/02/22(日) 15:54:29 ] まあ研究者にとっては、コード組みってのは、基本的に本来業務の領分じゃないからね コーディングの技術そのものは必須であっても、コード化されたアルゴリズムよりも上流の 定式化とかの部分が重要なんであって
743 名前:名無しさん@5周年 mailto:sage [2009/02/22(日) 16:33:09 ] 速度が問題にならない場合は、CやFortranでカリカリ書くよりもMatlabなどのフレームワークを使うほうが 効率だけでなく安全性の面でも推奨されるしね
744 名前:名無しさん@5周年 mailto:sage [2009/02/22(日) 17:44:54 ] こうしてFortranは生き残っていくのでありました。
745 名前:名無しさん@6周年 mailto:age [2009/02/22(日) 19:52:35 ] いゃ〜、このスレも足かけ6年ですか。 消えろみたいなのもありますけど、結局生き残ってますよ。 そりゃC/C++も書きますが、やればやるほど”シミュレーションならFortran十二分説”に賛成。
746 名前:名無しさん@5周年 [2009/02/24(火) 17:13:52 ] >>739 こいつ、ホントに馬鹿。ワロタ
747 名前:名無しさん@5周年 mailto:sage [2009/03/31(火) 13:12:57 ] 長寿スレあげ
748 名前:名無しさん@5周年 [2009/04/04(土) 20:30:37 ] あげてねーだろw つか2003年なんてこの板じゃ全然長寿じゃないから
749 名前:名無しさん@5周年 [2009/04/05(日) 07:54:20 ] >>743 モデル作成の試行錯誤中とかにもMatlabの類は効率的だよね。 安全性はどうだろう。 あの手のソフトってきびきび・スムースに動く「ふり」をすることがあるからなあ。
750 名前:名無しさん@5周年 mailto:sage [2009/04/06(月) 00:31:02 ] たいていの場合は大丈夫じゃないの? めちゃめちゃ広く使われてるじゃん
751 名前:名無しさん@5周年 mailto:sage [2009/04/11(土) 12:30:18 ] Fortranで計算する時、データの入力はどうするの? Cなら直ファイルでもDBでも色々好きにできるけど データが壊れてても検出できないで計算進んだりすると 困りそう
752 名前:名無しさん@5周年 [2009/05/05(火) 10:01:54 ] マルチコア化に対してコンパイラの最適はどの程度まで進んでいるんだろ? やっぱり、インテルのコンパイラがいいのか?
753 名前:名無しさん@5周年 mailto:sage [2009/05/08(金) 14:43:28 ] Intelの石ならIntelコンパイラ一択
754 名前:名無しさん@5周年 mailto:sage [2009/05/13(水) 22:31:31 ] F66/F77は死んだ! Fotran9x万歳!
755 名前:名無しさん@5周年 [2009/05/15(金) 01:07:57 ] F77はまだ死んでない
756 名前:名無しさん@5周年 mailto:sage [2009/05/23(土) 13:29:26 ] C/Fortranどちらでも構わないのですが、 クレブシュ・ゴルダン係数を計算してくれるライブラリってありますか?
757 名前:名無しさん@5周年 mailto:sage [2009/05/23(土) 21:11:53 ] 何それ
758 名前:名無しさん@5周年 mailto:sage [2009/05/23(土) 23:09:22 ] >>757 物理に出てくる話。まぁ篤志家が作っているかもしれないが 自分で使うためだろうから、ライブラリとして転がっている とは思えない。 Mathematica なら内部のパッケージで持ってるかもしれんが 使わないから知らない。
759 名前:名無しさん@5周年 mailto:sage [2009/05/24(日) 00:58:08 ] MathematicaはたしかWingerの3jSymbleを持っていたような 3jSymbol ⇔ CG coefficientは簡単に変換できる
760 名前:名無しさん@5周年 mailto:sage [2009/05/24(日) 11:48:52 ] Maximaにはebsch_gordan.macなるパッケージがデフォで付属している
761 名前:名無しさん@5周年 mailto:sage [2009/05/24(日) 21:17:27 ] >>759 > 3jSymbol ⇔ CG coefficientは簡単に変換できる その変換プログラムを作ってくれ、とか言われそう。
762 名前:名無しさん@5周年 mailto:sage [2009/05/25(月) 06:43:53 ] スレチだけどついでに聞きたい Mathematicaで、研究業界全体で騒動が起こるほどの致命的なバグが発見されたことってあった? ここまでメジャーになると、影響は計り知れないと思うんだが。 もう絶対バグはないって信じ切って使ってる研究者も多いらしいし。
763 名前:名無しさん@5周年 mailto:sage [2009/05/25(月) 10:04:37 ] まともな研究者なら自分でソース書く
764 名前:名無しさん@5周年 mailto:sage [2009/05/25(月) 11:07:38 ] >>763 いや、そんな暇なことはできなよ。 必要最小限の検証はするけど、自作コードの方がバグ率高し。
765 名前:名無しさん@5周年 mailto:sage [2009/05/25(月) 18:54:02 ] プログラミングが下手な人はそうなるな
766 名前:名無しさん@5周年 mailto:sage [2009/05/25(月) 20:01:36 ] >>763 数学屋さんとか自分の定理の検証とかに結構使ったりするらしいぞ つーかMathematicaはもともと数学コミュニティから生まれたんだよな
767 名前:名無しさん@5周年 mailto:sage [2009/05/25(月) 21:06:25 ] >>766 なんかお前のレスは文系の匂いがする
768 名前:名無しさん@5周年 mailto:sage [2009/05/26(火) 16:57:11 ] >>767 残念ながら理系つーか工学系。だがMathematicaは使ったことないけど・・・ 数学界とMathematicaがどういう関係なのかは個人的に興味深くてさ 工学や産業の世界だと、よく考えずに商用コードを使ってバグに振り回されるなんて 低レベルな話はよくあることだが、数学屋でそれはないんだろうなと思って スレチならやめるけど、そんなら他のネタを出してくれ
769 名前:名無しさん@5周年 mailto:sage [2009/05/31(日) 05:32:50 ] 中で何やってるかわからないMathematicaじゃなくて、 使うならMaximaにしろってどっかの先生が書いてたような気がするが どこで読んだのか忘れた
770 名前:名無しさん@5周年 mailto:sage [2009/05/31(日) 06:35:28 ] >>769 でも Maxima だって Lisp が解読できなければ中で何やってるか 分からんよな。個人的には Maxiam を使いこなすために Lisp に 手を出そうかとは考えちゃいるが。 # あくまでも個人的な意見ですよ
771 名前:名無しさん@5周年 [2009/06/01(月) 04:42:32 ] >>770 中身が公開されてるかどうかの話じゃね?
772 名前:名無しさん@5周年 mailto:sage [2009/06/07(日) 17:29:14 ] 純粋科学の研究者の態度として、ブラックボックスを 使わないってのはあるだろ。 純粋じゃない分野は好きにして
773 名前:名無しさん@5周年 mailto:sage [2009/06/08(月) 21:41:57 ] それも場合によるさ 純粋科学の研究者の書いたコードがバグを出さない、という保証があるわけじゃないんだから でも今時の数学者じゃLispとか使えるのは当たり前かも?
774 名前:名無しさん@5周年 mailto:sage [2009/06/08(月) 22:17:03 ] いやそうじゃなくて自分自身で確認する精神が重要ってことだろ むしろ昔の研究者は細部まで自分でプログラミング(死語w)していたよな サブルーチンもプログラミングしやすいという理由で発生したのであって 外部のライブラリを呼び出すっていう発想じゃないわけだ 今時の数学者の方がブラックボックスに安易に手を出すんじゃないか
775 名前:名無しさん@5周年 mailto:sage [2009/06/09(火) 12:29:49 ] 仰るとおり、そういう精神は大事だ
776 名前:名無しさん@5周年 mailto:sage [2009/06/09(火) 12:45:28 ] 細部までプログラミングしてもコンパイラ、さらにCPU、にバグがあるかもしれない。 結局、結果の合理性をある程度チェックして後は信じるしかないんだから、 低レベル言語でもMathematicaみたいな高レベル言語でも同じことでは。 もちろん、すべて手計算で研究できれば一番いいんだが、それを するにはわが脳みその性能が org
777 名前:名無しさん@5周年 [2009/06/13(土) 19:00:43 ] Mathematicaは商用ソフトで完全ブラックボックスってのがなんとも いや、使っちゃうんだけどさw
778 名前:名無しさん@5周年 mailto:sage [2009/06/16(火) 23:59:54 ] ■闇金の手口はここ → www.d2.dion.ne.jp/~aknet/akutoku.html d-atari.jp/kikaku/sds.htm なサイトから、メアドを入手する闇金も多い。 闇金の種類は、yami.sarakinn.com/syurui.html#3 など多岐に並び、 www.lifestyle-web.jp/ の探偵なんかもそうらしい。 闇金や詐欺の被害にあった人は、勇気をふりしぼって、誰かに相談しよう!
779 名前:名無しさん@5周年 mailto:sage [2009/06/18(木) 18:14:20 ]
780 名前:名無しさん@5周年 mailto:sage [2009/09/01(火) 06:16:52 ] 1 愛のかぁびぃ ◆Kirby..wFo sage 2009/07/03(金) 18:01:34 ID:cCGEUfKK BE:657429539-PLT(24242) 俺は予知夢をみた。 PS3で大作ソフトが出る夢だ。 聞いて驚くな、これは 絶 対 に 当 た る まず最初にでたのは全世界で圧倒的な売り上げを誇るGTAの新作だ・・・ タイトルはGrand theft auto:New Tokyoで、会場は大盛り上がり。モチロンPS3独占 MSの幹部が目を涙目にしながら言うんだ「Why my hard not on this?」ってなw 次はFFの新作だな。FF13はマルチ化らしいが、後にマルチが解除されPS3独占になるであろう。 次はCall of Dutyシリーズの最新作!名前はCall of Duty7:High quarity warsだ! そしてどんどんPS3にソフトが集まってゆく。ついにはHomeのリメイクやKillzone3が出て盛り上がる。 とどめにXBOX360が世界中で見放され、PS3がトップになるであろう。 断言しつつも率直に言う。俺の予知夢で外れたことは一回もない。 数分後↓ 2 愛のかぁびぃ ◆Kirby..wFo sage 2009/07/03(金) 18:09:56 ID:cCGEUfKK BE:779174584-PLT(24242) このスレには書き込めません。 4 愛のかぁびぃ ◆Kirby..wFo sage 2009/07/03(金) 18:21:01 ID:cCGEUfKK BE:1193111377-PLT(24242) このスレは今、停止チュです。ご遠慮ください。
781 名前:名無しさん@5周年 [2009/11/13(金) 22:46:18 ] IDLでいじゃん
782 名前:名無しさん@5周年 [2009/11/16(月) 07:48:56 ] >>781 たけえよ、あれ。どうせならMatlabの方がいい。
783 名前:名無しさん@5周年 [2009/12/10(木) 18:34:39 ] octave
784 名前:名無しさん@5周年 [2009/12/28(月) 17:18:49 ] 〉756 William J. Thompson:"ATLAS FOR COMPUTING MATHEMATICAL FUNCTIONS", Wiley-International, ISBN 0-471-18171-4, 19.7: Angular Momentum Coupling Coefficients に、3J, 6J, 9J シンボルの計算プログラムがFortranで出てるぞ。
785 名前:名無しさん@5周年 [2010/02/05(金) 13:17:27 ] うちの大学のプログラミングの授業。 いままでFortran90を使っていたけど、来年から Fortran77に変更するらしい。 訳が分からん
786 名前:名無しさん@5周年 mailto:sage [2010/02/05(金) 18:17:29 ] 担当教員が変わるからなんじゃないの、授業で教えるなら90を勉強すればいいのにと思うけど。 そんなに大変でもないのに、学生がかわいそうだ。
787 名前:名無しさん@5周年 mailto:sage [2010/02/06(土) 13:13:36 ] >>785 マジキチ
788 名前:名無しさん@5周年 mailto:sage [2010/02/07(日) 22:21:45 ] >>795 プログラミングの授業なんて、教科書の通り教えればいいだけだろ。 でかいプログラムを作るわけでないし、教員も文法の少しぐらい勉強しろよー。
789 名前:名無しさん@5周年 mailto:sage [2010/02/08(月) 22:36:25 ] 90なんて覚えても分野によっては77が幅きかせてるんじゃないの?
790 名前:名無しさん@5周年 mailto:sage [2010/02/09(火) 07:51:14 ] でも、上位互換だから、90を学んでおけば77も対応できるだろ。 特に学生の場合は、卒業後どういう分野に就職するか分からないんだから、 どうせfortranをやるなら90の方が良いと思うな
791 名前:名無しさん@5周年 mailto:sage [2010/02/09(火) 12:14:08 ] 俺の分野では、77で書かれた標準的に使われているプログラムがあるが、 固定形式で書けば、この77プログラムをサブルーチンにして他の部分は90で書く、 なんてこともできるので…
792 名前:名無しさん@5周年 mailto:sage [2010/02/10(水) 11:51:35 ] >>791 >固定形式で書けば、この77プログラムをサブルーチンにして他の部分は90で書く、 >なんてこともできるので… 関係ないような気がするけど。 確か1つのファイル内では77(固定形式)と90(自由形式)のどちらか一方に 統一しないといけないけど、コンパイルした後は関係ないんじゃないの? それから、77で書いたら90の機能は使えない。 やはり「慣れてる」という観点以外で、77を使う理由は皆無だと思うね。 もっとも、慣れは極めて重要な要素ではあるがw
793 名前:名無しさん@5周年 mailto:sage [2010/02/10(水) 12:46:54 ] >>792 >>791 で言いたかったのは、90のプログラムを固定形式で書けば77のコードを サブルーチンとして組み込んで利用できるのだから、 (たとえ77の汎用コードが出回っている分野でも)90を教えた方が良い、ということ。
794 名前:793 mailto:sage [2010/02/10(水) 13:11:11 ] あと、誤解があるようだけど、90でも固定形式で書くことはできるよ。
795 名前:名無しさん@5周年 mailto:sage [2010/02/10(水) 14:08:40 ] >>793 ごめん、勘違いしてた。>>792 で言った >それから、77で書いたら90の機能は使えない。 は間違いだった。コンパイラはファイルのsuffixが.fか.f90かを見て77か90かを 判断するのだと思ってたが、判断されるのは形式(固定or自由)だけなのか・・・。 そうすると、本当に見た目上の些細な違いしかないってことになるね。 ・固定形式・・・7-72桁の制約。継続行は6桁目に任意文字。 ・自由形式・・・桁の制約(実質的に)なし。継続行は行末に「&」。 まぁ、自分的には桁の制約がないのはかなりのメリットだな。全画面でエディタ使ったりするんで。 >90のプログラムを固定形式で書けば77のコードをサブルーチンとして組み込んで利用できるのだから、 「組み込む」ってのは、同じファイル内にいっしょに併記するって意味だよね。 確かにこれは大きいのかも。catでサクッとマージしてコンパイルとかできるし。
796 名前:名無しさん@5周年 mailto:sage [2010/02/11(木) 16:02:14 ] たぶん、問題の講座担当教員はそんなことまで考えていないから大丈夫
797 名前:名無しさん@5周年 [2010/02/11(木) 18:18:22 ] 72桁の制約はきつすぎる 数式を扱う以上、長くなりがちだし
798 名前:名無しさん@5周年 mailto:sage [2010/02/19(金) 08:55:45 ] >>797 だね。・・と書きつつ、 目が72桁制約の固定書式に慣れてしまって久しいので F90の機能てんこもりだけど固定書式で書いてる。 その事で文句をいってくるコンパイラは今のところないし
799 名前:名無しさん@5周年 [2010/05/03(月) 11:44:20 ] 昔、カードバッチの時代にはだ、計算センターにつめている場合であっても、 プログラムをコーディングしてカードをパンチした束を抱えてJOB制御カードを つけてカード読み取り機にかけるんだが、その読み取り機に並んで居る人間 の列がまずある。読み取り機にかけても数百数千枚とあると、時々カードが 引っ掛って一回で読めないことがある。そうして無事に読めても、ジョブが スプールされていてコンパイルが始まるまでにしばらく間が在る。うまく コンパイルができれば実行が始まるのだが、概してコンパイラが文法上の ミスを見つけてラインプリンターにコンパイルリストとエラーリストの束が 出てくるから、それをもって机に戻り、どこがどう間違っているのかを 見極めて直すべき箇所を見出して、カードの束の中から該当するカードを 改めて打ち直したカードと慎重に差し替える。そうやってまたカード読み取り 機の待ち行列に並ぶ、正常に動作するまでは、なんどもなんどもこれの繰り返し。 おのずと学習して、極力ミスが無いかどうかを事前に慎重に考えるようになる。 計算機センターにつめて作業できる場合はうえのとおりだが、遠隔地だと 手元にカードパンチ装置があれば、それでカードをパンチしてアルミトランク に詰めて計算センター宛てに運送を依頼、何日か経って計算センターに届いた トランクの中身はセンターの職員がカードリーダーにかけて、結果のライン プリント用紙をつけてカードを送り返してくる。そこでも数日。 受け取ったプリント用紙には、COMPILE ERROR と書かれてエラーリストが 出ているから、それを直したカードディック(カードの山・束)を作って 再びトランクに詰めて依頼書をつけて送る。これの繰り返し。 まるで、葉書でやりとりして将棋を指すようなもの。 以上、昔話でした。