Twitter APIの仕様変更のため、「いいね」の新規取得を終了いたしました

黒木玄 Gen Kuroki

@genkuroki

  • いいね数 389,756/311,170
  • フォロー 995 フォロワー 14,556 ツイート 293,980
  • 現在地 (^-^)/
  • Web https://genkuroki.github.io/documents/
  • 自己紹介 私については https://twilog.org/genkuroki と https://genkuroki.github.io と https://github.com/genkuroki と https://github.com/genkuroki/public を見て下さい。
並び順 : 新→古 | 古→新

2021年03月24日(水)

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 私も Yoshida6 をいつも使っている。

他にも色々試してみて「Yoshida6、わるくねえ❤️」という感じ。 twitter.com/kikumaco/statu...

タグ: Julia言語

posted at 00:02:55

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 みんな大好きらしい Yoshida6 をDifferentialEquations.jl で使う3つの方法が、既出の

nbviewer.jupyter.org/gist/genkuroki...

にあります。

SecondOrderODEProblem
DynamicalODEProblem
HamiltonianProblem

の3つの問題で、数値計算がうまく行く例を作るためにYoshida6を使っています。

タグ: Julia言語

posted at 00:07:00

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 ハミルトニアンを与える方法だと、ハミルトニアンから正準方程式を作るところで無駄に誤差が発生することを恐れるかもしれませんが、DifferentialEquations.jlでは自動微分で正準方程式を正確に計算しています。

ハミルトン函数をJulia語で書いて初期値を与えるだけでいいのは楽ちんです。

タグ: Julia言語

posted at 00:11:52

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 ただし、「幅を持った数値」で微分方程式の数値階を求めたい場合には、ForwardDiff.jlとの相性の都合でHamiltonianProblemが使えなくなる場合があります。

その場合には正準方程式を計算して、SecondOrderODEProblemまたはDynamicalODEProblemを使えば大丈夫です。

タグ: Julia言語

posted at 00:14:33

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 ②にあたることは所謂OOPでの常套手段。そのとき問題になるのは①の側で、②を享受できるメリットを潰さずに、①も享受できるようにしたい。

その1つの答えがJuliaの多重ディスパッチであるというような話が以下のリンク先にあります。去年の12月。結構最近。

discourse.julialang.org/t/is-julias-wa...

タグ: Julia言語

posted at 00:34:28

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 他人が書いたコードを自分が利用するときには

①他人が作った型A,B,Cに関する

function f(a::A, b::B, c::C) ~ end

②Foo.f(a, b, c)は他人が作った函数で、A,B,Cのどれかが自分が作った型のときの

function Foo.f(a::A, b::B, c::C) ~ end

のパターンがある。シンプルで覚え易い。

タグ: Julia言語

posted at 00:48:26

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 の末端ユーザー的に(やろうと思えばできるが(以前解説した))、やめて欲しいことは、f(a,b,c)の最初の引数を特別扱いして、a.f(b,c)と書くスタイルをJulia界で広めること。

せっかく、f(a,b,c)のa,b,cについて平等に多重ディスパッチされる状況が便利なのに対称性を崩されるのは辛い。

タグ: Julia言語

posted at 00:53:14

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 例えば、標準基底 e(i) と行列Aについて、LinearAlgebra. dot(e(i), A, e(j)) はA[i,j]になるのですが、e(i)に特別な型CanBasisを与えて、

LinearAlgebra. dot(x::CanBasis, A::AbstractMatrix, y::CanBasis) = A[x.i, y.i]

のように定義できて爆速dotの標準基底を実現できます。続く

タグ: Julia言語

posted at 01:02:13

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 LinearAlgebra. dot(x, A, y) を使っている他人が書いたコードでも、私が作ったCanBasisオブジェクトは機能してくれる。

これは上の②のパターン。

既存の型の組み合わせに自分で自分用の函数を定義する①のパターンはもっとありふれている。

タグ: Julia言語

posted at 01:02:14

シン・イズシンキ @izushinki

21年3月24日

名手「藤井の4一銀」が炸裂していたのか…😆 pic.twitter.com/oFOqCBEYBj

タグ:

posted at 02:32:13

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 「タブ補完」の問題については以下のリンク先のプルリクエストを参照。
github.com/JuliaLang/juli...

タグ: Julia言語

posted at 03:14:30

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 以下のリンク先の発言は、(数値)線形代数の実装を効率化するためには、シングルディスパッチのOOPスタイルでは無理で、Juliaスタイルの計算効率を上げるスタイルの多重ディスパッチが必要なのではないかという意見。

Juliaには対称三重対角行列の型もある(笑)

discourse.julialang.org/t/is-julias-wa...

タグ: Julia言語

posted at 03:51:38

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 以下のリンク先の発言にあるリスト

①特殊な行列の間の二項演算の効率的な実装には二重ディスパッチが有用。

②異なる型の数値の間の演算。以前私も解説して、最近もどこかで話題になったpromotionの話。

③文脈依存での各種オブジェクトの表示

discourse.julialang.org/t/is-julias-wa...

タグ: Julia言語

posted at 04:01:38

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 以下のリンク先には、多重ディスパッチの少なくとも3つあるキラーユースケースで最も重要なのが線形代数だと書いてあった!

私が職業的にJuliaについて最も感心したのは線形代数の実装の仕方。一般ユーザー側からはまるで線形代数の教科書通りに見える。

discourse.julialang.org/t/why-specify-...

タグ: Julia言語

posted at 04:06:54

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 上の続き。Juliaでは安全のために型を使うのではないとも書いてあった。「静的型付けで安全を確保」教の信者がJuliaで困るのは当たり前。

単なる数学的仕組みに過ぎないものについて、特定の使用法だけしか思いつかないように誘導されていることに気付いたら、すぐに逃げるべき。

タグ: Julia言語

posted at 04:11:23

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 もちろん、そこではJET.jlも引用されている。

discourse.julialang.org/t/why-specify-...

JET.jl↓
github.com/aviatesk/JET.jl

タグ: Julia言語

posted at 04:13:42

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語

C++の開発で知られるBjarne Stroustrupさんは、f(x,y)の最初の引数を特別扱いしてx.f(y)と書くスタイルをろくでもないものとした上で、「浅い理解」だが「ひどくファッショナブル」でしたと言っているんですね。

discourse.julialang.org/t/is-julias-wa...

www.open-std.org/jtc1/sc22/wg21...
pic.twitter.com/maRIFp92Kf

タグ: Julia言語

posted at 04:24:10

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語

「Juliaではたとえコミュ障でも他人が作ったパッケージの機能を自分のコードで利用できる仕組みになっている」とまとめられる感じ?

discourse.julialang.org/t/is-julias-wa...

タグ: Julia言語

posted at 04:40:52

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語

多重ディスパッチの仕組みのみを使ったtraitの実現(いわゆるHoly trait)は、ほぼ「何でもあり」になる仕組み。

そういうより一般的で高機能な仕組みを使って「インターフェース」が実現できて何が悪いのか、私も理解できなかった。

discourse.julialang.org/t/is-julias-wa...

タグ: Julia言語

posted at 05:02:36

Jeff Bezanson @JeffBezanson

21年3月24日

The free software foundation is just a group of people who call themselves that. They're not the only ones who get to say what software freedom is about.

タグ:

posted at 09:18:23

こどもの権利@養育里親 @satooyaninaro

21年3月24日

掛け算の順序が違うと✖

教えた通りに式を解答するまで
〇を与えない教育を続ける学校が

「答えにたどり着くまでの方法は一つではない」
「たくさん試行錯誤するこどもになってほしい」
と入学説明会で話す

意味が分からない

こどもはそもそも柔軟で
好奇心のままに
試行錯誤する存在なんですよ

タグ:

posted at 11:46:45

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 初期化されていない配列を作ってくれるsimilarの使い方をまだよく理解していなかった。

Array{Float64}(undef, 4, 3, 2)



similar(Array{Float64}, 4, 3, 2)

はほぼ等価。v1.7.0-DEV.706では後者の方が微小に小さなネイティブコードになった。

docs.julialang.org/en/v1/base/arr...

タグ: Julia言語

posted at 13:24:16

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 初期化されていない配列の作成はsimilarで統一的に書いた方がよいということなのかしら?

Int64の配列Aと同じサイズのFloat64の初期化されていない配列Bを作りたければ、

A = (1:4)' .+ 10(1:5)
B = similar(A, Float64)

docs.julialang.org/en/v1/base/arr...

タグ: Julia言語

posted at 13:24:16

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 Foo{T, U} のようなパラメトリック型に関してよく使われているコードのパターン↓
docs.julialang.org/en/v1/manual/m...

型昇格の話
docs.julialang.org/en/v1/manual/m...



所謂Holy traiteの話(trait-based dispatch)
docs.julialang.org/en/v1/manual/m...

もそこにある。

タグ: Julia言語

posted at 13:36:10

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 添付画像の 1 Python の例は

discourse.julialang.org/t/is-julias-wa...

より

Pythonだと

from fractions import Fraction
Fraction(1, 10) * 1j + Fraction(2, 10) * 1j
→0.30000000000000004j

Juliaなら

1//10 * 1im + 2//10 * 1im
→0//1 + 3//10*im

この辺はJuliaスタイルの良い点。 pic.twitter.com/3meQlKwCQf

タグ: Julia言語

posted at 13:46:20

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語

2//10 は Rational{Int64} 型
1im は Complex{Int64} 型

2//10 * 1im の型はそれらの型の組み合わせの昇格先である Complex{Rational{Int64}} になる。

この辺の処理は多重ディスパッチではやりやすい。

x * y の処理の仕方はxとyの型の昇格で決まる。

タグ: Julia言語

posted at 13:50:26

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語

ODEProblem: du/dt = f(u, t)

HamiltonianProblem: 正準方程式

では、後者は特別な構造を持っています。その構造を使えばデフォルトのソルバを前者より「よいもの」にできる可能性があり、実際にどうなっているのか確認していませんが、きっとそうなっているのだと思いました。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 14:05:59

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 DifferentialEquations.jlではどちらの型の問題もsolve(prob)の形式で解くことになるのですが、probの型が違っていると(ディスパッチによって)違うアルゴリズムで問題が解かれることになる。

問題の特殊な構造を反映した型のオブジェクトで問題をsolve函数に与えた方が得な場合が多い。

タグ: Julia言語

posted at 14:09:26

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 関連

solve : problem → solution の形式にコードを整理せずに、問題を記述するパラメータをグローバル変数にべた書きして、問題を解く函数の中でそのグローバル変数達をナマで使用するスタイルはそろそろ止めた方がよいと思う。

twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 14:15:16

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 「問題を記述するために必要なデータを1つの変数にまとめておく」「その変数を毎回函数に引数として渡すようにする」とするのは実際にやってみると大して手間を増やしません。

twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 14:17:49

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 f(x, y, z) を x.f(y, z) と書くスタイルのプログラミング言語では、問題を記述するデータをまとめたオブジェクト x に solve メソッドを定義しておいて、x.solve() のように使いたいのかもしれませんが、Juliaではxを特別扱いせずに、solve(x)と書く。

タグ: Julia言語

posted at 14:20:59

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 実際には、問題を記述しているオブジェクト prob とアルゴリズムを記述しているオブジェクト alg の組み合わせについて、solve(prob, alg) の形式でsolve函数を実行するスタイルになっていることが多い。

Juliaではprobとalgの型の組み合わせが違うと異なるメソッドが実行される。

タグ: Julia言語

posted at 14:22:58

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 「アルゴリズムにsolveメソッドがぶら下がっているのか、それともプロブレムにsolveメソッドがぶら下がっているのか?」のようなくだらない非本質的な問題について考える時間がゼロになることは、Juliaの良い点だと思います。

タグ: Julia言語

posted at 14:25:30

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語 C++の開発者も、f(x,y) の最初の引数だけを特別扱いして x.f(y) と書くスタイルは失敗で、浅い考え方だったと言っている。

昔は x.f(y) スタイルを考えることはとてもファッショナブルだったらしい😅

www.open-std.org/jtc1/sc22/wg21... twitter.com/genkuroki/stat... pic.twitter.com/r7ieyqpEwx

タグ: Julia言語

posted at 14:32:33

Seth Axen @sethaxen

21年3月24日

@rdhernand Sort of. I implemented the real matrix square root and logarithm for #julialang but didn't consider all the ways Infs, NaNs, and really large and small numbers can screw everything up. Which led to this PR where I needed a lot of hand-holding to fix it. github.com/JuliaLang/juli...

タグ: julialang

posted at 14:37:28

黒木玄 Gen Kuroki @genkuroki

21年3月24日

悪ふざけ論文のネタ:

* f(a,b,c,…)の中の個人aを特別扱いして、a.f(b,c,…) のように書き、函数fをaの所有物とするアイデアは極めて資本主義的。

* それに対抗する解放運動として多重ディスパッチが提案されて来たが、ことごとく資本主義に敗北して来た。

* 解放運動にとってJuliaは(略) twitter.com/genkuroki/stat...

タグ:

posted at 14:42:08

黒木玄 Gen Kuroki @genkuroki

21年3月24日

上のツイートはネタ(冗談)なので要注意。

タグ:

posted at 14:42:09

黒木玄 Gen Kuroki @genkuroki

21年3月24日

axiom of equality を「平等の公理」だと誤解させて(本当は「等号の公理」)、さらに axiom of choice を「(産むか産まないかの)選択(を認める)公理」と読ませることに成功したパロディ論文は有名。
physics.nyu.edu/faculty/sokal/...

他にも滅茶苦茶で笑えるのですが、アクセプトされて大騒ぎになった。

タグ:

posted at 14:48:02

黒木玄 Gen Kuroki @genkuroki

21年3月24日

過去の歴史では多重ディスパッチが普及しなかったことについては↓
discourse.julialang.org/t/is-julias-wa...

タグ:

posted at 14:54:47

荒木飛呂彦 コメントbot @araki_h_bot

21年3月24日

あとあの『カイジ』の福本伸行さん。『カイジ』はわし好みじゃないですか、そんな感じしませんか。絵はちばてつやを記号にしたみたいな感じで、そんなにうまくないけど。あれはいいんですよ。去年燃えたのはあれですね。本屋に走っていったのは久々ですね。
(ユリイカ 1997年4月号)

タグ:

posted at 15:06:34

三谷 純 Jun MITANI @jmitani

21年3月24日

先ほど、MITのAmanda Ghassaei氏による Origami Simulator がアップデートされました。
origamisimulator.org

今回の更新で、当研究室M2の佐々木君が研究開発してきた「曲線折り対応」の機能が組み込まれました。
(私の作品例もいくつか Example に追加してもらっちゃいまいた) pic.twitter.com/mbLFgfwf8r

タグ:

posted at 15:54:11

三谷 純 Jun MITANI @jmitani

21年3月24日

佐々木君の研究成果はこちらにまとめられています。
www.cgg.cs.tsukuba.ac.jp/~sasaki_k/

開発した成果は GitHub で共有し、こちらからのプルリクエストに基づいてコードをマージしてもらいました。

研究室の学生が海外の研究者とダイナミックに協働できる、素晴らしい時代になったなぁと思っているところです。

タグ:

posted at 15:58:07

三谷 純 Jun MITANI @jmitani

21年3月24日

Origami Simulator の解説のところにも、佐々木君の名前を入れてもらっています。
これで、これまでの研究開発も一区切り。
卒業式の前日に、よい知らせをいただきました。 pic.twitter.com/r7MAtotQNp

タグ:

posted at 16:00:06

ゆー @Yd_yuzu

21年3月24日

juliaでPythonっぽく使えるmoduleを書いてみていたがなんか知らんが動いた!ヨシ!ってなってるのでだめ

タグ:

posted at 17:39:23

大' @satodainu

21年3月24日

独走状態の #宮城県 ですが、さらに後続を突き放す。しばらくは閉じこもって過ごすしかなさげ。
#仙台市 の市民利用施設は、4/11まで休止だそうです。 #新型コロナウイルス

>【速報】新型コロナ 宮城171人、最多を更新 仙台は131人 | 河北新報オンラインニュース
kahoku.news/articles/20210...

タグ: 仙台市 宮城県 新型コロナウイルス

posted at 17:43:28

ゆー @Yd_yuzu

21年3月24日

別ファイルをincludeして最小二乗法を動かしているんだけど、moduleに包んでPythonっぽく動かそうとした方が包まれていない方よりもめちゃくちゃ速いのなんでだ???

タグ:

posted at 17:48:47

大' @satodainu

21年3月24日

大学入試や東日本大震災10年、2/13の福島沖地震などでの #宮城県 外からの来訪増加やGoToEatなどの影響では、と。
感染ルートは相変わらず飲食店やカラオケが多い模様。 #新型コロナウイルス

>宮城でコロナなぜ拡大? 専門家「多様な要因が複合的に作用」 | 河北新報
kahoku.news/articles/20210...

タグ: 宮城県 新型コロナウイルス

posted at 17:49:04

ゆー @Yd_yuzu

21年3月24日

@timeマクロをミスっていた

タグ:

posted at 17:54:23

大' @satodainu

21年3月24日

#宮城県 の独走ぶりですが、昨日の数値でこんな感じ。
沖縄県はまぁまぁがんばってるけど、東京都なんかすでにダブルスコアだからね。相手になりませんな。
そしてよく見ると、山形県が猛追してきている。 #新型コロナウイルス
www3.nhk.or.jp/news/special/c... pic.twitter.com/dSWxMq1oI3

タグ: 宮城県 新型コロナウイルス

posted at 17:55:15

かめ @kamesen

21年3月24日

暇だからoj-templateのpython版を改造してjulia版作ってみたんだけどprepare.config.tomlを設定してもoj-prepareが.jlを出力してくれない。

タグ:

posted at 17:55:56

Yuki Nagai @cometscome_phys

21年3月24日

動くのを優先して作ったJuliaのコードのデバッグが終わったので、次は高速化を施したら、4倍くらい速くなった。一度デバッグしておくと値が変わらないように高速化できて楽。アットtime使いながらメモリアロケーションを減らし続けた

タグ:

posted at 18:43:23

Julia Bloggers @juliabloggers

21年3月24日

New post: Benchmarking and Profiling Julia Code - www.juliabloggers.com/benchmarking-a... #julialang

タグ: julialang

posted at 19:25:50

非公開

タグ:

posted at xx:xx:xx

Hablamos R @RHablamos

21年3月24日

Certificación Introduction to Julia (for programmers), online y gratuita!!!, otorgada por el Julia Academy, aprenderás los aspectos básicos del lenguaje de programación Julia

youtu.be/3yfNKUURiVQ

#julialang #programacion #datascience #estadistica #lenguajedeprogramacion

タグ: datascience estadistica julialang lenguajedeprogramacion programacion

posted at 21:20:07

たきたき, Ph.D. @taki__taki__

21年3月24日

#Julia言語

Jupyter notebookでJulia開発してるとき,どのあたりでmoduleとか整理しはじめるか悩む問題.適当にReviseに頼む?まぁセルにmodule MyModule ~ endで入れておいた方が,structの修正できるから便利っちゃ便利だけど (たまに怒られる)

タグ: Julia言語

posted at 21:55:26

マナマの生マナマコ @chor0sK

21年3月24日

Juliaで関数の部分適用をやろうとしたメモです。
gist.github.com/hnakano863/4c8...
#Julia言語 #julialang

タグ: julialang Julia言語

posted at 22:16:49

非公開

タグ:

posted at xx:xx:xx

Massimo @Rainmaker1973

21年3月24日

This composite was taken by photographer Bill Church over the course of 12 minutes: 35 photos imaging a storm approaching in Utah [author's Flickr: buff.ly/2PgO0gW] pic.twitter.com/zKUe6p4APy

タグ:

posted at 22:30:38

ゆう@小さな資料集 @yu77799

21年3月24日

なぜ裁かれなかったのかは、「731部隊と「戦犯免責」」をどうぞ。米国は、細菌戦データの提供と引き換えに部隊幹部の「免責」を行ないました。yu77799.g1.xrea.com/731/menseki.html twitter.com/KBandou1/statu...

タグ:

posted at 22:36:22

Elias Carvalho @eliascarvdev

21年3月24日

@redrapids Unicode inputs in the #julialang code. Is so good for math kkkk pic.twitter.com/hh7VvYr0v0

タグ: julialang

posted at 22:58:30

非公開

タグ:

posted at xx:xx:xx

黒木玄 Gen Kuroki @genkuroki

21年3月24日

#Julia言語

github.com/JuliaSIMD/Loop...
の @ avxt マクロを使うとブロードキャストも並列化できるんですね。

私の環境での結果については添付画像を参照。

何も無し → 8.4 ms
@ avx → 3.0 ms
@ avxt → 0.85 ms

なんと10倍近く速くなった!

discourse.julialang.org/t/multithreade...

discourse.julialang.org/t/ann-loopvect... pic.twitter.com/H9dsucygLn

タグ: Julia言語

posted at 23:23:37

みゆき @miyuki_MathT

21年3月24日

小学校の嘘算数を訂正してる時間がもったいないので、ちゃんとした算数を教えるよう、全国で統一して欲しい

タグ:

posted at 23:29:08

knxm @knxm

21年3月24日

数学C復活という話をよく見るけど,基本的に別物では?行列が正式に復活したわけでもないですし.実は世の中の大学のセンセイは,高校生が行列を習っていないことに気がついていない場合も多いです.まぁ,こちらだって,他の教科がどう変化したか知らないし...

タグ:

posted at 23:46:09

Yuki Nagai @cometscome_phys

21年3月24日

@ha0ya6bu1sa3 考えた行列がエルミートなので、ユニタリー行列で対角化できて、ユニタリー行列はU^-1=U^+なので、u'になっています

タグ:

posted at 23:48:56

非公開

タグ:

posted at xx:xx:xx

@genkurokiホーム
スポンサーリンク
▲ページの先頭に戻る
ツイート  タグ  ユーザー

User

» More...

Tag

» More...

Recent

Archive

» More...

タグの編集

掛算 統計 超算数 Julia言語 数楽 JuliaLang 十分 と教 モルグリコ 掛け算

※タグはスペースで区切ってください

送信中

送信に失敗しました

タグを編集しました