月食&天王星食
天皇陛下の御恩徳により快晴の空の元、皆既月食と天王星食を眺めることが叶いました。
しばらくぶりで天王星を(双眼鏡で)肉眼で見ました。(望遠鏡で)高校三年生ぶりでしょうか。
iphone 13 mini での写真w
Uranus
皆既中の月の下に天王星が小さな点として写っています。スバルとヒヤデス星団も写っています。
M31
ついでにアンドロメダ星雲も撮ってみました。3秒しか溜め込まないので、こっちはあんまりはっきり写りませんでした。
Fortran 202Y での導入が目指されている Generics ですが、LFortran で試験的な実装がなされ、試してみることが可能になりました。ここで Fortran 202Y とは次期規格の Fortran 202X のさらに次の規格という意味です。また Fortran 202X は、先年 X = 3 にすることが決まっています。
We implemented an initial prototype of Generics into LFortran from the Fortran Generics Subcommittee's draft. It works online as well. If you are interested in generics in Fortran, please go ahead and test it out. Instructions and more details:https://t.co/X9hgUx5yFx
— LFortran (@lfortranorg) 2022年11月5日
LFortran は WEB 上で試すことが出来ます。
LFortran はユーザー定義派生型や operator overload などがまだ実装されていないので、あまり多くは試せません。
twitter にあった例題を改変して、単項演算子と二項演算子を試してみました。思ったより長々グチャグチャになり、定義位置や定義順もイマイチぴんと来ない感があります。また Fortran は case insensitive なので、Template と普通の具象名が渾然混沌区別がつかぬ感もします。
requirement の中の function 名が漏れ出して、多重定義エラーになってしまうので名前を F0 に変えました。
module template_test_m implicit none private public :: unary_t, binary_t requirement S(T, F0) type :: T; end type function F0(x) result(z) type(T), intent(in) :: x type(T) :: z end function end requirement template unary_t(T, F0) requires S(T, F0) private public :: unary_generic contains function unary_generic(x) result(z) type(T), intent(in) :: x type(T) :: z z = F0(x) end function end template requirement R(T, F) type :: T; end type function F(x, y) result(z) type(T), intent(in) :: x, y type(T) :: z end function end requirement template binary_t(T, F) requires R(T, F) private public :: binary_generic contains function binary_generic(x, y) result(z) type(T), intent(in) :: x, y type(T) :: z z = F(x, y) end function end template contains real function func_minus_real(x) result(z) real, intent(in) :: x z = -x end function real function func_add_real(x, y) result(z) real, intent(in) :: x, y z = x + y end function real function func_sub_real(x, y) result(z) real, intent(in) :: x, y z = x - y end function real function func_mul_real(x, y) result(z) real, intent(in) :: x, y z = x * y end function real function func_div_real(x, y) result(z) real, intent(in) :: x, y z = x / y end function subroutine test_template() instantiate unary_t(real, func_minus_real), only: minus_real => unary_generic instantiate binary_t(real, func_add_real), only: add_real => binary_generic instantiate binary_t(real, func_sub_real), only: sub_real => binary_generic instantiate binary_t(real, func_mul_real), only: mul_real => binary_generic instantiate binary_t(real, func_div_real), only: div_real => binary_generic real :: x, y x = 5.1 y = 7.2 print*, "The result is ", minus_real(x) if (abs(minus_real(x) + x) > 1e-5) error stop print*, "The result is ", add_real(x, y) if (abs(add_real(x, y) - 12.3) > 1e-5) error stop print*, "The result is ", sub_real(x, y) if (abs(sub_real(x, y) + 2.1) > 1e-5) error stop print*, "The result is ", mul_real(x, y) if (abs(mul_real(x, y) - 36.72) > 1e-2) error stop print*, "The result is ", div_real(x, y) if (abs(div_real(x, y) - 0.7083333) > 1e-6) error stop end subroutine end module program template_test use template_test_m implicit none call test_template() end program template_test
The result is -5.099999904632568 The result is 12.299999237060547 The result is -2.0999999046325684 The result is 36.71999740600586 The result is 0.7083333134651184
議論の過程で色々仕様が変化しているようです。
策定に携わっている方の要点まとめ記事です。
The State of Fortran Genericseverythingfunctional.wordpress.com
本文中の restriction が、LFortran では requirement に変わっています。
Dr. Thomas Clune gives a seminar on July 18, 2022 at the NCAR Mesa Lab.
質疑等細部の詳細はさっぱり理解できませんw
巻頭に元衆院議長の伊吹文明氏の午餐会での講演をまとめたものが載っていたのですが(「絶対的正解のないのが政治ー意思決定の難しさ」)、その内容が極めて真っ当かつ常識的で驚きました。
さわりが見られます。細田現衆院議長を腐しているところまでw www.gakushikai-salon.jp
要旨
保守は、「個人は間違う」という考えを前提とするため、政治では独裁ではなく民主制を、経済では統制経済ではなく大勢の人が参加する自由主義・市場経済を選ぶ。ただ民主制もポピュリズムに、自由もわがままに陥るので、その欠点を民族が長い時間をかけて培ってきた伝統的規範を身につけた個人により正そうと考えるのが保守である。
昨秋、正解を引退した元衆議院議長が、保守の矜持と意思決定の難しさについて語る。
段落
何事も釣り合いの精神でということで、実に真っ当に思われることが書かれていました。 ただ旧大蔵省出身のせいか財政均衡・緊縮論みたいな事も言っていますが、それはしょうがないかwという感じです。
農耕社会なら太陽の1年周期で均衡が必要でしょうが、現代日本は工業化・脱工業化社会でもっと長周期の好景気・不景気の波があるのだから、単年度会計での財政均衡に固執するのもいかがなものかという気がします。また小学生も習う江戸時代の三大改革で、寛政の改革、天保の改革とも緊縮財政で失敗しています。それでいて、同じ土地と人間で明治になれば一気に人口増・経済成長しています。
最近、頭のおかしいサヨ爺の寝言記事ばかり出てくるので、まっとうな政治記事を読むとビックリ仰天します。
フランス電力会社からの要請で、今年は早めに終了、来年は遅めに再開の模様です。
人口 20 万人のジュネーブ市の年間電力使用量が 3 テラワット時の所、CERN は 1.3 テラワット時ほど使用するようです。今年の電気代の見積もりは八千九百万ドル(130億円)ほど。
「9 万人が電気無しで過ごせば済むこと」とアスペ素粒子おじさんに言わせたり、CERN はグリーンじゃないと温暖化サヨクを焚きつけたりしてみたいですね。
曲名が草
長年、ジュークボックスの音楽に mashed potate する意味が分かりませんでしたが、ふと検索した所 1962 年ごろ大流行した踊りの一種と分かりましたw
The Mashed Potato is a dance move which was a popular dance craze of 1962.
日本語がうまい。
日本語がうまい。
FORTRAN66講演では Fortran/C++/python の3言語と、自動最適化、OpenACC/OpenMP 利用、cu-library 利用、CUDA 利用の概観が示されています。
質疑でお勧め度が示されましたが、新規開発なら Fortran/C++ ISO standard で書きコンパイラの自動並列化(GPU/CPU 両方可)に任せる、既存の並列化なら OpenACC annotation でコンパイラ任せがお勧め、もしくは計算のコアがライブラリ呼び出しで置き換えられるなら cu*** ライブラリを呼び出すのみ、最後の手段が CUDA で書くこと。OpenMP の場合、人間が細かく指示するより loop directive でコンパイラ任せにした方が CPU/GPU 書き分けずに済むのでお勧めというような、もっともな答えが返っていました。
ソース元 https://twitter.com/ogawa_tter/status/1585628546432585728
> 中国政府は、将来いつかきっと後悔するでしょう。
特定の人に対して靖国神社に参拝しているわけではありません。
心ならずも家族と別れて命を捨てなければならなかった、多くの戦没者の方々に敬意と感謝の誠を捧げ、哀悼の意を表すために靖国神社に参拝しているのであります。
私は日中友好論者であります。
中国政府は、将来いつかきっと後悔するでしょう。
友好国の日本国首相、しかも民主的に選ばれた首相に対して、靖国神社に参拝するかしないかを条件に首脳会談を行うか行わないか考えると言ってきた。
私は首脳会談を拒否されても閣僚諸君は大いに中国との交流を進めてほしいと指示してきました。
胡錦濤は愚かにもダライ=ラマの日本訪問に合わせて、反日デモを組織して愚昧な支那土民を組織して官製デモを行わせたが、それがみるみる拡大してコントロールが利かないほどになり、印刷されたプラカードや幕を掲げていた官製デモとは異なり、手書きのプラカードや垂れ幕を連ねた反日暴動になって、慌てふためく羽目になった。
そうした愚挙の果てに小沢一郎と結んだ習近平に、会場をつまみ出される羽目になった。愚かな支那人よ、後悔して泣けw
習近平は小沢面談ばりの面談で、李克強や栗戦書から『自主的』に引退を引き出したそうで、さすが小沢門下生w
フルシチョフも失脚後は毎日泣いて暮らしていたようだし。胡錦濤がアマゾンの欲しいものリストに鼻紙を載せたら、便所用の都白菊なら買ってやろうぞ。