
рд╣рд╛рдВ, рдЗрд╕ рддрд░рд╣ рдХреА рд╣реЗрдбрд▓рд╛рдЗрди рдмрд╣реБрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреВрдВрдЧрд╛ рдЬреЛ рдЕрднреА рднреА рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ "рдХрдЯ рдЬрд╛рдПрдВ рдпрд╛ рдирд╣реАрдВ?"ред
рд╢рд╛рд░реНрдХ - рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ (рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ) рдХреЗ рд╕реА ++ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд░реИрдЦрд┐рдХ рдФрд░ nonlinear рдЕрдиреБрдХреВрд▓рди, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ, рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рд╕реАрдЦрдиреЗ рдФрд░ рд╡рд┐рдХрд╛рд╕рд╡рд╛рджреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд┐рдирд╛ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ
- IOS рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?
- IOS рдХреЗ рд▓рд┐рдП рдПрдХ рдврд╛рдВрдЪрд╛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?
- CocoaPods рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ iOS рдФрд░ OSX рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреИрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ?
рдлрд┐рд░ рдЖрдк рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред
ред
рдХреНрдпреЛрдВ?
рдПрдХ рдмрд╕ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИ, "рдЕрдзрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ iOS рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП," рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдХрд╛рд░рдг рдерд╛ред рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрд░реНрдб рдЧреЗрдо рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЗ рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ (рдПрдЖрдИ) рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рдереА, рдкрд╣рд▓реЗ рджрд╕рд┐рдпреЛрдВ рдЧреЗрдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЪрд▓рд╛рдХрд░ рдПрдЖрдИ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рдореИрдХ рдУрдПрд╕ рдХреЗ рддрд╣рдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЪрд▓рд╛рдПрдВ, рдлрд┐рд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рд▓реЗрдВ рдФрд░ рдЖрдИрдлреЛрди / рдЖрдИрдкреИрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдерд╛, рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╢рд╛рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг 2.3.4 рдХреЛ рдкреАрдкрд▓ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рд╢рд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд╕рдЦрд╕ тАЛтАЛрдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рд▓реЗрдЦ рд▓рд╛рдЗрдмреНрд░реЗрд░реА 2.3.4 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╣реА 2.3.4 рд╕реЗ рджреВрд░ рдЬрд╛ рдЪреБрдХреА рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдХрд╛рдлреА рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред
рдЖрдЗрдП рдпреЛрдЬрдирд╛ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЧреБрдгрд╛рдВрдХ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╣реАрдВ рднреА рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдореИрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛), рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХрдо рдЦрд░реНрдЪреАрд▓рд╛ рддрд░реАрдХрд╛ рдЙрд╕реА рд╢рд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ iOS рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреИрд╕реЗ?
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд▓реЗрдиреЗ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рд╣реИрдмреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рд╣реИред
рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╡рд╕рд╛рдп, рд╣реЗрдмрд░ рдкрд░ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ GHHUBB рдкрд░ рдПрдХ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред
рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
- рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдПрдБ
- "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдПрдВ
- рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреИрдХ рдХрд░реЗрдВ
- рдХреЛрдХреЛрдЖрдкреЛрдбреНрд╕ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ
рд╣рд╛рдВ, рдЕрд░реНрдерд╛рддреН, рд╣рдо рдХреЗрд╡рд▓ iOS рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (рдФрд░ OSX рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ) рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ "рдореЛрдЯреА" (рдЙрд░реНрдл "рд╡рд╕рд╛" рдпрд╛ рд╡рд╕рд╛) рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рд╕рдм рдХреБрдЫ рднреА рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ
рдХреЛрдХреЛрдЖ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн
рдмрдирд╛рдПрдВрдЧреЗ ред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдХрджрдо рд╕реЗ рдХрджрдоред
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдореИрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЪрдмрд╛рдиреЗ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рди рдХрд░реЗред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ VERSION=2.3.4 SHARK_ZIP=shark-$VERSION.zip
рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХреЛрдб 4.2 gcc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдХреНрд▓реЗрдВрдЧ рд╕рдВрд╕реНрдХрд░рдг 5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬреАрд╕реА 4.2 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ, рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд╕реА ++ рдорд╛рдирдХ рдмрд╣реБрдд рдЖрдЧреЗ рдмрдврд╝ рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрд▓реИрдВрдЧ рдХреЛ рдХреЛрдб рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкреИрдЪ, рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреЛрдбред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛
рдкрд╣рд▓реА рдмрд╛рд░, рдХрдВрдкрд╛рдЗрд▓рд░
ReClaM/EarlyStopping.cpp
рдореЗрдВ рд▓рд╛рдЗрди 78 рдкрд░ рдареЛрдХрд░
ReClaM/EarlyStopping.cpp
ред
EarlyStopping::EarlyStopping(unsigned sl = 5)
EarlyStopping
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рддрд░реНрдХ (
unsigned sl
) рд╣реИ рдФрд░ рдЗрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди (
5
) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ, "рдареАрдХ рд╣реИ, рдЗрд╕реЗ рд░рд╣рдиреЗ рджреЛ" - gcc 4.2 рдХрд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдХреНрд▓реИрдВрдЧ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд░рд╛рдп рд╣реИред рдЖрдк
StackOverflow рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐
рдХреА рдЪрд░реНрдЪрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдЗрд╕реЗ "рдорд╛рдереЗ", рдпрд╛рдиреА рд╕рд╣реА рдХрд░реЗрдВрдЧреЗ рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд┐рдХрд╛рд▓реЗрдВред
EarlyStopping::EarlyStopping(unsigned sl)
рдПрдХ рд╕реЗрдХрдВрдб рд░реБрдХреЛ! - рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рдПрдХ рддрд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдмрд┐рд▓рдХреБрд▓ рдЙрдЪрд┐рдд рд╕рд╡рд╛рд▓ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рддреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ), рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реЗ рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореВрд▓реНрдп рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
iOS рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдорд┐рдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ
рдЕрдЧрд▓реА рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП
finite(x)
рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ)ред рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рд╡реЗрдм рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рдпрд╣рд╛рдВ ред
рд╕рдорд╛рдзрд╛рди
isfinite(x)
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
isfinite(x)
finite(x)
рд░реВрдк рдореЗрдВ
finite(x)
ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХреЛ
SharkDefs.h
рдЬреЛрдбрд╝реЗрдВред
SharkDefs.h #if defined(__APPLE__) && defined(__MACH__) #include <TargetConditionals.h> #if TARGET_IPHONE_SIMULATOR == 1 /* iOS in Xcode simulator */ #define finite(x) isfinite(x) #elif TARGET_OS_IPHONE == 1 /* iOS on iPhone, iPad, etc. */ #define finite(x) isfinite(x) // #define drem(x, y) remainder(x, y) #elif TARGET_OS_MAC == 1 /* OSX */ #endif #endif
рдпрд╣рд╛рдБ рддрд░реНрдХ рдирд┐рдореНрди рд╣реИ рдпрджрд┐ рд╣рдо Apple OSes рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред
__APPLE__
рдФрд░
__MACH__
, рдЙрд╕рдХреЗ рдмрд╛рдж
TargetConditionals.h
рд╣реИрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ, рдлрд┐рд░ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП
TARGET_IPHONE_SIMULATOR
,
TARGET_OS_IPHONE
рдФрд░
TARGET_OS_MAC
рдФрд░ redefine
finite(x)
рдХреЗ рдорд╛рдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
drem(x, y)
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдареАрдХ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
remainder(x, y)
рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╢рд╛рд░реНрдХ
drem(x, y)
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рд╕реВрдЪрдирд╛ рдХрд╛ рдПрдХ рдиреЛрдЯ рд╣реИред
FileUtil рдореЗрдВ рдареАрдХ рдХрд░рддрд╛ рд╣реИ
рдирд┐рдореНрди рддреНрд░реБрдЯрд┐рдпрд╛рдБ
FileUtil
рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН
FileUtil.h
рдлрд╝рд╛рдЗрд▓ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
iotype
рдФрд░
SetDefault
,
ScanFrom
рдФрд░
PrintTo
рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЖрдЗрдП рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд╛рдо рд╕реНрдерд╛рди (рдирд╛рдо рд╕реНрдерд╛рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреЗрдд рджреЗрдВ, рдЕрд░реНрдерд╛рддред рдЬрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░реЗрдВ
iotype -> FileUtil::iotype SetDefault -> FileUtil::SetDefault ScanFrom -> FileUtil::ScanFrom PrintTo -> FileUtil::PrintTo
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдорд╕реНрдпрд╛
io_strict
рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ
scanFrom_strict
рдФрд░
printTo_strict
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди? рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ
io_strict
рд▓реЗ
io_strict
рдФрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдбрдмрд▓ erf (рдбрдмрд▓) рдереНрд░реЛ () ;
Mixture/MixtureOfGaussians.cpp
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдЧрд▓рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд
Mixture/MixtureOfGaussians.cpp
extern "C" double erf(double) throw();
extern "C"
рдШреЛрд╖рдгрд╛ рдореВрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
throw()
рдХреЛ рд╣рдЯрд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
extern "C" double erf(double);
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджреЗрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ throw()
рдХреЛ рд╣рдЯрд╛рдирд╛ throw()
ред рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рд░реИрдВрдбрдорд╡реЗрдХреНрдЯрд░ рдпрд╣-> рдкреА
рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ
Mixture/RandomVector.h
, рд▓рд╛рдЗрди 72 рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐
p
рдХреИрд╕реЗ
Mixture/RandomVector.h
ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЪрд┐рдВрддрд╛рдЬрдирдХ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░ рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рд╣реИ (
// !!!
)ред
for (unsigned k = x.dim(0); k--;) { l += log(Shark::max(p(x[ k ]), 1e-100));
рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд
p
ред
RandomVector
рдиреЗ
RandomVector
рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ
RandomVar
, рдЬрд┐рд╕рдиреЗ "рдЦреЛрдИ" рд╡рд┐рдзрд┐
p
рдШреЛрд╖рд┐рдд рдХреАред
рдкреА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЗрд╕ рдХрд╛
this->p
ред
for (unsigned k = x.dim(0); k--;) { l += log(Shark::max(this->p(x[ k ]), 1e-100));
CMakeLists.txt
рдирд╡реАрдирддрдо рдкреИрдЪ рдХрд╛ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣рдо iOS рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреАред рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
CMakeLists.txt
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓реЗрдВред
ADD_LIBRARY( shark SHARED ${SRCS} )
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк "рд╕рд╛рдЭрд╛" рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ "рд╕реНрдЯреЗрдЯрд┐рдХ" рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЧрддрд┐рд╢реАрд▓ рдФрд░ рд╕реНрдерд┐рд░ рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╕рдордп рдФрд░ рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ
рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдкреИрдЪ рд╣реИ ред
рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдкреИрдЪ рдХреЛ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
diff -crB shark_orig shark_patched > shark.patch
рдФрд░ рдЗрд╕ рдкреИрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдзреНрдпрд╛рди,
patch
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
SRC_DIR=src
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдПрдБ
рдЕрдВрдд рдореЗрдВ, рдкреИрдЪ рдЦрддреНрдо рд╣реЛ рдЧрдП рд╣реИрдВ, рдЖрдк рд╕реАрдзреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо
make
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ,
cmake
(рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ) рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░реЗрдЧреА, рдЬреЛ
cmake
рдФрд░
make
рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреАред рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ 3 рдмрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛
- iOS рдбрд┐рд╡рд╛рдЗрд╕ -
armv7
, armv7s
, arm64
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ - iOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ -
i386
рдФрд░ x86_64
- OSX -
x86_64
рд╣рд╛рдВ, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ, рд╣рдо Xcode 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред armv6
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди armv6
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ Xcode 5 рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ armv6
, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ armv6
ред
рд╣рдо iOS рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХ "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдорд░реНрдЬ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдФрд░ рд╕рд╛рде рд╣реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Cmake рдореВрд▓ рдмрд╛рддреЗрдВ
рдЗрд╕рд▓рд┐рдП
cmake
ред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- C ++ рдХрдВрдкрд╛рдЗрд▓рд░ (
CMAKE_CXX_COMPILER
)
рдбрд┐рдлрд╝реЙрд▓реНрдЯ /usr/bin/c++
, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ Xcode toolchain рд╕реЗ clang++
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред - рд╕реА ++ рд╕рдВрдХрд▓рдХ рдЭрдВрдбреЗ (
CMAKE_CXX_FLAGS
)
рдпрд╣ рдЗрди рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рд╣реИ рдХрд┐ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдХрд▓рди рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред - рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ (
CMAKE_C_COMPILER
)
рд╕реНрд╡рдЪреНрдЫ рд╕реА рдХреЛрдб рдХреА рдХрдореА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред - рд░реВрдЯ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (
CMAKE_OSX_SYSROOT
)
рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рд╣рдо рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдЪрдпрдирд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рднреА рдорд╛рдирдХ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд▓рд╛рд╢ рдХрд╣рд╛рдВ рдХрд░реЗрдВред - рд╕реНрдерд╛рдкрдирд╛ рдЙрдкрд╕рд░реНрдЧ (
CMAKE_INSTALL_PREFIX
)
рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ make install
рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред - рдЬреЗрдирд░реЗрдЯрд░ рдмрдирд╛рдПрдБ (
-G
рдзреНрд╡рдЬ)
рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, рд╣рдо рдХрдИ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ "рдпреВрдирд┐рдХреНрд╕ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕" рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд cmake
рдкрд░рд┐рдЪрд┐рдд cmake
рдЙрддреНрдкрдиреНрди cmake
ред рдпрд╣ Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред
Xcode рдЯреВрд▓рдХрд┐рдЯ
рдпрд╣ рдЯреВрд▓рдЪрд┐рди рд╢рдмреНрдж рдХрд╛ рд╕рдмрд╕реЗ рд╕рдлрд▓ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдЯреВрд▓ рдЪреЗрди" рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред Xcode рдореЗрдВ рд╡реЗ рд╕рднреА рдЙрдкрдХрд░рдг рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (iPhone OS SDK рдФрд░ iPhone рд╕рд┐рдореБрд▓реЗрдЯрд░ SDK, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝), Xcode рдЕрд╡рд╢реНрдп рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреЛ рднреА рдЙрд╕реА рдЯреВрд▓ (Xcode рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕) рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Xcode рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╛
xcode-select --install
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЕрдм рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП
xcode-select
рдХрд╛ рдЙрдкрдпреЛрдЧ
xcode-select
ред
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдПрд╕рдбреАрдХреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
cmake
рдЕрдкрдиреЗ рдЖрдк рд╣реА рд░реВрдЯ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рдХреЗред
рдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ред
iOS рдбрд┐рд╡рд╛рдЗрд╕ (iPhone OS SDK)рд╣рдо рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗ,
build/ios
рдХрд╣реЗрдВрдЧреЗред
рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдВрдкрд╛рдЗрд▓рд░ рдорд┐рд▓ рдЧрдП, рдЕрдм рд╣рдо C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдЭрдВрдбреЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рд╣рдо
armv7
,
armv7s
рдФрд░
arm64
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рд╣рдо
armv7s
clang++
рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖-
-arch
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА
SDKs/iPhoneOS7.0.sdk
рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
XCODE_ARM_ROOT
рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ
CXX_FLAGS="-arch armv7 -arch armv7s -arch arm64" SYSTEM_ROOT=${XCODE_ARM_ROOT}/SDKs/iPhoneOS7.0.sdk
cmake
рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛
mkdir -p build/ios cd build/ios cmake \ -DCMAKE_CXX_COMPILER=$CXX_COMPILER \ -DCMAKE_OSX_SYSROOT="$SYSTEM_ROOT" \ -DCMAKE_C_COMPILER=$C_COMPILER \ -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ -G "Unix Makefiles" \ ../../src/Shark
рд╡реИрд╕реЗ, cmake
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕реА рдФрд░ рд╕реА ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, cmake
рдПрдХ рд╣реА рдЯреВрд▓рдХрд┐рдЯ рд╕реЗ рдЕрдиреНрдп рд╕рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ ranlib
, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ranlib
, lipo
, ld
, рдЖрджрд┐ред
iOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (iPhone рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ SDK)рд╡рд╣реА рдХрдВрдкрд╛рдЗрд▓рд░ред
рдЬрд┐рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рд╣рдореЗрдВ рдЗрд╕ рд╕рдордп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реЗ
i386
рдФрд░
x86_64
, рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ 64-рдмрд┐рдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "iPhone рд░реЗрдЯрд┐рдирд╛ (4-рдЗрдВрдЪ 64-рдмрд┐рдЯ)"ред
рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
${XCODE_SIM_ROOT}/SDKs/iPhoneSimulator7.0.sdk
ред
рдФрд░ рдПрдХ рдФрд░ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ
-mios-simulator-version-min=7.0
рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
mkdir -p build/sim cd build/sim CXX_FLAGS="-arch i386 -arch x86_64 -mios-simulator-version-min=7.0" SYSTEM_ROOT=${XCODE_SIM_ROOT}/SDKs/iPhoneSimulator7.0.sdk cmake \ -DCMAKE_CXX_COMPILER=$CXX_COMPILER \ -DCMAKE_OSX_SYSROOT="$SYSTEM_ROOT" \ -DCMAKE_C_COMPILER=$C_COMPILER \ -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ -G "Unix Makefiles" \ ../../src/Shark
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ред
рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдХреЗрд╡рд▓ C рдФрд░ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ,
cmake
рдмрд╛рдХреА рдХреЛ рдЦреБрдж
cmake
ред
mkdir -p build/osx cd build/osx cmake \ -DCMAKE_CXX_COMPILER=$CXX_COMPILER \ -DCMAKE_C_COMPILER=$C_COMPILER \ -G "Unix Makefiles" \ ../../src/Shark
Cmake рдХреА рдЪрд╛рд▓
рдЕрдЪреНрдЫрд╛ рдЪрд▓реЛ рдЕрдм
make
!, рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВред
cmake
рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ
cmake
ред
рд╕рдВрдХрд▓рдХ рдкрд░реАрдХреНрд╖рдгрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ,
cmake
рд╕реА рдФрд░ рд╕реА ++ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИред рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдХреНрд▓реИрдВрдЧ рдФрд░ рдХреНрд▓реИрдВрдЧ ++ рдЖрдИрдУрдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд┐рдлрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
CMakeLists.txt
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рд╡рд░рдг рдореЗрдВ
NONE
рдЬреЛрдбрд╝реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред
PROJECT( shark NONE )
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣
cmake
рдФрд░
cmake
++ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдФрд░ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╣рд▓реЗ
cmake
рд╢реБрд░реВ
cmake
ред
cmake
рдПрдХ
CMakeCache.txt
рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ
CMakeFiles
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрддреНрдкрдиреНрди
cmake
ред рдпрджрд┐ рдЖрдк рдЕрдм рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде
cmake
рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдмрд╛рд░ рд╕рдВрдХрд▓рдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрдирдХреБрд▓,
cmake
рдХреЛ рдХрдо рд╕реЗ рдХрдо 2 рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, - рдлрд┐рд░ рд╕реЗ рдЖрдк рд╕реЛрдЪреЗрдВрдЧреЗред
рдФрд░ рдлрд┐рд░ рд╕реЗ, рдирд╣реАрдВред
рдпрджрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░, рдЬреИрд╕реЗ C рдФрд░ C ++ рдХрдВрдкрд╛рдЗрд▓рд░, рдЕрдЧрд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрджрд▓ рджрд┐рдП рдЧрдП, рддреЛ рдмрджрд▓рд╛рд╡ рддреБрд░рдВрдд рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
cmake
рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
cmake
рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди
ccmake
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди
ccmake
ред
ccmake
рд▓рд┐рдП рдПрдХ рдХрдВрд╕реЛрд▓ GUI рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░
cmake
рдмрд╛рд░, рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП- рджреЛ
cmake
, рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде cmake
рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддреАрди cmake
рдореЗрдХрдЕрдк
рдЬреА рд╣рд╛рдВ, рдЕрдм рдЖрдк рдкреЛрд╖рд┐рдд
make
рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ
make
ред рдЪреАрдЬреЛрдВ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
-j
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
make -j16
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдорд╛рд░реЗ рдкрд╛рд╕
libshark.a
рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп
libshark.a
ред рд╣рд░ рдлрд╛рдпрд░ рдлрд╛рдЗрдЯрд░ рдХреЗ рд▓рд┐рдП,
file
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред
рдореЛрдЯреА рдЬрд╛рдБрдЪ $ file build/ios/libshark.a build/ios/libshark.a: Mach-O universal binary with 3 architectures build/ios/libshark.a (for architecture armv7): current ar archive random library build/ios/libshark.a (for architecture armv7s): current ar archive random library build/ios/libshark.a (for architecture cputype (16777228) cpusubtype (0)): current ar archive random library $ file build/sim/libshark.a build/sim/libshark.a: Mach-O universal binary with 2 architectures build/sim/libshark.a (for architecture i386): current ar archive random library build/sim/libshark.a (for architecture x86_64): current ar archive random library $ file build/osx/libshark.a build/osx/libshark.a: current ar archive random library
"рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдПрдВ
IOS рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдХ "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ,
lipo
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░реЗрдЧреА
lipo
mkdir -p lib/ios $XCODE_TOOLCHAIN_BIN/lipo -create build/ios/libshark.a build/sim/libshark.a -o lib/ios/libshark.a
рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА (
file lib/ios/libshark.a
) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рднреА 5 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЬрдЧрд╣ рдореЗрдВ рд╣реИрдВред
рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреИрдХ рдХрд░реЗрдВ
рдпрд╣ рдПрдХ рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдХреНрд╕рд░ рдмрдВрдбрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдмрдВрдбрд▓ рдмрдирд╛рдПрдВ
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде, рдЗрд╕рдХреЗ рд▓рд┐рдП
mkdir
рдФрд░
ln
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
Shark.framework
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдВрджрд░ рдмрдирд╛рдПрдВред
Shark.framework/ тФЬтФАтФА Documentation -> Versions/Current/Documentation тФЬтФАтФА Headers -> Versions/Current/Headers тФЬтФАтФА Resources -> Versions/Current/Resources тФФтФАтФА Versions тФЬтФАтФА A тФВ тФЬтФАтФА Documentation тФВ тФЬтФАтФА Headers тФВ тФФтФАтФА Resources тФФтФАтФА Current -> A
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ
рдЕрдм рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ, рдЬрдмрдХрд┐ рдЗрд╕реЗ
Shark
рдХреЛ рдирд╛рдорд╛рдВрдХрд┐рдд рдХрд░рддреЗ рд╣реБрдПред
cp build/ios/libshark.a Shark.framework/Versions/A/Shark
рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ
рдЕрдЧрд▓рд╛,
src/Shark/include
рд╕реЗ рд╕рднреА
.h
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ
src/Shark/include
рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░
Headers
рдлрд╝реЛрд▓реНрдбрд░
src/Shark/include
рдХрд░реЗрдВред рдлрд┐рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ
statistics.h
рд╣рдЯрд╛рдПрдВред рдпрджрд┐ рдХреЗрд╡рд▓
CMakeLists.txt
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рди
INSTALL
рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
cp -r src/Shark/include/* Shark.framework/Headers/ rm Shark.framework/Headers/statistics.h
рдкреИрдЪ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВрдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЗрдбрд░ рдиреЗ рд╕рдм рдХреБрдЫ рдХреЙрдкреА рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкрде рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рддрд╣рдд рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рд╣реЗрдбрд░ рд╕рд░реНрдЪ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рддреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред
рдЪреВрдВрдХрд┐ рд╢рд╛рд░реНрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ
#include
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдзреНрдпрд╛рди рдПрдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ рдмрдврд╝рд╛рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ рдмрдврд╝рд╛рд╡рд╛ред рдмреВрд╕реНрдЯ рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП
#include
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕рднреА рдкрде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
boost/
рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ
#include "boost/config.hpp" #include <boost/type_traits/remove_reference.hpp>
рд╣рдо рд╕рднреА
#include
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
sed
рд╕рдВрдкрд╛рджрдХ рдФрд░ рдкреИрдЪ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
- "#Include <something>" рдФрд░ "#include" рдХреБрдЫ "" (рд╣рд╛рдБ, рд╡рд╣рд╛рдБ рдХреБрдЫ рдереЗ) рдХреЗ рд▓рд┐рдП рд▓рд╛рдкрддрд╛ рд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗрдВ
SharkDefs.h
рдХреЛ Shark/SharkDefs.h
SharkDefs.h
- рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдореЗрдВ
Shark/
рдЬреЛрдбрд╝реЗрдВ Shark/
рдпрд╣рд╛рдБ рдШрдЯрдХреЛрдВ рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм
Headers
рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╣реИ, рдЕрд░реНрдерд╛рдд
Array, Rng, LinAlg, FileUtil, EALib, MOO-EALib, ReClaM, Mixture, TimeSeries, Fuzzy
ред
рдкреИрдЪ .h рдлрд╛рдЗрд▓реЗрдВ Info.plist рдмрдирд╛рдПрдБ
рдПрдХ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдВрддрд┐рдо рдХрджрдо рд╕рдВрдмрдВрдзрд┐рдд Info.plist рдмрдирд╛рдирд╛ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВред
Info.plist рдмрдирд╛рдПрдБ FRAMEWORK_NAME=Shark FRAMEWORK_CURRENT_VERSION=2.3.4 cat > Shark.framework/Resources/Info.plist <<EOF <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>${FRAMEWORK_NAME}</string> <key>CFBundleIdentifier</key> <string>dk.diku.image</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>${FRAMEWORK_CURRENT_VERSION}</string> </dict> </plist> EOF
IOS 7 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, arm64
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕, рдпрд╣ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ, рдПрдХ рд╕рд╛рде iOS рдФрд░ OSX, рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╕рд╣рд┐рддред рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХрд╛ рдЧрдпрд╛ armv6, armv7, armv7s, i386
рдФрд░ x86_64
рдХреЛ рдПрдХ рдмреЛрд▓реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ armv6, armv7, armv7s, i386
рдХрд░рдиреЗ рд╕реЗред 64-рдмрд┐рдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдиреЗ рд╕рднреА рдХрд╛рд░реНрдбреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ред "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд╣реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рджреЛ рдкрд░рддреЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк 64 x86_64
рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ iOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП x86_64
рдФрд░ OS X рдХреЗ рд▓рд┐рдП x86_64
рдХреЛ рд░рдЯрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдХреЛрдХреЛрдЖрдкреЛрдбреНрд╕ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ
рдЕрднреА, рдЖрдк рдПрдХ рддреИрдпрд╛рд░ рд░реВрдкрд░реЗрдЦрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рдЪрд░рдг рдХреЛ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
рдХреЛрдХреЛрдЖрдкреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ ред рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдЯреНрд░реЗрди рдХреЗ рдкреАрдЫреЗ рд╣реИрдВ рдФрд░ рдЕрднреА рддрдХ рдХреЛрдХреЛрдкреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдЪреВрд▓реНрд╣рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рдФрд░ рдХрд╣рд╛рдиреА рд╣реИред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдореИрдВрдиреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рд╣рд░ рдЫреЛрдЯреА рдЪреАрдЬ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдореИрдВ рд╕рдорд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛редрд╢рд╛рд░реНрдХ-SDK.podspec Pod::Spec.new do |s| s.name = 'Shark-SDK' s.version = '2.3.4' s.license = { :type => 'GPLv2', :text => 'See https://sourceforge.net/directory/license:gpl/' } s.summary = 'iOS & OS X framework for Shark: C++ Machine Learning Library' s.description = <<-DESC SHARK provides libraries for the design of adaptive systems, including methods for linear and nonlinear optimization (eg, evolutionary and gradient-based algorithms), kernel-based algorithms and neural networks, and other machine learning techniques. DESC s.homepage = 'https://sourceforge.net/projects/shark-project/' s.author = { 'shark-admin' => 'https://sourceforge.net/u/shark-admin/profile/' } s.source = { :http => 'https://github.com/mgrebenets/shark2-iosx/releases/download/v2.3.4/Shark-SDK.tgz', :type => :tgz } s.ios.vendored_frameworks = "Shark-iOS-SDK/Shark.framework" s.osx.vendored_frameworks = "Shark-OSX-SDK/Shark.framework" s.ios.deployment_target = '6.0' s.osx.deployment_target = '10.7' end
рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгредрдкрд░рд┐рдгрд╛рдо
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд▓реЗрдХрд░ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдЗрд╕рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреМрди рд╕реЗ рдирдП рдХреМрд╢рд▓ рдкрдВрдк рдХрд░ рдкрд╛рдПрдВрдЧреЗред