рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╕реА ++ 20 рдорд╛рдирдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдкрд░ рдХрд╛рдлреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реИрдмреЗ ( рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд╣рд╛рдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдкрд░реНрдпрд╛рдкреНрдд рдЖрд▓реЛрдЪрдХ рд╣реИрдВ, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐
- рд╡реЗ рдмрд╣реБрдд рд╕рд╛рд░ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╕рд╛рд░ рдХреЛрдб рдХреА рдЬрд░реВрд░рдд рд╣реИ
- рдЙрдирдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЗрд╡рд▓ рдмрд┐рдЧрдбрд╝рддреА рд╣реИ
- рдЕрдВрддрд░рд╛рд▓ рдХреЛрдб рдзреАрдорд╛
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдордЬрджреВрд░реЛрдВ рдФрд░ рдХрд┐рд╕рд╛рдиреЛрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрд▓реЛрдЪрдирд╛ рд╡реИрдз рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдПрд░рд┐рдХ рдирд┐рдмрд▓рд░ рдХреЛ рдмрд╛рд░реНрдЯреЛрдЬрд╝ рдорд┐рд▓реНрд╕реНрдХреА рджреНрд╡рд╛рд░рд╛ рдХрд╛рдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡рд╣ рдХреЗрд╡рд▓ рдкреВрд░реНрдгрд┐рдорд╛ рдХреЗ рд╕рд╛рде рд░реЗрдВрдЬ-рд╡реА 3 рд▓рд┐рдЦрддрд╛ рд╣реИ ред

рд╣рдо рдЯреНрд░реЗрдкреЗрдЬрд╝реЙрдЗрдб рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ: $ рдЗрдирд▓рд╛рдЗрди $ f (t) = 3 t ^ 2 \ sin t ^ 3 $ рдЗрдирд▓рд╛рдЗрди $ рд╢реВрдиреНрдп рд╕реЗ рд▓реЗрдХрд░ $ рдЗрдирд▓рд╛рдЗрди $ \ tau $ рдЗрдирд▓рд╛рдЗрди $ ред рдЕрдЧрд░ $ рдЗрдирд▓рд╛рдЗрди $ \ tau ^ 3 / \ pi $ рдЗрдирд▓рд╛рдЗрди $ рдПрдХ рд╡рд┐рд╖рдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдЕрднрд┐рдиреНрди 2 рд╣реИред
рддреЛ, рд╕рдорд╕реНрдпрд╛: рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЯреНрд░реЗрдкреЛрдЬрд╝реЙрдЗрдб рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрднрд┐рдиреНрди рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣рд╛рдБ рдЕрдореВрд░реНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдХреНрд╕рд░ "рдирдВрдмрд░ рдХреНрд░рд╢рд░" рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреБрдж рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рднреА рдЙрдирдХреЗ рдХреАрдбрд╝реЗ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ - рд╣рдореЗрд╢рд╛ рд╣реА рдирд╣реАрдВ) рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рд╡рд░реНрд╖ рдФрд░ рдлрд┐рд░ ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рдкрд░реАрдХреНрд╖рдг рднреА рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрдВрдЯреЗрдЧреНрд░реИрдмрд▓ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЧреНрд░рд┐рдб (рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╕реЗрдЯ) $ рдЗрдирд▓рд╛рдЗрди $ t_1, t_2, t_3 ... $ рдЗрдирд▓рд╛рдЗрди $ рдЕрднрд┐рдиреНрди рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдФрд░ рдЕрдЧрд░ рдПрдХреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди ( std::function
рдпрд╣реАрдВ рд╣реЛрдЧрд╛) рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рдЧреНрд░рд┐рдб рдХреЛ рдХрд┐рд╕ рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЖрдЗрдП рджреЗрдЦрддреЗ рд╣реИрдВред
рд╡рд┐рдХрд▓реНрдк
рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рддрд╛рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реЛ - рд╣рдо рдПрдХ рдирд┐рд░рдВрддрд░ рд╕рдордп рдХрджрдо рдХреЗ рд╕рд╛рде рд▓реВрдк рдХреЗ for
рдПрдХ рд╕рд░рд▓ рд▓рд┐рдЦреЗрдВрдЧреЗ:
рдЗрд╕ рдЪрдХреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХреАрдХрд░рдг рдЕрдВрддрд░рд╛рд▓ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯреЙрдк - рдЯреНрд░реЗрдкреЗрдЬрд╝реЙрдЗрдб рд╡рд┐рдзрд┐ рдПрдХ рдЪрд░ рдЪрд░рдг рдХреЗ рд╕рд╛рде рднреА рд╣реЛрддреА рд╣реИ, рдФрд░ рд╣рдорд╛рд░рд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдЪрд░ рдЪрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ! рддреЛ рдпрд╣ рд╣реИ, рд╣рдореЗрдВ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ ( $ рдЗрдирд▓рд╛рдЗрди $ b $ рдЗрдирд▓рд╛рдЗрди $ ) "рдЕрд╕реНрд╡рдЪреНрдЫрддрд╛" рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╣рдорд╛рд░реЗ рдХрджрдореЛрдВ рдХреЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: $ рдЗрдирд▓рд╛рдЗрди $ \ Delta t (t) = \ Delta t_0 + bt $ рдЗрдирд▓рд╛рдЗрди $ ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рдЪрдп) рд╢рд╛рдпрдж рдПрдХ рд▓рд╛рдЦ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рджреЛрд╖ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИ? рдФрд░ рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрд╣реАрдВ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрджрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрдВ? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдЧреНрд░рд┐рдб рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдлрд┐рд░ рднреА, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдмрд╣реБрдд рдЕрдВрдд рддрдХ, рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреНрд░реЗрдкреЛрдЬрд╝реЙрдЗрдб рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ" рдФрд░ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдирд┐рд░рдВрддрд░ рдХрджрдо рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдЧреНрд░рд┐рдб рдордирдорд╛рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЪреВрдБрдХрд┐ рдЧреНрд░рд┐рдб рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ $ рдЗрдирд▓рд╛рдЗрди $ t_1, t_2, ... $ рдЗрдирд▓рд╛рдЗрди $ std::vector
рдореЗрдВ рд▓рд┐рдкрдЯреЗ std::vector
ред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╕рдореБрджрд╛рдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЗ рд╕рд╛рде? рдпрджрд┐ рдкрд╣рд▓реЗ рд╕рдм рдХреБрдЫ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЕрдм рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдХреЛ рднрд░рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рд╣реИред рдФрд░ рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдПрдХ рдмрд╣реБрдд рдзреАрдореА рдЪреАрдЬ рд╣реИред рдФрд░ рд╕реНрдореГрддрд┐ рдЕрднреА рднреА рд░рдмрд░ рдирд╣реАрдВ рд╣реИ ( рдФрд░ рд╕рд┐рд▓рд┐рдХреЙрди )ред
рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рдХреЛ рджреЗрдЦреЗрдВред рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЦреБрд╢ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░реЗ рдЪрдХреНрд░ (рд▓реВрдк рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд) рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? begin()
рдФрд░ end()
рдЪрд▓рдиреЗ рд╡рд╛рд▓реЛрдВ, рдФрд░ ++
, *
рдФрд░ !=
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдХрдВрдЯреЗрдирд░ред рддреЛ рд╣рдо рд▓рд┐рдЦреЗрдВрдЧреЗред
рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рдирдП рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред $ рдЗрдирд▓рд╛рдЗрди $ t_i $ рдЗрдирд▓рд╛рдЗрди $ рдорд╛рдВрдЧ рдкрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд▓реВрдк рдХреЗ for
рдПрдХ рд╕рд░рд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред рдХреЛрдИ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЖрд╢рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рд╕рдВрдХрд▓рдХ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕рд░рд▓ рдХрд░реЗрдВрдЧреЗред рдЙрд╕реА рд╕рдордп, рдПрдХреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрднреА рднреА std::vector
рдкрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓рдЪреАрд▓рд╛рдкрди рдХрд╣рд╛рдВ рд╣реИ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдм рд╣рдо ++
рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдПрдХрд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдордХреНрдЦреА рдкрд░ рдЙрддреНрдкрдиреНрди рдЧреНрд░рд┐рдб рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рднреА (рд╢рд╛рдпрдж) рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЧреНрд░рд┐рдб рдХреЛ рд╡рд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ lazy_container
рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ рд╡рд╣реА 27 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ!)ред рдмреЗрд╢рдХ, рдЖрдк рдЧреНрд░рд┐рдб рдХреЛ рд╣рдорд╛рд░реЗ рдПрдХреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ lazy_container
рднреА lazy_container
рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдореБрдЭреЗ рдмрд╣рд╛рдирд╛, рдЗрд╕реЗ lazy_container
рдХрд░реЗрдВред
рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ - рддреЛ рдлрд┐рд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдЧрд╛? рд╣рд╛рдБ! рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рджреВрд╕рд░реЗ, рдмрдирд╛рдИ рдЧрдИ рдЧреИрд░-рдорд╛рдирдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХреЛ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдФрд░ рд╕рдВрднрд╡рддрдГ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рддреБрд░рдВрдд рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, ++
рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдпреЛрдЬрди рд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?
30 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реА ++ред рдЗрд╕ рдЙрдореНрд░ рдореЗрдВ рдХрдИ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдЪреНрдЪреЗ рд╣реИрдВ, рдФрд░ рд╕реА ++ рдореЗрдВ рдорд╛рдирдХ рдЖрд▓рд╕реА рдХрдВрдЯреЗрдирд░ / рдкреБрдирд░рд╛рд╡реГрддреНрдд рднреА рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рдмреБрд░рд╛ рд╕рдкрдирд╛! рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ (рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрд░реНрде рдореЗрдВ, рдмрдЪреНрдЪреЗ рдирд╣реАрдВ) рдЕрдЧрд▓реЗ рд╕рд╛рд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ - рдорд╛рдирдХ (рд╕рдВрднрд╡рддрдГ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ) рдореЗрдВ рд░реЗрдВрдЬ-рд╡реА 3 рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдПрд░рд┐рдХ рдирд┐рдмрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕рдХреЗ рдлрд▓реЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдХреЛрдб рдпрд╣ рд╕рдм рдЕрдкрдиреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ:
#include <range/v3/view/iota.hpp> #include <range/v3/view/transform.hpp> //... auto t_nodes = ranges::v3::iota_view(0, n_fixed) | ranges::v3::views::transform( [](long long i){ return dt_fixed * static_cast<double>(i); } ); double res = integrate(t_nodes);
рдПрдХреАрдХреГрдд рдХрд╛рд░реНрдп рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред рдпрд╛рдиреА рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 3 рд▓рд╛рдЗрдиреЗрдВ! рдпрд╣рд╛рдБ iota_view(0, n)
рдПрдХ рдЖрд▓рд╕реА рдЕрдВрддрд░рд╛рд▓ (рд░реЗрдВрдЬ, рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдЖрд▓рд╕реА рд░реЗрдВрдЬ рдПрдХ рджреГрд╢реНрдп рд╣реИ), рдЬреЛ, рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд░реЗрдВрдЬ рдореЗрдВ рдЕрдЧрд▓реЗ рдирдВрдмрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ [0, n)ред рдпрд╣ рдордЬреЗрджрд╛рд░ рд╣реИ рдХрд┐ рдирд╛рдо ╬╣ (рдЧреНрд░реАрдХ рдЕрдХреНрд╖рд░ iota) 50 рд╕рд╛рд▓ рдкрд╣рд▓реЗ APL рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдЫрдбрд╝реА |
рдЖрдкрдХреЛ рдЕрдВрддрд░рд╛рд▓ рд╕рдВрд╢реЛрдзрдХ рдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ transform
, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рдПрдХ рд╕рдВрд╢реЛрдзрдХ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓рдВрдмреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред $ рдЗрдирд▓рд╛рдЗрди $ t_1, t_2, ... $ рдЗрдирд▓рд╛рдЗрди $ ред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдкрд░реА рдХрдерд╛ рд╣рд╛рд╕реНрдХреЗрд▓ред
рд▓реЗрдХрд┐рди рдПрдХ рдЪрд░ рдЪрд░рдг рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП? рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:
рдереЛрдбрд╝рд╛ рд╕рд╛ рдЧрдгрд┐рддрдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдПрдХреАрдХрд░рдг рдХреА рдКрдкрд░реА рд╕реАрдорд╛ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рджрд╕рд╡рд╛рдВ рд╣рд┐рд╕реНрд╕рд╛ рд▓рд┐рдпрд╛ $ рдЗрдирд▓рд╛рдЗрди $ \ Delta t_ {рдлрд┐рдХреНрд╕реНрдб} = 0.1 \ рдЯрд╛рдЗрдореНрд╕ 2 \ pi / 3 \ tau ^ 2 $ рдЗрдирд▓рд╛рдЗрди $ ред рдЕрдм рдЪрд░рдг рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реЛрдЧрд╛: рдЖрдк рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рдпрджрд┐ рдЖрдк рд▓реЗрддреЗ рд╣реИрдВ $ рдЗрдирд▓рд╛рдЗрди $ t_i = \ tau (i / n) ^ {1/3} $ рдЗрдирд▓рд╛рдЗрди $ , (рдХрд╣рд╛рдБ) $ рдЗрдирд▓рд╛рдЗрди $ n $ рдЗрдирд▓рд╛рдЗрди $ рдЕрдВрдХ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╣реИ), рддреЛ рдХрджрдо рд╣реЛрдЧрд╛ $ рдЗрдирд▓рд╛рдЗрди $ \ Delta t (t) \ рд▓рдЧрднрдЧ dt_i / di = \ tau ^ 3 / (3 nt ^ 2) $ рдЗрдирд▓рд╛рдЗрди $ , рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреВрд░реНрдгрд╛рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рджрд╕рд╡рд╛рдВ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ $ рдЗрдирд▓рд╛рдЗрди $ рдЯреА $ рдЗрдирд▓рд╛рдЗрди $ рдЕрдЧрд░ $ рдЗрдирд▓рд╛рдЗрди $ n = \ tau ^ 3 / (0.1 \ рдЯрд╛рдЗрдореНрд╕ 2 \ pi) $ рдЗрдирд▓рд╛рдЗрди $ ред рдпрд╣ рдЫреЛрдЯреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдЪрд┐рдд рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП "рд╣реЗрдо" рд░рд╣рддрд╛ рд╣реИ $ рдЗрдирд▓рд╛рдЗрди $ рдореИрдВ $ рдЗрдирд▓рд╛рдЗрди $ ред
#include <range/v3/view/drop.hpp> #include <range/v3/view/iota.hpp> #include <range/v3/view/transform.hpp> //... // trapezoidal rule of integration; step size is not fixed template <typename T> double integrate(T t_nodes) { double acc = 0; double t_prev = *(t_nodes.begin()); double f_prev = f(t_prev); for (auto t: t_nodes | ranges::v3::views::drop(1)) { double f_curr = f(t); acc += 0.5 * (t - t_prev) * (f_curr + f_prev); t_prev = t; f_prev = f_curr; } return acc; } //... auto step_f = [](long long i) { if (static_cast<double>(i) <= 1 / a) { return pow(2 * M_PI, 1/3.0) * a * static_cast<double>(i); } else { return tau * pow(static_cast<double>(i) / static_cast<double>(n), 1/3.0); } }; auto t_nodes = ranges::v3::iota_view(0, n) | ranges::v3::views::transform(step_f); double res = integrate(t_nodes);
рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЪрд░ рдЪрд░рдг рдиреЗ рд╣рдореЗрдВ рддреАрди рдХреЗ рдПрдХ рдХрд╛рд░рдХ рджреНрд╡рд╛рд░рд╛ рдЧреНрд░рд┐рдб рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬрдмрдХрд┐ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡реНрдпрдп рд╣реИрдВ $ рдЗрдирд▓рд╛рдЗрди $ t_i $ рдЗрдирд▓рд╛рдЗрди $ ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рджреВрд╕рд░рд╛ рд▓реЗрдВ $ рдЗрдирд▓рд╛рдЗрди $ f (t) $ рдЗрдирд▓рд╛рдЗрди $ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрджрд▓ рд╕рдХрддреА рд╣реИ ... (рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд▓реЗрдЦрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд▓рд╕реА рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред
рдЗрддрдирд╛ рд╕рдордп
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- v1 - рд╕рд░рд▓ рд▓реВрдк
- v2 - $ рдЗрдирд▓рд╛рдЗрди $ t_i $ рдЗрдирд▓рд╛рдЗрди $
std::vector
рдореЗрдВ рдЭреВрда std::vector
- v3 -
lazy_container
рд╕рд╛рде lazy_container
- v4 - C ++ 20 (рд░реЗрдВрдЬ) рд╕реЗ рдЕрдВрддрд░рд╛рд▓
- v5 - рдлрд┐рд░ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ рдЪрд░ рд╡рд┐рдзрд┐ рдПрдХ рдЪрд░ рдкрд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
рдпрд╣рд╛рдБ рдпрд╣ рдХреНрдпрд╛ рд╣реИ (рд╕реЗрдХрдВрдб рдореЗрдВ) рдХреЗ рд▓рд┐рдП $ рдЗрдирд▓рд╛рдЗрди $ \ tau = (10 \, 000 \, 001 \ рдЧреБрдирд╛ \ pi) ^ {1/3} $ рдЗрдирд▓рд╛рдЗрди $ рдХреЗ рд▓рд┐рдП, рдЬреАрдИ ++ 8.3.0 рдФрд░ рдЗрдВрдЯреЗрд▓┬о Xeon┬о CPU┬о X5550 рдкрд░ рдХреНрд▓реЗрдВрдЧ 8.0.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдЪрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) $ рдЗрдирд▓рд╛рдЗрди $ 1.5 \ рдЧреБрдирд╛ 10 ^ 8 $ рдЗрдирд▓рд╛рдЗрди $ , v5 рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬрд╣рд╛рдВ рдЪрд░рдг рддреАрди рдЧреБрдирд╛ рдХрдо рд╣реИрдВ (рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ рдЧрдгрдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЛ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ 0.07 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ):
рдЭрдВрдбреЗ ~~ рд░рдВрдЧреАрди рдХрд╛рдЧрдЬ рд╕реЗ ~~g ++ -O3 -ffast-math -std = c ++ 2a -Wall -Wpedantic -I range-v3 / рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
clang ++ -Ofast -std = c ++ 2a -Wall -Wpedantic -I range-v3 / рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдордХреНрдЦреА рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЪрд▓реА рдЧрдИ, рдордХреНрдЦреА рдХреЛ рдПрдХ рд╕рд┐рдХреНрдХрд╛ рдорд┐рд▓рд╛!
g ++ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВрдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░рд┐рдгрд╛рдо
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдп рдореЗрдВ, рд░реЗрдВрдЬ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд┐рдХрд▓реАрдВ: 20+ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ 3 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛, рдЬрдмрдХрд┐ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдпрд╛ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред
рдмреЗрд╢рдХ, рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЕрдВрддрд┐рдо рдкреНрд░рджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдХреЗ рд▓рд┐рдП), рддреЛ рд╣рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдФрд░ рдореЗрдореЛрд░реА рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЛрдб рд▓рд┐рдЦрдХрд░ (рдпрд╛ рдУрдкрдирд╕реАрдПрд▓ рдХреЗ рддрд╣рдд рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрдХрд░) рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рд▓рд┐рдЦреВрдВ рд╕рдВрд╢реЛрдзрдХ рдХреА рдмрд╣реБрдд рд▓рдВрдмреА рд╢реНрд░реГрдВрдЦрд▓рд╛ред рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдВрдХрд▓рдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдбрд┐рдмрдЧ рдФрд░ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕рдВрдХрд▓рди рд╕рдордп рдмрдврд╝рд╛рдПрдЧрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрднреА рдХреЛрдИ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗрдЧрд╛ред
рдЬрдм рдореИрдВрдиреЗ рдпреЗ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ, рддреЛ рдореБрдЭреЗ рдЦреБрдж рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рд╣реИ - рд░реЗрдВрдЬ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд┐рдирдореЗрдВ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВред
рдореИрдВ рд╕рдореЛрд╡рд░ рдЦрд░реАрджрдиреЗ рдмрд╛рдЬрд╛рд░ рдЧрдпрд╛ рдерд╛ред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
рд░реЗрдВрдЬ- v3 рдШрд░
рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдХреЗрд╕ рд╕реНрдЯрдбреАрдЬ v3
рдЗрд╕ рд▓реЗрдЦ рд╕реЗ github рдкрд░ рдХреЛрдб
рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рд╣реИрд╕реЗрд▓ рдореЗрдВ рд╕реВрдЪреА
рдзрдиреНрдпрд╡рд╛рдж
рдпрд╣ рд╕рдм рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдкреБрдирд╢реНрдЪ
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдРрд╕реА рд╡рд┐рд╖рдорддрд╛рдУрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реИ: i) рдпрджрд┐ рдЖрдк рдПрдХреАрдХрд░рдг рдЕрдВрддрд░рд╛рд▓ рдХреЛ 10 рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░реЗ Xeon рдкрд░ v2 рдЙрджрд╛рд╣рд░рдг v1 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 10% рддреЗрдЬ рд╣реИ, рдФрд░ v4 v1 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреАрди рдЧреБрдирд╛ рддреЗрдЬ рд╣реИред ii) рдХрднреА-рдХрднреА рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ (icc 2019) рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдХрд▓рд┐рдд g ++ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛрдЧреБрдирд╛ рд╣реИред рдХреНрдпрд╛ рд╡реИрд╢реНрд╡реАрдХрд░рдг рдХреЛ рджреЛрд╖ рджреЗрдирд╛ рд╣реИ? рдХреНрдпрд╛ рдЬреА ++ рдХреЛ рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?