ìŽì one
ì oneunit
, ones(T, sz)
ê° ì못ë ìŽëŠìŒë¡ 볎ì
ëë€. fill(oneunit(T), sz)
륌 ìíŽ ì¬ì© ì€ëš ? ê·žë ë€ë©Ž zeros
ë ë²ë €ìŒ í ê¹ì?
ìžë¶ ì°žì¡° https://github.com/JuliaLang/julia/issues/11557#issuecomment -339776065 ìŽí ë° @Sacha0 ì PR #24389
ëë ìŽ íšê³Œë¥Œ ìíŽ ì§í ì€ìž ìì ìŽ ìëë°, ìŽ ìì ì ë€ì í룚ë ìŽí ìì ê²ìí ì ìꞰ륌 ë°ëëë€. :). ìµìì!
ëìê² fill(oneunit(T), sz)
ë ones(T, sz)
ì ë¹êµíì¬ ê°ë
ì±ìì ì¬ìíì§ ìì ìì€ì²ëŒ 볎ì
ëë€.
fill(oneunit(T), sz)
ì ê°ì ì¥í©í ê²ì ìì±í íìë ê±°ì ììµëë€. ìŒë°ì ìŒë¡ oneunit(T)
ëì 늬í°ëŽ ëë ìŽì ì ì¬í ê°ê²°í ê²ìŒë¡ 충ë¶í©ëë€. ë°°ìŽ ìì±ìì ëí í¥í ë³ê²œìŒë¡ ë 짧ì ì£Œë¬žìŽ ê°ë¥í ìë ììµëë€. ëí fill
ë¡ ì ííë©Ž ì ì ë ì¢ìíê² ë ê²ì
ëë€. ìµìì!
ones
ê° one
ëë oneunit
ì¬ì©íëì§ ì¬ë¶ë¥Œ ì íí ì ììµëë€. ones
ë° zeros
ë ížì êž°ë¥ìŒë¡ ê°ì£ŒëìŽìŒ íë©° ë³Žë€ ìŒë°ì ìž êž°ë¥ ìž¡ë©Žìì ëª
íí ìë¯žê° ìë í êŽì°®ìµëë€.
ë¶ë¥ë³ ê³í: í¹í ones
ë° zeros
륌 MATLAB ížíì± ê³ìžµìŒë¡ ìŽëíê³ êž°ë³žìì fill
ë¡ ìŽëíë ê²ì ê³ ë €íì¬ ë€ì 죌ì ë€ì 방묞íììì€. ìµìì!
ones
ë° oneunits
ë ë ìµì
ì 구ë¶í©ëë€.
ìŽ zeros
륌 MATLAB ížíì±ìŒë¡ ì®êž°ë ê²ì ëíŽ ìŽë»ê² ëëŒëì§ ì ëªšë¥Žê² ìµëë€. Mathworksê° ë°ëª
íë€ê³ íŽì ìŽê²ìŽ ì°ëŠ¬ê° ìëì€ë¬ì í ì ìë ížëŠ¬í APIê° ìëëŒë ì믞ë ìëëë€. ê°ëší ë§íŽì -ìŽ ìê°ì ìŽì ë 묎ìì
ëê¹? (ì£ì¡í©ëë€. ë¶ë¥ê° íšì¬ ë íšìšì ìŒë¡ 볎ìŽì§ë§ ì¶ë¡ ìŽ ì ê³µëì§ ìì ë íšì¬ ë í¬ëª
íŽ ë³Žì
ëë€.)
ì ë ê°ê²©ì€ë¬ìŽ ë³íë ìëì§ë§ ë
ŒëŠ¬ì 몚ììŽëŒ ì¬ë €ëŽ€ìµëë€. ones(T, sz)
fill(one(T), sz)
ì믞íë€ê³ ë§íë ê²ìŽ ê³µì íë€ê³ ìê°íì§ë§ ì€ì ë¡ ëŽë¶ìì ìííë ìì
ì fill(oneunit(T), sz)
ì
ëë€.
í ê°ì§ ìµì
ì ìŽëŠì 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)
ë zeros(T, sz)
ì ê°ì ìŽì ë¡ ì¬ì©ì ì ì ì¶ì ì í ìì
ì ëí ë°°ìŽì ìŽêž°ííë ë° ì¬ì©ëë€ê³ ìê°í©ëë€. ë°°ìŽ z = zeros(T, sz)
íšê» ì²šê° ê·žê²ì ììê° ì€ë¹ z[i] += x
ë¡ ë°ë©Ž o = fill(one(T), sz)
ê·žê²ì ììê° ì€ë¹ ì¹ì° o[i] *= x
. ì륌 ë€ìŽ, ë°°ìŽ ììê° (ìë) íë¥ ì ëíëŒ ì ìë ìí©ì ìê°íê³ ììµëë€. ìŽ ë 겜ì°ìì ê°ê° +
ëë *
ì°ì°ì(ê°ì° ìì±êž°ê° ìë)ì ID륌 ì°Ÿê³ ììµëë€.
ì°žì¡° #23544
íí :) 묎ìì ìíŽ fill(oneunits(T), sz)륌 ì¬ì©í©ëê¹? (ì: 1믞í°, 1í¬ë¡ê·žëš ëë 1ìŽë¡ ì±ìì§ ìŽë ìŽë 묎ìì ì¬ì©ë©ëê¹?)
ODEì ëí ì¢
ì ë³ìì
ëë€. T
ì íì ë°°ìŽì ìì²í ë ëšìê° ë¬Žììë¡ ì늰 ê²œì° ìŽìí ê²ì
ëë€.
fill
륌 ì ížíë 귌볞ì ìž ìŽì ë ê°ë ¥íê³ ì§êµíë©° êµ¬ì± ê°ë¥í ë구 ìžížê° ones
/ zeros
ì ê°ì ììì ìŽê³ ì íì ìŽë©° ì€ë³µëë ë구 몚ìë³Žë€ ë ì ìëíêž° ë묞ì
ëë€. trues
/ falses
. ìì ë
Œìë ìŽ ì ì ê°ì¡°í©ëë€. fill
ìì 몚ë ì¬ì© ì¬ë¡ë¥Œ 몚ížíì§ ìê³ (ëë¶ë¶ì ì€ì ì¬ì©ìì) ê°ê²°íê² ìì©íì§ë§ ones
/ zeros
/ trues
/ falses
ì ê·Œ ë°©ììë ê° ì¬ì© ì¬ë¡ì ëí ìë¡ìŽ êž°ë¥ìŽ íìí©ëë€.
baseìì ì¬ìì±í ëª ê°ì§ êŽë š ì:
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
ë³Žë€ íšìšì ìŒë¡ ì¬ì©íì¬ ë€ì ìì± ë ì fill
ëì ones
ì§êž ê²ì ë°©ì§ ì묎ê²ë ìë€.
@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)
ë³Žë€ ê°ë
ì± ; ëë ê·žê²ìŽ ëšì§ ìµêŽì 묞ì ëŒë ê²ì ì í íì íì§ ëª»í©ëë€. ìŽê²ì ì¬ìí ìì ì
ëë€.)
ì°ž/ê±°ì§ì ì±ì°êž°ë¡ ì§ì ë첎í ì ìì§ë§ ì±ì°êž°ë¥Œ ì¬ì©íŽìŒ í©ëë€! BitArray ìŽëì ëŒìŽì 륌 ì¬ì©í©ëë€. ê·žë€ì ëí íëì íëì ëšì ì¬ìŽì 몚ížì±ì í¬íšëì§ ììµëë€. ë°ëŒì ëë ê·žë€ìŽ ìŽ ë Œìì ì í ì í©íì§ ìë€ê³ ìê°í©ëë€.
ì€ì ë¡ 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...)
). ìž¡ì ê°ë¥í ì©ìŽë¡, baseìì ones
ížì¶ì ì¬ìì±í ë¶êž°ë ones
-> fill
ì¬ìì±ìì 묞ì ìë§íŒ ~5% ë 짧ìµëë€. ìµìì!
ones
ê° ìŒììì ìŽë»ê² ëíëëì§ì ëí ê°êŽì ìž ê°ê°ì ì»êž° ìíŽ Julia ìœëìì ones
ì ëí GitHub ê²ìì ì²ì 10íìŽì§ì ëíëë 몚ë ones
ížì¶ì ìì§íìµëë€. ìŽë¬í ê°ê°ì ížì¶ì ì ì íê² ë¶ë¥íê³ íŽë¹ ë³ê²œ ì¬íì ë¶ë¥í ë€ì( ìŽ ìì§ ì°žì¡°) ë¶ë¥ ë°ìŽí°ë¥Œ ë€ì ììœìŒë¡ ì€ììµëë€.
ë¶ììë 156ê°ì ones
íµíê° í¬íšëììµëë€. ê·ž íµí ì€,
84ê°ì íµí(~54%)ê° ìì fill
. (ì륌 ë€ìŽ ones(100)/sqrt(100)*7
ë fill(7/sqrt(100), 100)
ëë fill(.7, 100)
ones(100)/sqrt(100)*7
ëšìíë©ëë€. ëŽê° ê°ì¥ ì¢ìíë ê²ì 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
ë¡ ìœê° ë 짧ìŒë©° ~32%ë í©ëŠ¬ì ìŒë¡ ì믞ì ones
ë° fill
ë¡ ìœê° ë ê¹ëë€.
ì¶ê° êŽì°°:
ë°°ìŽ ìžì륌 ìëœíë ones
ížì¶ì í ìžì€íŽì€ë§ ë§ë¬ê³ , ëë¬ìžë ì€ëí«ìŽ ì€ì ìœëìžì§ ì¬ë¶ë ë¶ëª
íì§ ìììµëë€. ë°ëŒì ë°°ìŽ ìžì륌 ìëœíë ones
ë©ìëë ì€ì ë¡ ì¬ì©ëë 겜ì°ê° ê±°ì ììµëë€.
ì ë§ í¥ë¯žë¡ìŽ í ë¡ ... ëí ë€ë¥ž ìžìŽì ì ë¡ë¡, R ì¬ì© ... ìž¡ìì ìž¡ë©Žì ëíììëìì ê°ë€ rep
ë° matrix
ì íŽë¹íë ë°©ììŒë¡ fill
(1d ë° 2d 겜ì°ìë§ íŽë¹) ë° ë§€ì° ë¹šëŠ¬ ìµìíŽì§ëë€. ë¹ë¡ ì ê° 0/1ì ìžê³ìì ìììë ë¶êµ¬íê³ .
ìì°, ë žë ¥íŽ ì£Œì
" zeros
ìŽë»ìµëê¹?"ëŒë ì§ë¬žìŽ ìì°ì€ëœê² ë ì€ëŠ
ëë€. ëë íšì¬ ë ë§ì ì¬ì©ê³Œ ëª ê°ì§ ë ë§ì ì¬ì© ë²ì£Œê° ìì ê²ìŽëŒê³ ìê°í©ëë€("ìŽêž°íëì§ ìì ë°°ìŽì ì 뢰íì§ ììµëë€" ëë " Array
ìì±ì륌 ì¬ì©íë ë°©ë²ì 몚ëŠ
ëë€. ").
ìŽì ê° ë¬ŽììŽë ( one
ë° zero
ì ëì¹ìž ê² ê°ìµëë€), ì ë ones
ë° zeros
ë ë€ë¥Œ ones
ìŒë¡ ë°êŸžë ë° ë€ì ë늜ëë€ fill
ëë ë ë€.
0ìŽ ìë ê²ì ë€ì ìí© ì€ íëì ìë ê²ì²ëŒ ë³ŽìŒ ì ìë€ë ê²ì ëë€.
0I
ì¬ì©íë ê²ìŽ ì¢ìµëë€.ì€ì ë¡ ì¡°ë°í 0ìŒë¡ 구ì±ë íë ¬ì í ë¹íë ê²ìŽ ì€ì ë¡ ì¢ì ìê°ìž ì¬ì© ì¬ë¡ë ììµëë€.
ê·žê²ì ìë§ë ì í ëìíì íŽë¹ë ê²ì ëë€. 컎íìŒë¬ ë° êž°í ë°ìŽí° 구조ì ëí ìì ìì 0ìŒë¡ ìŽêž°íë 컬ë ì ìŽ íìí ê²ì ë묞 ìŒìŽ ìëëë€. ìë§ë ê·žê²ë€ì ì¢ ì¢ í¬ìíì§ë§ ê·žê²ë€ì ê°ê²°íê² íííë ê²ì ì±ë¥ì ìí¥ì ì€ ê°ì¹ê° ììµëë€.
충ë¶í ê³µì í©ëë€. ëë¡ë ë°ëì ì 겜 ì°ì§ ìê³ ëšìíšìŽ ê·žë§í ê°ì¹ê° ììµëë€.
ë¶ë¥: zeros(dims...)
ë° ones(dims...)
ë° zeros(dims)
ë° ones(dims)
ì ê°ìŽ ìì í ì ë€ëŠìŽ ìë ë©ìëë§ ì ì§íë ê²ìŒë¡ íŽê²°ëììµëë€.
@StefanKarpinski ì¬ì© ê¶ì¥ ì¬íì ìŒë° ìœëì ëíŽ fill(0.0, 3, 3)
ë³Žë€ zeros(3, 3)
륌 ê¶ì¥íë€ë ì믞ì
ëê¹(ë°ë ë°°ìŽìŽ íìí ê²œì° ë±)? íšìšì± ë±ì ìžë¶ ì¬í ì€ ìŒë¶ë ì ììŽ ë¿ì§ ìë ë²ìì ììµëë€. ììŒë¡ ì€ëŠ¬ììì ìµì ì/êŽì©ì êŽíì ìŽë»ê² ê°ë¥Žì¹ ê²ìžì§ ìê°íê³ ììµëë€.
ìŽ ê²°ì ì ëìê² ë§€ì° ëëŒìŽ ê² ê°ìµëë€. í¹í ìŒë°ì±ì ë°©ì§íêž° ìíŽ êž°ë³žì ìŒë¡ ê·žë ê² ìŒë°ì ìŽì§ ììµëë€. ê·ž ìŽì ë 묎ìì ëê¹? ìŽ íšìë ìŒë°ì ìŽì§ ìì(ê·žëŠ¬ê³ floatììë§ ìëíë) matlabìì ê°ì žìš ê²ì ëê¹?
Triage: ìì í ìŒë°ìŽ ìë ë©ìëë§ ì ì§íë ê²ìŒë¡ íŽê²°ëš
ê·ž ìŽì ë 묎ìì ëê¹?
ìŽì ëíì¬, ìŽ ë¬žì ë íì¬ ê³ ë € ì€ìž ê²ìŒë¡ 볎ìŽë ë°°ìŽì 구ì±íë ìŒë°ì ìž ë¬žì ì ìŽë»ê²ë êŽë šìŽ ììŒë©°, ê·žë ë€ë©Ž ìŽê²ìŽ ìŽë»ê² ëììŽ ë©ëê¹? ìëë©Ž Base
ìì ëŽë³Žëž ë©ìëì ì륌 ì€ìŽë €ê³ í©ëê¹? (ëë ìì í ë€ë¥ž 묎ììžê°?)
https://github.com/JuliaLang/julia/issues/24595ìì ìì± ìì :). ìµìì!
ones
, zeros
ë° fill
ì ëíŽ ììží ì€ëª
í©ëë€. ì ì륌 ìœë ê²ì íì륌 ê°ìíë ë° ê°ì¹ê° ììµëë€. ìµìì!êžì, ìµìí Float64
ìŒìŽì€ë¥Œ ì ì¥íë ê²ìŽ ìë ê²ë³Žë€ ë«ìµëë€.
ì ì 0ì 겜ì°ë ìë¹í êŽë šìŽ ìë€ê³ ìê°í©ëë€. ìŽë Ʞ볞ì ìŒë¡ @vtjnash ê° ì¬êž° ìì ë§ë ìì ì
ëë€.
ëí zeros
ìë 3 * ones(n)
ìí° íšíŽì íì©íë "묞ì "ê° ììµëë€. ì¬ì€, ížì ìì±ìëŒë ëì ì믞륌 ì ìžíê³ ë ones
ì zeros
륌 íšê» ì¬ì©íŽìŒ íë ìŽì 륌 ì ëªšë¥Žê² ìµëë€. ê·ž ë ì¬ìŽìë ì§ì í 'ëì¹'ìŽ ììµëë€.
íµê³ ë¶ì ì ëí ëª ê°ì§ ì¶ê° ì견ì ë€ì í ë¡ ê³Œ #24595ì ìì±ì êž°ìŽìž ê² ê°ìµëë€. 첫짞, 10íìŽì§ë¡ë ë¬Žìš ìŒìŽ ìŒìŽëê³ ìëì§ì ëí ìžë°í ê²°ë¡ ì ëŽëŠ¬êž°ì 충ë¶íì§ ììŒë©° êž°ê»íŽìŒ ëëµì ìž ììŽëìŽë¥Œ ì ê³µí ì ììµëë€. ìŒë¶ íìŒì ì륌 ë€ìŽ ìŽëŠ/ì€íìŒìì ëª
ííêž° ë묞ì matlabìì ì§ì ê°ì žììµëë€. ë짞, ëŽê° ìì¬í ëë¡ ê·ž ë¶ìììë ones
ì¬ì©ì ìœ ì ë°ìŽ "í©ë²ì "ìž ê²ìŒë¡ ëíë¬ìµëë€. ì
짞, ìŽì ê°ì ìœë륌 볎멎 3 * ones(...)
ìì±í ë ì€ì ë¡ ì±ë¥ 묞ì 륌 ìŒìŒí€ë ìí° íšíŽìŽê±°ë ì±ë¥ì ì í ìí¥ì 믞ì¹ì§ ìë ìœë ì¡°ê°ì ëíŽ ì묎 ê²ë ì ì ììµëë€(ìì±ìë ê·žë° ììŒë¡ ìì±ë ê²ìŽ ë ìœêž° ìœë€ê³ ê²°ì íìµëë€. ìŽ ê²œì° ë¬ëŠ¬ ê²°ì íë ê²ì ë€ë¥ž ì¬ëì ìŒìŽ ìëëë€.)
ë§ì§ë§ ìì 곌 êŽë šíì¬, ê·žëŠ¬ê³ ë ì€ìí ê²ì github ê²ììì 볌 ì ìë ëŽì©ìŽ Juliaìì íì/ìë¹ ìì ì ìííë ì¬ëë€ì REPLìì ë¬Žìš ìŒìŽ ë²ìŽì§ê³ ìëì§ ê³ ë €íì§ ìëë€ë ê²ì ëë€. ížì êž°ë¥ìŽ ê°ì¥ ížëŠ¬íê² ì¬ì©ëë ê³³ìŽ ë°ë¡ ì¬êž°ìŽë©°, ìë³í ì ìë ìŽì ììŽ ìŽë¥Œ ì ê±°íë ê²ìŽ ê°ì¥ ì±ê°ì ìŒì ëë€. ì ìì ì, ìŒë°ì ìŽê³ íšìšì ìž ìœë륌 ìì±í ì ìëë¡ íë ìŒêŽë ì§êµ í늬믞í°ëž ìžížë¥Œ ê°ë ê²ìŽ í° ëª©íìŽë©°, ê±°êž°ì ëë¬íêž° ìí ë žë ¥ì ì ë§ ì¹ì°¬í ë§íë€ë ê²ì ëë€. 몚ë ìœëê° ìëŠëµê³ ìŒë°ì ìŽë©° êµ¬ì± ê°ë¥í ëŒìŽëžë¬ëŠ¬ ìœëê° ëìŽìŒ íë ê²ì ìëëë€. ê·žë¥ ëŽ 2 ìŒíž.
ì êŽíì¬
ì ë ì ì 0ì 겜ì°ë ìë¹í êŽë šìŽ ìë€ê³ ìê°í©ëë€. -- ì ìê°ìë -- Ʞ볞ì ìŒë¡
@vtjnash
ìŽ ì¬êž°ìì ë§ë€ê³ ìë ìì ì ëë€.
륌 ì°žì¡°íë
컎íìŒë¬ ë° êž°í ë°ìŽí° 구조ì ëí ìì ìì 0ìŒë¡ ìŽêž°íë 컬ë ì ìŽ íìí ê²ì ë묞 ìŒìŽ ìëëë€. ìë§ë ê·žê²ë€ì ì¢ ì¢ í¬ìíì§ë§ ê·žê²ë€ì ê°ê²°íê² íííë ê²ì ì±ë¥ì ìí¥ì ì€ ê°ì¹ê° ììµëë€.
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
몚ë ê²ìŽ 0ì ê°ëë¡ í ë¹ëë€ë ê²ì ìë ê²ì ë§ì ë²ê·žë¥Œ ë©ì¶ê² í©ëë€. ê·žë¬ë ìŽì ë€ì곌 ê°ì ë°©ë²ìŽ ìì ê² ê°ìµëë€.
zeros(X)
ë ìŽì, ë€ì ìŽìžì:
similar(X); fill!(X,0)
íì¬ fill
ë Array
fill
ë§ ë¹ëíë¯ë¡ similar
ëë zeros
ì ê°ì ì í ìŒì¹ê° ëì§ ìêž° ë묞ì
ëë€. ìŽë€ ì¬ëë€ì í ë¹íì§ ìììŒ í ë zeros
륌 ì€ì©íì§ë§ ë§ì 겜ì°ì zeros
ë¡ í ë¹íë ê²ì ë§€ì° í©ëŠ¬ì ìž ìŒìŽëŒë ê²ì ìê³ ììµëë€. ìŽ ê³µë°±ì ì±ì°êž° ìíŽ fill(0,X)
ìêž°ê° ì¶ê°ëꞰ륌 ë°ëëë€.
ì¬ë € ê¹ì ê²ì묌 Chrisì ê°ì¬ë늜ëë€! :) ìì ìêž° ëì²Žë¡ zero(X)
ê° ížëŠì ìíí©ëê¹?
ìŽë¬í ì¬ì© ì¬ë¡ ì ííê² ê²ì ì°žê³ ì 몚ížì± zeros
ë° ones
묞ì ê° ë ì ììµëë€í©ëê¹ìê² zeros(X)
ì°ì¶ì ê°ì²Ž eltype(X)
ì ê°ë eltype(X)
ì ë§ì
ììŽëŽí°í°(ì: fill!(similar(X), 0)
), ìëë©Ž eltype(X)
ëí ê³±ì
0ìŒë¡ ì±ìì§ ê°ì²Ž( eltype(X)
ìë ìë ìì)? (íì¥ì ëíŽìë #24595륌 ì°žì¡°íììì€.)
fill(0, X)
ê°ë
ì #11557ìì ìœê°ì ë
Œì륌 볌 ì ììŒë©° fill
ì ì ì©í ìŒë°íìŒ ì ìë€ë ë° ëìí©ëë€. ê°ì¬íê³ ìµê³ ì
ëë€!
ë€ë¥ž 묞ì ë ë¹ì íµì ìž ìžë±ì€ê° ìë ë°°ìŽìŽ zeros(inds...)
ì ê°ì ê²ìŒë¡ ìì±ëꞰ륌 ìí ì ìë€ë ê²ì
ëë€( ìžë±ì€ ì íìŽ ë°°ìŽ ì íì ê²°ì íêž° ë묞). ê·žë¬ë 1ì°šìì ê²œì° X
"ë®ê³ ì¶ì ë°°ìŽ"ì
ëê¹ ìëë©Ž "ìíë ë°°ìŽì ìžë±ì€"ì
ëê¹? (ê²°êµ AbstractUnitRange <: AbstractArray
.) 구첎ì ìŒë¡ zeros(3:5)
ë fill!(similar(3:5), 0)
ëë fill!(OffsetArray(Vector{Float64}(3), 3:5), 0)
í©ëê¹?
{ones|zeros }(A::AbstractArray, ...)
ížì ìì±ìì ëí ì¶ê° ë
Œìê° í¬íšë https://github.com/JuliaLang/julia/pull/24656 ì°ê²°. ìµìì!
#24656ì ë°ëŒ ìºì ë³ì륌 ë§ë€êž° ìíŽ zeros
륌 ì¬ì©íë ê²ìŽ ìŽìí ê²ìŒë¡ ê°ì£Œëë€ë ì¬ì€ì ëëìµëë€. ëë ê·ž ìê° ê² zeros
ì ë¡ ì€ë² í€ëì ê°ê¹ìŽ ì¬ëë€ìŽ ì¬ì©íë ê±°ì 몚ë ì¬ê±Žì ê°ì similar
ëì íŽìŒ zeros
귞걎 ꜀ ë§ì 묞ì 륌 íŽê²°íë 겜í¥ìŽ ìêž° ë묞ì ë²ê·ž. similar
ë ë§€ì° ìì íì§ ìì ì ìê³ êž°ë¥ìŽ ìê³ ëì fill!
+ similar
íë©Ž ë€ììŽ ë ëª
ííŽì§êž° ë묞ì ë ë§ì ì¬ëë€ìŽ ìŽ ìì
ì ìííëë¡ ê¶ì¥íŽìŒ íë€ê³ ìê°í©ëë€ fill!
ì¬ëë€ìŽíŽìŒ í ìŒ. ë€ìì Optim.jlì ëíëë ìŽ í목ì ëí ì€ëª
ì
ëë€.
https://github.com/JuliaNLSolvers/NLsolve.jl/issues/89#issuecomment -294585960
ê·žë¬ë ëë @timholy ê° ìŽë»ê² íŽìëìŽìŒ íëì§ê° ë¶ëª íì§
https://github.com/JuliaDiffEq/MultiScaleArrays.jl
MultiScaleArrays.jlì diffeq ìë²ìì ì¬ì©í ì ìë ìí ê·žëíì ê°ì êµ¬ì¡°ìž ì¶ì ë°°ìŽì ë§ë€ììµëë€(ì§êž Optim.jl ë° NLsolve.jl곌 ížíë ì ìë€ê³ ìê°í©ëë€). ê·žê²ì 묎ì볎ë€ë ì묌íì 몚ëžì ëí ì¢ì ížìì
ëë€. ê·žê²ì ODE ìë²ì ëì§ ë ì§ë¬žìŽ ììµëë€. ìºì ë°°ìŽì 묎ììŒë¡ ë§ë€ìŽìŒ í ê¹ì? ìŽë€ 겜ì°ìë ì¬ì©ìê° ODE íšì f(t,u,du)
ëê³ ê·žì ë°ëŒ ì²ëŠ¬íꞰ륌 ìí ê²ìŽêž° ë묞ì ì¬ì©ìê° ìíë ë°°ìŽì ë€ì ê°ì žì€ë ê²ìŽ ì€ìí©ëë€. ê·žë¬ë ë€ë¥ž 겜ì°ìë ëŽë¶ì ìŒë¡ ë°©ì¡ëë ê²ìŒë¡ë§ ëíë©ëë€. ë°ëŒì ë ê°ì§ ì íì ìºì ë³ìê° ììµëë€.
ìŽë¥Œ ì²ëŠ¬íë €ë©Ž ìê³ ëŠ¬ìŠ ì€ íëì ëí ìºì륌 ìŽíŽë³Žììì€.
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ìŽ ììµëë€. ê·žë¬ë ì¬êž°ìë similar(u)
ë similar(u,indices(u))
ì ë ê°ì§ ê°ë³ ì íìŽ ììµëë€. ëë ê·žê²ë€ì "ì í곌 몚ì ìŒì¹" ë "몚ì곌 eltype ìŒì¹íì§ë§ ëìŒí ì íìŒ íìë ìì"ì ì믞íë ê²ìŒë¡ íŽìíìµëë€. ë°ëŒì AbstractMultiScaleArray
ì ê²œì° ì²« ë²ì§žë ë ë€ë¥ž AbstractMultiScaleArray
륌 ë§ë€ê³ ë€ë¥ž íëë ì¬ì©ììê² íìëì§ ìêž° ë묞ì ìë륌 ìíŽ ì ì í Array
ë§ ë§ëëë€. í¬êž°. ê·žë° ë€ì similar(u,T)
ë° similar(u,T,indices(u))
ë©ëë€.
ê·žê²ì ìŽë¯ž ì¡Žì¬íë ê²ì ë§ì¥ëíë ê²ìŒ ìë ìì§ë§ ìŽê²ìŽ ì€ìí ì°šìŽì ìŽëŒê³ ìê°í©ëë€. ìŒë° íë¡ê·žëë°ì ìíí ë ë ê°ì ê°ë³ ìºìê° ììµëë€. ì íì ììì ë§ê² ìŒì¹ìí€ë €ë ì¬ì©ì ëë©Ž ìºìì ìê³ ëŠ¬ìŠìì ì¬ì©íê³ ê°ë¥í í ë¹ ë¥ž ìë륌 ìíë ëŽë¶ ìºìì ëë€.
ëŽê° ë묎 ê²ìŒë¥ž zeros
ë²ì ì ìê°íŽëŽì§ 못íêž° ë묞ì ìŽê²ë€ìŽ similar
ì¬ì©íê³ ììì 죌목íììì€. ì¬ì©ìê° f(t,u,du)
íì ê³ì°ìì du
ë§ ì€ì íë©Ž ììì ìŒë¡ "ëŽê° ì€ì íì§ ìì ê²ì ì믞 zero", ìŽê²ì zeros
ë¡ í ë¹ëìì ëë§ ì¬ì€ìŽë¯ë¡ ê°ë¥í í zeros
륌 ì¬ì©íì¬ ì¬ì í ë¹íë €ê³ í©ëë€(ìŽë¥Œ ìíŽ NLsolve.jlìì ëìŒí 묞ì ê° ëíëš) .
ê·ž ì€ëª
ìŽ ë°ëŒê°êž°ì ë묎 íŒëì€ëœì§ ìꞰ륌 ë°ëëë€. ëŽ ëªšë 겜ì°ì similar
ë€ìì fill!
ë¡ ì íí ì ìì§ë§ ìŒë¶ íší€ì§ë ê·žë ì§ ìê³ ìŽê²ìŽ ë²ê·žì ììžìŽ ëë€ë ê²ì ìê³ ììµëë€.
í¥ë¯žë¡ìŽ. similar(A, inds)
ê° similar(A)
ì ë€ë¥ž ì íì ìì±í ì ìë€ë ë§ìŽ ì³ìì§ë§ ìŒë°ì ìŒë¡ ì ë íì ëìŒí ì íì ìì±íì§ë§ ìžë±ì€ë ë€ë¥ž ê²ìŒë¡ ìê°íìµëë€. ì륌 ë€ìŽ, 2ì°šì ê°ì²Žì ëí ìŽ ëšì ì°ì°ì ìíŽ 1ì°šì ìºìê° íìí ê²œì° similar(A, first(inds))
í©ëë€. (ë¬Œë¡ ì°šììŽ ì í ë§€ê° ë³ììŽêž° ë묞ì ë€ë¥ž ì íìŽì§ë§ ê°ì ì¶ìì ìž ì»ší
ìŽë ì íìŽ ë ì ììµëë€.) ë¹ì ì ëí ìì íìŒ ë± 5 à 5 ìºì륌 ìì±íë ë° ì¬ì©í ì ììµëë€
ì ë°ì ìŒë¡ ìŽê²ì ìŽë €ìŽ 묞ì ìž ê² ê°ìµëë€. ì¡°êž ëŠìì§ë§ same
í ê¹ì? similar
ì ëìŒí ìžì륌 ê°ì§ ì ìì§ë§ ê³ìœì ëìŒí ì¶ì 컚í
ìŽë륌 ë°ííŽìŒ íë€ë ê²ì
ëë€.
same
ì ëšìŒ ìžì íìì ì§ìí ì ìì§ë§ ìŽê²ë ê¹ë€ë¡ìµëë€. a
ê° setindex!
ì§ìíì§ ììŒë©Ž same(a)
ë ëìŒí ë°°ìŽ ì íì ë°íí ì ììµëë€ setindex!
same
ë° similar
ë ëì€ì ë°°ìŽì ìž ê²œì°ìë§ ì ì©íêž° ë묞ì
ëë€. ë³ê²œí ì ìë a
ëíŽ ìŽê²ì ì€ë¥ë¡ ë§ë€ ì ìì§ë§ AbstractArray
ëí ìží°íìŽì€ë¡ì ìŽê²ì ì ííê³ ìŒë°ì ìž ìœë륌 ë§ëë ë° ë¶íìíŽ ë³Žì
ëë€(ìë§ë ëììŽ ëì§ ìì ì ìì).
ë§ì°¬ê°ì§ë¡ 몚ë AbstractArray
ê° ë€ë¥ž eltype ëë ìžë±ì€ë¥Œ ì§ìí ì ìë€ê³ ê°ì í ì ììµëë€. ëìê² same
ì ë ê° ëë ìž ê°ì ìžì íìì ì¬ì©íë©Ž ì¬ëë€ìê² ìŒë° ìœëê° ëªšë AbstractArray
ëíŽ ì ìëí ê²ìŽëŒë ì못ë 볎ì ê°ê°ì 죌ë ëìì ì¬ë¬ ìì¹ìì ë°íì ì€ë¥ê° ë°ìí ì ììµëë€
ê·žë¬ë 1ì°šìì ê²œì° Xë "ë®ê³ ì¶ì ë°°ìŽ"ì ëê¹ ìëë©Ž "ìíë ë°°ìŽì ìžë±ì€"ì ëê¹?
ìŽê²ì ëŽê° ì°¬ì±ì
ëë€ ë ë€ë¥ž ìŽì ì
ëë€ keys
ìŽ ì구íê³ ë€ì ëìŒí ìžë±ì€ì ê° ë°ìë 컚í
ìŽë ë°í similar
(íë (ìŒë¶) ì ì (S륌 ì ê³µíì§ ìë í)ìì ìŽ ê²œì° Base.OneTo
(CartesianRange)ê° ê°ì ëš).
ìŽ í ë¡ ì #18161ì í¥íê³ ììŒë©° ìë§ë ê³ìëìŽìŒ í©ëë€ :).
ê°ì¥ ìµê·Œì ë¶ë¥ë ones
ì ì§íë ë°©í¥ìŒë¡ êž°ìžììµëë€.
ê·žê²ë€ì ì ì§íë ê²ìŽ ê³ íµì€ëœìµëê¹? numpyìì ìš ì¬ëë€ìŽ Juliaìì ì§ê³Œ ê°ì ížìíšì ëëŒë ë° ëììŽ ëë€ê³ ìê°í©ëë€.
ones
ë° zeros
ì ì§íë¯ë¡ ì¢
ë£í©ëë€.
ê°ì¥ ì ì©í ëêž
ëìê²
fill(oneunit(T), sz)
ëones(T, sz)
ì ë¹êµíì¬ ê°ë ì±ìì ì¬ìíì§ ìì ìì€ì²ëŒ 볎ì ëë€.