fortran66のブログ

fortran について書きます。

2010-09-01から1ヶ月間の記事一覧

178 名前: タピオカ(埼玉県) :2010/09/28(火) 22:11:29.65 id:kEOnpIFb0 ●日本の不幸は中国と朝鮮である。 この二国の人々も日本人と同じく漢字文化圏に属し、同じ古典を共有しているが、 もともと人種的に異なるのか、教育に差があるのか、 日本との精神的…

ちら裏メモなのでよく考えてないです

先日、本屋で Ruby 本を立ち読みしていたのですが、実数どうしの合同の比較で、画面の出力と実行結果を一致させるために、数値を文字列に変換して文字列どうしで比較するという項目があって、面白く奇妙な発想だと思い、メモっておくことにしました。FORTRAN…

archimedes 式 Pi 計算

アルキメデスは、円の内接多角形と外接多角形を書いて円周の真値を挟み込む形で円周率を求める方法を後世に残しています。ここでは内接多角形から円周率を求めることにします。ところで、小学生の知識で周長のわかる場合としては、円は内接六角形と外接正方…

LOG(2) のバイナリー表示 昨日の続き

二進法表示で小数点以下 n+1 桁目から始まる LOG(2) のビット列表示です。計算する式 ここで {} は、小数部を意味します。 ソース・プログラム 整数に変換することでビット列の表示をするように直しました。 PROGRAM test ! LOG(2) IMPLICIT NONE INTEGER ::…

LOG(2) のバイナリー表示

九月二日の続き。 Pi Directory by David H. Bailey下のDavid H. Bailey, "The BBP Algorithm for Pi," manuscript, Sep 2006. に基づいて、LOG(2) の任意位置での二進表示の計算というものをやってみました。 アルゴリズムを理解できたかの試し計算なので、…

CDC7600 での FORTRAN 最適化テクニック

スパコンの先祖ともいわれる CDC7600 での FORTRAN 最適化テクニックについての記事がネットにあったのですが、見てみるとすでにバンクコンフリクトの問題とかが書いてあって興味深かったです。注意深くプログラムすると非常に高速だった、と言われていた意…

1956年 IBM704 用 FORTRAN I の例題。

Fortran automatic coding system for the IBM 704 programmers reference manual (1956) [http://www.fh-jena.de/~kleine/history/history.html:title=Historic Documents in Computer Science collected by Karl Kleine] から。Fortran automatic coding s…

Fortran90 用の Reference card

Fortran90 用の Reference card が、Homepage of Michael Goerz にあります。

国立情報学研究所のCiNii

国立情報学研究所の CiNii データベースで FORTRAN と検索すると結構昔の文献が引っかかって面白い記事も色々出てきます。 登録なしで見ることができる記事も多いです。 規格に関するもの 66. 算法言語 FORTRAN II の報告 FORTRAN IV 言語の概略 F0RTRAN 77 …

スヌーピー・カレンダー

ここにソースあり(Win32のバイナリーもあり)。 この出力は、若干ソース修正をしたものです。 ラインプリンタ制御文字が書かれていますが気にしないでください。 昔はもっとこの手のラインプリンター用カレンダー絵が流れていたものですが、非改行での二度…

Cody の SQRT

program sqrt2 implicit none real(16) :: x, y, z, y2, y3, f, e integer :: i, j, k REAL(16), PARAMETER :: sqrt05 = SQRT(0.5q0) DO j = 1, 1000 CALL RANDOM_NUMBER(x) x = x * 1000.0q0 ! print *, 'x=', x f = fraction(x) i = exponent(x) ! print *…

四手和 Kahan 和

PROGRAM test IMPLICIT NONE INTEGER :: i REAL :: x, s, c, t c = 0.0 s = 0.0 DO i = 1, 100 x = 0.01 - c t = s + x c = (t - s) - x s = t PRINT *, s, c END DO PRINT *, s == 1.0, s STOP END PROGRAM test

メモ帳

-LOG(2)=LOG(1/2)=LOG(1-1/2)=1/1(1/2)+1/2(1/2)^2+1/3(1/2)^3+....確認テスト PROGRAM test IMPLICIT NONE INTEGER :: i, j, k, m, n REAL :: x, y n = 10 PRINT *, 2**n * LOG(2.0) x = 0.0 y = 0.0 DO k = 1, n m = 1 DO i = 1, n - k m = MOD(2 * m, k) …