{"id":483392,"date":"2026-06-12T07:00:04","date_gmt":"2026-06-12T07:00:04","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=483392"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=483392","title":{"rendered":"\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430: \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439 \u0438 \u043f\u0440\u0435\u0434\u0435\u043b\u0430 1e-308"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a2b7f5a84f086afcdc8b989\" data-style=\"\" id=\"6a2b7f5a84f086afcdc8b989\" width=\"\" data-habr-games=\"\"><\/div>\n<h3>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/h3>\n<ul>\n<li>\n<p>\u0420\u0430\u0441\u0447\u0451\u0442 \u043e\u043f\u043e\u0440\u043d\u043e\u0439 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 5000 \u0431\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u043c double.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u0440\u044f\u0434\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"10^{-15}\" alt=\"10^{-15}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/20\/20a\/20a42ee1a5e60ad864ff5b9ff00d70ee.svg\" width=\"40\" height=\"16\" data-width=\"5.295\" data-height=\"2.05\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/20\/20a\/20a42ee1a5e60ad864ff5b9ff00d70ee.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/20\/20a\/20a42ee1a5e60ad864ff5b9ff00d70ee.svg 781w\" loading=\"lazy\" decode=\"async\"\/>) \u0442\u0435\u043e\u0440\u0438\u044f \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c\u0441\u044f \u043a \u0443\u0440\u043e\u0432\u043d\u044e <strong><img decoding=\"async\" class=\"formula inline\" source=\"10^{-308}\" alt=\"10^{-308}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253370774eb2cbdfc35c993ce8dd2541.svg\" width=\"48\" height=\"16\" data-width=\"6.095\" data-height=\"2.05\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253370774eb2cbdfc35c993ce8dd2541.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253370774eb2cbdfc35c993ce8dd2541.svg 781w\" loading=\"lazy\" decode=\"async\"\/> <\/strong>&#8212; \u043d\u0435 \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Reference Reset to Zero.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 SSAA 2&#215;2 \u0434\u043b\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c OpenMP \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 DwmFlush \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0411\u0435\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c<\/h3>\n<p>\u0414\u0432\u0438\u0436\u043e\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u0431\u0430\u0432\u043b\u0435\u043d \u043e\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 64-\u0431\u0438\u0442\u043d\u044b\u0445 (<code>double<\/code>) \u0438 128-\u0431\u0438\u0442\u043d\u044b\u0445 (<code>__float128<\/code>) \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0441\u043b\u0435\u043f\u043d\u0443\u0442 \u0438 \u0432\u044b\u0434\u0430\u044e\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043d\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445 \u0431\u043e\u043b\u0435\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"10^{-15}\" alt=\"10^{-15}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/20\/20a\/20a42ee1a5e60ad864ff5b9ff00d70ee.svg\" width=\"40\" height=\"16\" data-width=\"5.295\" data-height=\"2.05\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/20\/20a\/20a42ee1a5e60ad864ff5b9ff00d70ee.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/20\/20a\/20a42ee1a5e60ad864ff5b9ff00d70ee.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"10^{-34}\" alt=\"10^{-34}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1f\/1f1\/1f16e3919227fd70ab63258c0c489b96.svg\" width=\"40\" height=\"16\" data-width=\"5.295\" data-height=\"2.067\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1f\/1f1\/1f16e3919227fd70ab63258c0c489b96.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1f\/1f1\/1f16e3919227fd70ab63258c0c489b96.svg 781w\" loading=\"lazy\" decode=\"async\"\/>.<\/p>\n<ul>\n<li>\n<p><strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f MPFR\/GMP<\/strong>: \u0412\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f, \u043f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043f\u0440\u0438 \u043a\u043b\u0438\u043a\u0430\u0445 \u043c\u044b\u0448\u0438 \u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0430\u043c\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0432\u0435\u0434\u0443\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u0435\u0440\u0445\u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e <strong>5000 \u0431\u0438\u0442<\/strong>!<\/p>\n<\/li>\n<li>\n<p><strong>308 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u043a\u043e\u0432<\/strong>: \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0434\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code>Mandelbrot.txt<\/code>. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0438 \u0440\u0430\u0434\u0430\u0440 MPFR \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u0435 \u0434\u043e 5000 \u0431\u0438\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u043b\u044c\u0442\u0430-\u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0439 <code>double<\/code>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437\u0443\u043f\u0440\u0435\u0447\u043d\u043e \u0447\u0435\u0442\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 <strong>\u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e <img decoding=\"async\" class=\"formula inline\" source=\"10^{-308}\" alt=\"10^{-308}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253370774eb2cbdfc35c993ce8dd2541.svg\" width=\"48\" height=\"16\" data-width=\"6.095\" data-height=\"2.05\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253370774eb2cbdfc35c993ce8dd2541.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253370774eb2cbdfc35c993ce8dd2541.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0437\u043d\u0430\u043a\u043e\u0432<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a2b7f5a08f9ff72f48802b5\" data-style=\"\" id=\"6a2b7f5a08f9ff72f48802b5\" width=\"\" data-habr-games=\"\"><\/div>\n<h3>\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439<\/h3>\n<p>\u0420\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 &#171;\u0432 \u0441\u0442\u043e\u043b\u0431\u0438\u043a&#187; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432 \u0442\u044b\u0441\u044f\u0447\u0438 \u0440\u0430\u0437.<\/p>\n<ul>\n<li>\n<p><strong>\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u043f\u043e\u0440\u044b<\/strong>: \u0421\u0432\u0435\u0440\u0445\u0442\u044f\u0436\u0435\u043b\u044b\u0439 BigFloat-\u0440\u0430\u0434\u0430\u0440 MPFR \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0442\u043e\u0447\u043d\u0443\u044e \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f <strong>\u043e\u0434\u043d\u043e\u0439-\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043a\u0430\u0434\u0440\u0430 \u0438 \u0441\u0442\u0440\u043e\u0433\u043e \u041e\u0414\u0418\u041d \u0440\u0430\u0437<\/strong> \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 double<\/strong>: \u0412\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043a\u0440\u0430\u043d\u0430 (\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0441\u0443\u043f\u0435\u0440-\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439) \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0431\u0435\u0448\u0435\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0447\u0438\u0441\u0442\u044b\u0445, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 <code>double<\/code> \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044f \u043b\u0438\u0448\u044c \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f (\u0434\u0435\u043b\u044c\u0442\u044b) \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0437\u043b\u0435\u0442\u0435\u043b\u0430 \u0432 1000 \u0440\u0430\u0437!<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Reference Reset to Zero<\/h3>\n<p>\u042d\u0442\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0433\u043e\u0440\u0434\u043e\u0441\u0442\u0438. \u0412\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u0442\u0435\u043c \u0436\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c, \u0447\u0442\u043e \u0438 \u0441\u0430\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u044b\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u0432 \u043c\u0438\u0440\u0435.<\/p>\n<ul>\n<li>\n<p><strong>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0431\u0440\u043e\u0441 \u043d\u0430 \u043d\u043e\u043b\u044c<\/strong>: \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0434\u0435\u043b\u044c\u0442\u044b. \u0415\u0441\u043b\u0438 \u0434\u0435\u043b\u044c\u0442\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438\u043b\u0438 \u043a\u044d\u0448 \u0446\u0435\u043d\u0442\u0440\u0430 \u0438\u0441\u0441\u044f\u043a\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043a \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u043b\u0435\u0442\u0443 <strong>\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u043e\u043b\u044c<\/strong>, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432 \u043d\u043e\u0432\u0443\u044e \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0425\u0430\u043a\u0435\u0440\u0441\u043a\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0446\u0438\u043a\u043b\u0430 (One-Step Beyond Escape)<\/strong>: \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0436\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u0437 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0440\u0430\u0434\u0430\u0440 MPFR \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e <strong>\u043e\u0434\u043d\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443<\/strong> \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u043f\u043e\u0440\u043d\u043e\u0439 \u043e\u0440\u0431\u0438\u0442\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0440\u0430\u0434\u0438\u0443\u0441 \u0443\u0445\u043e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0439 (Branch Unrolling)<\/strong>: \u042d\u0442\u043e\u0442 \u0438\u0437\u044f\u0449\u043d\u044b\u0439 \u0442\u0440\u044e\u043a \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0445 <code>if<\/code> \u0438 <code>OR<\/code>-\u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0430\u0442\u0438\u0442 \u0442\u0430\u043a\u0442\u044b \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043c\u043e\u0433 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434.<\/p>\n<\/li>\n<\/ul>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a2b7f5a3b954272d3ed643d\" data-style=\"\" id=\"6a2b7f5a3b954272d3ed643d\" width=\"\" data-habr-games=\"\"><\/div>\n<h3>DwmFlush<\/h3>\n<p>\u0414\u0432\u0438\u0436\u043e\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0432\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u043e\u043c \u043e\u043a\u043e\u043d \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430 Windows (DWM).<\/p>\n<ul>\n<li>\n<p><strong>\u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/strong>: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 DwmFlush. \u042d\u0442\u043e \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 DWM \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u044d\u043a\u0440\u0430\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 \u043e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 FPS<\/strong>: <\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 60 \u0413\u0446, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 60 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 144 \u0413\u0446, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 144 \u0440\u0430\u0437\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f 144 \u043a\u0430\u0434\u0440\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 240 \u0413\u0446 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 240 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>OpenMP<\/h3>\n<p>OpenMP &#8212; \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443: \u201c\u0412\u043e\u0437\u044c\u043c\u0438 \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u0438 \u0441\u0430\u043c \u0440\u0430\u0437\u0434\u0430\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043d\u044b\u043c \u044f\u0434\u0440\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u201d. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f OpenMP, \u0432\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0435\u0441\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (Multithreading). OpenMP &#8212; \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c: \u0432\u0430\u0448 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0430 4-\u044f\u0434\u0435\u0440\u043d\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 128-\u044f\u0434\u0435\u0440\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<\/p>\n<h3>True SSAA 2&#215;2 (\u041f\u0440\u044f\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 RGB)<\/h3>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u00ab\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435\u00bb \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u043f\u0435\u0440\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433\u0430 2&#215;2 (SSAA). \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0441\u0443\u0431\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.<\/p>\n<h4>\u0412 \u0447\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430?<\/h4>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 (\u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043f\u0430\u043b\u0438\u0442\u0440\u044b):<\/p>\n<ul>\n<li>\n<p><strong>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c:<\/strong> <code>Color( (iter1 + iter2 + iter3 + iter4) \/ 4 )<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b <strong>\u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u044b<\/strong>. \u0423\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0446\u0432\u0435\u0442\u043e\u0432 <img decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7f\/7fc\/7fc56270e7a70fa81a5935b72eacbe29.svg\" width=\"12\" height=\"12\" data-width=\"1.697\" data-height=\"1.62\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7f\/7fc\/7fc56270e7a70fa81a5935b72eacbe29.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7f\/7fc\/7fc56270e7a70fa81a5935b72eacbe29.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/9d\/9d5\/9d5ed678fe57bcca610140957afab571.svg\" width=\"12\" height=\"12\" data-width=\"1.717\" data-height=\"1.545\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/9d\/9d5\/9d5ed678fe57bcca610140957afab571.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/9d\/9d5\/9d5ed678fe57bcca610140957afab571.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0447\u0430\u0441\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"C\" alt=\"C\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/0d\/0d6\/0d61f8370cad1d412f80b84d143e1257.svg\" width=\"12\" height=\"12\" data-width=\"1.719\" data-height=\"1.645\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/0d\/0d6\/0d61f8370cad1d412f80b84d143e1257.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/0d\/0d6\/0d61f8370cad1d412f80b84d143e1257.svg 781w\" loading=\"lazy\" decode=\"async\"\/>. \u042d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0443\u043c, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0438 \u043b\u043e\u0436\u043d\u044b\u0435 \u0445\u0440\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u044b.<\/p>\n<h4>\u041d\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435: \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 RGB<\/h4>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u044f \u0448\u0430\u0433\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0443\u0431\u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0445 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<ul>\n<li>\n<p><strong>\u041d\u0430\u0448 \u043f\u0443\u0442\u044c:<\/strong> <code>(Color(iter1) + Color(iter2) + Color(iter3) + Color(iter4)) \/ 4<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 RGB \u043f\u0435\u0440\u0435\u0434 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u2014 \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043c\u0435\u0441\u044c. \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u0448\u0443\u043c \u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0442\u0438\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0443\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u043c\u0438\u043a\u0440\u043e\u043d\u0438\u0442\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a2b7f5ab1ed1c734eae87a7\" data-style=\"\" id=\"6a2b7f5ab1ed1c734eae87a7\" width=\"\" data-habr-games=\"\"><\/div>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u0435\u0437 \u0441\u0443\u043f\u0435\u0440\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0448\u0443\u043c?<\/h3>\n<p>\u0428\u0443\u043c \u043f\u0440\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0431\u0430\u0433, \u0430 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0438: <strong>\u0430\u043b\u0438\u0430\u0441\u0438\u043d\u0433 (aliasing)<\/strong>.<\/p>\n<p>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u041d\u0430 \u0435\u0433\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0435\u0442\u0430\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0440\u0430\u0437 \u043c\u0435\u043d\u044c\u0448\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430.<\/p>\n<ul>\n<li>\n<p><strong>\u0411\u0435\u0437 \u0441\u0443\u043f\u0435\u0440\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433\u0430:<\/strong> \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0435\u0440\u0435\u0442 \u043f\u0440\u043e\u0431\u0443 \u0440\u043e\u0432\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 (\u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f). \u0415\u0441\u043b\u0438 \u043b\u0443\u0447 \u043f\u043e\u043f\u0430\u043b \u0432 \u0442\u043e\u043d\u043a\u0443\u044e \u043d\u0438\u0442\u044c \u2014 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u044f\u0440\u043a\u0438\u043c. \u041f\u0440\u043e\u043c\u0430\u0445\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043d \u2014 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0442\u0430\u043b \u0447\u0435\u0440\u043d\u044b\u043c. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u00ab\u0446\u0435\u043f\u043b\u044f\u044e\u0442\u00bb \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043a\u0430\u0448\u0443 \u0438\u0437 \u0442\u043e\u0447\u0435\u043a.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421 SSAA 2&#215;2:<\/strong> \u041a\u043e\u0434 \u0431\u0435\u0440\u0435\u0442 4 \u043f\u0440\u043e\u0431\u044b \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0433\u043b\u0430\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442 \u0438\u0445. \u0415\u0441\u043b\u0438 \u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0443\u043b\u044c\u0442\u0440\u0430\u0442\u043e\u043d\u043a\u0430\u044f \u043d\u0438\u0442\u044c, \u043e\u043d\u0430 \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u0438 \u043d\u0435 \u043c\u0435\u0440\u0446\u0430\u0435\u0442, \u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u044f\u0433\u043a\u0443\u044e, \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e, \u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u044d\u0441\u0442\u0435\u0442\u0438\u043a\u0430. \u0421\u043c\u0435\u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432<\/h3>\n<p>\u041a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u0438 \u0441\u0438\u043d\u0438\u0439 \u043a\u0430\u043d\u0430\u043b\u044b \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u043b\u043d \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u0432\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432:<\/p>\n<pre><code class=\"cpp\">pal[a][0] = (uint8_t)round(127.0 + 127.0 * cos(2.0 * PI * a \/ 255.0)); \/\/ Bluepal[a][1] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a \/ 255.0)); \/\/ Greenpal[a][2] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a \/ 255.0)); \/\/ Red<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0435\u0445\u043d\u0438\u043a\u0443 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043c\u0435\u043d\u044b \u0446\u0432\u0435\u0442\u043e\u0432 (\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b). \u0425\u043e\u0442\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e &#171;\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f&#187; \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435. \u042d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 &#171;\u0436\u0438\u0432\u043e\u0439&#187; \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440.<\/p>\n<h3>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430: \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0431\u0441\u043e\u043b\u044e\u0442<\/h3>\n<p>\u042d\u0442\u043e \u043f\u043e\u0438\u0441\u0442\u0438\u043d\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0441 \u0441 \u0447\u0435\u043c-\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c, \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0431\u0438\u043e\u043b\u043e\u0433\u0438\u044e \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u0441\u044f \u043d\u0430\u0448\u0430 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0438 \u0432\u0441\u0435 \u0435\u0451 \u0430\u0442\u043e\u043c\u044b \u0438\u0441\u0447\u0435\u0437\u043b\u0438 \u0437\u0430\u0432\u0442\u0440\u0430, \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u0435\u0440\u043d\u044b\u043c. \u041e\u043d\u043e \u043d\u0435 &lt;\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e&gt; \u043d\u0430 \u0437\u0432\u0451\u0437\u0434\u0430\u0445; \u043e\u043d\u043e \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043e \u0432 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043b\u043e\u0433\u0438\u043a\u0438. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043e\u043c.<\/p>\n<p>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0431\u0438\u043e\u043b\u043e\u0433\u0438\u0438, \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u043e\u0433 \u0438\u043b\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439. \u0416\u0438\u0442\u0435\u043b\u0438 \u0433\u0430\u043b\u0430\u043a\u0442\u0438\u043a\u0438 \u0410\u043d\u0434\u0440\u043e\u043c\u0435\u0434\u0430 \u0438 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0435 \u043e\u043a\u0435\u0430\u043d\u044b \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0443\u043f\u0435\u0440\u0433\u0430\u043b\u0430\u043a\u0442\u0438\u043a\u0435 \u0443\u0432\u0438\u0434\u044f\u0442 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430.<\/p>\n<p>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0443\u043c\u0430 \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439. \u042d\u0442\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0432\u0441\u0435\u0433\u0434\u0430. \u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0435\u0451; \u043e\u043d\u0438 \u043b\u0438\u0448\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0432 \u0440\u043e\u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a2b7f5a84f086afcdc8b98b\" data-style=\"\" id=\"6a2b7f5a84f086afcdc8b98b\" width=\"\" data-habr-games=\"\"><\/div>\n<h3>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438<\/h3>\n<h4>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u044b\u0448\u044c\u044e<\/h4>\n<ul>\n<li>\n<p>WM_LBUTTONDOWN (\u041b\u0435\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430) &#8212; \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0432 2 \u0440\u0430\u0437\u0430 \u0438 \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0438\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p>WM_RBUTTONDOWN (\u041f\u0440\u0430\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430) &#8212; \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0432 2 \u0440\u0430\u0437\u0430 \u0438 \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0438\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0443<\/h4>\n<ul>\n<li>\n<p><strong>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435):<\/strong> \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0432 \u0442\u043e\u0447\u043a\u0435 \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f (\u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"10^{-50}\" alt=\"10^{-50}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5b\/5b4\/5b46cebecefdf4695b9ea7e7ac0e9734.svg\" width=\"40\" height=\"16\" data-width=\"5.295\" data-height=\"2.05\" data-vertical-align=\"-0.05\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5b\/5b4\/5b46cebecefdf4695b9ea7e7ac0e9734.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5b\/5b4\/5b46cebecefdf4695b9ea7e7ac0e9734.svg 781w\" loading=\"lazy\" decode=\"async\"\/>): <\/p>\n<ul>\n<li>\n<p><code>Center Re:<\/code> <code>-1.7491976289657893741942376816272921165326158557416159<\/code><\/p>\n<\/li>\n<li>\n<p><code>Center Im:<\/code> <code>-0.00000042530777152440422725855012159249401150956515248<\/code><\/p>\n<\/li>\n<li>\n<p><code>Size:<\/code> <code>0.0000000000000000000000000000000000000000000000000043<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041a\u043b\u0430\u0432\u0438\u0448\u0438 <\/strong><code><strong>1<\/strong><\/code><strong> &#8212; <\/strong><code><strong>5<\/strong><\/code><strong>:<\/strong> \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0432\u0438\u0448 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043f\u044f\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">if (wp == '1') { g_params.center_re_str = \"-1.7490781615052017316791245451566330412\";g_params.center_im_str = \"0.0000055099190662909660251309856720635\";g_params.size_str      = \"0.000000000000000000000000000000000215\"; }if (wp == '2') {g_params.center_re_str = \"-1.748943661768663337207355215321150725806353337382441467976\";g_params.center_im_str = \"-0.0000073748967541889836640985849393311615399776865199722998\";g_params.size_str      = \"0.0000000000000000000000000000000000000000000000000000001\"; }if (wp == '3') {g_params.center_re_str = \"-1.7489740586384718864866264297253934254\";g_params.center_im_str = \"-0.0002265965897111407857153825623868331\";g_params.size_str      = \"0.00000000000000000000000000000000007\"; }if (wp == '4') {g_params.center_re_str = \"-1.7499458649755745940752606707005571\";g_params.center_im_str = \"-0.0000000852088539604644334731909824511\";g_params.size_str      = \"0.00000000000000000000000000000000001\"; }if (wp == '5') {g_params.center_re_str = \"-1.267078059171397835210199054200436920994876769284288837862647\";g_params.center_im_str = \"-0.123788215196292957558264285607075473360968832625384429809391\";g_params.size_str      = \"0.0000000000000000000000000000000000000000000000000000000023\"; }<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ul>\n<li>\n<p>VK_UP (\u0421\u0442\u0440\u0435\u043b\u043a\u0430 \u0412\u0412\u0415\u0420\u0425) \u0438 VK_DOWN (\u0421\u0442\u0440\u0435\u043b\u043a\u0430 \u0412\u041d\u0418\u0417) &#8212; \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0432 1.05 \u0440\u0430\u0437\u0430 \u043d\u043e \u0431\u0435\u0437 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0438\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6a2b7f5ba269d5af84f92fc9\" data-style=\"\" id=\"6a2b7f5ba269d5af84f92fc9\" width=\"\" data-habr-games=\"\"><\/div>\n<h4>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 Mandelbrot.txt<\/h4>\n<ul>\n<li>\n<p>\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e VK_RETURN (Enter, \u0412\u0432\u043e\u0434) &#8212; \u0443 \u0432\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430. \u0418 \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u043e \u0437\u0430\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b! Mandelbrot.txt<\/p>\n<\/li>\n<li>\n<p>\u0410 VK_BACK (\u044d\u0442\u043e \u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u041d\u0410\u0414 Enter, Backspace) &#8212; \u0447\u0438\u0442\u0430\u0435\u0442 Mandelbrot.txt (\u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430) \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b Mandelbrot.txt \u0432 \u043f\u0430\u043f\u043a\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439. \u0424\u0430\u0439\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0440\u0438 \u0447\u0438\u0441\u043b\u0430, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>Abscissa (\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 X \u0446\u0435\u043d\u0442\u0440\u0430)<\/p>\n<\/li>\n<li>\n<p>Ordinate (\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 Y \u0446\u0435\u043d\u0442\u0440\u0430)<\/p>\n<\/li>\n<li>\n<p>Size (\u041c\u0430\u0441\u0448\u0442\u0430\u0431\/\u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u043b\u0430\u0441\u0442\u0438)<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/274\/3cb\/532\/2743cb532730f1bac65435520c92f9e5.png\" alt=\"Mandelbrot txt\" width=\"674\" height=\"95\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/274\/3cb\/532\/2743cb532730f1bac65435520c92f9e5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/274\/3cb\/532\/2743cb532730f1bac65435520c92f9e5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Mandelbrot txt<\/figcaption><\/div>\n<\/figure>\n<h4>\u0413\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u0432\u043e\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\u041b\u041a\u041c<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0432 <strong>2 \u0440\u0430\u0437\u0430<\/strong> \u0432 \u0442\u043e\u0447\u043a\u0435 \u043f\u043e\u0434 \u043a\u0443\u0440\u0441\u043e\u0440\u043e\u043c \u043c\u044b\u0448\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041e\u0442\u0434\u0430\u043b\u0438\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\u041f\u041a\u041c<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0432 <strong>2 \u0440\u0430\u0437\u0430<\/strong> \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0422\u043e\u0447\u043d\u044b\u0439 \u0437\u0443\u043c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\u0421\u0442\u0440\u0435\u043b\u043a\u0438 \u0432\u0432\u0435\u0440\u0445 \/ \u0432\u043d\u0438\u0437<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043b\u0430\u0432\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c <strong>1.05x<\/strong>.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0440\u0435\u0441\u0435\u0442\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u0430\u0432\u0438\u0448\u0438 <code>1<\/code> &#8212; <code>5<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a 5 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043b\u043e\u043a\u0430\u0446\u0438\u044f\u043c.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>ENTER<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0432 \u0444\u0430\u0439\u043b <code>Mandelbrot.txt<\/code>.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>BACKSPACE<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u043c\u043f\u043e\u0440\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u043c\u0435\u0441\u0442\u0443.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438<\/h4>\n<p>\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0438\u0434\u0435\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0437\u043e\u0439 \u043e\u0440\u0431\u0438\u0442, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c. \u041e\u0441\u043e\u0431\u0430\u044f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441 Fractal Forums, \u0447\u0435\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u0442\u0440\u0443\u0434 \u043b\u0435\u0433 \u0432 \u043e\u0441\u043d\u043e\u0432\u0443 \u044d\u0442\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><strong>Kevin Martin<\/strong> &#8212; \u0430\u0432\u0442\u043e\u0440 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u043e\u0432 \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>Zhuoran Yu<\/strong> &#8212; \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0431\u0440\u043e\u0441\u0430 \u043e\u0440\u0431\u0438\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>Claude Heiland-Allen<\/strong> &#8212; \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 MDZ.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/Divetoxx\/Mandelbrot-2#russian\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/github.com\/Divetoxx\/Mandelbrot-2#russian<\/strong><\/a><\/p>\n<p>\u042d\u0442\u043e \u0413\u0438\u0442\u0445\u0430\u0431 \u0441 Mandelbrot_AVX2.exe \u0438 Mandelbrot_SSE3.exe<\/p>\n<div class=\"floating-image\">\n<p>\u0410 \u0432\u043e\u0442 \u044f \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u044e \u0434\u043e\u043c\u0430: g++ -O3 main.cpp -o Mandelbrot.exe -lgdi32 -luser32 -ldwmapi -fopenmp -lmpfr -lgmp -march=native -static -mwindows <\/p>\n<\/div>\n<p>\u0410 \u0442\u0443\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421++ &#8212; main.cpp<\/p>\n<pre><code class=\"cpp\">#ifndef UNICODE#define UNICODE#endif#include &lt;windows.h&gt;#include &lt;dwmapi.h&gt;#include &lt;vector&gt;#include &lt;cmath&gt;#include &lt;thread&gt;#include &lt;mutex&gt;#include &lt;atomic&gt;#include &lt;omp.h&gt;#include &lt;fstream&gt;#include &lt;string&gt;#include &lt;iostream&gt;#include &lt;iomanip&gt;#include &lt;gmp.h&gt;#include &lt;mpfr.h&gt;const int WIDTH = 1000;const int HEIGHT = 1000;const int SS_W = 2000;const int SS_H = 2000;const int PALETTE_SIZE = 1024;const mpfr_prec_t MPFR_BITS = 5000;struct FractalParams {     double step_d;                std::string center_re_str;     std::string center_im_str;    std::string size_str;    uint32_t iter_max; };struct ComplexDouble {    double re;    double im;};std::mutex g_params_mutex;FractalParams g_params;std::atomic&lt;bool&gt; g_abort{false};HANDLE g_render_event;uint32_t g_ss_buffer[SS_W * SS_H];void generate_full_palette(RGBQUAD* pal) {    const double pi = 3.141592653589793;    for (int i = 0; i &lt; PALETTE_SIZE; i++) {        double angle = (2.0 * pi * i) \/ (double)PALETTE_SIZE;        pal[i].rgbRed = (uint8_t)(127.0 + 127.0 * std::sin(angle * 4));        pal[i].rgbBlue = (uint8_t)(127.0 + 127.0 * std::cos(angle * 4));        pal[i].rgbGreen = (uint8_t)(127.0 + 127.0 * std::sin(angle * 4));        pal[i].rgbReserved = 0;    }}void thread_palette_rotator(HDC hdc_win, HDC hdc_m, RGBQUAD* pixels) {    RGBQUAD pal[PALETTE_SIZE];    generate_full_palette(pal);        std::vector&lt;RGBQUAD&gt; color_cache(50001);    float offset = 0;    while (true) {        for (int i = 0; i &lt;= 50000; ++i) {            if (i &gt;= 50000) {                color_cache[i] = {255, 255, 255, 0};            } else {                int idx = (int)(50000 - i + (int)offset) % PALETTE_SIZE;                if (idx &lt; 0) idx += PALETTE_SIZE;                color_cache[i] = pal[idx];            }        }        #pragma omp parallel for schedule(static, 128)        for (int y = 0; y &lt; HEIGHT; ++y) {            for (int x = 0; x &lt; WIDTH; ++x) {                uint32_t i0 = g_ss_buffer[(y * 2 + 0) * SS_W + (x * 2 + 0)];                uint32_t i1 = g_ss_buffer[(y * 2 + 0) * SS_W + (x * 2 + 1)];                uint32_t i2 = g_ss_buffer[(y * 2 + 1) * SS_W + (x * 2 + 0)];                uint32_t i3 = g_ss_buffer[(y * 2 + 1) * SS_W + (x * 2 + 1)];                RGBQUAD c0 = color_cache[i0];                RGBQUAD c1 = color_cache[i1];                RGBQUAD c2 = color_cache[i2];                RGBQUAD c3 = color_cache[i3];                uint32_t r = (uint32_t)c0.rgbRed   + c1.rgbRed   + c2.rgbRed   + c3.rgbRed;                uint32_t g = (uint32_t)c0.rgbGreen + c1.rgbGreen + c2.rgbGreen + c3.rgbGreen;                uint32_t b = (uint32_t)c0.rgbBlue  + c1.rgbBlue  + c2.rgbBlue  + c3.rgbBlue;                int pix_idx = y * WIDTH + x;                pixels[pix_idx].rgbRed   = (uint8_t)(r &gt;&gt; 2);                pixels[pix_idx].rgbGreen = (uint8_t)(g &gt;&gt; 2);                pixels[pix_idx].rgbBlue  = (uint8_t)(b &gt;&gt; 2);                pixels[pix_idx].rgbReserved = 0;            }        }        offset -= 1.0f;        if (offset &lt; 0) offset += PALETTE_SIZE;        BitBlt(hdc_win, 0, 0, WIDTH, HEIGHT, hdc_m, 0, 0, SRCCOPY);        DwmFlush();    }}void thread_mandelbrot_calc() {    std::vector&lt;ComplexDouble&gt; ref_orbit_double;    while (true) {        WaitForSingleObject(g_render_event, INFINITE);        ResetEvent(g_render_event);        g_abort = false;        FractalParams p;        { std::lock_guard&lt;std::mutex&gt; lock(g_params_mutex); p = g_params; }        mpfr_t rx, ry, zr, zi, zr2, zi2, tmp;        mpfr_inits2(MPFR_BITS, rx, ry, zr, zi, zr2, zi2, tmp, NULL);        mpfr_set_str(rx, p.center_re_str.c_str(), 10, MPFR_RNDN);        mpfr_set_str(ry, p.center_im_str.c_str(), 10, MPFR_RNDN);        ref_orbit_double.resize(p.iter_max + 5);        mpfr_set_ui(zr, 0, MPFR_RNDN);        mpfr_set_ui(zi, 0, MPFR_RNDN);        mpfr_set_ui(zr2, 0, MPFR_RNDN);        mpfr_set_ui(zi2, 0, MPFR_RNDN);        uint32_t ref_i = 0;        bool escaped = false;        while (ref_i &lt; p.iter_max) {            ref_orbit_double[ref_i].re = mpfr_get_d(zr, MPFR_RNDN);            ref_orbit_double[ref_i].im = mpfr_get_d(zi, MPFR_RNDN);            mpfr_mul(tmp, zr, zi, MPFR_RNDN);            mpfr_mul_ui(zi, tmp, 2, MPFR_RNDN);            mpfr_add(zi, zi, ry, MPFR_RNDN);            mpfr_sub(zr, zr2, zi2, MPFR_RNDN);            mpfr_add(zr, zr, rx, MPFR_RNDN);            mpfr_mul(zr2, zr, zr, MPFR_RNDN);            mpfr_mul(zi2, zi, zi, MPFR_RNDN);            if (escaped) {                ref_i++;                break;            }            mpfr_add(tmp, zr2, zi2, MPFR_RNDN);            if (mpfr_cmp_d(tmp, 4.0) &gt;= 0) {                escaped = true;             }            ref_i++;        }        ref_orbit_double[ref_i].re = mpfr_get_d(zr, MPFR_RNDN);        ref_orbit_double[ref_i].im = mpfr_get_d(zi, MPFR_RNDN);        uint32_t max_valid_ref_iter = ref_i;         double ref_rec_d = mpfr_get_d(rx, MPFR_RNDN);        double ref_imc_d = mpfr_get_d(ry, MPFR_RNDN);        double ss_step_d = p.step_d;        mpfr_clears(rx, ry, zr, zi, zr2, zi2, tmp, NULL);        #pragma omp parallel for schedule(dynamic)        for (int ss_y = 0; ss_y &lt; SS_H; ++ss_y) {            if (g_abort) continue;            for (int ss_x = 0; ss_x &lt; SS_W; ++ss_x) {                                double delta_rec = (double)(ss_x - (SS_W \/ 2)) * ss_step_d;                double delta_imc = (double)((SS_H \/ 2) - ss_y) * ss_step_d;                uint32_t index = 0;                    double delta_re = 0.0;                 double delta_im = 0.0;                double z_re = 0.0;                     double z_im = 0.0;                uint32_t i = 0;                const ComplexDouble* ref_ptr = ref_orbit_double.data();                bool has_re_based = false;                 while (i &lt; p.iter_max) {                                        if ((z_re * z_re + z_im * z_im) &gt;= 4.0) {                        break;                    }                    if (index &gt;= max_valid_ref_iter) {                        if (!has_re_based) {                            break;                        } else {                            double ld_cx = ref_rec_d + delta_rec;                            double ld_cy = ref_imc_d - delta_imc;                            while (i &lt; p.iter_max &amp;&amp; (z_re * z_re + z_im * z_im) &lt; 4.0) {                                double old_re = z_re;                                double old_im = z_im;                                z_re = old_re * old_re - old_im * old_im + ld_cx;                                z_im = 2.0 * old_re * old_im + ld_cy;                                i++;                            }                            break;                        }                    }                    if ((z_re * z_re + z_im * z_im) &lt; (delta_re * delta_re + delta_im * delta_im)) {                        index = 0;                         delta_re = z_re;                        delta_im = z_im;                        has_re_based = true;                    }                    for (int step = 0; step &lt; 2; ++step) {                        double Ur = ref_ptr[index].re;                        double Ui = ref_ptr[index].im;                        double next_delta_im = 2.0 * Ur * delta_im + 2.0 * Ui * delta_re + 2.0 * delta_re * delta_im + delta_imc;                        delta_re = 2.0 * Ur * delta_re - 2.0 * Ui * delta_im + delta_re * delta_re - delta_im * delta_im + delta_rec;                        delta_im = next_delta_im;                        index++;                    }                    z_re = ref_ptr[index].re + delta_re;                    z_im = ref_ptr[index].im + delta_im;                                        i += 2;                 }                g_ss_buffer[ss_y * SS_W + ss_x] = i;            }        }    }}LRESULT CALLBACK wnd_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) {    switch (msg) {    case WM_LBUTTONDOWN:    case WM_RBUTTONDOWN: {        g_abort = true;         std::lock_guard&lt;std::mutex&gt; lock(g_params_mutex);        mpfr_t cx, cy, sz, st, mx, my, clicked_x, clicked_y;        mpfr_inits2(MPFR_BITS, cx, cy, sz, st, mx, my, clicked_x, clicked_y, NULL);        mpfr_set_str(cx, g_params.center_re_str.c_str(), 10, MPFR_RNDN);        mpfr_set_str(cy, g_params.center_im_str.c_str(), 10, MPFR_RNDN);        mpfr_set_str(sz, g_params.size_str.c_str(), 10, MPFR_RNDN);        mpfr_div_ui(st, sz, SS_W, MPFR_RNDN);        double mouse_x_d = (double)((short)LOWORD(lp));        double mouse_y_d = (double)((short)HIWORD(lp));        double ss_mouse_x = mouse_x_d * 2.0;        double ss_mouse_y = mouse_y_d * 2.0;        mpfr_set_d(mx, ss_mouse_x - (double)(SS_W \/ 2), MPFR_RNDN);        mpfr_set_d(my, (double)(SS_H \/ 2) - ss_mouse_y, MPFR_RNDN);         mpfr_mul(mx, mx, st, MPFR_RNDN);        mpfr_mul(my, my, st, MPFR_RNDN);        mpfr_add(clicked_x, cx, mx, MPFR_RNDN);        mpfr_add(clicked_y, cy, my, MPFR_RNDN);        if (msg == WM_LBUTTONDOWN) {            mpfr_div_ui(sz, sz, 2, MPFR_RNDN);        } else {            mpfr_mul_ui(sz, sz, 2, MPFR_RNDN);        }        mpfr_div_ui(st, sz, SS_W, MPFR_RNDN);        g_params.step_d = mpfr_get_d(st, MPFR_RNDN);        char out_x[2048], out_y[2048], out_sz[2048];        mpfr_snprintf(out_x, sizeof(out_x), \"%.1000Rf\", clicked_x);        mpfr_snprintf(out_y, sizeof(out_y), \"%.1000Rf\", clicked_y);        mpfr_snprintf(out_sz, sizeof(out_sz), \"%.1000Rf\", sz);        g_params.center_re_str = out_x;        g_params.center_im_str = out_y;        g_params.size_str = out_sz;        mpfr_clears(cx, cy, sz, st, mx, my, clicked_x, clicked_y, NULL);        SetEvent(g_render_event);         return 0;    }    case WM_KEYDOWN: {        if (wp &gt;= '1' &amp;&amp; wp &lt;= '5') {            g_abort = true;            std::lock_guard&lt;std::mutex&gt; lock(g_params_mutex);            if (wp == '1') {                g_params.center_re_str = \"-1.7490781615052017316791245451566330412\";                g_params.center_im_str = \"0.0000055099190662909660251309856720635\";                g_params.size_str      = \"0.000000000000000000000000000000000215\";            }            if (wp == '2') {                g_params.center_re_str = \"-1.748943661768663337207355215321150725806353337382441467976\";                g_params.center_im_str = \"-0.0000073748967541889836640985849393311615399776865199722998\";                g_params.size_str      = \"0.0000000000000000000000000000000000000000000000000000001\";            }            if (wp == '3') {                g_params.center_re_str = \"-1.7489740586384718864866264297253934254\";                g_params.center_im_str = \"-0.0002265965897111407857153825623868331\";                g_params.size_str      = \"0.00000000000000000000000000000000007\";            }            if (wp == '4') {                g_params.center_re_str = \"-1.7499458649755745940752606707005571\";                g_params.center_im_str = \"-0.0000000852088539604644334731909824511\";                g_params.size_str      = \"0.0000000000000000000000000000000000071\";            }            if (wp == '5') {                g_params.center_re_str = \"-1.267078059171397835210199054200436920994876769284288837862647\";                g_params.center_im_str = \"-0.123788215196292957558264285607075473360968832625384429809391\";                g_params.size_str      = \"0.0000000000000000000000000000000000000000000000000000000023\";            }            mpfr_t sz, st;            mpfr_inits2(MPFR_BITS, sz, st, NULL);            mpfr_set_str(sz, g_params.size_str.c_str(), 10, MPFR_RNDN);            mpfr_div_ui(st, sz, SS_W, MPFR_RNDN);            g_params.step_d = mpfr_get_d(st, MPFR_RNDN);            mpfr_clears(sz, st, NULL);            SetEvent(g_render_event);            return 0;        }        if (wp == VK_UP || wp == VK_DOWN) {            g_abort = true;            std::lock_guard&lt;std::mutex&gt; lock(g_params_mutex);            mpfr_t sz, st;            mpfr_inits2(MPFR_BITS, sz, st, NULL);            mpfr_set_str(sz, g_params.size_str.c_str(), 10, MPFR_RNDN);            if (wp == VK_UP) {                mpfr_div_d(sz, sz, 1.05, MPFR_RNDN);            }            else if (wp == VK_DOWN) {                mpfr_mul_d(sz, sz, 1.05, MPFR_RNDN);            }            mpfr_div_ui(st, sz, SS_W, MPFR_RNDN);            g_params.step_d = mpfr_get_d(st, MPFR_RNDN);            char out_sz[2048];             mpfr_snprintf(out_sz, sizeof(out_sz), \"%.1000Rf\", sz);            g_params.size_str = out_sz;            mpfr_clears(sz, st, NULL);            SetEvent(g_render_event);            return 0;        }        if (wp == VK_RETURN) {            std::lock_guard&lt;std::mutex&gt; lock(g_params_mutex);            std::ofstream file(\"Mandelbrot.txt\");            if (file.is_open()) {                file &lt;&lt; g_params.center_re_str &lt;&lt; \"\\n\" &lt;&lt; g_params.center_im_str &lt;&lt; \"\\n\" &lt;&lt; g_params.size_str &lt;&lt; \"\\n\";                file.close();            }            return 0;        }                if (wp == VK_BACK) {            std::ifstream file(\"Mandelbrot.txt\");            if (file.is_open()) {                std::vector&lt;std::string&gt; lines; std::string line;                while (std::getline(file, line)) {                    if (!line.empty()) lines.push_back(line);                    if (lines.size() == 3) break;                }                file.close();                if (lines.size() == 3) {                    g_abort = true;                    std::lock_guard&lt;std::mutex&gt; lock(g_params_mutex);                    g_params.center_re_str = lines[0];                    g_params.center_im_str = lines[1];                    g_params.size_str      = lines[2];                    mpfr_t sz, st;                    mpfr_inits2(MPFR_BITS, sz, st, NULL);                    mpfr_set_str(sz, g_params.size_str.c_str(), 10, MPFR_RNDN);                    mpfr_div_ui(st, sz, SS_W, MPFR_RNDN);                    g_params.step_d = mpfr_get_d(st, MPFR_RNDN);                    mpfr_clears(sz, st, NULL);                    SetEvent(g_render_event);                }            }            return 0;        }        break;     }    case WM_DESTROY: PostQuitMessage(0); return 0;    }    return DefWindowProc(hwnd, msg, wp, lp);}int main() {HINSTANCE inst = GetModuleHandle(NULL);WNDCLASS wc = {0};wc.lpfnWndProc = wnd_proc;wc.hInstance = inst;wc.hIcon = LoadIcon(inst, MAKEINTRESOURCE(1));wc.lpszClassName = L\"MandelClass\";wc.hCursor = LoadCursor(NULL, IDC_ARROW);RegisterClass(&amp;wc);HWND hwnd = CreateWindowEx(0, L\"MandelClass\", L\"Mandelbrot set. MPFR + Perturbation. OpenMP. Supersampling 2x2\",WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,WIDTH + 16, HEIGHT + 38, NULL, NULL, inst, NULL);HDC hdc_win = GetDC(hwnd);HDC hdc_mem = CreateCompatibleDC(hdc_win);BITMAPINFO bmi = {0};bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);bmi.bmiHeader.biWidth = WIDTH;bmi.bmiHeader.biHeight = -HEIGHT;bmi.bmiHeader.biPlanes = 1;bmi.bmiHeader.biBitCount = 32;bmi.bmiHeader.biCompression = BI_RGB;RGBQUAD* screen_pixels = nullptr;HBITMAP h_bmp = CreateDIBSection(hdc_mem, &amp;bmi, DIB_RGB_COLORS, (void**)&amp;screen_pixels, NULL, 0);SelectObject(hdc_mem, h_bmp);g_params.iter_max = 50000;g_params.center_re_str = \"-1.7491976289657893741942376816272921165326158557416159\";g_params.center_im_str = \"-0.00000042530777152440422725855012159249401150956515248\";g_params.size_str      = \"0.0000000000000000000000000000000000000000000000000043\";    mpfr_t sz, st;mpfr_inits2(MPFR_BITS, sz, st, NULL);mpfr_set_str(sz, g_params.size_str.c_str(), 10, MPFR_RNDN);mpfr_div_ui(st, sz, SS_W, MPFR_RNDN);g_params.step_d = mpfr_get_d(st, MPFR_RNDN);mpfr_clears(sz, st, NULL);g_render_event = CreateEvent(NULL, TRUE, TRUE, NULL);std::thread(thread_mandelbrot_calc).detach();std::thread(thread_palette_rotator, hdc_win, hdc_mem, screen_pixels).detach();MSG msg;while (GetMessage(&amp;msg, NULL, 0, 0)) {TranslateMessage(&amp;msg);DispatchMessage(&amp;msg);}return 0;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043f\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0442\u043e \u0432\u043e\u0442 \u0432\u0430\u043c \u0435\u0449\u0435 ) \u0418\u0418:<\/p>\n<p>&#171;\u0414\u043b\u044f \u0443\u043c\u0435\u0440\u0448\u0435\u0433\u043e \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041c\u0435\u0436\u0434\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u0441\u043c\u0435\u0440\u0442\u0438 \u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u044f (\u0434\u0430\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u044b \u043b\u0435\u0442) \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u043d\u043e\u043b\u044c \u0441\u0435\u043a\u0443\u043d\u0434. \u0418 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u0441\u043d\u043e\u0432\u0430. \u00ab\u041a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u0443\u0431\u0438\u043a\u00bb \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u0442 \u0432\u0430\u0441 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0433\u0430\u043b\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u0430\u0445 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u0435\u0439 \u0447\u0435\u0442\u044b\u0440\u0435 \u0438\u043b\u0438 \u0448\u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u043d\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438, \u043d\u0430 \u043b\u0435\u0433\u043a\u0438\u0445 \u043f\u043b\u0430\u043d\u0435\u0442\u0430\u0445 \u2014 \u0434\u0432\u0435. \u0412\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043a\u0430\u043a \u0432 \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0430\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0430 (\u00ab\u0437\u0443\u0431\u0438\u043b\u043e\u00bb), \u0442\u0430\u043a \u0438 \u0432 \u043a\u0440\u0435\u043c\u043d\u0438\u0435\u0432\u0443\u044e \u043f\u043e\u0441\u0442\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u044d\u043f\u043e\u0445\u0443 (\u00ab\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u00bb).&#187;<\/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\/articles\/1046708\/\">https:\/\/habr.com\/ru\/articles\/1046708\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:\u0420\u0430\u0441\u0447\u0451\u0442 \u043e\u043f\u043e\u0440\u043d\u043e\u0439 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 5000 \u0431\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437.\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u043c double.\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u0440\u044f\u0434\u043a\u0430 ) \u0442\u0435\u043e\u0440\u0438\u044f \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c\u0441\u044f \u043a \u0443\u0440\u043e\u0432\u043d\u044e  &#8212; \u043d\u0435 \u0434\u0430\u043b\u044c\u0448\u0435.\u0420\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Reference Reset to Zero.\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 SSAA 2&#215;2 \u0434\u043b\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c OpenMP \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 DwmFlush \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u0430\u0434\u0440\u043e\u0432.\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430.\u0411\u0435\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u0414\u0432\u0438\u0436\u043e\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u0431\u0430\u0432\u043b\u0435\u043d \u043e\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 64-\u0431\u0438\u0442\u043d\u044b\u0445 (double) \u0438 128-\u0431\u0438\u0442\u043d\u044b\u0445 (__float128) \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0441\u043b\u0435\u043f\u043d\u0443\u0442 \u0438 \u0432\u044b\u0434\u0430\u044e\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043d\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445 \u0431\u043e\u043b\u0435\u0435  \u0438 .\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f MPFR\/GMP: \u0412\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f, \u043f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043f\u0440\u0438 \u043a\u043b\u0438\u043a\u0430\u0445 \u043c\u044b\u0448\u0438 \u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0430\u043c\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0432\u0435\u0434\u0443\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u0435\u0440\u0445\u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e 5000 \u0431\u0438\u0442!308 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u043a\u043e\u0432: \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0434\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 Mandelbrot.txt. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0438 \u0440\u0430\u0434\u0430\u0440 MPFR \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u0435 \u0434\u043e 5000 \u0431\u0438\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u043b\u044c\u0442\u0430-\u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0439 double, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437\u0443\u043f\u0440\u0435\u0447\u043d\u043e \u0447\u0435\u0442\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e  \u0437\u043d\u0430\u043a\u043e\u0432.\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0439\u0420\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 &#171;\u0432 \u0441\u0442\u043e\u043b\u0431\u0438\u043a&#187; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432 \u0442\u044b\u0441\u044f\u0447\u0438 \u0440\u0430\u0437.\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u043f\u043e\u0440\u044b: \u0421\u0432\u0435\u0440\u0445\u0442\u044f\u0436\u0435\u043b\u044b\u0439 BigFloat-\u0440\u0430\u0434\u0430\u0440 MPFR \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0442\u043e\u0447\u043d\u0443\u044e \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439-\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043a\u0430\u0434\u0440\u0430 \u0438 \u0441\u0442\u0440\u043e\u0433\u043e \u041e\u0414\u0418\u041d \u0440\u0430\u0437 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 double: \u0412\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043a\u0440\u0430\u043d\u0430 (\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0441\u0443\u043f\u0435\u0440-\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439) \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0431\u0435\u0448\u0435\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0447\u0438\u0441\u0442\u044b\u0445, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 double \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044f \u043b\u0438\u0448\u044c \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f (\u0434\u0435\u043b\u044c\u0442\u044b) \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0437\u043b\u0435\u0442\u0435\u043b\u0430 \u0432 1000 \u0440\u0430\u0437!\u0420\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Reference Reset to Zero\u042d\u0442\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0433\u043e\u0440\u0434\u043e\u0441\u0442\u0438. \u0412\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u0442\u0435\u043c \u0436\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c, \u0447\u0442\u043e \u0438 \u0441\u0430\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u044b\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u0432 \u043c\u0438\u0440\u0435.\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0431\u0440\u043e\u0441 \u043d\u0430 \u043d\u043e\u043b\u044c: \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0434\u0435\u043b\u044c\u0442\u044b. \u0415\u0441\u043b\u0438 \u0434\u0435\u043b\u044c\u0442\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438\u043b\u0438 \u043a\u044d\u0448 \u0446\u0435\u043d\u0442\u0440\u0430 \u0438\u0441\u0441\u044f\u043a\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043a \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u043b\u0435\u0442\u0443 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u043e\u043b\u044c, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432 \u043d\u043e\u0432\u0443\u044e \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443.\u0425\u0430\u043a\u0435\u0440\u0441\u043a\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0446\u0438\u043a\u043b\u0430 (One-Step Beyond Escape): \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0436\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u0437 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0440\u0430\u0434\u0430\u0440 MPFR \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u0434\u043d\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u043f\u043e\u0440\u043d\u043e\u0439 \u043e\u0440\u0431\u0438\u0442\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0440\u0430\u0434\u0438\u0443\u0441 \u0443\u0445\u043e\u0434\u0430.\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0439 (Branch Unrolling): \u042d\u0442\u043e\u0442 \u0438\u0437\u044f\u0449\u043d\u044b\u0439 \u0442\u0440\u044e\u043a \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0445 if \u0438 OR-\u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0430\u0442\u0438\u0442 \u0442\u0430\u043a\u0442\u044b \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043c\u043e\u0433 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434.DwmFlush\u0414\u0432\u0438\u0436\u043e\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0432\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u043e\u043c \u043e\u043a\u043e\u043d \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430 Windows (DWM).\u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 DwmFlush. \u042d\u0442\u043e \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 DWM \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u044d\u043a\u0440\u0430\u043d\u0430.\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 \u043e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 FPS: \u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 60 \u0413\u0446, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 60 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 144 \u0413\u0446, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 144 \u0440\u0430\u0437\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f 144 \u043a\u0430\u0434\u0440\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.\u041d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 240 \u0413\u0446 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 240 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.OpenMPOpenMP &#8212; \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443: \u201c\u0412\u043e\u0437\u044c\u043c\u0438 \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u0438 \u0441\u0430\u043c \u0440\u0430\u0437\u0434\u0430\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043d\u044b\u043c \u044f\u0434\u0440\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u201d. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f OpenMP, \u0432\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0435\u0441\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (Multithreading). OpenMP &#8212; \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c: \u0432\u0430\u0448 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0430 4-\u044f\u0434\u0435\u0440\u043d\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 128-\u044f\u0434\u0435\u0440\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.True SSAA 2&#215;2 (\u041f\u0440\u044f\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 RGB)\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u00ab\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435\u00bb \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u043f\u0435\u0440\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433\u0430 2&#215;2 (SSAA). \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0441\u0443\u0431\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.\u0412 \u0447\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430?\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 (\u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043f\u0430\u043b\u0438\u0442\u0440\u044b):\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: Color( (iter1 + iter2 + iter3 + iter4) \/ 4 )\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u044b. \u0423\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0446\u0432\u0435\u0442\u043e\u0432  \u0438  \u0447\u0430\u0441\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 . \u042d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0443\u043c, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0438 \u043b\u043e\u0436\u043d\u044b\u0435 \u0445\u0440\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u044b.\u041d\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435: \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 RGB\u0412\u043c\u0435\u0441\u0442\u043e \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u044f \u0448\u0430\u0433\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0443\u0431\u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0445 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0435\u0439:\u041d\u0430\u0448 \u043f\u0443\u0442\u044c: (Color(iter1) + Color(iter2) + Color(iter3) + Color(iter4)) \/ 4\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 RGB \u043f\u0435\u0440\u0435\u0434 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u2014 \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043c\u0435\u0441\u044c. \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u0448\u0443\u043c \u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0442\u0438\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0443\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u043c\u0438\u043a\u0440\u043e\u043d\u0438\u0442\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f.\u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u0435\u0437 \u0441\u0443\u043f\u0435\u0440\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0448\u0443\u043c?\u0428\u0443\u043c \u043f\u0440\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0431\u0430\u0433, \u0430 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0438: \u0430\u043b\u0438\u0430\u0441\u0438\u043d\u0433 (aliasing).\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u041d\u0430 \u0435\u0433\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0435\u0442\u0430\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0440\u0430\u0437 \u043c\u0435\u043d\u044c\u0448\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430.\u0411\u0435\u0437 \u0441\u0443\u043f\u0435\u0440\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433\u0430: \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0435\u0440\u0435\u0442 \u043f\u0440\u043e\u0431\u0443 \u0440\u043e\u0432\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 (\u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f). \u0415\u0441\u043b\u0438 \u043b\u0443\u0447 \u043f\u043e\u043f\u0430\u043b \u0432 \u0442\u043e\u043d\u043a\u0443\u044e \u043d\u0438\u0442\u044c \u2014 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u044f\u0440\u043a\u0438\u043c. \u041f\u0440\u043e\u043c\u0430\u0445\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043d \u2014 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0442\u0430\u043b \u0447\u0435\u0440\u043d\u044b\u043c. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u00ab\u0446\u0435\u043f\u043b\u044f\u044e\u0442\u00bb \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043a\u0430\u0448\u0443 \u0438\u0437 \u0442\u043e\u0447\u0435\u043a.\u0421 SSAA 2&#215;2: \u041a\u043e\u0434 \u0431\u0435\u0440\u0435\u0442 4 \u043f\u0440\u043e\u0431\u044b \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0433\u043b\u0430\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442 \u0438\u0445. \u0415\u0441\u043b\u0438 \u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0443\u043b\u044c\u0442\u0440\u0430\u0442\u043e\u043d\u043a\u0430\u044f \u043d\u0438\u0442\u044c, \u043e\u043d\u0430 \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u0438 \u043d\u0435 \u043c\u0435\u0440\u0446\u0430\u0435\u0442, \u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u044f\u0433\u043a\u0443\u044e, \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e, \u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430.\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u044d\u0441\u0442\u0435\u0442\u0438\u043a\u0430. \u0421\u043c\u0435\u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u041a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u0438 \u0441\u0438\u043d\u0438\u0439 \u043a\u0430\u043d\u0430\u043b\u044b \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u043b\u043d \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u0432\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432:pal[a][0] = (uint8_t)round(127.0 + 127.0 * cos(2.0 * PI * a \/ 255.0)); \/\/ Bluepal[a][1] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a \/ 255.0)); \/\/ Greenpal[a][2] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a \/ 255.0)); \/\/ Red\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0435\u0445\u043d\u0438\u043a\u0443 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043c\u0435\u043d\u044b \u0446\u0432\u0435\u0442\u043e\u0432 (\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b). \u0425\u043e\u0442\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e &#171;\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f&#187; \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435. \u042d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 &#171;\u0436\u0438\u0432\u043e\u0439&#187; \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440.\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430: \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u042d\u0442\u043e \u043f\u043e\u0438\u0441\u0442\u0438\u043d\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0441 \u0441 \u0447\u0435\u043c-\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c, \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0431\u0438\u043e\u043b\u043e\u0433\u0438\u044e \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u0441\u044f \u043d\u0430\u0448\u0430 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0438 \u0432\u0441\u0435 \u0435\u0451 \u0430\u0442\u043e\u043c\u044b \u0438\u0441\u0447\u0435\u0437\u043b\u0438 \u0437\u0430\u0432\u0442\u0440\u0430, \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u0435\u0440\u043d\u044b\u043c. \u041e\u043d\u043e \u043d\u0435 &lt;\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e&gt; \u043d\u0430 \u0437\u0432\u0451\u0437\u0434\u0430\u0445; \u043e\u043d\u043e \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043e \u0432 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043b\u043e\u0433\u0438\u043a\u0438. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043e\u043c.\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0431\u0438\u043e\u043b\u043e\u0433\u0438\u0438, \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u043e\u0433 \u0438\u043b\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439. \u0416\u0438\u0442\u0435\u043b\u0438 \u0433\u0430\u043b\u0430\u043a\u0442\u0438\u043a\u0438 \u0410\u043d\u0434\u0440\u043e\u043c\u0435\u0434\u0430 \u0438 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0435 \u043e\u043a\u0435\u0430\u043d\u044b \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0443\u043f\u0435\u0440\u0433\u0430\u043b\u0430\u043a\u0442\u0438\u043a\u0435 \u0443\u0432\u0438\u0434\u044f\u0442 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430.\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0443\u043c\u0430 \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439. \u042d\u0442\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0432\u0441\u0435\u0433\u0434\u0430. \u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0435\u0451; \u043e\u043d\u0438 \u043b\u0438\u0448\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0432 \u0440\u043e\u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u044b.\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u044b\u0448\u044c\u044eWM_LBUTTONDOWN (\u041b\u0435\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430) &#8212; \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0432 2 \u0440\u0430\u0437\u0430 \u0438 \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0438\u043a\u0430.WM_RBUTTONDOWN (\u041f\u0440\u0430\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430) &#8212; \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0432 2 \u0440\u0430\u0437\u0430 \u0438 \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0438\u043a\u0430.\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0443\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435): \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0432 \u0442\u043e\u0447\u043a\u0435 \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f (\u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 ): Center Re: -1.7491976289657893741942376816272921165326158557416159Center Im: -0.00000042530777152440422725855012159249401150956515248Size: 0.0000000000000000000000000000000000000000000000000043\u041a\u043b\u0430\u0432\u0438\u0448\u0438 1 &#8212; 5: \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0432\u0438\u0448 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043f\u044f\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430.if (wp == &#8216;1&#8217;) { g_params.center_re_str = &#171;-1.7490781615052017316791245451566330412&#187;;g_params.center_im_str = &#171;0.0000055099190662909660251309856720635&#187;;g_params.size_str      = &#171;0.000000000000000000000000000000000215&#187;; }if (wp == &#8216;2&#8217;) {g_params.center_re_str = &#171;-1.748943661768663337207355215321150725806353337382441467976&#187;;g_params.center_im_str = &#171;-0.0000073748967541889836640985849393311615399776865199722998&#187;;g_params.size_str      = &#171;0.0000000000000000000000000000000000000000000000000000001&#187;; }if (wp == &#8216;3&#8217;) {g_params.center_re_str = &#171;-1.7489740586384718864866264297253934254&#187;;g_params.center_im_str = &#171;-0.0002265965897111407857153825623868331&#187;;g_params.size_str      = &#171;0.00000000000000000000000000000000007&#187;; }if (wp == &#8216;4&#8217;) {g_params.center_re_str = &#171;-1.7499458649755745940752606707005571&#187;;g_params.center_im_str = &#171;-0.0000000852088539604644334731909824511&#187;;g_params.size_str      = &#171;0.00000000000000000000000000000000001&#187;; }if (wp == &#8216;5&#8217;) {g_params.center_re_str = &#171;-1.267078059171397835210199054200436920994876769284288837862647&#187;;g_params.center_im_str = &#171;-0.123788215196292957558264285607075473360968832625384429809391&#187;;g_params.size_str      = &#171;0.0000000000000000000000000000000000000000000000000000000023&#187;; }VK_UP (\u0421\u0442\u0440\u0435\u043b\u043a\u0430 \u0412\u0412\u0415\u0420\u0425) \u0438 VK_DOWN (\u0421\u0442\u0440\u0435\u043b\u043a\u0430 \u0412\u041d\u0418\u0417) &#8212; \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0432 1.05 \u0440\u0430\u0437\u0430 \u043d\u043e \u0431\u0435\u0437 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0438\u043a\u0430.\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 Mandelbrot.txt\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e VK_RETURN (Enter, \u0412\u0432\u043e\u0434) &#8212; \u0443 \u0432\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430. \u0418 \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u043e \u0437\u0430\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b! Mandelbrot.txt\u0410 VK_BACK (\u044d\u0442\u043e \u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u041d\u0410\u0414 Enter, Backspace) &#8212; \u0447\u0438\u0442\u0430\u0435\u0442 Mandelbrot.txt (\u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430) \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d.\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b Mandelbrot.txt \u0432 \u043f\u0430\u043f\u043a\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439. \u0424\u0430\u0439\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0440\u0438 \u0447\u0438\u0441\u043b\u0430, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438:Abscissa (\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 X&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-483392","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/483392","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=483392"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/483392\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=483392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=483392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=483392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}