{"id":319109,"date":"2021-03-05T15:00:38","date_gmt":"2021-03-05T15:00:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=319109"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=319109","title":{"rendered":"\u0421\u0442\u0435\u0440\u043e\u0438\u0434\u043d\u044b\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434: \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0430\u044f \u0430\u043b\u0433\u0435\u0431\u0440\u0430, \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u0432 Delphi"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u0435 \u0432 \u043e\u0434\u043d\u043e\u0439 Delphi-\u0448\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u0448\u043b\u0438 \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u041f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043e\u043a\u043e\u043b\u043e 100 kLOC \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c- \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u0437-\u0437\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u043e\u0440\u043c, \u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043c\u043e\u0439 \u043e\u043f\u044b\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u0434 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Lazarus&#8217;\u0435 (\u0441 FPC3.0.4)- \u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0447\u0435\u0442\u0430 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0434\u043e 2-\u0445 \u0440\u0430\u0437, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Embarcadero (\u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439) \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435\u0441\u0438\u043b\u0435\u043d, \u0438 \u043d\u0430\u0434\u043e \u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, IDE \u043e\u0442 Embarcadero \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f GUI- \u0432\u043d\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u0438, \u0430 \u0438\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0430 \u0440\u0435\u0434\u043a\u043e\u0441\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 (\u043e\u043d\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e- \u0431\u044b\u0441\u0442\u0440\u043e+\u043f\u043b\u043e\u0445\u043e, \u0438\u043b\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e+\u0445\u043e\u0440\u043e\u0448\u043e). \u041d\u043e \u0432\u0435\u0434\u044c \u0432\u043a\u0443\u0441 \u043a\u0430\u043a\u0442\u0443\u0441\u0430 \u043d\u0435\u0438\u043c\u043e\u0432\u0435\u0440\u043d\u043e \u043f\u0440\u0438\u0442\u044f\u0433\u0430\u0442\u0435\u043b\u0435\u043d. \u041f\u0440\u043e\u0444\u0430\u0439\u043b\u0438\u043d\u0433 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 (tinyprofiler) \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (90%) \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b \u043d\u0430\u0434 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b, \u0430 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0441 \u044d\u0442\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u043e\u0439 \u043e\u0431\u0449\u0430\u044f &#171;\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c&#187; \u0438\u043c\u0435\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439- ~4 \u0413\u0411\/\u0441, \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443- 1,5-2 \u0413\u0411\/\u0441, \u0430 \u0432\u043e\u0442 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b- \u043f\u0440\u043e\u0441\u0435\u0434\u0430\u0435\u0442 \u0434\u043e 360 \u041c\u0411\/\u0441 (\u043d\u0430 Core I5 4460 \u0438 \u043d\u0430 Xeon 2660V2, DDR3-1866). <em>\u0412\u043d\u0443\u0442\u0440\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u043d\u0435\u043e\u043d\u043a\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 3-\u0445 \u0438 4-\u0445 \u043c\u0435\u0440\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b<\/em>. GUI \u0438 \u0432\u0432\u043e\u0434-\u0432\u044b\u0432\u043e\u0434 \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u043e\u0442\u043e\u043a\u0435, \u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u044b- \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445, \u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u043d\u0435 \u043c\u0435\u0448\u0430\u044e\u0442. \u0412 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u043c\u044b\u0441\u043b\u044c, \u0447\u0442\u043e <em>4\u04454 \u043c\u0430\u0442\u0440\u0438\u0446\u0430- \u0434\u043e\u043b\u0436\u043d\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432\u043b\u0435\u0437\u0430\u0442\u044c \u0432 SSE-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0434\u043b\u044f \u043d\u0435\u0435 SIMD-\u043e\u0447\u0435\u043d\u044c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b, <\/em>\u0430 Embarcadero \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 SIMD \u043d\u0435 \u0437\u0430\u0432\u0435\u0437\u043b\u0438, \u043d\u0435 \u0437\u0430\u0432\u0435\u0437\u0443\u0442, \u0438 \u0432\u043e\u043e\u0431\u0449\u0435- \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0438\u0436\u043d\u0435\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b XMM0 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430- \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0443\u044e \u0430\u043b\u0433\u0435\u0431\u0440\u0443 \u0432 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0434\u043b\u044f 3D\/4D \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438- \u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u043e\u043e\u0440\u0443\u0434\u0438\u0442\u044c \u0441\u0442\u0435\u0440\u043e\u0438\u0434\u043d\u044b\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e.<\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0439 \u043d\u0430\u0432\u044b\u043a \u0433\u0443\u0433\u043b\u0438\u043d\u0433\u0430 \u0434\u0430\u043b \u0441\u0431\u043e\u0439- \u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u0430\u0432\u044b\u043a-\u0442\u043e \u0435\u0441\u0442\u044c- \u043c\u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c, \u0438\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 FP32 \u043d\u0430 SSE, \u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u043e\u0434 FP64- \u043d\u0435 \u0431\u044b\u043b\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442. \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c- \u043a\u0430\u043a \u043d\u0430 SSE4.2 \u0440\u0443\u043a\u0430\u043c\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0444\u0438\u0437\u0438\u043a\u0438 \u0438 \u0432\u044b\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430\u0438\u0437\u043d\u0430\u043d\u043a\u0443.<\/p>\n<p>\u041a\u0430\u043a \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b, \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0431\u044b\u043b\u0438 Core I5 4460 &amp; Xeon 2660v2, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 SSE4.2, \u043d\u043e \u0435\u0449\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 FMA \u0438 AVX, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u043f\u044c\u0435\u0441\u044b \u044f \u043e\u0442\u043c\u0435\u0447\u0443 \u0442\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 AVX \u043c\u043e\u0433 \u0431\u044b \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u0441\u0435\u0439\u0447\u0430\u0441- AVX \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 SSE4.2 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u043d\u044c\u043a\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0443 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043e\u043d\u0438 \u043f\u0440\u043e\u043b\u0430\u0437\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043c\u044f\u0442\u044c, \u0434\u0430\u0436\u0435 \u043e\u0434\u043d\u043e \u044f\u0434\u0440\u043e Xeon&#8217;\u0430 \u043d\u0430 3,3 \u0413\u0413\u0446 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 ~10\u0413\u0411\/\u0441, \u0430 \u0446\u0435\u043b\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u0431\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 4-\u0440\u0435 \u043a\u0430\u043d\u0430\u043b\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043f\u043e\u043a\u0443\u0440\u0438\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0430\u0445, \u0435\u0441\u043b\u0438 \u0432\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0432\u043b\u0435\u0437\u0430\u0435\u0442 \u0432 \u043a\u044d\u0448 (\u0443 Ryzen 3900 \u043a\u044d\u0448\u0430 64\u041c\u0411, \u0438 \u0432 \u0442\u0430\u043a\u043e\u0439 \u043a\u0435\u0448 \u0432\u043b\u0435\u0437\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u043d\u0430 \u043d\u0435\u043c \u0441\u043c\u044b\u0441\u043b \u0432 AVX \u043c\u043e\u0436\u0435\u0442 \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0431\u043e\u0442\u043b\u043d\u0435\u043a \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u0438 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430 \u043c\u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043a \u0434\u0435\u043b\u0443. \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f SSE4.2. \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b 16 XMM \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e 2 FP64-\u0447\u0438\u0441\u043b\u0430, \u0438 \u0432\u0441\u0435\u0433\u043e \u0432 XMM \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c 32 \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u043b\u0430. \u041d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043e\u0433\u043e\u0440\u0447\u0430\u0435\u0442 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 XMM \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u043d\u043e 32 \u0447\u0438\u0441\u043b\u0430- \u044d\u0442\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e.<\/p>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u044b \u043e\u0442 XMM0 \u0434\u043e XMM15. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 128 \u0431\u0438\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443- \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0430\u0447\u043a\u0430 \u0431\u0438\u0442, \u043a\u0430\u043a 2 FP64, \u043a\u0430\u043a 4 FP32, \u043a\u0430\u043a 4 Int32, \u0438 \u043c\u043d\u043e\u0433\u043e \u0435\u0449\u0435 \u043a\u0430\u043a, \u043d\u043e \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e 2 FP64- \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0444\u0438\u0437\u0438\u043a\u0438 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438.  <\/p>\n<p>\u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u0435\u043b \u0432 SSE4.2 \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<p><strong>movupd XMM4, oWORD[ Pk ]<\/strong> &#8212; MOVe Unaligned Packed Double \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 XMM4 octo-WORD, \u0442\u043e \u0435\u0441\u0442\u044c- 16 \u0431\u0430\u0439\u0442, \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 [Pk], \u043f\u0440\u0438\u0447\u0435\u043c, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438\u0445 \u043d\u0435\u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0435, \u0442\u043e \u0435\u0441\u0442\u044c, \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0439, \u0438 \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0431\u0430\u0439\u0442\u044b, \u0430 \u044d\u0442\u043e \u0434\u0432\u0430 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430.<\/p>\n<p><strong>movapd XMM4, oWORD[ Pk ]<\/strong> &#8212; \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0430\u0434\u0440\u0435\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d (Aligned) \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 16, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u0443\u043d\u0435\u043c \u043d\u0435\u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0439- \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0439- \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c movupd.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c \u043c\u0435\u0441\u0442\u0430\u043c\u0438- \u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.<\/p>\n<p><strong>movsd XMM4, qWORD[ Pk ] <\/strong>&#8212; MOVe Single Double \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 XMM4 quad-WORD, \u0442\u043e \u0435\u0441\u0442\u044c- 8 \u0431\u0430\u0439\u0442, \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 [Pk], \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442- \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e FP64 \u0447\u0438\u0441\u043b\u043e, \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442, \u0438 \u043a \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043d\u0435 \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u043b\u044f\u0435\u0442. \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c movsd XMM0, XMM1- \u0442\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442 \u043e\u0434\u043d\u043e \u043d\u0438\u0436\u043d\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u0437 XMM1 \u0432 XMM0. \u0415\u0435 \u0430\u043d\u0430\u043b\u043e\u0433- <strong>movlpd<\/strong>, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\/\u0432 \u043f\u0430\u043c\u044f\u0442\u044c.<\/p>\n<p><strong>movlhps XMM0, XMM1<\/strong> &#8212; MOVe Low to High Packed Single &#8212; \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e, \u0431\u0435\u0440\u0435\u0442 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 XMM1 \u0437\u0430 \u0434\u0432\u0430 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 XMM0. \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e 64 \u0431\u0438\u0442\u0430- \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u0437 \u043d\u0438\u0436\u043d\u0435\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0432 \u0432\u0435\u0440\u0445\u043d\u044e\u044e. \u043f\u0440\u0438\u0447\u0435\u043c, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0432 \u0432\u0438\u0434\u0435 movlhps XMM0, XMM0- \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u043c \u043d\u0438\u0436\u043d\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u0435\u0433\u043e \u0436\u0435 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0447\u0438\u0441\u043b\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.<\/p>\n<p><strong>movhlps XMM0, XMM1<\/strong>&#8212; \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442- \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0434\u0440\u0443\u0433\u043e\u0433\u043e (\u043c\u043e\u0436\u043d\u043e \u0438 \u044d\u0442\u043e\u0433\u043e \u0436\u0435).<\/p>\n<p><strong>mulpd XMM0, XMM4<\/strong>&#8212; \u043e\u043e\u043e, \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, MULtiply Packed Doubles- \u0432 XMM0 \u0443 \u043d\u0430\u0441 \u043b\u0435\u0436\u0430\u0442 (X0, Y0), \u0432 XMM4 \u0443 \u043d\u0430\u0441 \u043b\u0435\u0436\u0430\u0442 (X1, Y1), \u044d\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e\u043f\u0430\u0440\u043d\u043e \u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043d\u043e\u0432\u0430 \u0432 XMM0- \u0442\u043e \u0435\u0441\u0442\u044c, \u043f\u043e\u0441\u043b\u0435 \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 XMM0 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c ( X0X1, Y0Y1)- \u0434\u0432\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u0440\u0435\u043c\u044f \u043e\u0434\u043d\u043e\u0433\u043e!<\/p>\n<p><strong>addpd XMM0, XMM1<\/strong> &#8212; \u0432\u0442\u043e\u0440\u0430\u044f \u043b\u044e\u0431\u0438\u043c\u0430\u044f <s>\u0436\u0435\u043d\u0430 <\/s>\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f- ADDition Packed Double- \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0435 XMM0 = ( X0+X1, Y0+Y1).<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e mulsd\/addsd XMM0, XMM1- \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c\/\u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0438\u0436\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f<\/p>\n<p><strong>haddpd XMM0, XMM2<\/strong> &#8212; Horizontal ADDition Packed Double: \u0435\u0441\u043b\u0438 XMM0 = (x0,y0), \u0430 XMM1 = (x1,y1), \u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 XMM0 = (x0+y0, x1+y1)- \u0434\u0432\u0430 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u0442\u0430\u043a\u0442 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 addpd, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 &#171;\u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438&#187;).<\/p>\n<p>\u043d\u0443 \u0438 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/p>\n<p><strong>dppd XMM0, XMM6,&nbsp; 49 <\/strong>\/\/ imm8 = bit0 | ~bit1 | bit4 | bit5&nbsp;<\/p>\n<p>Dot Product Packed Double &#8212; \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430 \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0441 \u043c\u0430\u0441\u043a\u043e\u0439. \u041c\u0430\u0441\u043a\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0442\u044c, \u043a\u0430\u043a \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438 \u043a\u0443\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041c\u0430\u0441\u043a\u0430 49- \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e X0X1+Y0Y1 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430.&nbsp;<\/p>\n<p><strong>divpd\/divsd<\/strong> &#8212; \u043a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b mulpd\/mulsd \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u0435- \u043d\u043e \u043e\u043d\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435! \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0443 \u043d\u0438\u0445 \u0432 \u0447\u0435\u0442\u044b\u0440\u0435-\u043f\u044f\u0442\u044c \u0440\u0430\u0437 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435, \u0442\u043e \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u044b\u043b\u0438 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430\u043c\u0438 inline \u0438 register. \u0418\u043d\u043b\u0430\u0439\u043d \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432\u044b \u0432 \u0446\u0438\u043a\u043b\u0430\u0445, \u0430 register- \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0430 \u043d\u0435 \u0441\u0442\u0435\u043a, \u0447\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Delphi \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b, \u0435\u0441\u043b\u0438 \u0438\u0445 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u044f\u0442\u0438, \u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043f\u044f\u0442\u043e\u0433\u043e- \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0435\u043a- \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443. \u0415\u0449\u0435 \u0432 x64-mode Delphi \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0446\u0435\u043b\u0438\u043a\u043e\u043c) \u0438 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0438\u043d\u043b\u0430\u0439\u043d \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0431\u0435\u0437 inline- \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0448\u0442\u0440\u0430\u0444 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432, \u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0430\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0441\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c :-(. <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/414443\/#registry-v-x86-64\" rel=\"noopener noreferrer nofollow\">\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u043b\u043e\u043d\u0433\u0440\u0438\u0434 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u043c&#8230;<\/a><\/p>\n<p><a href=\"http:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Inline_Assembly_Code_Index\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e\u0442 Embarcadero<\/a><\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u043c \u0438\u043b\u0438 \u043f\u0440\u043e\u0447\u0435\u043b \u043b\u043e\u043d\u0433\u0440\u0438\u0434, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043c \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0438\u0441\u0435\u043b:<\/p>\n<pre><code>T_RealArr = array of real; T_Mul_s_s = class&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;private&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fSrc1: T_RealArr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fSrc2: T_RealArr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fRes: T_RealArr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;procedure exec_SSE(const i0,i1: integer);&nbsp;&nbsp;&nbsp; end; \u2026  \/\/ IMPLEMENTATION const FloatSize = 8; procedure T_Mul_s_s.exec_SSE(const i0,i1: integer);&nbsp; {$IFDEF CPUX64} asm&nbsp;&nbsp;&nbsp; \/\/ Self = RCX&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;.PUSHNV R13 &nbsp;&nbsp;.PUSHNV R14 &nbsp;&nbsp;.PUSHNV R15 &nbsp;&nbsp;XOR R15,R15 &nbsp;&nbsp;XOR R14,R14 &nbsp;&nbsp;XOR R13,R13 &nbsp;&nbsp;mov R13, Self.fRes&nbsp; &nbsp; &nbsp; \/\/ R13 = @Res[0] &nbsp;&nbsp;mov R14, Self.fSrc1 &nbsp; &nbsp; \/\/ R14 = @Src1[0] &nbsp;&nbsp;mov R15, self.fSrc2 &nbsp; &nbsp; \/\/ R15 = @Src2[0]    \/\/ \u0440\u0430\u0441\u0447\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f Elem[i0] \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 &nbsp;&nbsp;XOR RAX, RAX&nbsp;&nbsp;&nbsp;         \/\/ \u043e\u0447\u0438\u0441\u0442\u0438\u043b\u0438 RAX &nbsp;&nbsp;mov EAX, i0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ i0- int32, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u043b\u0430\u0434\u0435\u043c \u0435\u0435 \u0432 EAX, \u0434\u043b\u044f RAX \u043e\u043d\u0430 \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u0430 &nbsp;&nbsp;imul RAX, FloatSize&nbsp;&nbsp;&nbsp; &nbsp;\/\/ \u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0441\u044c RAX   \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. &nbsp;&nbsp;add R13, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ R13 = @Res[i0] &nbsp;&nbsp;add R14, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ R14 = @Src1[i0] &nbsp;&nbsp;add R15, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ R15 = @Src2[i0]    \/\/ \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043a\u0438\u043d\u0435\u043c \u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0447\u0438\u0441\u043b\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: &nbsp;&nbsp;mov EAX, i1 &nbsp;&nbsp;sub EAX, i0 &nbsp;&nbsp;inc EAX \/\/ EAX = 1+i1-i0    \/\/ to be continued\u2026<\/code><\/pre>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0443 \u043d\u0430\u0441 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u0434\u043d\u0438\u043c \u043a\u0443\u0441\u043a\u043e\u043c, \u043d\u043e \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0438\u0445 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c, \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u0434, \u0430 \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 [i0, i1], \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p><strong>.NOFRAME<\/strong> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <a href=\"http:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Assembly_Procedures_and_Functions\" rel=\"noopener noreferrer nofollow\">\u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0435\u043a<\/a>, \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0435\u0435 \u043d\u0435 \u043d\u0430\u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c \u0441\u0442\u0435\u043a\u0430, \u0447\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0436\u0438\u043c\u043e \u043c\u0430\u043b\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0430\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445- \u0442\u043e \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u0435\u043d, \u0445\u043e\u0442\u044f \u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p><strong>.PUSHNV R13<\/strong> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u0434\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430 \u0441\u0442\u0435\u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440 R13, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430- \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u043f\u0430\u0440\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c- \u0443 \u0432\u0441\u044f\u043a\u043e\u0433\u043e-\u043b\u0438 \u043f\u0443\u0448\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u044f \u043f\u043e\u043f\u0430. \u0434\u043b\u044f XMM-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u044f, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <strong>.SAVENV XMM5<\/strong><\/p>\n<p>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Embarcadero \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b XMM0-XMM4 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431 \u0438\u0445 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f, \u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b XMM5-XMM15 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u043c\u044b \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c, \u0442\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u043e\u043c\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u043d\u0430\u0440\u0443\u0436\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0431 \u044d\u0442\u043e\u043c, \u0438\u043d\u0430\u0447\u0435 \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0442\u0435\u0440\u0435\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043a\u0435\u043c-\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u043c.<\/p>\n<p>mov R13, Self.fRes &#8212; \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f- \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u0432 \u043e\u0431\u044a\u0435\u043a\u0442, Self \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0447\u0435\u0440\u0435\u0437 RCX, fRes- \u0438\u043c\u0435\u0435\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0433\u043e \u0438 \u0435\u0433\u043e \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u043e Delhpi \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043c\u043d\u0435 \u0436\u0438\u0437\u043d\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438 \u043f\u043e\u043b\u044f\u043c \u043f\u043e \u0438\u0445 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0430\u043c. \u0410 \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u043a\u043b\u0430\u0434\u0443\u0442 \u044d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c (\u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438), \u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0430\u0433\u0438 \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0432 \u0442\u043e, \u0447\u0442\u043e Self \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432 RC\u0425, \u0430 i0- \u0432 R8d. \u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0436\u0435 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432 FPC- \u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0432\u0437\u043b\u0435\u0442\u0438\u0442, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0434\u0430 \u0442\u0430\u043c \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0434\u0440\u0443\u0433\u043e\u0439.<\/p>\n<pre><code>\/\/ continue\u2026 &nbsp;@new_pair:  &nbsp;&nbsp;&nbsp;&nbsp;movapd XMM0, oWORD[R14]&nbsp; &nbsp; \/\/ XMM0 = src1[i] &nbsp; | src1[i+1] &nbsp;&nbsp;&nbsp;&nbsp;movapd XMM1, oWORD[R15]&nbsp; &nbsp; \/\/ XMM1 = src2[i] &nbsp; | src2[i+1] &nbsp;&nbsp;&nbsp;&nbsp;mulpd  XMM0, XMM1 &nbsp; &nbsp; &nbsp; &nbsp;  \/\/ XMM0 = src1[i+0]src2[i+0] | src1[i+1]src2[i+1] &nbsp;&nbsp;&nbsp;&nbsp;movapd oWORD[R13], XMM0&nbsp;&nbsp;&nbsp; \/\/ save to Res[i], Res[i+1]  &nbsp;&nbsp;&nbsp;&nbsp;add R15, FloatSize*2&nbsp; \/\/ next src2 pair &nbsp;&nbsp;&nbsp;&nbsp;add R14, FloatSize*2&nbsp; \/\/ next src1 pair &nbsp;&nbsp;&nbsp;&nbsp;add R13, FloatSize*2&nbsp; \/\/ next res pair  &nbsp;&nbsp;&nbsp;&nbsp;sub RAX, 2 &nbsp;&nbsp;&nbsp;&nbsp;cmp RAX, 1  &nbsp;&nbsp;JA @new_pair  &nbsp;&nbsp;cmp RAX, 0  &nbsp;&nbsp;JE @finish   &nbsp;&nbsp;@unaligned_end:  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movlpd XMM0, qWORD[R14]&nbsp; &nbsp; \/\/ XMM0 = src1[i] &nbsp; | garbage0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movlpd XMM1, qWORD[R15]&nbsp; &nbsp; \/\/ XMM1 = src2[i] &nbsp; | garbage1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mulsd  XMM0, XMM1 &nbsp; &nbsp; &nbsp;  &nbsp; \/\/ XMM0 = src1[i]* src2[i]&nbsp; | garbage0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movlpd qWORD[R13], XMM0  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add R15, FloatSize         \/\/ move to the next element &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add R14, FloatSize &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add R13, FloatSize  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dec RAX &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp RAX,0  &nbsp;&nbsp;JA @unaligned_end \/\/ if RAX &gt; 0- jump to next elem  @finish:  {$ELSE CPUX64} begin {$ENDIF CPUX64}  end;<\/code><\/pre>\n<p>C\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0431\u0435\u0436\u0438\u043c \u043f\u043e \u043d\u0430\u0448\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u043c, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u043f\u043e N=2 \u0447\u0438\u0441\u043b\u0430, \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u0438\u0445 \u0442\u043e\u0436\u0435 \u043f\u0430\u0447\u043a\u0430\u043c\u0438, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 N. \u0415\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044c\u0448\u0435 N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432- \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f, \u0442\u043e\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u0448\u0442\u0443\u0447\u043d\u043e, \u0430 \u0435\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f 0- \u0442\u043e \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u044b\u0433\u043d\u0435\u043c \u043d\u0430 finish. \u0412\u043c\u0435\u0441\u0442\u043e N=2 \u043b\u0435\u0433\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c N=4 (\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442).<\/p>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 (\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043d\u043e\u0439) \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 1.5 \u0440\u0430\u0437\u0430. <em>\u042f \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u0447\u0442\u043e Lazarus \u043c\u043d\u0435 \u0434\u0430\u0432\u0430\u043b \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438 \u0432 2 \u0440\u0430\u0437\u0430- \u043d\u043e \u0442\u0430\u043c \u043a\u043e\u0434 \u0431\u0440\u0430\u043b \u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u0430\u043a \u043f\u043e\u043f\u0430\u043b\u043e, \u0438 \u041b\u0430\u0437\u0430\u0440\u0443\u0441 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435. \u0417\u0434\u0435\u0441\u044c \u0443 \u043d\u0430\u0441 \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u0443\u0447\u043d\u043e- \u041a\u041c\u041a- \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043d\u0435\u0433\u0434\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0441\u044f\u0447\u0438\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u0443\u0436\u0435 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441\u043c\u043e\u0433<\/em>. <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0443\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043a\u0443\u0447\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443. \u0422\u0430\u043a \u043a\u0430\u043a \u0441 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 16 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0435\u0435- \u0442\u043e \u0432\u0441\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0431\u044b\u043b\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u044b \u0432 4-D-\u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043d\u043e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0443\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 (\u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0435 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0438\u043d\u0443\u0442\u044c \u043c\u0430\u0441\u0441\u0443 \u0447\u0430\u0441\u0442\u0438\u0446\u044b \u0438\u043b\u0438 \u044d\u043d\u0435\u0440\u0433\u0438\u044e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043b\u0438 \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c).<\/p>\n<pre><code>T_Vect = record&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;x: real;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;y: real;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;z: real;&nbsp; &nbsp;&nbsp;{$IFDEF ALIGNED_VECTORS_ON} &nbsp;&nbsp;t: real; &nbsp;&nbsp;{$ENDIF } end;  T_VectArr = array of T_Vect; {$IFDEF ALIGNED_VECTORS_ON} const VectSize = FloatSize * 4; {$ELSE} const VectSize = FloatSize * 3; {$ENDIF }  &nbsp;T_Mul_v_p = class &nbsp;&nbsp;private &nbsp;&nbsp;&nbsp;&nbsp;fCoeff: mreal; &nbsp;&nbsp;&nbsp;&nbsp;fSrc: T_VectArr; &nbsp;&nbsp;&nbsp;&nbsp;procedure exec_SSE(const i0,i1: integer); &nbsp;&nbsp;end;  &nbsp;&nbsp;procedure T_Mul_v_p.exec_SSE_fast(const i0,i1: integer);  {$IFDEF CPUX64} &nbsp;&nbsp;asm &nbsp;&nbsp;\/\/ Self = RCX &nbsp;&nbsp;\/\/\/ Result = Source! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.NOFRAME &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.PUSHNV R14             XOR RAX, RAX       mov EAX, i0       imul RAX, VectSize        XOR R14, R14 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov R14, Self.fSrc&nbsp; &nbsp; &nbsp; \/\/ R14 = @Src[0]           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add R14, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  \/\/ R14 = @Src[i0]        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov EAX, i1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub EAX, i0  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movlpd  XMM2, Self.fCoeff \/\/ XMM2 = fCoeff | x &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movlhps XMM2, XMM2&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; \/\/ \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0432 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443  &nbsp;&nbsp;@new_vect:  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movapd XMM0, oWORD[R14]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ XMM0 = v[i].x &nbsp; | v[i].y &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movapd XMM1, oWORD[R14+2 * FloatSize]&nbsp; \/\/ XMM0 = v[i].z &nbsp; | v[i].t &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mulpd&nbsp; XMM0, XMM2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mulsd&nbsp; XMM1, XMM2&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;          &nbsp; \/\/ \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0438\u0436\u043d\u044f\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430!  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movapd oWORD[R14&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;     ], XMM0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$IFDEF ALIGNED_VECTORS_ON} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movapd oWORD[R14+2 * FloatSize], XMM1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$ELSE} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movlpd qWORD[R14+2 * FloatSize], XMM1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$ENDIF }  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add R14, VectSize&nbsp; \/\/ next vector &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dec RAX &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp RAX, 0  &nbsp;&nbsp;JGE @new_vect \/\/ Jump if RAX &gt;=0 {$ENDIF CPUX64} end;<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439- \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432- \u044d\u0442\u043e, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u0432 4-\u0440\u0435 \u0440\u0430\u0437\u0430 \u0443\u0434\u043b\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043a\u0430\u043b\u044f\u0440\u043e\u0432.<\/p>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440\u0430 \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0435\u0449\u0435 \u0438 \u0442\u0435\u043d\u0437\u043e\u0440\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u043d\u0433\u0430 \u0432 3-\u043c\u0435\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 (\u0442\u0435\u043d\u0437\u043e\u0440\u0430 \u0434\u0435\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0439 \u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043b\u0438 \u0438\u043d\u0435\u0440\u0446\u0438\u0438):<\/p>\n<pre><code>T_Tens = packed record    x: T_Vect;    y: T_Vect;    z: T_Vect; end;<\/code><\/pre>\n<p>\u0414\u0432\u0435 \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043d\u0438\u043c\u0438- \u0430.i += c.jB.ji \u0438 a.i += B.ijc.j- \u0442\u043e \u0435\u0441\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a \u0432\u0435\u043a\u0442\u043e\u0440\u0443 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0438\u043b\u0438 \u043b\u0435\u0432\u043e\u0433\u043e \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<pre><code>class procedure T_SSE.Add(var a_i: T_Vect; const B_ij: T_Tens; const c_j: T_Vect) ; static; register;  {$IFDEF CPUX64}&nbsp; asm&nbsp; {&nbsp; &nbsp;a_i.x := a_i.x+b_ij.x.x * C_j.x+b_ij.x.y * C_j.y+b_ij.x.z * C_j.z ;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; a_i.y := a_i.y+b_ij.y.x * C_j.x+b_ij.y.y * C_j.y+b_ij.y.z * C_j.z ;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; a_i.z := a_i.z+b_ij.z.x * C_j.x+b_ij.z.y * C_j.y+b_ij.z.z * C_j.z ;}&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/\/ C_j: RAX,&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/\/ b_ij:&nbsp; RDX, r8 &nbsp; (? compiler dependent! do not use)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/\/ a_i: RCX  .NOFRAME .SAVENV XMM5 .SAVENV XMM6 .SAVENV XMM7  movupd&nbsp; XMM6, oWORD[C_j+0 * FloatSize]&nbsp; &nbsp; &nbsp; \/\/ XMM6 = c0 | c1 movsd &nbsp; XMM7, qWORD[C_j+2 * FloatSize]&nbsp; &nbsp; &nbsp; \/\/ XMM7 = c2 | w movupd&nbsp; XMM4, oWORD[a_i+0 * FloatSize]&nbsp; &nbsp; &nbsp; \/\/ XMM4 = a0 | a1 movsd &nbsp; XMM5, qWORD[a_i+2 * FloatSize]&nbsp; &nbsp; &nbsp; \/\/ XMM5 = a2 | w = waste movupd&nbsp; XMM0, oWORD[ b_ij+0 * FloatSize ]&nbsp;  \/\/&nbsp; XMM0 = m00 | m01 movsd &nbsp; XMM1, qWORD[ b_ij+2 * FloatSize ]&nbsp;  \/\/&nbsp; XMM1 = m02 | w movupd&nbsp; XMM2, oWORD[ b_ij+4 * FloatSize ]&nbsp;  \/\/&nbsp; XMM2 = m10 | m11 movsd &nbsp; XMM3, qWORD[ b_ij+6 * FloatSize ]&nbsp;  \/\/&nbsp; XMM3 = m12 | w mulpd &nbsp; XMM0, XMM6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm0 = m00c0 | m01c1 mulsd &nbsp; XMM1, XMM7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm1 = m02c2 | 0 haddpd&nbsp; XMM0, XMM1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm0 = m00c0 + m01c1 | m02c2 mulpd &nbsp; XMM2, XMM6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm2 = m10c0 | m11c1 mulsd &nbsp; XMM3, XMM7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm3 = m22c2 | 0 haddpd&nbsp; XMM2, XMM3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm2 = m10c0 + m11c1 | m12c2 haddpd&nbsp; XMM0, XMM2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  \/\/ xmm0 = m00c0 + m01c1 + m02c2 | m10c0 + m11c1 + m12c2 addpd &nbsp; XMM4, XMM0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; \/\/ xmm4 = a0 + m0jcj | a1 + m1jcj movupd&nbsp; XMM2, oWORD[ b_ij+8 * FloatSize&nbsp; ] &nbsp; \/\/&nbsp; XMM2 = m20 | m21 movsd &nbsp; XMM3, qWORD[ b_ij+10 * FloatSize&nbsp; ]&nbsp; \/\/&nbsp; XMM3 = m22 | w mulpd &nbsp; XMM2, XMM6&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ XMM2 = m20c0 | m21c1 mulsd &nbsp; XMM3, XMM7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ XMM3 = m22c2 | 0 movlhps XMM5, XMM3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ XMM5 = a2, m22c2 haddpd&nbsp; XMM5, XMM2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm3 = m22c2+a2 | m20c0 + m21c1 haddpd&nbsp; XMM5, XMM5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; \/\/ xmm5 = m22c2+a2 + m20c0 + m21c1 | m22c2+a2 + m20c0 + m21c1 movupd&nbsp; oWORD[ a_i ], XMM4 movsd &nbsp; qWORD[ a_i+2 * FloatSize ], XMM5  {$ELSE}&nbsp; begin&nbsp;&nbsp;&nbsp; a_i.x := a_i.x+b_ij.x.x * C_j.x+b_ij.x.y * C_j.y+b_ij.x.z * C_j.z; a_i.y := a_i.y+b_ij.y.x * C_j.x+b_ij.y.y * C_j.y+b_ij.y.z * C_j.z; a_i.z := a_i.z+b_ij.z.x * C_j.x+b_ij.z.y * C_j.y+b_ij.z.z * C_j.z;&nbsp; {$IFEND CPUX64} end;<\/code><\/pre>\n<pre><code>class procedure T_SSE.Add(var a_j: T_Vect; const c_i: T_Vect; const B_ij: &nbsp;&nbsp;&nbsp;&nbsp;T_Tens); static; register; &nbsp;{$IFDEF CPUX64} asm {&nbsp; a_i.x := a_i.x+b_ij.x.xC_j.x+b_ij.x.yC_j.y+b_ij.x.zC_j.z ; &nbsp;&nbsp;a_i.y := a_i.y+b_ij.y.xC_j.x+b_ij.y.yC_j.y+b_ij.y.zC_j.z ; &nbsp;&nbsp;a_i.z := a_i.z+b_ij.z.xC_j.x+b_ij.z.yC_j.y+b_ij.z.zC_j.z ;}  &nbsp;&nbsp;\/\/ C_i: RDX, &nbsp;&nbsp;\/\/ b_ij:&nbsp; r8 &nbsp; (? compiler dependent! do not use) &nbsp;&nbsp;\/\/ a_j: RCX  &nbsp;&nbsp;&nbsp;&nbsp;.NOFRAME &nbsp;&nbsp;&nbsp;&nbsp;.SAVENV XMM5 &nbsp;&nbsp;&nbsp;&nbsp;.SAVENV XMM6 &nbsp;&nbsp;&nbsp;&nbsp;.SAVENV XMM7  &nbsp;&nbsp;&nbsp;&nbsp;movupd&nbsp; XMM4, oWORD[ a_j+0 * FloatSize&nbsp; ] &nbsp; \/\/ XMM4 = a0 | a1 &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM5, qWORD[ a_j+2 * FloatSize&nbsp; ] &nbsp; \/\/ XMM5 = a2 | w  &nbsp;&nbsp;&nbsp;movapd&nbsp; XMM0, oWORD[ b_ij&nbsp; ] &nbsp; &nbsp; \/\/&nbsp; XMM0 = m00 | m01 &nbsp;&nbsp;&nbsp;&nbsp;ADD b_ij, 2 * FloatSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM1, qWORD[ b_ij&nbsp; ] &nbsp; &nbsp; \/\/&nbsp; XMM1 = m02 | w &nbsp;&nbsp;&nbsp;&nbsp;ADD b_ij, 2 * FloatSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM7, qWORD[ C_i&nbsp; ]&nbsp; &nbsp; &nbsp; \/\/&nbsp; XMM7 = c0 | 0 &nbsp;&nbsp;&nbsp;&nbsp;ADD &nbsp; &nbsp; C_i, FloatSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;movlhps XMM7, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/&nbsp; XMM7 = c0 | c0 &nbsp;&nbsp;&nbsp;&nbsp;mulpd   XMM0, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/&nbsp; xmm0 = m00c0 | m01c0 &nbsp;&nbsp;&nbsp;&nbsp;mulsd   XMM1, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/&nbsp; xmm1 = m02c0 | 0 &nbsp;&nbsp;&nbsp;&nbsp;addpd&nbsp;  XMM4, XMM0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; \/\/&nbsp; a0+c0m00 | a1 + c0m01 &nbsp;&nbsp;&nbsp;&nbsp;addsd&nbsp;  XMM5, XMM1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; \/\/&nbsp; a2+c0m02 | 0 &nbsp;&nbsp;&nbsp;&nbsp;movapd&nbsp; XMM0, oWORD[ b_ij&nbsp; ] &nbsp; &nbsp; \/\/&nbsp; XMM0 = m10 | m11 &nbsp;&nbsp;&nbsp;&nbsp;ADD b_ij, 2 * FloatSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM1, qWORD[ b_ij&nbsp; ] &nbsp; &nbsp; \/\/&nbsp; XMM1 = m12 | w &nbsp;&nbsp;&nbsp;&nbsp;ADD b_ij, 2 * FloatSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM7, qWORD[ C_i&nbsp; &nbsp; ]&nbsp; &nbsp; \/\/ XMM7 = c1 | 0 &nbsp;&nbsp;&nbsp;&nbsp;ADD &nbsp; &nbsp; C_i, FloatSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/&nbsp; RDX = C_i + 2 elem &nbsp;&nbsp;&nbsp;&nbsp;movlhps XMM7, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ XMM7 = c1 | c1 &nbsp;&nbsp;&nbsp;&nbsp;mulpd   XMM0, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm0 = m10c1 | m11c1 &nbsp;&nbsp;&nbsp;&nbsp;mulsd   XMM1, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ xmm1 = m12c1 | 0 &nbsp;&nbsp;&nbsp;&nbsp;addpd&nbsp;  XMM4, XMM0&nbsp; &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp; &nbsp; \/\/&nbsp; a0+c0m00+m10c1 | a1 + c0m01+m11c1 &nbsp;&nbsp;&nbsp;&nbsp;addsd&nbsp;  XMM5, XMM1&nbsp; &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp; &nbsp; \/\/&nbsp; a2+c0m02+m12c1 | 0 &nbsp;&nbsp;&nbsp;&nbsp;movapd&nbsp; XMM0, oWORD[ b_ij&nbsp; ] &nbsp; &nbsp; \/\/&nbsp; XMM0 = m20 | m21 &nbsp;&nbsp;&nbsp;&nbsp;ADD b_ij, 2 * FloatSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM1, qWORD[ b_ij  ]&nbsp;  &nbsp; \/\/&nbsp; XMM1 = m22 | w &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; XMM7, qWORD[ C_i &nbsp; ] &nbsp; &nbsp; \/\/ XMM7 = c2 | 0 &nbsp;&nbsp;&nbsp;&nbsp;movlhps XMM7, XMM7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ XMM7 = c2 | c2 &nbsp;&nbsp;&nbsp;&nbsp;mulpd   XMM0, XMM7 &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp; \/\/ xmm0 = m20c2 | m21c2 &nbsp;&nbsp;&nbsp;&nbsp;mulsd   XMM1, XMM7 &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp; \/\/ xmm1 = m22c2 | 0 &nbsp;&nbsp;&nbsp;&nbsp;addpd&nbsp;  XMM4, XMM0&nbsp; &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp; &nbsp; \/\/&nbsp; a0+c0m00+m10c1+m20c2 | a1 + c0m01+m11c1+m21c2 &nbsp;&nbsp;&nbsp;&nbsp;addsd&nbsp;  XMM5, XMM1&nbsp; &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp; &nbsp; \/\/&nbsp; a2+c0m02+m12c1+m22c2 | 0 &nbsp;&nbsp;&nbsp;&nbsp;movupd&nbsp; oWORD[a_j &nbsp; ], XMM4 &nbsp;&nbsp;&nbsp;&nbsp;movsd &nbsp; qWORD[a_j+2 * FloatSize], XMM5 {$ELSE} begin &nbsp;&nbsp;a_j.x := a_j.x+b_ij.x.x * C_i.x+b_ij.y.x * C_i.y+b_ij.z.x * C_i.z ; &nbsp;&nbsp;a_j.y := a_j.y+b_ij.x.y * C_i.x+b_ij.y.y * C_i.y+b_ij.z.y * C_i.z ; &nbsp;&nbsp;a_j.z := a_j.z+b_ij.x.z * C_i.x+b_ij.y.z * C_i.y+b_ij.z.z * C_i.z ; {$ENDIF CPUX64}  end;<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435- \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 \u0435\u0441\u0442\u044c \u043a\u043e\u0434 \u0442\u0438\u043f\u0430 <strong>ADD C_<em>i, FloatSize<\/em><\/strong><em>, <\/em>\u0445\u043e\u0442\u044f<em> \u0421_<\/em>i \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043a\u0430\u043a <em>const C_i<\/em>. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432\u044b\u0448\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043a\u0430\u043a static; register; \u0438 \u0438\u043c\u0435\u044e\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 4-\u0445 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 C_i \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e record \u043d\u0435 \u0432\u043b\u0430\u0437\u0438\u0442 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440), \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043b\u0430\u0434\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0438 \u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435, \u043d\u043e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0422\u0430\u043a\u043e\u0439 \u0436\u0435 \u0444\u043e\u043a\u0443\u0441 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0438\u043f\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432\u043b\u0435\u0437\u0430\u044e\u0442 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440- \u0432 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u0430\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f- \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u0441\u0430\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0438 \u0435\u0441\u043b\u0438 \u0442\u0443\u0442 \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f- \u0442\u043e \u0434\u0435\u0431\u0430\u0433 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>###\u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443. <\/p>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043c\u0430\u0442\u0440\u0438\u0446 3\u0445<em>3.&nbsp;<\/em>\u0414\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430- \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443- \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430- \u044d\u0442\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0434\u0435\u043b\u0435\u043d\u0430\u044f \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0413\u0430\u0443\u0441\u0441\u0430 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439.<\/p>\n<p>\u041f\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b 33<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p>a.xx<\/p>\n<\/td>\n<td data-colwidth=\"64\" width=\"64\">\n<p>a.xy<\/p>\n<\/td>\n<td data-colwidth=\"64\" width=\"64\">\n<p>a.xz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p>a.yx<\/p>\n<\/td>\n<td data-colwidth=\"64\" width=\"64\">\n<p>a.yy<\/p>\n<\/td>\n<td data-colwidth=\"64\" width=\"64\">\n<p>a.yz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"62\" width=\"62\">\n<p>a.zx<\/p>\n<\/td>\n<td data-colwidth=\"64\" width=\"64\">\n<p>a.zy<\/p>\n<\/td>\n<td data-colwidth=\"64\" width=\"64\">\n<p>a.zz<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u0430<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>+(A.yy*<em>A.zz &#8212; A.yz*<\/em>A.zy)\/D<\/p>\n<\/td>\n<td>\n<p>-(A.xy*<em>A.zz &#8212; A.xz*<\/em>A.zy )\/D<\/p>\n<\/td>\n<td>\n<p>+(A.xy*<em>A.yz &#8212; A.xz*<\/em>A.yy)\/D<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>-(A.yx*<em>A.zz &#8212; A.zx*<\/em>A.yz)\/D<\/p>\n<\/td>\n<td>\n<p>+(A.xx*<em>A.zz &#8212; A.xz*<\/em>A.zx)\/D<\/p>\n<\/td>\n<td>\n<p>-(A.xx*<em>A.yz &#8212; A.yx*<\/em>A.xz )\/D<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>+(A.yx*<em>A.zy &#8212; A.yy*<\/em>A.zx)\/D<\/p>\n<\/td>\n<td>\n<p>-(A.xx*<em>A.zy &#8212; A.xy*<\/em>A.zx)\/D<\/p>\n<\/td>\n<td>\n<p>+(A.xx*<em>A.yy &#8212; A.xy*<\/em>A.yx)\/D<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>D= +(A.yy*<em>A.zz &#8212; A.yz*<\/em>A.zy)*<em>A.xx -(A.xy*<\/em>A.zz &#8212; A.xz*<em>A.zy )*<\/em>A.yx +(A.xy*<em>A.yz &#8212; A.xz*<\/em>A.yy)*<em>A.zx;<\/em><\/p>\n<p>\u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0435 \u0432\u0435\u0449\u0438-&nbsp;<\/p>\n<ol>\n<li>\n<p>&nbsp;\u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u0441\u0442\u043e\u044f\u0442 \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0447\u0442\u043e \u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u0430 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438 \u0443 \u044d\u0442\u0438\u0445 \u0441\u043a\u043e\u0431\u043e\u043a- \u044d\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b)&nbsp;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u043b\u0443\u0447\u0448\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c 1\/D, \u0430 \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043d\u0430 \u043d\u0435\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c (\u043d\u0430 Haswell \u043e\u0431\u044b\u0447\u043d\u0430\u044f FMUL \u0438\u043c\u0435\u0435\u0442 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c 5 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 1 \u0442\u0430\u043a\u0442, \u0430 FDIV- \u0438\u043c\u0435\u0435\u0442 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c 10-24 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 8-18 \u0442\u0430\u043a\u0442\u043e\u0432! \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 SSE mulpd- \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c 5 \u0438 0,5 \u0442\u0430\u043a\u0442\u0430, divsd- \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c 10-20, 8-14 \u0442\u0430\u043a\u0442\u043e\u0432- \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f- \u043b\u0443\u0447\u0448\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c 1\/D, \u0438 \u043f\u043e\u0442\u043e\u043c \u043d\u0430 \u043d\u0435\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c).<\/p>\n<\/li>\n<\/ol>\n<p>\u041c\u0435\u0442\u043e\u0434 \u0413\u0430\u0443\u0441\u0441\u0430 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432\u0438\u0434\u0430<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"147\" width=\"147\">\n<p><strong>a.xx<\/strong><\/p>\n<\/td>\n<td>\n<p>a.xy<\/p>\n<\/td>\n<td>\n<p>a.xz<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p>0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"147\" width=\"147\">\n<p>a.yx<\/p>\n<\/td>\n<td>\n<p><strong>a.yy<\/strong><\/p>\n<\/td>\n<td>\n<p>a.yz<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p>0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"147\" width=\"147\">\n<p>a.zx<\/p>\n<\/td>\n<td>\n<p>a.zy<\/p>\n<\/td>\n<td>\n<p><strong>a.zz<\/strong><\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td data-colwidth=\"130\" width=\"130\">\n<p>1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u043d\u0430\u0434 \u044d\u0442\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u0443 \u0413\u0430\u0443\u0441\u0441\u0430, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0438\u0436\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0437\u0430\u0442\u0435\u043c- \u0432\u044b\u0448\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0438 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432\u0438\u0434\u0430: <\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>1<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>b.xx<\/p>\n<\/td>\n<td>\n<p>b.xy<\/p>\n<\/td>\n<td>\n<p>b.xz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>b.yx<\/p>\n<\/td>\n<td>\n<p>b.yy<\/p>\n<\/td>\n<td>\n<p>b.yz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<td>\n<p>b.zx<\/p>\n<\/td>\n<td>\n<p>b.zy<\/p>\n<\/td>\n<td>\n<p>b.zz<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 b- \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430.<\/p>\n<p>\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e: \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446 3\u04453 \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0430\u0441\u0447\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0413\u0430\u0443\u0441\u0441\u043e\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 \u0413\u0430\u0443\u0441\u0441\u0430 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u043d\u0443\u043b\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a, \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a, \u0438 \u0435\u0449\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u0431\u0435\u0437 \u0442\u043e\u0433\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0430 \u043f\u0440\u044f\u043c\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 1 \u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (Abs(D)&gt; eps), \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442: \u0441\u0430\u043c\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 9 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432- \u0435\u0449\u0435 9 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e 32 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0442\u043e \u0435\u0441\u0442\u044c, \u0432\u0441\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043b\u0435\u0437\u0430\u044e\u0442 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.&nbsp;<\/p>\n<p>\u0421\u0442\u0440\u0430\u0448\u043d\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438), \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0430\u0441\u0447\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 3\u04453 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043d\u0438\u0436\u0435:<\/p>\n<pre><code class=\"delphi\">class procedure T_SSE.Invert(const S: T_Tens; const i0, i1: integer); {$IFDEF CPUX64}   const One: double = 1.0;         Zero: double = 0.0;         eps: double = 1.0e-10;         sign: Uint64 = $7FFFFFFFFFFFFFFF;   asm     .NOFRAME     .SAVENV XMM5   \/\/ S.z.z     .SAVENV XMM6   \/\/ Res.x.x | Res.x.y     .SAVENV XMM7   \/\/ Res.x.z | w     .SAVENV XMM8   \/\/ Res.y.x | Res.y.y     .SAVENV XMM9   \/\/ Res.y.z | w     .SAVENV XMM10  \/\/ Res.z.x | Res.z.y     .SAVENV XMM11  \/\/ Res.z.z | w     .SAVENV XMM12  \/\/ tmp1     .SAVENV XMM13  \/\/ tmp2             XOR RAX, RAX     mov EAX, i0     imul RAX, 3*VectorSize \/\/ Size of Tensor     ADD RCX, RAX \/\/ RCX = @S[i0]     XOR RAX, RAX     mov EAX, i1     sub EAX, i0     inc RAX     PXOR XMM6, XMM6     PXOR XMM7, XMM7     PXOR XMM8, XMM8     PXOR XMM9, XMM9     PXOR XMM10, XMM10     PXOR XMM11, XMM11 @begin:     prefetch [RCX+ 12*FloatSize  ]\t   \/\/ \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u0435\u043d\u0437\u043e\u0440\u0430 \u0432 \u043a\u044d\u0448     prefetch [RCX+ 16*FloatSize  ]           prefetch [RCX+ 20*FloatSize  ]          movupd XMM0, [RCX              ]   \/\/   S.x.x | S.x.y     movupd XMM1, [RCX+  2*FloatSize]   \/\/   S.x.z | w     movupd XMM2, [RCX+  4*FloatSize]   \/\/   S.y.x | S.y.y     movupd XMM3, [RCX+  6*FloatSize]   \/\/   S.y.z | w     movupd XMM4, [RCX+  8*FloatSize]   \/\/   S.z.x | S.z.y     movupd XMM5, [RCX+ 10*FloatSize]   \/\/   S.z.z | w   \/\/ \u0420\u0430\u0441\u0441\u0447\u0435\u0442 \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 (\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0437\u043d\u0430\u043a\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)     {   Res.x.x :=    ( + S.y.y*S.z.z - S.y.z*S.z.y  );          Res.x.y :=    ( + S.x.z*S.z.y - S.x.y*S.z.z  );          }     movhlps XMM6, XMM2     \/\/ XMM6.L = S.y.y     movlhps XMM6, XMM3     \/\/ XMM6.h = S.y.z     blendpd XMM5, XMM4, 2  \/\/ XMM5= S.z.z | S.z.y     mulpd XMM6, XMM5       \/\/ XMM6 = S.y.yS.z.z |  S.y.zS.z.y     movhlps XMM12, XMM4    \/\/ XMM12.L = S.z.y     movlhps XMM12, XMM5    \/\/ XMM12.h = S.z.z     blendpd XMM1,  XMM0, 2 \/\/ XMM1 = S.x.z | S.x.y     mulpd XMM12, XMM1      \/\/ XMM13 = S.x.z*S.z.y | S.x.y*S.z.z     hsubpd XMM6, XMM12     \/\/ XMM6 = Res.x.x | Res.x.y     }   {  Res.y.x :=    ( + S.z.x*S.y.z - S.y.x*S.z.z  );      Res.y.y :=    ( + S.x.x*S.z.z - S.x.z*S.z.x  );   }     movsd   XMM8, XMM4     \/\/ XMM8.L = S.z.x     movlhps XMM8, XMM2     \/\/ XMM8.h = S.y.x     movlhps XMM3 , XMM5    \/\/ XMM3 = S.y.z | S.z.z     mulpd   XMM8, XMM3     \/\/ XMM8 = S.z.x*S.y.z |  S.y.x*S.z.z     movsd   XMM13, XMM0    \/\/ XMM12.L = S.x.x     movlhps XMM13, XMM1    \/\/ XMM13 = S.x.x | S.x.z     movlhps XMM5, XMM4     \/\/ XMM5 = S.z.z  | S.z.x     mulpd XMM13, XMM5      \/\/ XMM13 = S.x.x*S.z.z | S.x.z*S.z.x     hsubpd XMM8, XMM13     \/\/ XMM8 = Res.y.x | Res.y.y   {   Res.z.x :=    ( + S.y.x*S.z.y - S.y.y*S.z.x  );       Res.z.y :=    ( + S.x.y*S.z.x - S.x.x*S.z.y  );   }     movhlps XMM10, XMM4     movlhps XMM10, XMM4    \/\/ XMM10 = S.z.y | S.z.x     pxor XMM12, XMM12     subpd  XMM12, XMM10    \/\/ XMM10 = -S.z.y | -S.z.x     mulpd  XMM12, XMM0     \/\/ XMM12 = S.z.y*S.y.x | S.z.x*S.y.y     mulpd  XMM10, XMM2     \/\/ XMM10 = -S.x.x*S.z.y | -S.x.y*S.z.x     hsubpd XMM10, XMM12    \/\/ XMM10 = Res.z.x | Res.z.y   {  Res.x.z :=    ( + S.x.y*S.y.z - S.x.z*S.y.y  ); \/\/  XMM7.L      Res.y.z :=    ( + S.y.x*S.x.z - S.x.x*S.y.z  ); \/\/ XMM9.L     \/\/ Reorder:     Res.x.z :=    ( + S.x.y*S.y.z - S.y.y*S.x.z  ); \/\/  XMM7.L     Res.y.z :=   -(   S.x.x*S.y.z - S.y.x*S.x.z  ); \/\/ XMM9.L       }     movlhps XMM3, XMM3     \/\/ XMM3 = S.y.z | S.y.z     mulpd   XMM3, XMM0     \/\/ XMM3 = S.x.x*S.y.z | S.x.y*S.y.z     movapd  XMM12, XMM2    \/\/ XMM12 = S.y.x | S.y.y     movlhps XMM1, XMM1     \/\/ XMM1  = S.x.z | S.x.z     mulpd   XMM12, XMM1    \/\/ XMM12 = S.y.x*S.x.z | S.y.y*S.x.z     subpd   XMM3, XMM12    \/\/ XMM3 = S.x.x*S.y.z-S.y.x*S.x.z | S.x.y*S.y.z - S.y.y*S.x.z                            \/\/      = -Res.y.z                | Res.x.z     pxor  XMM9, XMM9       \/\/ XMM9 = 0 | 0     subsd XMM9, XMM3       \/\/ XMM9 = Res.y.z     movhlps XMM7, XMM3     \/\/ XMM11 = Res.x.z   {  Res.z.z :=    ( + S.x.x*S.y.y - S.x.y*S.y.x  );     }     movhlps XMM11, XMM2    \/\/ XMM10 = S.y.y | w     movlhps XMM11, XMM2    \/\/ XMM10 = S.y.y | S.y.x     mulpd   XMM11, XMM0    \/\/ XMM11 = S.x.x*S.y.y | S.x.y*S.y.x     hsubpd  XMM11, XMM11   \/\/ XMM11 = S.x.x*S.y.y - S.x.y*S.y.x   {   D := S.x.x*Res.x.x +   S.x.y*Res.y.x +   S.x.z*Res.z.x ==            Res.x.x*S.x.x +   Res.x.y*S.y.x +   Res.x.z*S.z.x         }     movlhps XMM0, XMM2     dppd    XMM0, XMM6,  49 \/\/ dppd- dot product packed double     \t\t\t\t\t\t\t\t\t\t\t\t\/\/ imm8 = bit0 | ~bit1 | bit4 | bit5                             \/\/ bit0- save res to low half                             \/\/ bit1- save res to high half                             \/\/ bit4- * low parts                             \/\/ bit5- * high parts                             \/\/ XXM0 = (s.xx | s.yx)*(Res.xx | Res.xy)     mulsd XMM4, XMM7        \/\/ XMM4 =  S.zx * Res.xz     addsd XMM4, XMM0        \/\/ now XMM4 = D = Determinant(S)!     \/\/ Check if D&lt; eps:\t     movsd XMM0, XMM4             movsd XMM1, sign     pand  XMM0, XMM1        \/\/ \u0443\u0431\u0440\u0430\u043b\u0438 \u0437\u043d\u0430\u043a D- \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 XMM0 = Abs(D)     movsd XMM1, eps     comisd XMM1, XMM0       \/\/ if ABS (D) &gt; eps then PROCEED else EXIT     jnbe @exit   \/\/  Res now is the Matrix of algebraic complements,    \/\/  Out := mult(Res,1.0\/D);     movsd   XMM3, One     divsd   XMM3, XMM4     movlhps XMM3, XMM3\t                     \/\/ XMM3 = 1.0\/D | 1.0\/D     mulpd   XMM6, XMM3     movupd  oWORD[RCX              ], XMM6   \/\/   S.x.x | S.x.y     mulpd   XMM7, XMM3     movupd  oWORD[RCX+  2*FloatSize], XMM7   \/\/   S.x.z |     mulpd   XMM8, XMM3     movupd  oWORD[RCX+  4*FloatSize], XMM8   \/\/   S.y.x | S.y.y     mulpd   XMM9, XMM3     movupd  oWORD[RCX+  6*FloatSize], XMM9   \/\/   S.y.z |     mulpd   XMM10, XMM3     movupd  oWORD[RCX+  8*FloatSize], XMM10  \/\/   S.z.x | S.z.y     mulpd   XMM11, XMM3     movupd  oWORD[RCX+ 10*FloatSize], XMM11  \/\/   S.z.z |   \/\/  sfence     @exit:     Add RCX, 3*VectorSize  \/\/ next matrix     dec RAX     cmp RAX, 0     jg @begin              \/\/ if RAX &gt; 0- invert next matrix {$ELSE} var i: integer; begin   for i := i0 to i1 do     Invert(  T_TensorArr(@S)[i] ); {$IFEND} end;  <\/code><\/pre>\n<p>\u0425\u043e\u0440\u043e\u0448\u043e, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 3\u04453- \u0432\u0435\u0449\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0438 \u0447\u0430\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u0430\u044f, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4\u04454 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043d\u0430 \u043d\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0442\u043e\u0447\u0435\u043a).&nbsp;<\/p>\n<p>###\u041c\u0430\u0442\u0440\u0438\u0446\u044b 4\u04454<\/p>\n<p>\u0418 \u0442\u0443\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432 \u043a\u043e\u0440\u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c.<\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u0440\u044f\u043c\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439- \u0441\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 3\u04453.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u0430\u043c\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0443\u0436\u0435 16 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432- \u0440\u043e\u0432\u043d\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043d\u0430\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430- \u0435\u0449\u0435 16 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0436\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0433\u0434\u0435, \u0430 \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 XMM-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0435\u043a, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043f\u043e\u0434\u044c\u0435\u043c\u043d\u043e\u0439. \u0427\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c? <\/p>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0443 \u043c\u0435\u043d\u044f \u0441\u043e\u0437\u0440\u0435\u043b \u0433\u0435\u043d\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u0430\u043d. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432 \u043c\u043e\u0435\u0439 \u0444\u0438\u0437\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b- \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d\u044b \u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e- \u0438\u043c\u0435\u044e\u0442 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0440\u0435\u043e\u0431\u043b\u0430\u0434\u0430\u043d\u0438\u0435, \u0442\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c- \u043f\u0440\u0435\u0432\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u043f\u0440\u0435\u043e\u0431\u043b\u0430\u0434\u0430\u043d\u0438\u0435- \u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0443\u043c\u043c\u044b \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u0435\u0432\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435- \u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0435, \u043d\u043e \u043d\u0435 \u0438\u0445 \u0441\u0443\u043c\u043c\u044b). \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445- \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u043c\u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0435\u0441\u043b\u0438 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043c\u0435\u0442\u043e\u0434 \u0413\u0430\u0443\u0441\u0441\u0430.<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 \u0413\u0430\u0443\u0441\u0441\u0430 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412\u043e\u0442 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435- \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 :<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>[xx<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>xy]<\/p>\n<\/td>\n<td>\n<p>[xz<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>xt]<\/p>\n<\/td>\n<td>\n<p><strong>[1<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>[yx<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>yy]<\/p>\n<\/td>\n<td>\n<p>[yz<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>yt]<\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1]<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>[zx<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>zy]<\/p>\n<\/td>\n<td>\n<p>[zz<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>zt]<\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[1<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>[tx<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>ty]<\/p>\n<\/td>\n<td>\n<p>[tz<\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p>tt]<\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1]<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em>\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0436\u0438\u0440\u043d\u044b\u043c. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430:<\/em><\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p><strong>[1<\/strong><\/p>\n<\/td>\n<td>\n<p>xy\u2019]<\/p>\n<\/td>\n<td>\n<p>[xz\u2019<\/p>\n<\/td>\n<td>\n<p>xt\u2019]<\/p>\n<\/td>\n<td>\n<p><strong>[res.xx<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p>yy\u2019]<\/p>\n<\/td>\n<td>\n<p>[yz\u2019<\/p>\n<\/td>\n<td>\n<p>yt\u2019]<\/p>\n<\/td>\n<td>\n<p><strong>[res.yx<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p>zy\u2019]<\/p>\n<\/td>\n<td>\n<p>[zz\u2019<\/p>\n<\/td>\n<td>\n<p>zt\u2019]<\/p>\n<\/td>\n<td>\n<p><strong>[res.zx<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[1<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0]<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p>ty\u2019]<\/p>\n<\/td>\n<td>\n<p>[tz\u2019<\/p>\n<\/td>\n<td>\n<p>tt\u2019]<\/p>\n<\/td>\n<td>\n<p><strong>[res.tx<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"97\" width=\"97\">\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>[0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1]<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u044d\u0442\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043d\u0430\u043c \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u0438\u043d\u0443\u0442\u044c 5-\u0439 \u0441\u0442\u043e\u043b\u0431\u0438\u043a \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0441\u043d\u043e\u0432\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432 \u043b\u0435\u0432\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438-\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0430 \u0432 \u043f\u0440\u0430\u0432\u043e\u0439- \u0442\u0430 \u0436\u0435 \u0441\u0430\u043c\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438- \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0441 \u043d\u0435\u0439 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e. \u0410 \u0440\u0430\u0437 \u0442\u0430\u043a- \u0442\u043e \u0437\u0430\u0447\u0435\u043c \u0436\u0435 \u0435\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c? \u043e\u043d\u0430 \u0436\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f!<\/p>\n<p>\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0438\u0436\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443:<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p>xy<\/p>\n<\/td>\n<td>\n<p>xz<\/p>\n<\/td>\n<td>\n<p>xt<\/p>\n<\/td>\n<td>\n<p><strong>res.xx\u2019<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p>yz<\/p>\n<\/td>\n<td>\n<p>yt<\/p>\n<\/td>\n<td>\n<p><strong>res.yx<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.yy<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p>zt<\/p>\n<\/td>\n<td>\n<p><strong>res.zx<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.zy<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.zz<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>0<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.tx<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.ty<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.tz<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>res.tt<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0418 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0448\u0430\u0433\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u043e\u0432\u043d\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043c\u0435\u044e\u0442 \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043d\u0443\u043b\u0438 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b). \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0430\u043c \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043b\u0435\u0432\u043e\u0439 \u0438 \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044f\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u0430\u0447\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430- \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0432\u0430- \u043f\u043e\u043b\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430- \u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0430- \u043d\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0432\u0430- \u043d\u0438\u0436\u043d\u0438\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0437\u0430\u043d\u0443\u043b\u0435\u043d- \u0442\u043e \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0435 \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u043e\u044f\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u044b- \u0442\u043e \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438- \u0441\u0442\u043e\u044f\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u0435\u0441\u043b\u0438 \u0432 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438- \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438- \u0435\u0434\u0438\u043d\u0438\u0446\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 8 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0432\u0448\u0438\u0445\u0441\u044f XMM-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.&nbsp;<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439:&nbsp;<\/p>\n<pre><code>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c i=1. \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c D.ii \u0441 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440- \u201cxx\u201d,&nbsp; \u043d\u0430 \u0435\u0433\u043e \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c 1.0.&nbsp; \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c 1\/D,&nbsp; \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u044d\u0442\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 1\/D.&nbsp; \t\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c j-\u044e \u0441\u0442\u0440\u043e\u043a\u0443 j=i+1 \t\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0432 \u043d\u0435\u0439 i-\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (\u2018yx\u2019), \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \t\u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c 0.&nbsp; \t\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c 1\/\u2019yx\u2019 \t\u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u044e j-\u044e \u0441\u0442\u0440\u043e\u043a\u0443,&nbsp; \t\u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 j \u0441\u0442\u0440\u043e\u043a\u0443 i.&nbsp; \t\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a j+1 \t\u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c- \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c i=i+1, \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c.&nbsp; \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0442\u0430\u043a \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438- \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0445\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 \u0413\u0430\u0443\u0441\u0441\u0430<\/code><\/pre>\n<p>\u0418\u0437 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b 0.0e+0, 1.0e+0 (\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 1 XMM-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435), \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0438 \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0435\u0449\u0435 5 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c (\u043d\u043e \u043d\u0435\u043a\u0443\u0434\u0430).<\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430- \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.&nbsp;<\/p>\n<details class=\"spoiler\">\n<summary><\/summary>\n<div class=\"spoiler__content\">\n<pre><code>type   T_M4 = array [0..3,0..3] of real; class procedure T_SSE.Invert_gauss(var S: T_M4); {$IFDEF CPUX64} const FloatSize = 8;       One: double = 1.0;       Zero: double = 0.0; asm   .NOFRAME   .SAVENV XMM5   .SAVENV XMM6   .SAVENV XMM7   .SAVENV XMM8   .SAVENV XMM9   .SAVENV XMM10   movupd XMM0, [RCX              ]   \/\/   S.x.x | S.x.y   movupd XMM1, [RCX+  2*FloatSize]   \/\/   S.x.z | S.x.t   prefetch [RCX + 4*FloatSize]       \/\/ slightly increase overall performance (~1%)   PXOR XMM10,XMM10 \/\/  FORWARD MOVE   \/\/ STEP  #1  \/\/ STEP #1.prep:  D = 1.0\/ S.x.x    S.x.x = 1; S.x := S.xD;   movsd XMM8, One             \/\/ XMM8.L = 1.0;   movsd XMM9, XMM0            \/\/ EXTRACT DIVIDER!   movsd XMM0, XMM8            \/\/XMM0 = 1 | S.x.y   divsd XMM8, XMM9            \/\/ D := 1.0 \/ S.x.x;   movlhps XMM8, XMM8          \/\/ XMM8 = D  | D   mulpd XMM0, XMM8            \/\/ S.x = S.xD   mulpd XMM1, XMM8            \/\/ XMM0 XMM1= a00d | a01d   ||  a02d | a03d   movupd XMM2, [RCX+  4*FloatSize]   \/\/   S.y.x | S.y.y   movupd XMM3, [RCX+  6*FloatSize]   \/\/   S.y.z | S.y.t   prefetch [RCX + 8*FloatSize]  \/\/ STEP  #1.y:   D := S.y.x;  s.y.x :=  0; S.y = S.y- S.xD   movsd   XMM8, XMM2   \/\/ XMM8 = (D= S.y.x) | 0   movlhps XMM8, XMM8   \/\/ XMM8 =  D          |   D   movsd XMM2, XMM10    \/\/ S.y.x := 0;  XMM2 = 0 | S.y.y   movapd XMM9, XMM0    \/\/ copy S.x.x, S.x.y   mulpd XMM9, XMM8     \/\/ mul   subpd XMM2, XMM9     \/\/ XMM2 = -S.x.xD         | S.y.y - S.x.yD   movapd XMM9, XMM1    \/\/ copy S.x.z, S.x.t   mulpd XMM9, XMM8     \/\/ mul   subpd XMM3, XMM9     \/\/ XMM3 = S.y.z - S.x.zd |  S.y.t - S.x.td        \/\/}  \/\/ STEP  #1.z:   D := S.z.x;  s.z.x :=  0; S.z = S.z- S.xD   movupd XMM4, [RCX+  8*FloatSize]   \/\/   S.z.x | S.z.y   movupd XMM5, [RCX+ 10*FloatSize]   \/\/   S.z.z | S.z.t   prefetch [RCX + 12*FloatSize]   movsd   XMM8, XMM4   \/\/ XMM8 = (D= S.y.x) | 0   movlhps XMM8, XMM8   \/\/ XMM8 =  D          |   D   movsd XMM4, XMM10    \/\/ S.z.x:= 0;  XMM4 = 0 | S.z.y   movapd XMM9, XMM0    \/\/ Copy S.x.x, S.x.y   mulpd XMM9, XMM8     \/\/ mul   subpd XMM4, XMM9     \/\/ XMM4 = -S.x.xD         | S.y.y - S.x.yD   movapd XMM9, XMM1    \/\/ copy S.x.z , S.x.t   mulpd XMM9, XMM8     \/\/ mul   subpd XMM5, XMM9     \/\/ XMM5 = S.z.z - S.z.zd |  S.z.t - S.z.td        \/\/}  \/\/ STEP  #1.t:   D := S.t.x;  s.t.x :=  0; S.t = S.t- S.xD   movupd XMM6, [RCX+ 12*FloatSize]   \/\/   S.t.x | S.t.y   movupd XMM7, [RCX+ 14*FloatSize]   \/\/   S.t.z | S.t.t   movsd   XMM8, XMM6   \/\/ XMM8 = (D= S.y.x) | 0   movlhps XMM8, XMM8   \/\/ XMM8 =  D          |   D   movsd XMM6, XMM10    \/\/ S.t.x:= 0;  XMM6 = 0 | S.z.y   movapd XMM9, XMM0    \/\/ Copy S.y.x, S.y.y   mulpd XMM9, XMM8     \/\/ mul   subpd XMM6, XMM9     \/\/ XMM6 = -S.x.xD         | S.y.y - S.x.yD   movapd XMM9, XMM1    \/\/ copy S.z.z , S.z.t   mulpd XMM9, XMM8     \/\/ mul   subpd XMM7, XMM9     \/\/ XMM7 = S.z.z - S.z.zd |  S.z.t - S.z.td        \/\/} \/\/ STEP  #4.prep  D := 1.0\/S.y.y;    S.y.y = 1;  S.y := S.yD;   movsd   XMM8, One   movhlps XMM9, XMM2    \/\/ XMM9 = S.y.y    |    w   movlhps XMM2, XMM8    \/\/ XMM2 = S.y.x    |    S.y.y=1   divsd   XMM8, XMM9    \/\/ XMM8 = 1.0\/ S.y.y   = D   movlhps XMM8, XMM8   mulpd   XMM2, XMM8    \/\/ XMM2 = S.y.xD  |    D= 1\/S.y.y   mulpd   XMM3, XMM8    \/\/ XMM3 = S.y.zD  |    S.y.tD \/\/ STEP  #4.z  D := S.z.y; S.z.y := 0; S.z := S.z-S.yD   movhlps XMM8, XMM4   \/\/ XMM9= D=S.z.y   |   w   movlhps XMM8, XMM8   \/\/ XMM8= D         |   D   movlhps XMM4, XMM10  \/\/ XMM4= S.z.x     | S.z.y=0   movapd  XMM9, XMM2   \/\/ XMM9= S.y.x      | S.y.y   mulpd   XMM9, XMM8   \/\/ XMM9= S.y.xD    | S.y.yD   subpd   XMM4, XMM9   \/\/ XMM4= S.z.x - S.y.xD | 0 -S.y.yD   movapd  XMM9, XMM3   \/\/ XMM9= S.y.z      | S.y.t   mulpd   XMM9, XMM8   \/\/ XMM9= S.y.zD    | S.y.tD   subpd   XMM5, XMM9   \/\/ XMM4= S.z.z - S.y.zD | S.z.t - S.y.tD \/\/ STEP  #4.t  D := S.t.y; S.t.y := 0; S.t := S.t-S.yD   movhlps XMM8, XMM6   \/\/ XMM9= D=S.t.y   |   w   movlhps XMM8, XMM8   \/\/ XMM8= D         |   D   movlhps XMM6, XMM10  \/\/ XMM4= S.t.x     | S.t.y=0   movapd  XMM9, XMM2   \/\/ XMM9= S.y.x      | S.y.y   mulpd   XMM9, XMM8   \/\/ XMM9= S.y.xD    | S.y.yD   subpd   XMM6, XMM9   \/\/ XMM4= S.t.x - S.y.xD | 0 -S.y.yD   movapd  XMM9, XMM3   \/\/ XMM9= S.y.z      | S.y.t   mulpd   XMM9, XMM8   \/\/ XMM9= S.y.zD    | S.y.tD   subpd   XMM7, XMM9   \/\/ XMM4= S.t.z - S.y.zD | S.t.t - S.y.tD \/\/ STEP  #5.prep  D := 1.0\/S.z.z;    S.z.z = 1;  S.z := S.zD;   movsd   XMM8, One   movsd   XMM9, XMM5    \/\/ XMM9 = S.z.z    |    w   movsd   XMM5, XMM8    \/\/ XMM5 = S.z.z=1  |    S.z.t   divsd   XMM8, XMM9    \/\/ XMM8 = 1.0\/ S.z.z   = D   movlhps XMM8, XMM8   mulpd   XMM4, XMM8    \/\/ XMM4 = S.z.xD  |    D= 1\/S.z.z   mulpd   XMM5, XMM8    \/\/ XMM5 = S.z.zD  |    S.z.tD \/\/ STEP  #5.t  D := S.t.z; S.t.z := 0; S.t := S.t-S.zD   movsd   XMM8, XMM7   \/\/ XMM8= D=S.t.z   |   w   movlhps XMM8, XMM8   \/\/ XMM8= D         |   D   movsd   XMM7, XMM10  \/\/ XMM7= S.t.z=0   | S.t.t   movapd  XMM9, XMM4   \/\/ XMM9= S.z.x      | S.z.y   mulpd   XMM9, XMM8   \/\/ XMM9= S.z.xD    | S.z.yD   subpd   XMM6, XMM9   \/\/ XMM4= S.t.x - S.z.xD | S.t.y -S.z.yD   movapd  XMM9, XMM5   \/\/ XMM9= S.z.z      | S.z.t   mulpd   XMM9, XMM8   \/\/ XMM9= S.z.zD    | S.z.tD   subpd   XMM7, XMM9   \/\/ XMM7= 0 - S.z.zD | S.t.t - S.z.tD \/\/ STEP  #6  D := 1\/S.t.t; S.t.t := 1.0; S.t := S.tD   movsd   XMM8, One   movhlps XMM9, XMM7    \/\/ XMM9 = S.t.t    |    w   movlhps XMM7, XMM8    \/\/ XMM7 = S.t.z    |    S.t.t=1   divsd   XMM8, XMM9    \/\/ XMM8 = 1.0\/ S.z.z   = D   movlhps XMM8, XMM8   mulpd XMM6, XMM8   mulpd XMM7, XMM8   \/\/ save S.t   movupd oWORD[RCX+ 12*FloatSize], XMM6   \/\/   S.z.x | S.z.y   movupd oWORD[RCX+ 14*FloatSize], XMM7   \/\/   S.z.z | \/\/ BACKWARD MOVEMENT! \/\/ STEP  #7.x-y  D := S.x.y; S.x.y := 0; S.x -= S.yD   movhlps XMM8, XMM0     \/\/ XMM8= D=S.x.y | w   movlhps XMM8, XMM8     \/\/ XMM8 = D | D   movlhps XMM0, XMM10    \/\/ S.x.y = 0   movapd XMM9, XMM2      \/\/ XMM9= S.y.x      | S.y.y   mulpd XMM9, XMM8       \/\/ XMM9= S.y.xD    | S.y.yD   subpd XMM0, XMM9       \/\/ XMM0= S.x.x+S.y.xD | S.y.yD   movapd XMM9, XMM3       \/\/ XMM9= S.y.z      | t   mulpd XMM9, XMM8       \/\/ XMM9= S.y.zD    | t   subpd XMM1, XMM9       \/\/ XMM0= S.x.z+S.y.zD | t \/\/ STEP  #7.y-z  D := S.y.z; S.y.z := 0; S.y -= S.zD   movsd   XMM8, XMM3     \/\/ XMM8= D=S.y.z | w   movsd   XMM3, XMM10    \/\/ S.y.z := 0   movlhps XMM8, XMM8     \/\/ XMM8 = D | D   movapd XMM9, XMM4      \/\/ XMM9= S.z.x      | S.z.y   mulpd XMM9, XMM8       \/\/ XMM9= S.z.xD    | S.z.yD   subpd XMM2, XMM9       \/\/ XMM0= S.y.x-S.z.xD | S.y.y-S.z.yD   movapd XMM9, XMM5       \/\/ XMM9= S.y.z      | t   mulpd XMM9, XMM8       \/\/ XMM9= S.y.zD    | t   subpd XMM3, XMM9       \/\/ XMM0= S.x.z+S.y.zD | t \/\/ STEP  #7.x-z  D := S.x.z; S.x.z := 0; S.x -= S.zD   movsd   XMM8, XMM1     \/\/ XMM8= D=S.x.z | w   movsd   XMM1, XMM10    \/\/ S.x.z := 0   movlhps XMM8, XMM8     \/\/ XMM8 = D | D   movapd XMM9, XMM4      \/\/ XMM9= S.t.x      | S.t.y   mulpd XMM9, XMM8       \/\/ XMM9= S.t.xD    | S.t.yD   subpd XMM0, XMM9       \/\/ XMM0= S.z.x-S.t.xD | S.z.y-S.t.yD   movapd XMM9, XMM5      \/\/ XMM9= S.t.z      | S.t.t   mulpd XMM9, XMM8       \/\/ XMM9= S.t.zD    | S.t.tD   subpd XMM1, XMM9       \/\/ XMM0= S.z.z-S.t.zD | S.z.t-S.t.tD \/\/ STEP  #7.z-t  D := S.z.t; S.z.t := 0; S.z -= S.tD   movhlps XMM8, XMM5     \/\/ XMM8= D=S.z.t | w   movlhps XMM5, XMM10    \/\/ S.z.t := 0   movlhps XMM8, XMM8     \/\/ XMM8 = D | D   movapd XMM9, XMM6      \/\/ XMM9= S.t.x      | S.t.y   mulpd XMM9, XMM8       \/\/ XMM9= S.t.xD    | S.t.yD   subpd XMM4, XMM9       \/\/ XMM0= S.z.x-S.t.xD | S.z.y-S.t.yD   movapd XMM9, XMM7      \/\/ XMM9= S.t.z      | S.t.t   mulpd XMM9, XMM8       \/\/ XMM9= S.t.zD    | S.t.tD   subpd XMM5, XMM9       \/\/ XMM0= S.z.z-S.t.zD | S.z.t-S.t.tD   \/\/ SAVE S.z   movupd oWORD[RCX+  8*FloatSize], XMM4   \/\/   S.z.x | S.z.y   movupd oWORD[RCX+ 10*FloatSize], XMM5   \/\/   S.z.z | \/\/ STEP  #8.y-t  D := S.y.t; S.y.t := 0; S.y -= S.tD   movhlps XMM8, XMM3     \/\/ XMM8= D=S.y.t | w   movlhps XMM3, XMM10    \/\/ S.y.t = 0   movlhps XMM8, XMM8     \/\/ XMM8 = D | D   movapd XMM9, XMM6      \/\/ XMM9= S.y.x      | S.y.y   mulpd XMM9, XMM8       \/\/ XMM9= S.y.xD    | S.y.yD   subpd XMM2, XMM9       \/\/ XMM0= S.x.x+S.y.xD | S.y.yD   movapd XMM9, XMM7      \/\/ XMM9= S.y.z      | t   mulpd XMM9, XMM8       \/\/ XMM9= S.y.zD    | t   subpd XMM3, XMM9       \/\/ XMM0= S.x.z+S.y.zD | t \/\/   save S.y   movupd oWORD[RCX+  4*FloatSize], XMM2   \/\/   S.y.x | S.y.y   movupd oWORD[RCX+  6*FloatSize], XMM3   \/\/   S.y.z | \/\/ STEP  #8.x-t  D := S.x.t; S.x.t := 0; S.x -= S.tD   movhlps XMM8, XMM1     \/\/ XMM8= D=S.x.t | w   movlhps XMM1, XMM10    \/\/ S.x.t := 0   movlhps XMM8, XMM8     \/\/ XMM8 = D | D   movapd XMM9, XMM6      \/\/ XMM9= S.t.x      | S.t.y   mulpd XMM9, XMM8       \/\/ XMM9= S.t.xD    | S.t.yD   subpd XMM0, XMM9       \/\/ XMM0= S.x.x-S.t.xD | S.x.y-S.t.yD   movapd XMM9, XMM7      \/\/ XMM9= S.t.z         | S.t.t   mulpd XMM9, XMM8       \/\/ XMM9= S.t.zD       | S.t.tD   subpd XMM1, XMM9       \/\/ XMM0= S.x.z-S.t.zD | S.x.t-S.t.tD   movupd oWORD[RCX              ], XMM0   \/\/   S.x.x | S.x.y   movupd oWORD[RCX+  2*FloatSize], XMM1   \/\/   S.x.z |  {$ELSE} begin   Invert_m4( S );  {$ENDIF} end;<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u043e \u043a\u043e\u0434\u0443 \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u043d\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0438\u0434\u0430 <\/p>\n<p>&nbsp;prefetch [RCX + 4<em>FloatSize]&nbsp;<\/em><\/p>\n<p>\u0434\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u043f\u0440\u0435\u0436\u0434\u0430\u044e\u0449\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434, \u0438 \u043f\u0440\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438- \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432 \u043a\u044d\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0447\u0443\u0442\u043e\u0447\u043a\u0443 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c, \u0447\u0442\u043e \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0441 \u044d\u0442\u0438\u0445 \u043f\u0440\u0435\u0444\u0435\u0442\u0447\u0435\u0439- \u044d\u0442\u043e 1-2% \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f. \u0415\u0449\u0435 \u0437\u0434\u0435\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 FMA, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0441\u0442\u044c \u0432 Ryzen \u0438 \u043d\u043e\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u043b\u044f\u0445, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u044f\u0434\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c FMA \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u043f\u0430\u043b\u043e. <\/p>\n<p>###\u0422\u0435\u0441\u0442\u044b.<\/p>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0443 \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0443\u0436\u0435 Xeon-2678v3 c DDR3-1866-4x (\u0431\u0435\u0437 \u0430\u043d\u043b\u043e\u043a\u0430 \u0442\u0443\u0440\u0431\u043e\u0431\u0443\u0441\u0442\u0430- \u043f\u043e\u0447\u0435\u043c\u0443- \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435) \u0438 Ryzen 3900x c DDR4-3200-2x. \u0422\u0435\u0441\u0442\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 Xeon-\u0435, \u0430 \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0441 Ryzen-\u043e\u043c.&nbsp; \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043e\u0431\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 (\u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c). \u0412\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u043f\u043e 5 \u0440\u0430\u0437 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043f\u043e 1&nbsp;048&nbsp;576 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>\u0421\u0443\u043c\u043c\u0430 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0432\u0443\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code>Dot product: compiler :&nbsp; 5240,8 MB\/s Dot product: SSE &nbsp; &nbsp; &nbsp;:&nbsp; 7717,2 MB\/s Dot product: SSE, arr :  9704,8 MB\/s<\/code><\/pre>\n<p>\u0420\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f SSE \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 SSE-\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a Embarcadero \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0438\u043d\u043b\u0430\u0439\u043d \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.&nbsp; \u201cDot product: SSE, arr\u201d- \u044d\u0442\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0446\u0438\u043a\u043b \u0442\u043e\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 SSE-\u0431\u043b\u043e\u043a\u0430, \u043a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0438\u0437\u0431\u0430\u0432\u0438\u0432\u0448\u0438\u0441\u044c \u043e\u0442 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043c\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043d\u0430 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c! \u041d\u0443\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0435 \u043c\u044b \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u043e 4.8 GB\/s \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0435 1200 MB\/s \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c, \u0432 \u0441\u0443\u043c\u043c\u0435 \u043f\u0440\u043e\u043a\u0430\u0447\u0438\u0432\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043d\u0430\u043b \u043f\u0430\u043c\u044f\u0442\u0438 ~11 GB\/s \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430.&nbsp;<\/p>\n<p>\u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0441 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432:<\/p>\n<pre><code>V3 += V3M33 compiler : 3599,5 MB\/s V3 += V3M33 SSE      : 6810,8 MB\/s V3 += M33V3 compiler : 4304,6 MB\/s V3 += M33V3 SSE &nbsp; &nbsp;  : 8644,2 MB\/s<\/code><\/pre>\n<p>\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e M33*V3 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440, \u0430 V3*33- \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.&nbsp;<\/p>\n<pre><code>M3\u04453: Invert compiler    : 3384,8 MB\/s M3\u04453: T_SSE.Invert_gauss : 3386,8 MB\/s M3\u04453: T_SSE.Invert       : 4990,0 MB\/s<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0432 \u043c\u043e\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434 \u0413\u0430\u0443\u0441\u0441\u0430 \u043d\u0430 SSE \u0442\u0430\u043a\u0436\u0435 \u0445\u043e\u0440\u043e\u0448 (\u0438\u043b\u0438 \u0442\u0430\u043a \u0436\u0435 \u043f\u043b\u043e\u0445), \u043a\u0430\u043a \u0438 \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0430\u0441\u0447\u0435\u0442 \u043e\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u043d\u043e \u0432\u043e\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0430\u0441\u0447\u0435\u0442 \u043d\u0430 SSE- \u043f\u043e\u0447\u0442\u0438 \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435.&nbsp;<\/p>\n<pre><code>M4\u04454: Invert compiler    :&nbsp; 333,2 MB\/s M4\u04454: Invert_SSE_gauss   :  2958,2 MB\/s<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0441\u0442\u0430\u043b\u0430 \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439- \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u0438 \u0432 9 \u0440\u0430\u0437! \u0422\u0430\u043a \u043a\u0430\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u041c\u041d\u041a- \u0442\u043e \u0434\u043b\u044f \u043d\u0435\u0435 \u0440\u0430\u0441\u0447\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4\u04454 \u0431\u044b\u043b \u0441\u0430\u043c\u043e\u0439 \u0442\u043e\u0440\u043c\u043e\u0437\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u043f\u043e\u0447\u0442\u0438 60% \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 10%, \u0430 \u043e\u0431\u0449\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0447\u0435\u0442\u0430 \u0432\u044b\u0440\u043e\u0441\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 3 \u0440\u0430\u0437\u0430.&nbsp;<\/p>\n<p>\u0421 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0435\u0449\u0435 \u0432\u043e\u0442 \u0447\u0442\u043e: \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043e\u0442 \u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u043c\u0435\u0435\u0442 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 O(n<sup>5<\/sup>), \u0442\u043e \u0435\u0441\u0442\u044c, \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 \u041c3&#215;3 \u043d\u0430 M4x4- \u043e\u0431\u044a\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0432 ~4,2 \u0440\u0430\u0437\u0430, \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0432  1,8 \u0440\u0430\u0437\u0430, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e\u043b\u0436\u043d\u0430 \u0443\u043f\u0430\u0441\u0442\u044c \u0432 2,3 \u0440\u0430\u0437\u0430, \u043e\u0434\u043d\u0430\u043a\u043e, \u043f\u0430\u0434\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 1.7 \u0440\u0430\u0437\u0430, \u0442\u043e \u0435\u0441\u0442\u044c, \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442. \u0410 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u044d\u0442\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 \u043b\u0435\u0436\u0430\u0442 \u043f\u043b\u043e\u0442\u043d\u0435\u0435 (\u0443 M3x3 \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0430 \u0443 M4x4- \u0440\u043e\u0432\u043d\u043e \u0434\u0432\u0430) , \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u0446\u0435\u043b\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0448\u0435 (\u043c\u044b \u0440\u0435\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0442\u0438\u043f\u0430 mulsd, addsd, \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 mulpd, addpd).&nbsp;<\/p>\n<p>\u0414\u043b\u044f \u043c\u0435\u043d\u044f \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f- \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043d\u0435 \u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u043d\u0430 \u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u043f\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u0435 \u0438 \u0432\u044b\u0447-\u043c\u0430\u0442\u0443, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u201c\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e\u201d- \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u0443\u043f\u0435\u0440\u0441\u044f \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 256 \u0431\u0430\u0439\u0442 (!) \u0441\u0438\u0434\u044f \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441 10-\u044e \u044f\u0434\u0440\u0430\u043c\u0438, 20-\u044e \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u0438 32-\u043c\u044f \u0433\u0438\u0433\u0430\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u044b.&nbsp;<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u043c? \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u0430. \u0421\u0430\u043c\u0430\u044f \u043d\u0438\u0437\u043a\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u043c\u0438- \u044d\u0442\u043e ~3\u0413\u0411\/\u0441 \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043c\u0430\u0442\u0440\u0438\u0446 4\u04454. 10 \u044f\u0434\u0435\u0440\u043d\u044b\u0439 Xeon 2660v2 \u043d\u0430 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0435\u0432\u0430\u0442\u044c 25GB\/s, \u0447\u0442\u043e \u0434\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 \u0448\u0438\u043d\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 50GB\/s, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043a\u0430\u043a \u0447\u0435\u0442\u044b\u0440\u0435\u0445-\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0430\u043c\u044f\u0442\u0438 DDR3-1866 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e-\u0436\u0435- ~59GB\/s \u0432 \u0442\u0435\u043e\u0440\u0438\u0438, 45-50 \u0432 \u0440\u0435\u0430\u043b\u0435. \u0422\u043e \u0435\u0441\u0442\u044c, \u0434\u0430\u0436\u0435 \u043d\u0430 \u0441\u0430\u043c\u044b\u0445 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u0445 \u043c\u044b \u0443\u043f\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u043d\u0435 \u0432 \u0426\u041f, \u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c DDR4 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u0438 \u043a \u0441\u043c\u0435\u043d\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u044f\u0434\u0435\u0440, \u0438 \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430- Ryzen 3900X&nbsp; \u043d\u0430 DDR4-3200 \u0438 Xeon 2678v3 &#8212; \u043e\u0431\u0430 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0438\u0445 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u041e\u0417\u0423. 1 \u043f\u043e\u0442\u043e\u043a \u043d\u0430 Ryzen 3900x \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 ~5GB\/s \u043c\u0430\u0442\u0440\u0438\u0446 4\u04454, \u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0438\u043c\u0435\u0435\u0442 \u043b\u0438\u0448\u044c \u0434\u0432\u0443\u0445\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c DDR4-3200, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0435\u043c\u0443 \u0432\u043e\u0440\u043e\u0447\u0430\u0442\u044c \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 50GB\/s, \u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u0445 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u0434 \u0437\u0430\u0432\u044f\u0437\u043a\u0443- \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438- \u0434\u0430\u0436\u0435 \u0441 DDR4-3600 \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u041e\u0417\u0423 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 ~56GB\/s- \u0442\u043e \u0435\u0441\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u043d\u043e \u044f\u0434\u0440\u043e \u0438\u0437 12 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0442\u044c, \u0432\u043e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b, \u043d\u0443\u0436\u043d\u043e\u0439 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u0438 \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432- \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 AVX \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044e \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0418 \u0434\u0430\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 4-\u0445 \u043a\u0430\u043d\u0430\u043b\u044c\u043d\u0443\u044e DDR4-2400 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0410 \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u044b- \u0437\u0430\u0447\u0435\u043c \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435? \u041e\u0442\u0441\u044e\u0434\u0430 \u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0442\u0443\u0440\u0431\u043e\u0431\u0443\u0441\u0442 \u043c\u043d\u0435 \u0431\u0435\u0437 \u043d\u0430\u0434\u043e\u0431\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043e\u043f\u0443\u0445\u043b\u0430, \u0438 \u0432 \u043d\u0435\u0435 \u043d\u0435 \u0432\u043b\u0435\u0437\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0421\u041b\u0410\u0423 3\u04453 \u0438 4\u04454, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446 \u0438 \u0435\u0449\u0435 \u043f\u043e\u0434 \u0441\u043e\u0442\u043d\u044e \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u043d\u044b\u0445 \u0437\u0430\u043f\u0447\u0430\u0441\u0442\u0435\u0439, \u043d\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438 \u0441\u0430\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0435- \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446- \u044f \u043e\u043f\u0438\u0441\u0430\u043b. <\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/545518\/\"> https:\/\/habr.com\/ru\/post\/545518\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u0435 \u0432 \u043e\u0434\u043d\u043e\u0439 Delphi-\u0448\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u0448\u043b\u0438 \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u041f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043e\u043a\u043e\u043b\u043e 100 kLOC \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c- \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u0437-\u0437\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u043e\u0440\u043c, \u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043c\u043e\u0439 \u043e\u043f\u044b\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u0434 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Lazarus&#8217;\u0435 (\u0441 FPC3.0.4)- \u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0447\u0435\u0442\u0430 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0434\u043e 2-\u0445 \u0440\u0430\u0437, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Embarcadero (\u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439) \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435\u0441\u0438\u043b\u0435\u043d, \u0438 \u043d\u0430\u0434\u043e \u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, IDE \u043e\u0442 Embarcadero \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f GUI- \u0432\u043d\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u0438, \u0430 \u0438\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0430 \u0440\u0435\u0434\u043a\u043e\u0441\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 (\u043e\u043d\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e- \u0431\u044b\u0441\u0442\u0440\u043e+\u043f\u043b\u043e\u0445\u043e, \u0438\u043b\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e+\u0445\u043e\u0440\u043e\u0448\u043e). \u041d\u043e \u0432\u0435\u0434\u044c \u0432\u043a\u0443\u0441 \u043a\u0430\u043a\u0442\u0443\u0441\u0430 \u043d\u0435\u0438\u043c\u043e\u0432\u0435\u0440\u043d\u043e \u043f\u0440\u0438\u0442\u044f\u0433\u0430\u0442\u0435\u043b\u0435\u043d. \u041f\u0440\u043e\u0444\u0430\u0439\u043b\u0438\u043d\u0433 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 (tinyprofiler) \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (90%) \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b \u043d\u0430\u0434 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b, \u0430 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0441 \u044d\u0442\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u043e\u0439 \u043e\u0431\u0449\u0430\u044f &#171;\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c&#187; \u0438\u043c\u0435\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439- ~4 \u0413\u0411\/\u0441, \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443- 1,5-2 \u0413\u0411\/\u0441, \u0430 \u0432\u043e\u0442 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b- \u043f\u0440\u043e\u0441\u0435\u0434\u0430\u0435\u0442 \u0434\u043e 360 \u041c\u0411\/\u0441 (\u043d\u0430 Core I5 4460 \u0438 \u043d\u0430 Xeon 2660V2, DDR3-1866). <em>\u0412\u043d\u0443\u0442\u0440\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u043d\u0435\u043e\u043d\u043a\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 3-\u0445 \u0438 4-\u0445 \u043c\u0435\u0440\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b<\/em>. GUI \u0438 \u0432\u0432\u043e\u0434-\u0432\u044b\u0432\u043e\u0434 \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u043e\u0442\u043e\u043a\u0435, \u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u044b- \u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445, \u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u043d\u0435 \u043c\u0435\u0448\u0430\u044e\u0442. \u0412 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u043c\u044b\u0441\u043b\u044c, \u0447\u0442\u043e <em>4\u04454 \u043c\u0430\u0442\u0440\u0438\u0446\u0430- \u0434\u043e\u043b\u0436\u043d\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432\u043b\u0435\u0437\u0430\u0442\u044c \u0432 SSE-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0434\u043b\u044f \u043d\u0435\u0435 SIMD-\u043e\u0447\u0435\u043d\u044c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b, <\/em>\u0430 Embarcadero \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 SIMD \u043d\u0435 \u0437\u0430\u0432\u0435\u0437\u043b\u0438, \u043d\u0435 \u0437\u0430\u0432\u0435\u0437\u0443\u0442, \u0438 \u0432\u043e\u043e\u0431\u0449\u0435- \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0438\u0436\u043d\u0435\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b XMM0 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430- \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0443\u044e \u0430\u043b\u0433\u0435\u0431\u0440\u0443 \u0432 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0434\u043b\u044f 3D\/4D \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438- \u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u043e\u043e\u0440\u0443\u0434\u0438\u0442\u044c \u0441\u0442\u0435\u0440\u043e\u0438\u0434\u043d\u044b\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e.<\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0439 \u043d\u0430\u0432\u044b\u043a \u0433\u0443\u0433\u043b\u0438\u043d\u0433\u0430 \u0434\u0430\u043b \u0441\u0431\u043e\u0439- \u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u0430\u0432\u044b\u043a-\u0442\u043e \u0435\u0441\u0442\u044c- \u043c\u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c, \u0438\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 FP32 \u043d\u0430 SSE, \u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u043e\u0434 FP64- \u043d\u0435 \u0431\u044b\u043b\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442. \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c- \u043a\u0430\u043a \u043d\u0430 SSE4.2 \u0440\u0443\u043a\u0430\u043c\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0444\u0438\u0437\u0438\u043a\u0438 \u0438 \u0432\u044b\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430\u0438\u0437\u043d\u0430\u043d\u043a\u0443.<\/p>\n<p>\u041a\u0430\u043a \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b, \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0431\u044b\u043b\u0438 Core I5 4460 &amp; Xeon 2660v2, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 SSE4.2, \u043d\u043e \u0435\u0449\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 FMA \u0438 AVX, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u043f\u044c\u0435\u0441\u044b \u044f \u043e\u0442\u043c\u0435\u0447\u0443 \u0442\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 AVX \u043c\u043e\u0433 \u0431\u044b \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u0441\u0435\u0439\u0447\u0430\u0441- AVX \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 SSE4.2 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u043d\u044c\u043a\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0443 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043e\u043d\u0438 \u043f\u0440\u043e\u043b\u0430\u0437\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043c\u044f\u0442\u044c, \u0434\u0430\u0436\u0435 \u043e\u0434\u043d\u043e \u044f\u0434\u0440\u043e Xeon&#8217;\u0430 \u043d\u0430 3,3 \u0413\u0413\u0446 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 ~10\u0413\u0411\/\u0441, \u0430 \u0446\u0435\u043b\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u0431\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 4-\u0440\u0435 \u043a\u0430\u043d\u0430\u043b\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043f\u043e\u043a\u0443\u0440\u0438\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0430\u0445, \u0435\u0441\u043b\u0438 \u0432\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0432\u043b\u0435\u0437\u0430\u0435\u0442 \u0432 \u043a\u044d\u0448 (\u0443 Ryzen 3900 \u043a\u044d\u0448\u0430 64\u041c\u0411, \u0438 \u0432 \u0442\u0430\u043a\u043e\u0439 \u043a\u0435\u0448 \u0432\u043b\u0435\u0437\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u043d\u0430 \u043d\u0435\u043c \u0441\u043c\u044b\u0441\u043b \u0432 AVX \u043c\u043e\u0436\u0435\u0442 \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0431\u043e\u0442\u043b\u043d\u0435\u043a \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u0438 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430 \u043c\u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043a \u0434\u0435\u043b\u0443. \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f SSE4.2. \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b 16 XMM \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e 2 FP64-\u0447\u0438\u0441\u043b\u0430, \u0438 \u0432\u0441\u0435\u0433\u043e \u0432 XMM \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c 32 \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u043b\u0430. \u041d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043e\u0433\u043e\u0440\u0447\u0430\u0435\u0442 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 XMM \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u043d\u043e 32 \u0447\u0438\u0441\u043b\u0430- \u044d\u0442\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e.<\/p>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u044b \u043e\u0442 XMM0 \u0434\u043e XMM15. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 128 \u0431\u0438\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443- \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0430\u0447\u043a\u0430 \u0431\u0438\u0442, \u043a\u0430\u043a 2 FP64, \u043a\u0430\u043a 4 FP32, \u043a\u0430\u043a 4 Int32, \u0438 \u043c\u043d\u043e\u0433\u043e \u0435\u0449\u0435 \u043a\u0430\u043a, \u043d\u043e \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e 2 FP64- \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0444\u0438\u0437\u0438\u043a\u0438 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438.  <\/p>\n<p>\u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u0435\u043b \u0432 SSE4.2 \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<p><strong>movupd XMM4, oWORD[ Pk ]<\/strong> &#8212; MOVe Unaligned Packed Double \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 XMM4 octo-WORD, \u0442\u043e \u0435\u0441\u0442\u044c- 16 \u0431\u0430\u0439\u0442, \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 [Pk], \u043f\u0440\u0438\u0447\u0435\u043c, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438\u0445 \u043d\u0435\u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0435, \u0442\u043e \u0435\u0441\u0442\u044c, \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0439, \u0438 \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0431\u0430\u0439\u0442\u044b, \u0430 \u044d\u0442\u043e \u0434\u0432\u0430 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430.<\/p>\n<p><strong>movapd XMM4, oWORD[ Pk ]<\/strong> &#8212; \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0430\u0434\u0440\u0435\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d (Aligned) \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 16, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u0443\u043d\u0435\u043c \u043d\u0435\u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0439- \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0439- \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c movupd.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c \u043c\u0435\u0441\u0442\u0430\u043c\u0438- \u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.<\/p>\n<p><strong>movsd XMM4, qWORD[ Pk ] <\/strong>&#8212; MOVe Single Double \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 XMM4 quad-WORD, \u0442\u043e \u0435\u0441\u0442\u044c- 8 \u0431\u0430\u0439\u0442, \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 [Pk], \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442- \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e FP64 \u0447\u0438\u0441\u043b\u043e, \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442, \u0438 \u043a \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043d\u0435 \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u043b\u044f\u0435\u0442. \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c movsd XMM0, XMM1- \u0442\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442 \u043e\u0434\u043d\u043e \u043d\u0438\u0436\u043d\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u0437 XMM1 \u0432 XMM0. \u0415\u0435 \u0430\u043d\u0430\u043b\u043e\u0433- <strong>movlpd<\/strong>, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\/\u0432 \u043f\u0430\u043c\u044f\u0442\u044c.<\/p>\n<p><strong>movlhps XMM0, XMM1<\/strong> &#8212; MOVe Low to High Packed Single &#8212; \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e, \u0431\u0435\u0440\u0435\u0442 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 XMM1 \u0437\u0430 \u0434\u0432\u0430 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 XMM0. \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e 64 \u0431\u0438\u0442\u0430- \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u0437 \u043d\u0438\u0436\u043d\u0435\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0432 \u0432\u0435\u0440\u0445\u043d\u044e\u044e. \u043f\u0440\u0438\u0447\u0435\u043c, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0432 \u0432\u0438\u0434\u0435 movlhps XMM0, XMM0- \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u043c \u043d\u0438\u0436\u043d\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u0435\u0433\u043e \u0436\u0435 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0447\u0438\u0441\u043b\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.<\/p>\n<p><strong>movhlps XMM0, XMM1<\/strong>&#8212; \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442- \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0434\u0440\u0443\u0433\u043e\u0433\u043e (\u043c\u043e\u0436\u043d\u043e \u0438 \u044d\u0442\u043e\u0433\u043e \u0436\u0435).<\/p>\n<p><strong>mulpd XMM0, XMM4<\/strong>&#8212; \u043e\u043e\u043e, \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, MULtiply Packed Doubles- \u0432 XMM0 \u0443 \u043d\u0430\u0441 \u043b\u0435\u0436\u0430\u0442 (X0, Y0), \u0432 XMM4 \u0443 \u043d\u0430\u0441 \u043b\u0435\u0436\u0430\u0442 (X1, Y1), \u044d\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e\u043f\u0430\u0440\u043d\u043e \u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043d\u043e\u0432\u0430 \u0432 XMM0- \u0442\u043e \u0435\u0441\u0442\u044c, \u043f\u043e\u0441\u043b\u0435 \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 XMM0 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c ( X0X1, Y0Y1)- \u0434\u0432\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u0440\u0435\u043c\u044f \u043e\u0434\u043d\u043e\u0433\u043e!<\/p>\n<p><strong>addpd XMM0, XMM1<\/strong> &#8212; \u0432\u0442\u043e\u0440\u0430\u044f \u043b\u044e\u0431\u0438\u043c\u0430\u044f <s>\u0436\u0435\u043d\u0430 <\/s>\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f- ADDition Packed Double- \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0435 XMM0 = ( X0+X1, Y0+Y1).<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e mulsd\/addsd XMM0, XMM1- \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c\/\u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0438\u0436\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f<\/p>\n<p><strong>haddpd XMM0, XMM2<\/strong> &#8212; Horizontal ADDition Packed Double: \u0435\u0441\u043b\u0438 XMM0 = (x0,y0), \u0430 XMM1 = (x1,y1), \u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 XMM0 = (x0+y0, x1+y1)- \u0434\u0432\u0430 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u0442\u0430\u043a\u0442 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 addpd, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 &#171;\u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438&#187;).<\/p>\n<p>\u043d\u0443 \u0438 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/p>\n<p><strong>dppd XMM0, XMM6,&nbsp; 49 <\/strong>\/\/ imm8 = bit0 | ~bit1 | bit4 | bit5&nbsp;<\/p>\n<p>Dot Product Packed Double &#8212; \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430 \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0441 \u043c\u0430\u0441\u043a\u043e\u0439. \u041c\u0430\u0441\u043a\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0442\u044c, \u043a\u0430\u043a \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438 \u043a\u0443\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041c\u0430\u0441\u043a\u0430 49- \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e X0X1+Y0Y1 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430.&nbsp;<\/p>\n<p><strong>divpd\/divsd<\/strong> &#8212; \u043a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b mulpd\/mulsd \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u0435- \u043d\u043e \u043e\u043d\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435! \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0443 \u043d\u0438\u0445 \u0432 \u0447\u0435\u0442\u044b\u0440\u0435-\u043f\u044f\u0442\u044c \u0440\u0430\u0437 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435, \u0442\u043e \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u044b\u043b\u0438 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430\u043c\u0438 inline \u0438 register. \u0418\u043d\u043b\u0430\u0439\u043d \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432\u044b \u0432 \u0446\u0438\u043a\u043b\u0430\u0445, \u0430 register- \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0430 \u043d\u0435 \u0441\u0442\u0435\u043a, \u0447\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Delphi \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b, \u0435\u0441\u043b\u0438 \u0438\u0445 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u044f\u0442\u0438, \u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043f\u044f\u0442\u043e\u0433\u043e- \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0435\u043a- \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443. \u0415\u0449\u0435 \u0432 x64-mode Delphi \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0446\u0435\u043b\u0438\u043a\u043e\u043c) \u0438 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0438\u043d\u043b\u0430\u0439\u043d \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0431\u0435\u0437 inline- \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0448\u0442\u0440\u0430\u0444 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432, \u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0430\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0441\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c :-(. <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/414443\/#registry-v-x86-64\" rel=\"noopener noreferrer nofollow\">\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u043b\u043e\u043d\u0433\u0440\u0438\u0434 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u043c&#8230;<\/a><\/p>\n<p><a href=\"http:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Inline_Assembly_Code_Index\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e\u0442 Embarcadero<\/a><\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u043c \u0438\u043b\u0438 \u043f\u0440\u043e\u0447\u0435\u043b \u043b\u043e\u043d\u0433\u0440\u0438\u0434, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043c \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0438\u0441\u0435\u043b:<\/p>\n<pre><code>T_RealArr = array of real; T_Mul_s_s = class&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;private&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fSrc1: T_RealArr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fSrc2: T_RealArr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;fRes: T_RealArr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;procedure exec_SSE(const i0,i1: integer);&nbsp;&nbsp;&nbsp; end; \u2026  \/\/ IMPLEMENTATION const FloatSize = 8; procedure T_Mul_s_s.exec_SSE(const i0,i1: integer);&nbsp; {$IFDEF CPUX64} asm&nbsp;&nbsp;&nbsp; \/\/ Self = RCX&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;.PUSHNV R13 &nbsp;&nbsp;.PUSHNV R14 &nbsp;&nbsp;.PUSHNV R15 &nbsp;&nbsp;XOR R15,R15 &nbsp;&nbsp;XOR R14,R14 &nbsp;&nbsp;XOR R13,R13 &nbsp;&nbsp;mov R13, Self.fRes&nbsp; &nbsp; &nbsp; \/\/ R13 = @Res[0] &nbsp;&nbsp;mov R14, Self.fSrc1 &nbsp; &nbsp; \/\/ R14 = @Src1[0] &nbsp;&nbsp;mov R15, self.fSrc2 &nbsp; &nbsp; \/\/ R15 = @Src2[0]    \/\/ \u0440\u0430\u0441\u0447\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f Elem[i0] \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 &nbsp;&nbsp;XOR RAX, RAX&nbsp;&nbsp;&nbsp;         \/\/ \u043e\u0447\u0438\u0441\u0442\u0438\u043b\u0438 RAX &nbsp;&nbsp;mov EAX, i0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ i0- int32, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u043b\u0430\u0434\u0435\u043c \u0435\u0435 \u0432 EAX, \u0434\u043b\u044f RAX \u043e\u043d\u0430 \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u0430 &nbsp;&nbsp;imul RAX, FloatSize&nbsp;&nbsp;&nbsp; &nbsp;\/\/ \u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0441\u044c RAX   \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. &nbsp;&nbsp;add R13, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ R13 = @Res[i0] &nbsp;&nbsp;add R14, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ R14 = @Src1[i0] &nbsp;&nbsp;add R15, RAX &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \/\/ R15 = @Src2[i0]    \/\/ \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043a\u0438\u043d\u0435\u043c \u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0447\u0438\u0441\u043b\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: &nbsp;&nbsp;mov EAX, i1 &nbsp;&nbsp;sub EAX, i0 &nbsp;&nbsp;inc EAX \/\/ EAX = 1+i1-i0    \/\/ to be continued\u2026<\/code><\/pre>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0443 \u043d\u0430\u0441 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u0434\u043d\u0438\u043c \u043a\u0443\u0441\u043a\u043e\u043c, \u043d\u043e \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0438\u0445 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c, \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u0434, \u0430 \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 [i0, i1], \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p><strong>.NOFRAME<\/strong> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <a href=\"http:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Assembly_Procedures_and_Functions\" rel=\"noopener noreferrer nofollow\">\u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0435\u043a<\/a>, \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0435\u0435 \u043d\u0435 \u043d\u0430\u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c \u0441\u0442\u0435\u043a\u0430, \u0447\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0436\u0438\u043c\u043e \u043c\u0430\u043b\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0430\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445- \u0442\u043e \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u0435\u043d, \u0445\u043e\u0442\u044f \u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p><strong>.PUSHNV R13<\/strong> \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u0434\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430 \u0441\u0442\u0435\u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440 R13, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430- \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u043f\u0430\u0440\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c- \u0443 \u0432\u0441\u044f\u043a\u043e\u0433\u043e-\u043b\u0438 \u043f\u0443\u0448\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u044f \u043f\u043e\u043f\u0430. \u0434\u043b\u044f XMM-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u044f, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <strong>.SAVENV XMM5<\/strong><\/p>\n<p>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Embarcadero \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-319109","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/319109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=319109"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/319109\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=319109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=319109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=319109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}