Julia: 'рдПрдХ' рдХреЛ рд╣рдЯрд╛ рджреЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдирд╡ре░ 2017  ┬╖  46рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: JuliaLang/julia

рдЕрдм рдЬрдмрдХрд┐ рд╣рдо one рдФрд░ oneunit рдЕрдВрддрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ones(T, sz) рдПрдХ рдорд┐рдереНрдпрд╛ рдирд╛рдо рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред fill(oneunit(T), sz) рдкрдХреНрд╖ рдореЗрдВ рдкрджрд╛рд╡рдирдд рдХрд░реЗрдВ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рд╣рдореЗрдВ zeros рднреА рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП?

decision linear algebra stdlib

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реЗ рд▓рд┐рдП fill(oneunit(T), sz) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣рд╛рдирд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ ones(T, sz) ред

рд╕рднреА 46 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xref 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 рд╕рдВрдЧрддрддрд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдерд╡рд░реНрдХреНрд╕ рдиреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╣рдореЗрдВ рдЧрд░реНрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рдХрд╛рд░рдг рдереЗ? (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЬрдм рддрд░реНрдХ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЯреНрд░рд╛рдЗрдПрдЬ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдХрдо рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрддрд╛ рд╣реИ)ред

рдпрд╣ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд░реЛрдорд╛рдВрдЪрд┐рдд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрдард╛рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЕрд╕рдВрдЧрддрд┐ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ 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 ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд╕рд░рдгреА рддрддреНрд╡ (рд╕рд╛рдкреЗрдХреНрд╖) рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореИрдВ рдХреНрд░рдорд╢рдГ + рдпрд╛ * рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ (рдФрд░ рдПрдбрд┐рдЯрд┐рд╡ рдЬреЗрдирд░реЗрдЯрд░ рдирд╣реАрдВ)ред

рдпрд╣ рднреА рджреЗрдЦреЗрдВ #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 , рд▓реЗрдХрд┐рди рдЬрд░реВрд░рдд рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fill! рдПрдХ рд╕рд╛рде BitArray рдкреНрд░рд╛рд░рдВрднрдХрд░реНрддрд╛ред рд╡реЗ one рдФрд░ oneunit рдмреАрдЪ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдлрд┐рдЯ рдмреИрдарддреЗ рд╣реИрдВред

ones , рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдпрд╣ рддрд░реНрдХ рдХрд┐ рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ fill рд╕рд╛рде рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рд╕рдореНрдореЛрд╣рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг ones рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдлрд┐рд░ fill рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓рдВрдмрд╛, рдХрдо рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрдзрд┐рдХ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдореБрдЭреЗ @JeffBezanson рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рд╣реИрдВ base рдпрд╛ test рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ fill рдХреЗ рдмрдЬрд╛рдп ones рдХрд┐ рдЕрднреА рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред

@carlobaldassi рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдЪ рд╣реИ, рдПрдХ рддреНрд╡рд░рд┐рдд рдЧрд┐рдЯрд╣рдм рдЦреЛрдЬ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдордзреНрдпрд╡рд░реНрддреА рдЖрд╡рдВрдЯрди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 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) рд╕реЗ рдкрдардиреАрдп; рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрджрдд рдХреА рдмрд╛рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд рд╣реИред)

рдЯреНрд░реВ/рдлреЙрд▓реНрд╕ рдХреЛ рдлрд┐рд▓ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рдмрд┐рдЯрдЕрд░реЗ рдкреНрд░рд╛рд░рдВрднрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рдеред рд╡реЗ рдПрдХ рдФрд░ рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рдмреАрдЪ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдлрд┐рдЯ рдмреИрдарддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, trues рдФрд░ falses рд╕реАрдзреЗ fill :) рд╕реЗ рдмрджрд▓рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, trues рдФрд░ falses рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ / #11557 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ (рдФрд░ рд╕рд░рдгреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреА рд╣рд╛рд▓рд┐рдпрд╛ рджрд┐рд╢рд╛ рдЙрдореНрдореАрдж рд╕реЗ рдирд┐рдкрдЯреЗрдЧреА)ред рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреИрд╕реЗ bones , bzeros , brand , brandn , рдФрд░ beye BandedMatrices.jl рдореЗрдВ рдФрд░ рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде a d DistributedArrays.jl рдореЗрдВ рдЙрдкрд╕рд░реНрдЧред

рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдпрд╣ рддрд░реНрдХ рдХрд┐ рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рднрд░рдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рд╕рдореНрдореЛрд╣рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

рдЖрдзрд╛рд░ рдореЗрдВ ones рдХреБрдЫ рд╕реМ рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ @TotalVerb рдХреЗ рдХрдерди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдПрдХ рддреНрд╡рд░рд┐рдд рдЧрд┐рдЯрд╣рдм рдЦреЛрдЬ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдордзреНрдпрд╡рд░реНрддреА рдЖрд╡рдВрдЯрди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрд░рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ...

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд▓рдЧрднрдЧ рд╕рднреА рдХреЗ рдмрдЬрд╛рдп рд▓рдЧрднрдЧ рдЖрдзрд╛ рдХрд╣реВрдВрдЧрд╛, рдФрд░ рдЙрдкрдпреБрдХреНрдд рдкреБрдирд░реНрд▓реЗрдЦрди fill рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрд╕ рдкреБрдирд░реНрд▓реЗрдЦрди рдЕрдиреБрднрд╡ рдиреЗ рдореБрдЭреЗ рд╕рд┐рдЦрд╛рдпрд╛ рд╣реИ ...

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдлрд┐рд░ рднрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓рдВрдмрд╛, рдХрдо рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрдзрд┐рдХ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛрддрд╛ рд╣реИред

... рджреВрд╕рд░реА рдУрд░, рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ fill рдЕрдХреНрд╕рд░ рдЫреЛрдЯрд╛ рдФрд░ рд╕рд░рд▓ рд╣реЛрддрд╛ рд╣реИ: рдЕрдиреБрд░реЛрдзрд┐рдд рд▓реЛрдЧ рдЕрдХреНрд╕рд░ Float64 рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рдмрдЬрд╛рдп ones(Int, n...) рдФрд░ ones(Complex{Float64}, n...) ), рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ fill рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ (рдЬреИрд╕реЗ fill(1, n...) рдФрд░ fill(1.0 + 0im, n...) ) рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдХреЗ рдЫреЛрдЯрд╛ рдФрд░ рд╕рд░рд▓ рд╣реИред рдорд╛рдкрдиреЗ рдпреЛрдЧреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЬрд┐рд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рдореИрдВ рдЖрдзрд╛рд░ рдореЗрдВ ones рдХреЙрд▓ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ ones -> fill рдкреБрдирд░реНрд▓реЗрдЦрди рд╕реЗ рд╡рд░реНрдг рдЧрдгрдирд╛ рд╕реЗ ~5% рдХрдо рд╣реИред рд╢реНрд░реЗрд╖реНрда!

рдЬрдВрдЧрд▓реА рдореЗрдВ ones рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рдЕрд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдореЗрдВ ones рд▓рд┐рдП GitHub рдЦреЛрдЬ рдХреЗ рдкрд╣рд▓реЗ рджрд╕ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА ones рдХреЙрд▓ рдПрдХрддреНрд░ рдХреА, рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЛ рдЙрдкрдпреБрдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( рдЗрд╕ рд╕рд╛рд░ рдХреЛ рджреЗрдЦреЗрдВ), рдФрд░ рдлрд┐рд░ рд╡рд░реНрдЧреАрдХрд░рдг рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ рдШрдЯрд╛ рджрд┐рдпрд╛:

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ 156 ones рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рдереЗред рдЙрди рдХреЙрд▓реЛрдВ рдореЗрдВ рд╕реЗ,

  • 84 рдХреЙрд▓ (~54%) рддрджрд░реНрде fill рдПрд╕ рдереЗред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ones(100)/sqrt(100)*7 рд╕рд░рд▓реАрдХреГрдд рд╣реЛрдХрд░ fill(7/sqrt(100), 100) рдпрд╛, рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, 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/ рдореЗрдВ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкреНрд░рд╛рд░рдВрднреАрдХреГрдд Array s рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реБрд╡рд┐рдзрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП <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)) ред)

рд╢реЗрд╖ рдХреЙрд▓ ones рд░реВрдк рдореЗрдВ рдЕрд░реНрдердкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рдереЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдХреНрд╕рд░ ones рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ one рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЙрди рд╢реЗрд╖ рдХреЙрд▓реЛрдВ рдореЗрдВ рд╕реЗ,

  • 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 рдмрд░рд╛рдмрд░ рд╣реИ

рд╡рд╛рд╣, рдЙрд╕ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП @ Sacha0 рдзрдиреНрдпрд╡рд╛рдж!

рдкреНрд░рд╢реНрди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ " zeros рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛" рдЙрдарддрд╛ рд╣реИ? рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХрд╛рдлреА рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рдХреБрдЫ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ ("рдореБрдЭреЗ рдмрд╕ рдЕрдкреНрд░рд╛рд░рдВрднреАрдХреГрдд рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рд╣реИ" рдпрд╛ "рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ Array рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ ")ред

рдЬреЛ рднреА рдХрд╛рд░рдг (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд░реВрдкрддрд╛ рд╣реИ one рдФрд░ zero ), рдореИрдВ рдХреБрдЫ рд╣рдж рддрдХ рдпрд╛ рддреЛ рджреЛрдиреЛрдВ рдЬрдЧрд╣ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ ones рдФрд░ zeros рдХреЗ рд╕рд╛рде fill , рдпрд╛ рди рд╣реАред

рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрдВрдЧреЗ:

  1. рдЖрдкрдХреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢реВрдиреНрдпреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдПрдХ рд╕рдордЭ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╕рдордЭрддреЗ рд╣реИрдВ;
  2. рдЖрдкрдХреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢реВрдиреНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдПрдХ рд╡рд┐рд░рд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╕рдордЭрддреЗ рд╣реИрдВ;
  3. рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг-рд╢реВрдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк 0I рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╕рдордЭрддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдШрдиреЗ рд╢реВрдиреНрдп рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдпрд╣ рд╢рд╛рдпрдж рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЪ рд╣реИред рд╕рдВрдХрд▓рдХ рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рдореЗрд░реЗ рдХрд╛рдо рдореЗрдВ рд╢реВрдиреНрдп-рдЖрд░рдВрднрд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдирд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдХреНрд╕рд░ рд╡рд┐рд░рд▓ рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред

рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ - рдХрднреА-рдХрднреА рдЖрдк рдШрдирддреНрд╡ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рджрдЧреА рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдЯреНрд░рд╛рдЗрдПрдЬ: рд╣рдордиреЗ рд╕рдВрдХрд▓реНрдк рд▓рд┐рдпрд╛ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░-рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рдпрд╛рдиреА zeros(dims...) рдФрд░ ones(dims...) рдФрд░ рд╢рд╛рдпрдж zeros(dims) рдФрд░ ones(dims) рднреА рд░рдЦрддреЗ рд╣реИрдВред

@StefanKarpinski рдЙрдкрдпреЛрдЧ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдХреЗ рд▓рд┐рдП zeros(3, 3) рд╕реЗ рдЕрдзрд┐рдХ fill(0.0, 3, 3) рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реЗрдВрдЧреЗ (рдЬрдм рдПрдХ рдШрдиреЗ рд╕рд░рдгреА рдЖрджрд┐ рдЖрджрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)? рджрдХреНрд╖рддрд╛ рдЖрджрд┐ рдХреЗ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рдореЗрд░реА рдкрд╣реБрдВрдЪ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рдореИрдВ рдмрд╕ рдпрд╣реА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рд╕рд░реНрд╡реЛрддреНрддрдо/рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рдКрдВрдЧрд╛ред

рдпрд╣ рдирд┐рд░реНрдгрдп рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдпрддрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдкреАрдЫреЗ рдХреНрдпрд╛ рддрд░реНрдХ рд╣реИ? рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдореИрдЯрд▓реИрдм рд╕реЗ рдЖрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ (рдФрд░ рдХреЗрд╡рд▓ рдлреНрд▓реЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)?

рдЯреНрд░рд╛рдЗрдПрдЬ: рд╕рдВрдХрд▓реНрдк рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░-рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд░рдЦрддреЗ рд╣реИрдВ

рдкреАрдЫреЗ рдХреНрдпрд╛ рддрд░реНрдХ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЕрднреА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдпрд╣ рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИ? рдпрд╛, рдХреНрдпрд╛ рд╣рдо рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ Base рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? (рдпрд╛ рдХреБрдЫ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ?)

https://github.com/JuliaLang/julia/issues/24595 :) рдореЗрдВ рдЖрдЧрд╛рдореА рд▓реЗрдЦрдиред рд╢реНрд░реЗрд╖реНрда!

24595 рдХреЗ рдУрдкреА рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рдХреЛ рд╡рд┐рд╕реНрддреГрдд рдХрд┐рдпрд╛, рдФрд░ рдЕрдм #24595 рдореЗрдВ рдПрдХ рдлреЙрд▓реЛрдЕрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ ones , zeros , рдФрд░ fill рдЧрд╣рд░рд╛рдИ рдореЗрдВред рдкреВрд░реНрд╡ рдХреЛ рдкрдврд╝рдирд╛ рдмрд╛рдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИред рд╢реНрд░реЗрд╖реНрда!

рдЦреИрд░, рдХрдо рд╕реЗ рдХрдо Float64 рдорд╛рдорд▓реЗ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдХреБрдЫ рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рд╢реВрдиреНрдп рдХрд╛ рдорд╛рдорд▓рд╛ рднреА рдХрд╛рдлреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЬреЛ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ - рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣ рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ @vtjnash рдпрд╣рд╛рдВ рдмрдирд╛ рд░рд╣рд╛ рдерд╛ред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ zeros рдореЗрдВ 3 * ones(n) рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА "рд╕рдорд╕реНрдпрд╛" рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рд╕реБрд╡рд┐рдзрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реЛрдиреЗ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЕрд░реНрдереЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, ones рдФрд░ zeros рдХреЛ рдПрдХ рд╕рд╛рде рдХреНрдпреЛрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ 'рд╕рдорд░реВрдкрддрд╛' рдирд╣реАрдВ рд╣реИред

рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░реНрдЪрд╛рдУрдВ рдФрд░ #24595 рдХреЗ рд▓реЗрдЦрди рдХрд╛ рдЖрдзрд╛рд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджрд╕ рдкреГрд╖реНрда рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдВрдЧрд▓реА рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕реВрдХреНрд╖реНрдо рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдПрдХ рдореЛрдЯрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реАрдзреЗ matlab рд╕реЗ рдЖрдИ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдирдХреЗ рдирд╛рдо/рд╢реИрд▓реА рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред рджреВрд╕рд░реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ ones рд▓рдЧрднрдЧ рдЖрдзреЗ рдЙрдкрдпреЛрдЧ "рд╡реИрдз" рдереЗред рддреАрд╕рд░рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ 3 * ones(...) рд▓рд┐рдЦрддреЗ рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ (рдФрд░ рд▓реЗрдЦрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрдп рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рдЬреЛ рдореБрдЭреЗ рджреГрдврд╝рддрд╛ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреНрдпрдерд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдФрд░ рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдирд╣реАрдВ рд╣реИ)ред

рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬреАрдердм рдЦреЛрдЬ рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рджреЗрдЦрдиреЗ рдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ, рд╡рд╣ рдХрднреА рднреА рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдЧрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЦреЛрдЬрдкреВрд░реНрдг/рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рд░реНрдп рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдЖрддреЗ рд╣реИрдВ, рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рдХреЗ рдЙрдиреНрд╣реЗрдВ рджреВрд░ рд▓реЗ рдЬрд╛рдирд╛ рд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛрддрд╛ рд╣реИред рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ, рдСрд░реНрдереЛрдЧреЛрдирд▓ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдХрд╛ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реЗрдЯ рд╣реЛрдирд╛ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдХреБрд╢рд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдПрдХ рдорд╣рд╛рди рд▓рдХреНрд╖реНрдп рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдиреАрдп рд╣реИ; рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╕рднреА рдХреЛрдб рд╕реБрдВрджрд░, рд╕рд╛рдорд╛рдиреНрдп, рдХрдВрдкреЛрдЬреЗрдмрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ рдореЗрд░реЗ рджреЛ рд╕реЗрдВрдЯреНрд╕ред

рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рд╢реВрдиреНрдп рдХрд╛ рдорд╛рдорд▓рд╛ рднреА рдХрд╛рдлреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЬреЛ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ - рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣ рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ @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 s рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ 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 рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЙрддреНрддрдо!

рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрд░рдВрдкрд░рд╛рдЧрдд рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд╛рд▓реЗ рд╕рд░рдгрд┐рдпрд╛рдБ 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 рдлрд╝рдВрдХреНрд╢рди 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)) рддрдХ рдмрдврд╝рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝ рд░рд╣рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИред рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреИрд╢ рд╣реЛрддреЗ рд╣реИрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреИрд╢ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЙрдирдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдВрддрд░рд┐рдХ рдХреИрд╢ рдЬреЛ рдХреЗрд╡рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЧрддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреЗ similar рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ zeros рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЬрдЧрд╣ рд╣реИ рдЬреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╢реВрдиреНрдп рдХрд░ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ du рдХреЛ рдЕрдкрдиреЗ f(t,u,du) рд╡реНрдпреБрддреНрдкрдиреНрди рдЧрдгрдирд╛ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ "рдЬреЛ рдореИрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рд╢реВрдиреНрдп", рдЬреЛ рдХреЗрд╡рд▓ рддрднреА рд╕рддреНрдп рд╣реИ рдЬрдм рдЗрд╕реЗ zeros рд╕рд╛рде рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ zeros рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ (рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП NLsolve.jl рдореЗрдВ рдЖрддрд╛ рд╣реИ) .

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдерд╛ред рдореЗрд░реЗ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореИрдВ рдмрд╕ similar рдмрд╛рдж fill! рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдФрд░ рдпрд╣ рдмрдЧ рдХрд╛ рд╕реНрд░реЛрдд рд╣реЛрдЧрд╛ред

рджрд┐рд▓рдЪрд╕реНрдкред рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ similar(A, inds) similar(A) рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рдеред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ 2-рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХреЙрд▓рдорд╡рд╛рдЗрдЬ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП 1-рдЖрдпрд╛рдореА рдХреИрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ similar(A, first(inds)) рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред (рдХреНрдпреЛрдВрдХрд┐ рдЖрдпрд╛рдореА рд╕реНрд╡рд░реВрдк рдПрдХ рдкреНрд░рдХрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдмреЗрд╢рдХ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╣реА рд╕рд╛рд░ рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред) рддреБрдо рднреА рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЯрд╛рдЗрд▓, рдЖрджрд┐ рдХреА рдПрдХ 5x5 рдХреИрд╢ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдпрд╣ рдПрдХ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдЦреЗрд▓ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдореЗрдВ same рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕рдореЗрдВ similar рдХреЗ рд╕рдорд╛рди рддрд░реНрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреБрдмрдВрдз рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдЙрд╕реА рд╕рд╛рд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореИрдВ same рдПрдХ-рддрд░реНрдХ рдХреЗ рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ - рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ same(a) рдЙрд╕реА рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдпрджрд┐ a setindex! рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ same рдФрд░ similar рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдмрд╛рдж рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реЛрдВред рд╣рдо рдЗрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп a рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди AbstractArray рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рд╕рд╣реА, рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ (рдФрд░ рд╢рд╛рдпрдж рдЕрдиреБрдкрдпреЛрдЧреА) рд▓рдЧрддрд╛ рд╣реИред

рдЗрд╕реА рддрд░рд╣, рд╣рдо рдпрд╣ рдирд╣реАрдВ рдорд╛рди рд╕рдХрддреЗ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ AbstractArray рдЕрд▓рдЧ-рдЕрд▓рдЧ eltypes рдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, same рджреЛ рдпрд╛ рддреАрди-рддрд░реНрдХ рд░реВрдк рд╣реЛрдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЭреВрдареА рднрд╛рд╡рдирд╛ рджреЗрддреЗ рд╣реБрдП рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рд░рди-рдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреЗрд╢ рдХреА рдЬрд╛рдПрдВрдЧреА рдХрд┐ рдЙрдирдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдХрд┐рд╕реА рднреА AbstractArray рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛

рд▓реЗрдХрд┐рди 1-рдбреА рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕ "рд╡рд╣ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ" рдпрд╛ "рд╡рд╛рдВрдЫрд┐рдд рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ"?

рдпрд╣ рдПрдХ рдФрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ keys рд╕рдорд╛рди рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдЯреЗрдирд░ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ similar рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдПрдХ (рдХреБрдЫ) рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреМрди рд╕рд╛ рдорд╛рдорд▓рд╛ Base.OneTo (рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рд░реЗрдВрдЬ) рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдпрд╣ рдЪрд░реНрдЪрд╛ #18161 рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рд╡рд╣реАрдВ рдЬрд╛рд░реА рд░рд╣рдиреА рдЪрд╛рд╣рд┐рдП :)ред

рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдЯреНрд░рд╛рдЗрдПрдЬ рд╕рд┐рд░реНрдл ones рд░рдЦрдиреЗ рдХреА рдУрд░ рдЭреБрдХ рд░рд╣рд╛ рдерд╛ред

рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рджреБрдЦ рд╣реЛрддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдШрд░ рдкрд░ рд╕реБрдиреНрди рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рд╣рдо ones рдФрд░ zeros рд░рдЦ рд░рд╣реЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ararslan picture ararslan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

felixrehren picture felixrehren  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dpsanders picture dpsanders  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

iamed2 picture iamed2  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

manor picture manor  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ