one
ãšoneunit
ãåºå¥ããã®ã§ã ones(T, sz)
ã¯èª€ã£ãååã®ããã«èŠããŸãã fill(oneunit(T), sz)
ãåªå
ããŠéæšå¥šã«ããŸããïŒ ãããããªããç§ãã¡ãzeros
ãæšãŠãã¹ãã§ããïŒ
xref https://github.com/JuliaLang/julia/issues/11557#issuecomment -339776065以äžãããã³@ Sacha0ã®PRïŒ24389
ç§ã¯ãã®å¹æã®ããã«é²è¡äžã®äœæ¥ãè¡ã£ãŠãããç¿æ¥ã2æ¥ã§æçš¿ããããšæã£ãŠããŸã:)ã äžçªïŒ
ç§ã«ã¯ã fill(oneunit(T), sz)
ã¯ã ones(T, sz)
ãšæ¯èŒããŠãèªã¿ãããã®éèŠãªæ倱ã®ããã«èŠããŸãã
oneunit(T)
代ããã«ãéåžžã¯ãªãã©ã«ãŸãã¯åæ§ã«ã³ã³ãã¯ããªãã®ã§ååã§ããããã fill(oneunit(T), sz)
ããã«åé·ãªãã®ãæžãå¿
èŠã¯ãã£ãã«ãªãããšã«æ³šæããŠãã ããã é
åã³ã³ã¹ãã©ã¯ã¿ãŒã®å°æ¥ã®å€æŽã«ãããããçãåªæãå¯èœã«ãªãå¯èœæ§ããããŸãã ããã«ã fill
ã«ç§»è¡ãããšãããã奜ãã«ãªããŸã:)ã äžçªïŒ
ç§éã¯ã¡ããã©ãã©ãããéžã¶ããšãã§ãones
䜿çšããŠããŸãone
ãŸãã¯oneunit
ã ones
ãšzeros
ã¯äŸ¿å©ãªé¢æ°ãšèŠãªãå¿
èŠããããŸããããã¯ãããäžè¬çãªé¢æ°ã«é¢ããŠæ確ãªæå³ãããéãåé¡ãããŸããã
ããªã¢ãŒãžããšã®èšç»ïŒæ¥é±åæ€èšããŸããå
·äœçã«ã¯ã ones
ãšzeros
ãMATLABäºææ§ã¬ã€ã€ãŒã«ç§»åããããŒã¹ã§fill
ãåªå
ããããšãæ€èšããŸãã äžçªïŒ
ones
ãšoneunits
ã¯ã2ã€ã®ãªãã·ã§ã³ãåºå¥ããŸãã
ãããšzeros
ãMATLABäºææ§ã«ç§»è¡ããããšã«ã€ããŠç§ãã©ã®ããã«æããŠãããããããŸããã Mathworksãçºæãããããšãã£ãŠããããç§ãã¡ãèªãã«æãããšãã§ããåªãã䟿å©ãªAPIã§ã¯ãªããšããæå³ã§ã¯ãããŸããã ç°¡åã«èšãã°ããã®èãã®èåŸã«ããçç±ã¯äœã§ãããïŒ ïŒç³ãèš³ãããŸããããããªã¢ãŒãžã¯ã¯ããã«å¹ççã§ããããã«èŠããŸãããæšè«ãäžããããŠããªãå Žåã¯å€§å¹
ã«éææ§ãäœããªããŸãïŒã
ããã¯ç§ããããããããããªå€åã§ã¯ãããŸããããè«ççãªççŸãããã®ã§ç§ã¯ãããäžããŸããã ones(T, sz)
fill(one(T), sz)
æå³ãããšèšã£ãŠãéèšã§ã¯ãããŸããããå®éã«ã¯fill(oneunit(T), sz)
ã§ãã
1ã€ã®ãªãã·ã§ã³ã¯ãååãoneunits
ã«å€æŽããããšã§ãã å¥ã®æ¹æ³ã¯ãæãããã¹ã¯ãããè¡ãããšã§ãïŒ one
-> algebraic_one
ããã³oneunit
-> one
ã ããã¯å£ããŠãããéæšå¥šãä»ããŠè¡ãããšã¯ã§ããŸããããã®ãããç§ã¯ãæãããããšèšããŸãã
ã¯ããç§ã¯è¿œå ããããšã ãšæããŸãoneunits
ããå€æŽones
äžããããã«fill(one(T), ...)
ããªãããã®ããã®æçœãªä¿®æ£ã§ããããïŒ
ç§ã¯ããã§å€§äžå€«ã ããã 奜å¥å¿ããã fill(one(T), sz)
ã®çšéã¯äœã§ããïŒ ones
ãå¿
èŠã§ããïŒ
ãã:)ç§ã¯å°ããã€ããã§ãã-ããªãã¯fill(oneunits(T), sz)
ãäœã«äœ¿ãã®ã§ããïŒ ïŒããšãã°ã1ã¡ãŒãã«ã1ããã°ã©ã ããŸãã¯1ç§ã§æºããããé
åã¯äœã«äœ¿çšãããŸããïŒïŒ
fill(one(T), sz)
ã¯ãã«ã¹ã¿ã ã®reduction-type-ofæäœçšã«é
åãåæåããzeros(T, sz)
ãšã»ãŒåãçç±ã§äœ¿çšãããŠãããšæããŸãã é
åz = zeros(T, sz)
ã¯ãèŠçŽ ãz[i] += x
è¿œå ããæºåãã§ããŠããŸããã o = fill(one(T), sz)
ã¯ãèŠçŽ ão[i] *= x
ä¹ç®ããæºåãã§ããŠããŸãã ããšãã°ãé
åèŠçŽ ãïŒçžå¯ŸçãªïŒç¢ºçãè¡šãå¯èœæ§ãããç¶æ³ãèããŠããŸãã ãããã®2ã€ã®ã±ãŒã¹ã§ã¯ããããã+
ãŸãã¯*
æŒç®åã®IDãæ¢ããŠããŸãïŒå æ³ãžã§ãã¬ãŒã¿ãŒã§ã¯ãããŸããïŒã
ïŒ23544ãåç §ããŠãã ãã
ãã:)ç§ã¯å°ããã€ããã§ãã-ããªãã¯äœã®ããã«fillïŒoneunitsïŒTïŒãszïŒã䜿ããŸããïŒ ïŒããšãã°ã1ã¡ãŒãã«ã1ããã°ã©ã ããŸãã¯1ç§ã§æºããããé åã¯äœã«äœ¿çšãããŸããïŒïŒ
ODEã®åŸå±å€æ°ã T
åã®é
åãèŠæ±ãããšãã«ããŠããããã©ã³ãã ã«åãå»ãŸããã ãã ãšããããããã¯å¥åŠãªããšã§ãã
fill
ã奜ãåºæ¬çãªçç±ã¯ã匷åã§çŽäº€ããæ§æå¯èœãªããŒã«ã®ã¿ã€ããªã»ãããã ones
/ zeros
ãªã©ã®ã¢ãããã¯ã§å¶éãããéè€ããããŒã«ã®å€§èŠæš¡ãªã³ã¬ã¯ã·ã§ã³ãããåªããŠããããã§ãã trues
/ falses
ã äžèšã®èª¬æã¯ããã®ç¹ã匷調ããŠããŸãã fill
äžèšã®ãã¹ãŠã®ãŠãŒã¹ã±ãŒã¹ã«æ確ãã€ïŒã»ãšãã©ã®å®éã®äœ¿çšã§ã¯ïŒç°¡æœã«å¯Ÿå¿ããŸããã ones
/ zeros
/ trues
/ falses
ã¢ãããŒãã§ã¯ããŠãŒã¹ã±ãŒã¹ããšã«æ°ããé¢æ°ãå¿
èŠã§ãã
ããŒã¹ã®æžãæãããã®ããã€ãã®é¢é£ããäŸïŒ
complex.(ones(size(Ac, 1)), ones(size(Ac, 1)))
ã«ãªããŸã
fill(1.0 + 1.0im, size(Ac, 1))
ãš
2ones(Int, 2, 2, 2)
ã«ãªããŸã
fill(2, (2, 2, 2)) # or fill(2, 2, 2, 2) if you prefer
ãããã®fill
åªæã¯ã fill
以å€ã®åªæãããåçŽã§ãèªã¿ããããã³ã³ãã¯ãã§ãå¹ççã§ããã base/
ãštest/
ã¯ãã®ãããªäŸããããããããŸãã ãã¹ãŠã®å€æŽãšåæ§ã«ã fill
ã«ç§»è¡ããã«ã¯ãåæã®ç²Ÿç¥çãªèª¿æŽãå¿
èŠã§ãã ãããã調æŽåŸã¯ãæå
ã§ããå€ãã®ãã¯ãŒãšãšã¬ã¬ã³ã¹ãæã«å
¥ããããšãã§ããŸã:)ã äžçªïŒ
@ Sacha0 ïŒ trues
/ falses
ã¯fill
ã«çŽæ¥çœ®ãæããããšã¯ã§ããŸãããã BitArray
ã€ãã·ã£ã©ã€ã¶ãŒã§fill!
ã䜿çšããå¿
èŠããããŸãã ãŸãã one
ãšoneunit
éã®ãããŸããã«ãå«ãŸããŠããŸããã ãããã£ãŠãç§ã¯ãããããã®è°è«ã«ãŸã£ããåœãŠã¯ãŸããªããšæããŸãã
ones
ããšã«ããéæšå¥šã«ããããšã«äžè¬çã«å察ããŠããŸãããã¡ãªããã¯ããããŸããã fill
ãããšãããåŒãããå¹æçã«èšè¿°ã§ãããšããè°è«ã¯ãç§ã®æèŠã§ã¯ããŸã説åŸåããããŸããããããã®äŸã¯ãã¹ãŠãä»ã®ããšãè¡ãããã®äžéã¹ããããšããŠones
ã䜿çšããŠããããã§ãã ããããå®éã«é
åãå¿
èŠãªå Žåã¯ã©ãã§ããããã ãã®å Žåã fill
ã䜿çšããå¿
èŠãããã®ã¯é·ãããããã«ãããç
©ãããã ãã§ãã @JeffBezansonã®ææ¡ãäžçªå¥œãbase
ãŸãã¯test
ãã ones
代ããã«fill
ã䜿çšããŠããå¹æçã«æžãæããããšãã§ããå ŽåãçŸæç¹ã§ã¯ããã劚ãããã®ã¯äœããããŸããã
@carlobaldassiããã¯äºå®ã§ããã GitHubããã°ããæ€çŽ¢ãããšãäžéã®å²ãåœãŠãåé¿ããããã«ã ones
ã»ãšãã©ãã¹ãŠã®äœ¿çšã§å®éã«fill
ã䜿çšããå¿
èŠãããããšãããããŸã...
ãããã®å Žåã«fill
ã䜿çšããããšã¯ãç§ã«ã¯çã«ããªã£ãŠããŸãã ones
ãªã©ã®å¯Ÿå¿ããã¡ãœããã眮ãæããæ°ããfill(x, A) = fill!(x, copymutable(A))
ã¡ãœãããå¿
èŠã«ãªãããšã«æ³šæããŠãã ããã
@TotalVerbãã®æ€çŽ¢ã®æåã®10ããŒãžã®ç°¡åãªones
ã®æ£åœãªãŠãŒã¹ã±ãŒã¹ãããããããããããã倧å€æ°ã§ãïŒãããŠãããšã20ïŒ
ãšèšã£ããšããŠããç§ã®äž»åŒµã¯ãŸã æå¹ã ãšæããŸãïŒã
ïŒç§ã¯å®éã«èªã¿ãããã®è°è«ã«ã€ããŠãçä¿ããŠããŸããããšãã°ã fill(2, 2, 2, 2)
ã¯2 * ones(Int, 2, 2, 2)
ãããèªã¿ãããããŸãã¯ããšãã°fill(k * 1.0, 3)
æ¹ãèªã¿ããããšäž»åŒµããã®ã¯çããããšæããŸãã k * ones(3)
ãããèªã¿ããã;ãããåãªãç¿æ
£ã®åé¡ã§ãããšã¯ãŸã£ãã確信ããŠããŸãããããããããã¯ãã€ããŒãªç¹ã§ããïŒ
true / falseã¯ãfillã§çŽæ¥çœ®ãæããããšã¯ã§ããŸããããfillã䜿çšããå¿ èŠããããŸãã BitArrayã€ãã·ã£ã©ã€ã¶ã䜿çšããŸãã ãŸãã1ãŠããããš1ãŠãããã®éã®ãããŸããã«ãå«ãŸããŠããŸããã ãããã£ãŠãç§ã¯ãããããã®è°è«ã«ãŸã£ããåœãŠã¯ãŸããªããšæããŸãã
å®éã trues
ãšfalses
ã¯fill
çŽæ¥çœ®ãæããããšã¯ã§ããŸãã:)ã ãããã trues
ãšfalses
ã¯ãäžèšã®/ïŒ11557ã«é¢é£ããäžè¬çãªåé¡ã®è¿œå ã®ã€ã³ã¹ã¿ã³ã¹ã§ãïŒãããŠãé
åã³ã³ã¹ãã©ã¯ã¿ãŒã®æè¿ã®æ¹åæ§ãããŸãããã°åãçµãã§ãããïŒã ä»ã®äŸãšããŠã¯ãBandedMatrices.jlã«bones
ã bzeros
ã brand
ã brandn
ã beye
ãååšããããšãã DistributedArrays.jlã®d
ãã¬ãã£ãã¯ã¹ã
ãããã«ãããç§ã¯äžè¬çã«ãããéæšå¥šã«ããããšã«å察ããŠããŸããç§ã¯å©ç¹ãèŠãŠããŸããã ãããã®äŸã¯ãã¹ãŠãä»ã®ããšãè¡ãããã®äžéã¹ããããšããŠåŒã䜿çšããŠãããããå¡ãã€ã¶ãã䜿çšããŠããå¹æçã«åŒãèšè¿°ã§ãããšããè°è«ã¯ãç§ã®æèŠã§ã¯ããŸã説åŸåããããŸããã
ããŒã¹ã§ones
æ°çŸã®äœ¿çšæ³ãæžãçŽããã°ãããªã®ã§ã @ TotalVerbã®ã¹ããŒãã¡ã³ãã確èªã§ããŸãã
GitHubããã°ããæ€çŽ¢ãããšãäžéã®å²ãåœãŠãåé¿ããããã«ãã»ãšãã©ãã¹ãŠã®çšéã§å®éã«å¡ãã€ã¶ãã䜿çšããå¿ èŠãããããšãããããŸã...
ïŒç·šéïŒã»ãŒãã¹ãŠã§ã¯ãªãçŽååãšèšããŸãããé©åãªæžãæãã¯fill
以å€ã®ãã®ã§ããå¯èœæ§ããããŸããïŒããã«ããã®æžãæãã®çµéšã¯ç§ã«æããŠãããŸãã...
ããããå®éã«é åãå¿ èŠãªå Žåã¯ã©ãã§ããããã ãã®å Žåãå¡ãã€ã¶ãã䜿çšããå¿ èŠããããããé·ããç®ç«ããªããªããç ©ããããªããŸãã
...äžæ¹ããã®å Žåã fill
ã¯ãã°ãã°çããŠåçŽã§ãïŒèŠæ±ããããã®ã¯ãã°ãã°Float64
ã¯ãããŸããïŒä»£ããã«ones(Int, n...)
ãšones(Complex{Float64}, n...)
ïŒããã®å Žåã fill
ã¯ããªãã©ã«ïŒããšãã°ã fill(1, n...)
ããã³fill(1.0 + 0im, n...)
ïŒãèš±å¯ããããšã«ãããçãç°¡åã«ãªããŸãã 枬å®å¯èœãªçšèªã§èšãã°ãããŒã¹ã§ones
åŒã³åºããæžãæããŠãããã©ã³ãã¯ã ones
-> fill
æžãæããããæåæ°ãæ倧5ïŒ
çããªã£ãŠããŸãã äžçªïŒ
ones
ãå®éã«ã©ã®ããã«è¡šç€ºããããã客芳çã«ç解ããããã«ãGitHubæ€çŽ¢ã®æåã®10ããŒãžã«è¡šç€ºããããã¹ãŠã®ones
åŒã³åºããåéããŠãJuliaã³ãŒãã§ones
ãæ€çŽ¢ããŸããããã®ãããªååŒã³åºãã¯ãå¿
èŠã«å¿ããŠã察å¿ããå€æŽãåé¡ãïŒãã®èŠç¹ãåç
§ïŒãåé¡ããŒã¿ã次ã®èŠçŽã«æžãããŸããã
åæã«ã¯ã156ã®ones
åŒã³åºããå«ãŸããŠããŸããã ãããã®åŒã³åºãã®ãã¡ã
84åã®åŒã³åºãïŒã54ïŒ
ïŒã¯ã¢ãããã¯fill
ã ïŒããšãã°ã ones(100)/sqrt(100)*7
ã¯fill(7/sqrt(100), 100)
ones(100)/sqrt(100)*7
ç°¡ç¥åãããŸãããããã«è¯ãã®ã¯fill(.7, 100)
ã§ããç§ã®ãæ°ã«å
¥ãã¯kron(0.997, ones(1, J*J*s)
-> fill(0.997, 1, J*J*s)
ãïŒ
3åã®é話ïŒã2ïŒ
ïŒã¯ã¢ãããã¯ãããŒããã£ã¹ãã§ããã ïŒããšãã°ã A - ones(n,n)
ã¯A .- 1.
ç°¡ç¥åãããŸããïŒ
5åã®åŒã³åºãïŒã3ïŒ
ïŒã¯ãã¢ãããã¯ãªãã¯ãã«ãªãã©ã«ã§ããã ïŒããšãã°ã ones(1)
ã¯[1.]
ç°¡ç¥åãããŸããïŒ
1åã®åŒã³åºãïŒã0.5ïŒ
ïŒã¯ãæå³çã«ã¯ãžã£ã³ã¯ãããªãã¯ã¹æ§é ã§ããã ïŒå®éã«ã¯æ¯èŒçãŸãã§ããããã®ãã¿ãŒã³ã¯test/
éåžžã«äžè¬çã§ããããã¯ãããšãã°<strong i="32">@test_throws</strong> DimensionMismatch BLAS.trsv(...,Vector{elty}(n+1))
ãš<strong i="34">@test_throws</strong> DimensionMismatch BLAS.trsv(...,ones(elty,n+1))
ãåæåãããŠããªãArray
ã®ç°¡æœãªäŸ¿å©ãªã³ã³ã¹ãã©ã¯ã¿ãŒããªãããã§ãã <strong i="34">@test_throws</strong> DimensionMismatch BLAS.trsv(...,ones(elty,n+1))
ãïŒ
æ®ãã®åŒã³åºãã¯ones
ãšããŠæå³çã«åççone
ãç¹ã«å¿
èŠã§ãããšããçç±ã§ã¯ãªããåã«çããšããçç±ã ãã§ones
ã䜿çšãããããšããããããŸãã ãããã®æ®ãã®åŒã³åºãã®ãã¡ã
13åã®åŒã³åºãïŒã8ïŒ
ïŒã¯ã fill
ãããã«çãã£ãã ïŒããšãã°ã ones(Int, n, n)
-> fill(1, n, n)
ãŸãã¯ones(Float64, n)
-> fill(1., n)
ãïŒ
50åã®åŒã³åºãïŒã32ïŒ
ïŒã¯ã fill
ãããã«é·ããªããŸããã ïŒããšãã°ã ones(n, n)
-> fill(1., n, n)
ãïŒ
å
šäœãšããŠãå®éã«ã¯ã ones
åŒã³åºãã®çŽ60ïŒ
ã¯ä»ã®æ¹æ³ã§èšè¿°ããæ¹ãé©åã§ãããçŽ8ïŒ
ã¯æå³çã«ones
ããã fill
ãšãããã«çãã ones
ã fill
ããå°ãé·ããªããŸãã
è¿œå ã®èŠ³å¯ïŒ
é
ååŒæ°ãåãå
¥ããones
åŒã³åºãã®ã€ã³ã¹ã¿ã³ã¹ã1ã€ã ãçºçããŸãããããããå²ãã¹ãããããå®éã®ã³ãŒãã§ãããã©ããã¯æ確ã§ã¯ãããŸããã§ããã ãããã£ãŠãé
ååŒæ°ãåãå
¥ããones
ã¡ãœããã¯ãå®éã«ã¯ã»ãšãã©äœ¿çšãããŸããã
æ¬åœã«èå³æ·±ãè°è«...ãŸãå¥ã®èšèªã®å
äŸãšããŠãRã¯ã䜿çšããŠããŸã...åŽã®ããã«åŽã«å¯ŸããŠã§ããããšããè¡ã£ãŠããŸããrep
ãšmatrix
ãšç䟡ã§ããæ¹æ³ã§ã fill
ïŒ1dãš2dã®å Žåã«å¯Ÿå¿ïŒãããŠããªãã¯éåžžã«ããã«ããã«æ
£ããŸã-ç§ããŒã/ã¯ã³ã®äžçããæ¥ããšããŠãã
ãããŒããã®åªåãããŠãããŠããããšã@ Sacha0 ïŒ
åœç¶ãã zeros
ã©ãã§ããïŒããšãã質åãçºçããŸãã 䜿çšéã倧å¹
ã«å¢ãã䜿çšã«ããŽãªãããã€ãå¢ãããšæããŸãïŒãåæåãããŠããªãé
åãä¿¡é Œããªãããã Array
ã³ã³ã¹ãã©ã¯ã¿ãŒã®äœ¿çšæ¹æ³ãããããªãããªã©ïŒã "ïŒã
äœããã®çç±ã§ïŒç§ã¯ãããã®å¯Ÿç§°æ§ã ãšæãone
ãšzero
ïŒãIã¯ããäž¡æ¹äº€æããæ¹ã«æ¹ãones
ãšzeros
ãšfill
ããŸãã¯ã©ã¡ãã§ããªãã
ãŒãã®å Žåã¯ã次ã®ããããã®ç¶æ³ã«ããããã«èŠãããšããããšã§ãã
0I
ã䜿çšããããšããå§ãããŸããå¯ãªãŒãã®è¡åãå®éã«å²ãåœãŠãããšãå®éã«è¯ãèãã§ãããšãããŠãŒã¹ã±ãŒã¹ã¯å®éã«ã¯ãããŸããã
ããã¯ããããç·åœ¢ä»£æ°ã«ãåœãŠã¯ãŸããŸãã ã³ã³ãã€ã©ããã®ä»ã®ããŒã¿æ§é ã«é¢ããç§ã®äœæ¥ã§ããŒãã§åæåãããã³ã¬ã¯ã·ã§ã³ãå¿ èŠã«ãªãããšã¯çãããããŸããã ãã¶ããããã¯ãŸã°ãã§ããããšãå€ãã§ãããããããã³ã³ãã¯ãã«è¡šçŸããããšã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžãã䟡å€ããããŸããã
ååã«å ¬å¹³ã§ãâå¯åºŠãæ°ã«ããªãå ŽåããããåçŽãã¯ããã ãã®äŸ¡å€ããããŸãã
ããªã¢ãŒãžïŒå®å
šã«éãžã§ããªãã¯ãªã¡ãœãããã€ãŸãzeros(dims...)
ãšones(dims...)
ãããããzeros(dims)
ãšones(dims)
ãä¿æããããšã解決ããŸããã
䜿çšæ¹æ³æšå¥šäºé
ã«ã€ããŠã¯@StefanKarpinskiã¯ãããã©ãããæå³ããå§ãã§ãããzeros(3, 3)
ã®äžã«fill(0.0, 3, 3)
ïŒå¯ãªé
åã¯ããªã©ãªã©ããã£ããããŠããå ŽåïŒéåžžã®ã³ãŒãã®ããã«ïŒ å¹çæ§ãªã©ã®è©³çŽ°ã®ããã€ãã¯ç§ã®æã®å±ããªããšããã«ãããŸããç§ã¯åé²ãããžã¥ãªã¢ã§ã©ã®ããã«ãã¹ã/ã€ãã£ãªã ã®å®è·µãæããããèããŠããŸãã
ãã®æ±ºå®ã¯ç§ã«ã¯éåžžã«é©ãã¹ãããšã®ããã«æãããŸããäžè¬æ§ãå ·äœçã«åŠšããããšã¯åºæ¬çã«ããã»ã©äžè¬çã§ã¯ãããŸããã èåŸã«ããçç±ã¯äœã§ããïŒ ãã®é¢æ°ã¯ããžã§ããªãã¯ã§ã¯ãªãïŒãããŠãfloatã§ã®ã¿æ©èœããïŒmatlabããã®ãã®ã§ããïŒ
ããªã¢ãŒãžïŒå®å šã«éãžã§ããªãã¯ãªã¡ãœããã®ã¿ãä¿æããããšã解決ããŸãã
èåŸã«ããçç±ã¯äœã§ããïŒ
ããã«å ããŠããã®åé¡ã¯ãçŸåšæ€èšãããŠãããšæãããé
åãæ§ç¯ããäžè¬çãªåé¡ã«äœããã®åœ¢ã§é¢é£ããŠããŸããïŒãããããªããããã¯ã©ã®ããã«åœ¹ç«ã¡ãŸããïŒ ãŸãã¯ããšã¯ã¹ããŒããããã¡ãœããã®æ°ãBase
ããåæžããããšããŠããŸããïŒ ïŒãŸãã¯å®å
šã«äœãä»ã®ãã®ïŒïŒ
https://github.com/JuliaLang/julia/issues/24595ã§è¿æ¥å ¬éäºå®:)ã äžçªïŒ
ones
ã zeros
ãããã³fill
ã«ã€ããŠè©³ãã説æããŠããŸãã åè
ãèªãããšã¯ãåŸè
ãç解ããäžã§äŸ¡å€ããããŸãã äžçªïŒãŸããå°ãªããšãFloat64
å Žåãä¿åããããšã¯ãäœããªãããã¯ãŸãã§ãã
æŽæ°ã®ãŒãã®å Žåãéåžžã«é¢é£æ§ããããšæããŸããããã¯ãåºæ¬çã«@vtjnashãããã§äœæãããã€ã³ã
zeros
ã¯ã 3 * ones(n)
ã¢ã³ããã¿ãŒã³ãèš±å¯ãããšãããåé¡ãããªãããšã«ã泚æããŠãã ããã å®éã䟿å©ãªã³ã³ã¹ãã©ã¯ã¿ãŒã§ãããšããåºãæå³ãé€ããŠã ones
ãšzeros
ãäžç·ã«ãªãçç±ã¯ããããããŸããã ããã2ã€ã®éã«å®éã®ã察称æ§ãã¯ãããŸããã
çµ±èšåæã«é¢ããããã€ãã®è¿œå ã®ã³ã¡ã³ããããã¯ã以äžã®è°è«ãšïŒ24595ã®èšè¿°ã®åºç€ã§ããããã«æãããããã§ãã ãŸãã10ããŒãžã§ã¯ãå®éã«äœãèµ·ãã£ãŠããã®ãããã现ããçµè«ä»ããã«ã¯ååã§ã¯ãªãããããã倧ãŸããªã¢ã€ãã¢ãäžããããšãã§ããŸãã ããšãã°ãååãã¹ã¿ã€ã«ããæãããªããã«ãäžéšã®ãã¡ã€ã«ã¯matlabããçŽæ¥ååŸãããŸããã 第äºã«ãç§ãæšæž¬ããããã«ããã®åæã§ãããããã§ã®ones
ã®äœ¿çšã®çŽååããæ£åœãªããã®ã§ãã£ãããšã瀺ããŠããŸãã 第äžã«ããã®ãããªã³ãŒããèŠãŠãã 3 * ones(...)
æžããšãã«äœãããããŸããããå®éã«ã¯ããã©ãŒãã³ã¹ã®åé¡ãåŒãèµ·ããã¢ã³ããã¿ãŒã³ã§ããããããã©ãŒãã³ã¹ã«ãŸã£ãã圱é¿ãäžããªãã³ãŒãã§ãïŒãããŠã©ã€ã¿ãŒã¯ãã®ããã«æžãããŠããæ¹ãèªã¿ããããšå€æããŸããããã®å Žåãä»ã®äººãä»ã®æ¹æ³ã§æ±ºå®ããããšã¯ãªããšåŒ·ãæããŠããŸãïŒã
æåŸã®ãã€ã³ãã«é¢é£ããŠããããŠãã£ãšéèŠãªããšã«ãgithubæ€çŽ¢ããåŸããããã®ã¯ããžã¥ãªã¢ã§æ¢çŽ¢ç/äºåçãªäœæ¥ãããŠãã人ã ã®REPLã§äœãèµ·ãã£ãŠãããã決ããŠèæ ®ã«å ¥ããŠããªããšæããŸãã ããã¯ãŸãã«äŸ¿å©ãªæ©èœãæã䟿å©ãªå Žæã§ãããèªèã§ããçç±ãªãã«ããããåãé€ãããšã¯ããã«å¿ããŠæãåä»ã§ãã ç§ã®ãã€ã³ãã¯ãäžè¬çã§å¹ççãªã³ãŒããæžãããšãå¯èœã«ããçŽäº€ããªããã£ãã®äžè²«ããã»ãããæã€ããšã¯å€§ããªç®æšã§ãããããã«å°éããããã®åªåã¯æ¬åœã«ç§°è³ã«å€ããŸãã ãã¹ãŠã®ã³ãŒããçŸãããäžè¬çã§ãæ§æå¯èœãªã©ã€ãã©ãªã³ãŒãã§ãããšã¯éããªããšããã ãã§ãã ã¡ããã©ç§ã®2ã»ã³ãã
ããã«ãããã
æŽæ°ã®ãŒãã®å Žåãéåžžã«é¢é£æ§ããããšæããŸããããã¯ãåºæ¬çã«
@vtjnash
ãããã§äœæãããã€ã³ãã§ãã
ããã¯
ã³ã³ãã€ã©ããã®ä»ã®ããŒã¿æ§é ã«é¢ããç§ã®äœæ¥ã§ããŒãã§åæåãããã³ã¬ã¯ã·ã§ã³ãå¿ èŠã«ãªãããšã¯çãããããŸããã ãã¶ããããã¯ãŸã°ãã§ããããšãå€ãã§ãããããããã³ã³ãã¯ãã«è¡šçŸããããšã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžãã䟡å€ããããŸããã
ãã®å Žåã fill
ãåæ§ãŸãã¯ãã以äžã«æ©èœããããšã«æ³šæããŠãã ããïŒ fill(0, shape...)
察zeros(Int, shape...)
ã
ä»ã®ç¹ã«é¢ããŠã¯ãïŒ24595ã¯èªã䟡å€ããããããããŸãã:)ã äžçªïŒ
zeros(Int, 10, 10)
ã¯fill(0, 10, 10)
ãããèªã¿ããããæ瀺çã§ããã zeros(T, k)
ã¯fill(zero(T), k)
ãããåªããŠããããšãããããŸããã ãªãç§ãã¡ã¯äž¡æ¹ãæã€ããšãã§ããªãã®ã§ããïŒ zeros
ãones
ãšåããããŸããã®åé¡ãæ±ããŠãããšããè°è«ã¯è²·ããŸããã
ä»ã®ç¹ã«ã€ããŠã¯ãïŒ24595ãèªã䟡å€ããããããããŸãã
ç§ã¯ãããèªãã ã ïŒç§ãããããªã³ã¯ããŸãããïŒ
ç§ã¯ãããèªãã ã ïŒç§ãããããªã³ã¯ããŸãããïŒ
ïŒ24595ãå®å šã«èªã¿ãååã«æ€èšãããšãïŒ24595ã次ã®ããšã«æ°ä»ãã§ããããïŒ1ïŒäŸ¿å©ãªã³ã³ã¹ãã©ã¯ã¿ãŒãäžéšã«ãããªããšããã¯ããã«åºç¯ãªåé¡ã«é¢ä¿ããŠããã ïŒ2ïŒäžèšã®çµ±èšåæãšãããã§çŠç¹ãåœãŠããã€ã³ãã ãã§ã¯ãããŸããã
ones
ãšzeros
ã«ã€ããŠåŒ·ãæããŠããã ãããããšãããããŸãã ããªãã®ææ
ã¯å€§å£°ã§ã¯ã£ãããšäŒãã£ãŠããŸãã:)ã ãã®ãããçŸåšã®åœ¢ã§ãã®äŒè©±ãç¶ããããããä»ã®åéãåé²ãããããã«åž¯åå¹
ãè²»ãããã»ããããå¯èœæ§ããããŸãã äžçªïŒ
zeros
å€æŽã«äŒŽãäžè¬çãªfill
çä¿¡ã¯ãããŸããïŒ zeros
ã¯ã similar
ãããã¯ããã«å®å
šã§ããããããžã§ããªãã¯ããã°ã©ãã³ã°ã«éåžžã«åæ³çã«äœ¿çšãããŠãããããDiffEqã¯ãã¹ãŠãæè¿ãOptimãšNLsolveãsimilar
å²ãåœãŠããzeros
ãã¹ãŠããŒããæã€ããã«å²ãåœãŠãããŠããããšãç¥ã£ãŠããã®ã§ãå€ãã®ãã°ãé²ãããšãã§ããŸãã ãã ãã次ã®æ¹æ³ã¯ãªãããã§ãã
zeros(X)
ããã以å€ïŒ
similar(X); fill!(X,0)
çŸåšã®fill
ã¯Array
fill
ã®ã¿ããã«ãããããã similar
ãzeros
ããã«ã¿ã€ããããããŸããã zeros
ãæªçšããŠãå¿
èŠã®ãªããšãã«å²ãåœãŠã人ãããããšã¯ç¥ã£ãŠããŸãããå€ãã®å Žåã zeros
å²ãåœãŠãã®ã¯éåžžã«åççãªããšã§ãã ãã®ç©ºçœãåããããã«fill(0,X)
éèšãè¿œå ãããããšãé¡ã£ãŠããŸãã
æãããã®ããæçš¿ã¯ãªã¹ã«æè¬ããŸãïŒ :)æ«å®çãªéèšã®ä»£ãããšããŠã zero(X)
ã¯ããªãã¯ãè¡ããŸããïŒ
ãã®ãããªãŠãŒã¹ã±ãŒã¹ãæ£ç¢ºã§ããããšã泚æã«ãããææ§zeros
ããã³ones
åé¡ãšãªãåŸãããã«zeros(X)
åçã§ãªããžã§ã¯ãeltype(X)
ãå
å¡«eltype(X)
ã®å æ³åäœå
ïŒã€ãŸãfill!(similar(X), 0)
ïŒããŸãã¯ä»£ããã«eltype(X)
ä¹æ³ãŒãã§æºãããããªããžã§ã¯ãïŒããããeltype(X)
ïŒïŒ ïŒæ¡åŒµã«ã€ããŠã¯ãïŒ24595ãåç
§ããŠãã ãããïŒ
fill(0, X)
æŠå¿µã¯ãïŒ11557ã§å°ãè°è«ãããŠããŸããããããfill
æçšãªäžè¬åã§ããå¯èœæ§ãããããšã«åæããŸãã ããããšãããããŠæé«ïŒ
ãã1ã€ã®åé¡ã¯ãåã«ã¯ãŸããªãã€ã³ããã¯ã¹ãæã€é
åãzeros(inds...)
ãããªãã®ã§äœæãããå Žåãããããšã§ãïŒã€ã³ããã¯ã¹ã¿ã€ããé
åã¿ã€ãã決å®ããããïŒã ãããã1次å
ã®å Žåã X
ãé¡äŒŒããããé
åãã§ããããããšããç®çã®é
åã®ã€ã³ããã¯ã¹ãã§ããïŒ ïŒçµå±ã®ãšããã AbstractUnitRange <: AbstractArray
ã§ããïŒå
·äœçã«ã¯ã zeros(3:5)
ã¯fill!(similar(3:5), 0)
ãŸãã¯fill!(OffsetArray(Vector{Float64}(3), 3:5), 0)
æå³ããŸããïŒ
https://github.com/JuliaLang/julia/pull/24656ããªã³ã¯ã{ones|zeros }(A::AbstractArray, ...)
ã³ã³ãããšã³ã¹ã³ã³ã¹ãã©ã¯ã¿ãŒã®è¿œå ã®èª¬æãå«ãŸããŠããŸãã äžçªïŒ
ïŒ24656ã«åŸã£ãŠãã£ãã·ã¥å€æ°ãäœæããããã«zeros
ã䜿çšããã®ã¯å¥åŠã ãšèããããŠããããšã«é©ããŠããŸãã zeros
ããŒãã«è¿ããªãŒããŒãããã«åæžãããå Žåã人ã
ãsimilar
ã䜿çšããŠããã»ãšãã©ã®å Žåã¯ã代ããã«zeros
ã«ãªãã¯ãã§ããããã¯ãããªãã®æ°ãä¿®æ£ããåŸåãããããã§ãããã°ã similar
ã¯éåžžã«å±éºã§ãããé¢æ°ããªãã代ããã«fill!
+ similar
ããŸãšãããšãããããããã«ãããªããããããå€ãã®äººã«ãããè¡ãããã«å§ããã¹ãã ãšæããŸãã人ã
ããã¹ãããšã Optim.jlã§ãããã¢ããããããã«ã€ããŠã®ã³ã¡ã³ãã¯æ¬¡ã®ãšããã§ãã
https://github.com/JuliaNLSolvers/NLsolve.jl/issues/89#issuecomment -294585960
ããããç§ã¯@timholyã«åæã
https://github.com/JuliaDiffEq/MultiScaleArrays.jl
MultiScaleArrays.jlã¯ã埮åæ¹çšåŒãœã«ããŒã§äœ¿çšã§ããååž°çãªã°ã©ãã®ãããªæ§é ã§ããæœè±¡é
åãäœæããŸããïŒãããŠãOptim.jlããã³NLsolve.jlãšäºææ§ããããšæããŸããïŒïŒã ããã¯ããšãããçç©åŠçã¢ãã«ã«ãšã£ãŠéåžžã«äŸ¿å©ã§ãã ãããODEãœã«ããŒã«æã蟌ããšãã質åããããŸãïŒãã£ãã·ã¥é
åãäœã«ãã¹ãã§ããïŒ å Žåã«ãã£ãŠã¯ããŠãŒã¶ãŒãå¿
èŠãªé
åãåãæ»ãããšãéèŠã§ããããã¯ãODEé¢æ°f(t,u,du)
衚瀺ãããããã«å¿ããŠåŠçãããå Žåãããããã§ãã ãã ãããã以å€ã®å Žåã¯ãå
éšã§ãããŒããã£ã¹ãããããã®ãšããŠã®ã¿è¡šç€ºãããŸãã ãããã£ãŠã2ã€ã®ç°ãªãã¿ã€ãã®ãã£ãã·ã¥å€æ°ããããŸãã
ãããåŠçããã«ã¯ã次ã®ããããã®ã¢ã«ãŽãªãºã ã®ãã£ãã·ã¥ã確èªããŠãã ããã
https://github.com/JuliaDiffEq/OrdinaryDiffEq.jl/blob/master/src/caches/low_order_rk_caches.jl#L224 -L234
ããã§ã rate_prototype = similar(u,first(u)/t,indices(u)
ã¯äŒŒãŠããŸããããŠãããã®eltypeãç°ãªãå¯èœæ§ããããŸãã ãã ããããã«ã¯2ã€ã®ç°ãªãã¿ã€ããããããšã«æ³šæããŠãã ããïŒ similar(u)
ãšsimilar(u,indices(u))
ã ç§ã¯ãããããã¿ã€ããšåœ¢ç¶ãäžèŽãããã察ã圢ç¶ãšãšã«ã¿ã€ããäžèŽãããããåãã¿ã€ãã§ããå¿
èŠã¯ãªãããšããæå³ã§ãããšè§£éããŸããã ãããã£ãŠã AbstractMultiScaleArray
å Žåãæåã®ãã®ã¯å¥ã®AbstractMultiScaleArray
ãäœæãããã1ã€ã¯ããŠãŒã¶ãŒã«è¡šç€ºãããªãããé床ãäžããããã«ãé©åãªArray
ãäœæããŸãããµã€ãºã 次ã«ãããã¯similar(u,T)
ãšsimilar(u,T,indices(u))
æ¡åŒµãããŸãã
ãã¶ãããã¯ãã§ã«ååšãããã®ãé§æŽèœã«ããŠããã ãã§ãããããã¯éèŠãªéãã ãšæããŸãã ãžã§ããªãã¯ããã°ã©ãã³ã°ãè¡ãå Žåã2ã€ã®å¥ã ã®ãã£ãã·ã¥ããããŸããã¿ã€ããæåŸ ã«äžèŽãããããã«å¿ èŠãªãŠãŒã¶ãŒåããã£ãã·ã¥ãšãã¢ã«ãŽãªãºã ã«ãã£ãŠäœ¿çšãããã ãã§å¯èœãªéãé«éã«ããå¿ èŠãããå éšãã£ãã·ã¥ã§ãã
zeros
ããŒãžã§ã³ãæãä»ãã®ãé¢åã ã£ãã®ã§ãããããsimilar
ã䜿çšããŠããããšã«æ³šæããŠãã ããã ãŠãŒã¶ãŒãf(t,u,du)
埮åèšç®ã§du
ã®ã¿ãèšå®ããå Žåããèšå®ããªãããšã¯æå³ããããšæé»çã«èšãåŸåããããããå®éã«ã¯ãããã®é
åã®äžéšããŒãã«ããããšãã§ããå¥ã®å ŽæããããŸãããŒãããããã¯zeros
ã§å²ãåœãŠãããå Žåã«ã®ã¿åœãŠã¯ãŸãã®ã§ãå¯èœãªéãzeros
ã䜿çšããŠäºåå²ãåœãŠãè©Šã¿ãŸãïŒããã«ã€ããŠã¯NLsolve.jlã§ãåãåé¡ãçºçããŸãïŒ ã
ããŸãããã°ããã®èª¬æã¯åŸãã®ã«ããã»ã©æ··ä¹±ããŠããŸããã§ããã ç§ã®å Žåã¯ãã¹ãŠã similar
ç¶ããŠfill!
ã«åãæ¿ããããšãã§ããŸãããäžéšã®ããã±ãŒãžã¯åãæ¿ãããããããããã°ã®åå ã«ãªãããšã¯ããã£ãŠããŸãã
é¢çœãã similar(A, inds)
ãsimilar(A)
ãšã¯ç°ãªãã¿ã€ããäœæããå¯èœæ§ãããããšã¯ç¢ºãã§ãããäžè¬çã«ã¯ãåãã¿ã€ããç°ãªãã€ã³ããã¯ã¹ã§äœæããå¯èœæ§ãé«ããšåžžã«èããŠããŸããã ããšãã°ã2次å
ãªããžã§ã¯ãã®åæ¹åã®æäœã«1次å
ã®ãã£ãã·ã¥ãå¿
èŠãªå Žåã¯ã similar(A, first(inds))
ãŸãã ïŒãã¡ããã®æ¬¡å
ãã¿ã€ããã©ã¡ãŒã¿ã§ãããããããã¯å¥ã®ã¿ã€ãã§ããããããã¯åãæœè±¡ã³ã³ããã¿ã€ããããããŸãããïŒãŸããå°ããªã¿ã€ã«ãªã©ã®5x5ã®ãã£ãã·ã¥ãäœæããããã«ããã䜿çšããããšãã§ããŸã
å
šäœãšããŠãããã¯é£ããåé¡ã®ããã§ãã ã²ãŒã ã®åŸåã§ããã same
ãå°å
¥ããå¿
èŠããããŸããïŒ similar
ãšåãåŒæ°ãæã€ããšãã§ããŸãããå¥çŽã§ã¯ãåãæœè±¡ã³ã³ãããŒãè¿ãå¿
èŠããããŸãã
same
1ã€ã®åŒæ°åœ¢åŒããµããŒãã§ããŸãããããã§ã泚æãå¿
èŠã§ãã a
ãsetindex!
ãµããŒãããŠããªãå Žåã same(a)
ã¯åãé
ååãè¿ãããšãã§ããªãããšã«æ³šæããŠãã ããã same
ãšsimilar
ã¯ãåŸã§é
åã«æžã蟌ãå Žåã«ã®ã¿åœ¹ç«ã€ããã setindex!
ã äžå€ã®a
å Žåãããããšã©ãŒã«ããããšãã§ããŸããã AbstractArray
ã€ã³ã¿ãŒãã§ã€ã¹ãšããŠãããã¯æ£ããæ±çšã³ãŒããäœæããããã«äžèŠïŒãããŠãããã圹ã«ç«ããªãïŒã®ããã§ãã
åæ§ã«ããã¹ãŠã®AbstractArray
ãç°ãªãeltypeãŸãã¯ã€ã³ããã¯ã¹ããµããŒãã§ãããšã¯éããŸããã ç§ã«ãšã£ãŠã2ã€ãŸãã¯3ã€ã®åŒæ°åœ¢åŒã®same
ããããšãå€ãã®å Žæã§å®è¡æãšã©ãŒãçºçããã ãã§ãäžè¬çãªã³ãŒããã©ã®AbstractArray
ã§ãããŸãæ©èœãããšãã誀ã£ãå®å¿æã人ã
ã«äžããŸãã
ãããã1次å ã®å ŽåãXã¯ãé¡äŒŒããããé åãã§ããããããšããç®çã®é åã®ã€ã³ããã¯ã¹ãã§ããïŒ
ããã¯ã keys
ãåãã€ã³ããã¯ã¹ãšå€ãæã€ã³ã³ãããè¿ãããããsimilar
èŠä»¶ã«ããããšã«è³æãããã1ã€ã®çç±ã§ãïŒã§1ã€ã®æŽæ°ãæå®ããªãéãïŒãã®å Žåã Base.OneTo
ïŒCartesianRangeïŒãæ³å®ãããŸãïŒã
ãã®è°è«ã¯ïŒ18161ã«åãã£ãŠé²ãã§ãããããããããã§ç¶ç¶ããå¿ èŠããããŸã:)ã
æè¿ã®ããªã¢ãŒãžã¯ã ones
ç¶æããããšã«åŸããŠããŸããã
ããããç¶æããããšã¯çãã§ããïŒ ããããããåºèº«ã®äººããžã¥ãªã¢ã§ãã€ãããã®ã«åœ¹ç«ã€ãšæããŸãã
ones
ãšzeros
ãŸãã
æãåèã«ãªãã³ã¡ã³ã
ç§ã«ã¯ã
fill(oneunit(T), sz)
ã¯ãones(T, sz)
ãšæ¯èŒããŠãèªã¿ãããã®éèŠãªæ倱ã®ããã«èŠããŸãã