{"id":313954,"date":"2020-11-28T09:00:41","date_gmt":"2020-11-28T09:00:40","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=313954"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=313954","title":{"rendered":"\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0435 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0442\u0438\u043f\u0430 double. \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u0412 <a href=\"https:\/\/habr.com\/ru\/post\/525090\/\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0440\u0435\u0447\u044c \u0448\u043b\u0430 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 double \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0441\u0443\u043c\u043c\u0443, \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0441 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043b\u0438 \u0431\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0411\u044b\u043b \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 double-double, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445: \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0438 \u0445\u0432\u043e\u0441\u0442\u0438\u043a-\u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c. \u041e\u043f\u044b\u0442\u043d\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0445\u0432\u043e\u0441\u0442\u0438\u043a\u043e\u0432-\u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0441\u0435\u0431\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043d\u0435 \u043a \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0439, \u0430 \u043a \u0443\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0438 \u0432\u043e\u043e\u0431\u0449\u0435, \u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u043a\u0430\u0434 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043b\u044e\u0431\u0443\u044e \u043d\u0430\u043f\u0435\u0440\u0451\u0434 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0430 \u043a \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u00ab\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0435\u00bb. \u041e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0451 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0443 \u0430 \u044f \u043e\u0431\u0435\u0449\u0430\u043b \u0434\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430 \u0432 \u0442\u043e\u0447\u043a\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445, \u0432 \u044d\u0442\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u00ab\u0432\u043e\u0434\u044b\u00bb \u0438 \u00ab\u043b\u0438\u0448\u043d\u0438\u0445\u00bb, \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u0432, \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439. \u041f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2x\/ik\/zw\/2xikzw6dbdaulxqnyxa5koaz2pu.jpeg\"><\/div>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0432\u0438\u0434\u0435\u043e-\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0442\u0435\u0445 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435\u0439 \u0425\u0430\u0431\u0440\u0430, \u043a\u043e\u043c\u0443 \u0433\u043e\u043b\u043e\u0441 \u0441 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 \u0442\u0430\u043a\u043e\u0432\u044b\u0445.<\/p>\n<div class=\"oembed\"><iframe id=\"5fc093a705d782142ffea4d7\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/5fc093a705d782142ffea4d7\"><\/iframe><\/div>\n<h1>\u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (\u043d\u0443\u2026 \u043f\u043e\u0447\u0442\u0438)<\/h1>\n<p>  \u041e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e: \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 two_sum \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c N \u0447\u0438\u0441\u0435\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e, \u0434\u0435\u043b\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430 \u043c\u0430\u043b\u044b\u043c: \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 \u0442\u0438\u043f\u0430 double \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u0440\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438 \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u00bb, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u0435\u0433\u043e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u043c \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u0435, \u043b\u0438\u0448\u044c \u0431\u044b \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6c5\/11c\/e07\/6c511ce0713676e3c40aae76cb512104.svg\" alt=\"$a+b$\" data-tex=\"inline\"><\/math> \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c (\u043a\u0442\u043e \u043d\u0435 \u0447\u0438\u0442\u0430\u043b: \u00ab<a href=\"https:\/\/habr.com\/ru\/post\/523654\/\">\u0421\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438<\/a>\u00bb), \u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. <\/p>\n<p>  \u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0447\u0435\u0440\u0435\u0437 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/faa\/01a\/b61\/faa01ab6198f002595cb91e3d60f976d.svg\" alt=\"$e_{min}$\" data-tex=\"inline\"><\/math> \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 (\u0434\u043b\u044f float: \u2212126, \u0434\u043b\u044f double: \u22121022), \u0431\u0443\u043a\u0432\u043e\u0439 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/16d\/a50\/7b2\/16da507b2fc389688ef0659939dcc647.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u0442\u043e\u0432 \u043c\u0430\u043d\u0442\u0438\u0441\u0441\u044b \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0441\u043a\u0440\u044b\u0442\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u044b (24 \u0434\u043b\u044f float \u0438 53 \u0434\u043b\u044f double). \u041f\u0443\u0441\u0442\u044c <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a1e\/7df\/581\/a1e7df5812eee245900fcc9b6556818e.svg\" alt=\"$e_a$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/087\/e05\/723\/087e057237e9152dbfce436632e3b99a.svg\" alt=\"$e_b$\" data-tex=\"inline\"><\/math> \u2014 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430\u0448\u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/372\/e18\/546\/372e18546a3b7abb94c2672708bc5dfe.svg\" alt=\"$a$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/302\/c72\/04e\/302c7204ea9987e698a70307646abd71.svg\" alt=\"$b$\" data-tex=\"inline\"><\/math>, \u0442\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435:<\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d6d\/9c4\/8ea\/d6d9c48ea2c03f84fc2f4ea72843a87e.svg\" alt=\"$e_a+e_b \\geq e_{min} +k-1.$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 <b>\u043d\u0435<\/b> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0bd\/634\/d4b\/0bd634d4bf76c2f511ee65134e9a06f0.svg\" alt=\"$ab$\" data-tex=\"inline\"><\/math> \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0441\u0443\u043c\u043c\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f8f\/5e8\/bed\/f8f5e8bed13ac7b1bfca3ee9135355e9.svg\" alt=\"$p+t$\" data-tex=\"inline\"><\/math>, \u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28f\/734\/653\/28f734653d77644c072c88bf7c2b6954.svg\" alt=\"$p = RN(ab)$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d4d\/b84\/b73\/d4db84b73e01f727975b837dab74e101.svg\" alt=\"$t=ab-p$\" data-tex=\"inline\"><\/math>. \u0423\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0444\u0440\u0430\u0437\u0443: \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u00bb <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9b0\/012\/4e4\/9b00124e411362185d05b841bc32695f.svg\" alt=\"$t$\" data-tex=\"inline\"><\/math> \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u0418 \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e: \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0432\u043b\u0435\u0437\u0430\u044e\u0442 \u0432 \u0434\u0432\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043e\u0434\u043d\u0430 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u043c\u0430\u043d\u0442\u0438\u0441\u0441\u044b \u0441 \u043f\u043e\u0442\u0435\u0440\u0435\u0439 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432. \u0418 \u043a\u0440\u043e\u043c\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b \u043d\u0435\u043b\u044c\u0437\u044f \u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0435 \u0441\u0443\u043c\u043c\u044b \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0438\u043f\u0430.<\/p>\n<p>  \u0422\u0430\u043a \u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435? \u0414\u043b\u044f float \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u0443\u043c\u043c\u0430 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u2212126+24\u22121=\u2212103, \u0442\u043e \u0435\u0441\u0442\u044c, \u0433\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 2<sup>\u221251<\/sup>, \u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e. \u0421\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0441\u0435\u0431\u044f: \u0447\u0430\u0441\u0442\u043e \u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u0447\u0438\u0441\u043b\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430? \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0447\u0438\u0441\u043b\u0430\u043c \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435. \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c double, \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 2<sup>\u2212485<\/sup>. \u041d\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043b\u044e\u043d\u0443\u0442\u044c \u043d\u0430 \u0432\u0441\u0451 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u0432 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043e\u043d \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0447\u0443\u0442\u044c \u0447\u0430\u0449\u0435 \u0447\u0435\u043c \u0432\u0441\u0435\u0433\u0434\u0430.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e, \u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 FMA (Fused Multiply-Add) \u0442\u043e\u0447\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">double __fastcall two_prod (double &amp;t, double a, double b) {   double p = a*b;   t = fma (a, b, -p);  \/\/ t = a*b-p, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;cmath&gt;   return p; }<\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0440\u0430 \u0447\u0438\u0441\u0435\u043b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1d3\/206\/82b\/1d320682bf82a2bcce4f70323871e4bc.svg\" alt=\"$(p, t)$\" data-tex=\"inline\"><\/math>, \u0442\u0430\u043a\u0430\u044f, \u0447\u0442\u043e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/839\/f25\/c27\/839f25c2746382debd4f08ea25ad5ecf.svg\" alt=\"$p$\" data-tex=\"inline\"><\/math> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u043c \u043a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0bd\/634\/d4b\/0bd634d4bf76c2f511ee65134e9a06f0.svg\" alt=\"$ab$\" data-tex=\"inline\"><\/math> \u0447\u0438\u0441\u043b\u043e\u043c, \u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9b0\/012\/4e4\/9b00124e411362185d05b841bc32695f.svg\" alt=\"$t$\" data-tex=\"inline\"><\/math> \u2014 \u0445\u0432\u043e\u0441\u0442\u0438\u043a\u043e\u043c-\u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c\u044e, \u043f\u0440\u0438\u0447\u0451\u043c <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a60\/a96\/59f\/a60a9659f98db2904430154e57674b42.svg\" alt=\"$p+t=ab$\" data-tex=\"inline\"><\/math> <b>\u0432 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438<\/b>. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043f\u043e \u0445\u043e\u0434\u0443 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0437\u0430 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e: \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7c8\/ee4\/ab4\/7c8ee4ab4a28ada1e52c590dc130bd2d.svg\" alt=\"$RN(ab)\\neq\\infty$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f FMA \u0434\u043b\u044f \u0432\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u0442\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442\u0441\u044f. \u0416\u0435\u043b\u0430\u0435\u043c\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0443\u0442\u0451\u043c \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/372\/e18\/546\/372e18546a3b7abb94c2672708bc5dfe.svg\" alt=\"$a$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/302\/c72\/04e\/302c7204ea9987e698a70307646abd71.svg\" alt=\"$b$\" data-tex=\"inline\"><\/math> \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u0442\u0430\u0440\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432 (ah \u0438 bh) \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432, \u0430 \u043c\u043b\u0430\u0434\u0448\u0430\u044f (al \u0438 bl) \u2014 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043c\u043b\u0430\u0434\u0448\u0438\u0445. \u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u044d\u0442\u0438\u043c\u0438 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0430\u043c\u0438, \u0432 \u043e\u0431\u0449\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 17 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u0430\u043d\u043d\u044b\u0439 \u0442\u0440\u044e\u043a \u0432 \u0447\u0451\u043c-\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0442\u0440\u044e\u043a\u0443 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u043c \u0442\u0438\u043f\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043a\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u043b, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0413. \u0423\u043e\u0440\u0440\u0435\u043d \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0440\u044e\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\u00bb, \u0432 \u0438\u0437\u0434\u0430\u043d\u0438\u0438 2014 \u0433\u043e\u0434\u0430 \u044d\u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b 8.2). \u041d\u0438\u0436\u0435\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043c\u043d\u043e\u044e \u043f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u043a\u043d\u0438\u0433\u0438 Jean-Michel Muller, \u201cHandbook of floating-point arithmetic\u201d, \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<pre><code class=\"cpp\">    \/\/ \u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 x \u043d\u0430 \u0441\u0442\u0430\u0440\u0448\u0443\u044e \u0438 \u043c\u043b\u0430\u0434\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c void __fastcall split (double &amp;hi, double &amp;lo, double x) {   double gamma = 0x8000001*x; \/\/ gamma=(2**27+1)*x; 27 = ceil(53\/2), \u0433\u0434\u0435 53 - \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u043d\u0442\u0438\u0441\u0441\u044b double (\u0441\u043e \u0441\u043a\u0440\u044b\u0442\u044b\u043c \u0431\u0438\u0442\u043e\u043c).   double delta = x - gamma;   hi = gamma + delta;   lo = x - hi; }      \/\/ \u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435\u043c, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 two_prod double __fastcall two_prod_s (double &amp;t, double a, double b) {   double ah, al, bh, bl, p;   split (ah, al, a);   split (bh, bl, b);   p = a*b;   t = (ah*bh-p) + ah*bl + al*bh + al*bl;   return p; } <\/code><\/pre>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 IEEE-754 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430, \u0434\u043b\u044f \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440 \u043c\u0430\u043d\u0442\u0438\u0441\u0441\u044b \u0447\u0451\u0442\u043d\u043e, \u0442\u043e \u0434\u043b\u044f \u0435\u0441\u0442\u044c \u0434\u043b\u044f decimal32 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u044b \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0442\u0435\u043e\u0440\u0435\u043c\u044b 4.8 \u0432 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0439 \u0432\u044b\u0448\u0435 \u043a\u043d\u0438\u0433\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 4.4.2.2 \u201cDekker\u2019s multiplication algorithm\u201d. \u0422\u0430\u043c \u0436\u0435, \u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u043c \u0440\u0430\u043d\u0435\u0435 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 split. \u0412 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u043d\u0430 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u043e\u0439 2<sup>s<\/sup>+1, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u043b\u0430\u0434\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c lo \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c s \u0431\u0438\u0442\u043e\u0432, \u0430 \u0441\u0442\u0430\u0440\u0448\u0430\u044f \u2014 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.<\/p>\n<h1>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/h1>\n<p>  \u0418\u0442\u0430\u043a, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0443\u043c\u0435\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 \u0442\u043e\u0447\u043d\u043e. \u0421\u0442\u0440\u044f\u043f\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0443 \u0438 \u043f\u043e\u0434\u043e\u0431\u0438\u044e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430\u0437\u0432\u0430\u043d \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u0442\u0440\u0451\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 Ogita\u2014Rump\u2014Oishi:<\/p>\n<pre><code class=\"cpp\">    \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 double __fastcall two_sum (double &amp;t, double a, double b) {   double s = a+b;   double bs = s-a;   double as = s-bs;   t = (b-bs) + (a-as);   return s; }  using dvect_t = vector&lt;double&gt;;  double __fastcall ogita (const dvect_t &amp;X, const dvect_t &amp;Y) {   double s=0.0, c=0.0, p, pi, t;   for (size_t i=0; i&lt;X.size(); ++i) {     p = two_prod (pi, X[i], Y[i]);\t\/\/ p = X[i]*Y[i], \u043d\u043e \u0432 pi \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u00bb.     s = two_sum (t, s, p);\t\/\/ s += p, \u043d\u043e \u0432 t \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u00bb.     c += pi+t;\t\/\/ \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u0438\u00bb   }   return s+c;\t\/\/ \u041e\u0431\u0449\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0438 \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u00bb } <\/code><\/pre>\n<p>  \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e two_prod \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 two_prod_s, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 FMA.<\/p>\n<p>  \u041e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432\u0438\u0434\u0438\u0442 \u0437\u0434\u0435\u0441\u044c \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c \u00ab\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0445\u0432\u043e\u0441\u0442\u0438\u043a\u0438\u00bb \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0441\u043a\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 two_sum, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u044d\u0442\u043e \u043e\u043f\u044b\u0442\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043d\u0430 \u0435\u0433\u043e \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435. <\/p>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0434\u0432\u0435 \u043d\u0430\u0438\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0432\u0435\u0442\u043e\u043d\u043e\u043c.<\/p>\n<pre><code class=\"cpp\">double __fastcall naive (const dvect_t &amp;X, const dvect_t &amp;Y) {   double s=0.0;   for (size_t i=0; i&lt;X.size(); ++i)     s += X[i]*Y[i];   return s; }  double __fastcall naive_fma (const dvect_t &amp;X, const dvect_t &amp;Y) {   double s=0.0;   for (size_t i=0; i&lt;X.size(); ++i)     s = fma (X[i], Y[i], s);   return s; } <\/code><\/pre>\n<p>  \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e \u0441\u0443\u043c\u043c\u0443 N \u0447\u0438\u0441\u0435\u043b. \u041d\u0430\u043f\u043e\u043c\u043d\u044e \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u2014 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c \u0432 ULP \u043d\u0430 100 \u0442\u0435\u0441\u0442\u0430\u0445, \u0430 \u043d\u0438\u0436\u043d\u0435\u0435 \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043d\u0438\u0445 \u0436\u0435. \u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 N=10<sup>6<\/sup>. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b.<\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>Naive<\/th>\n<th>Naive FMA<\/th>\n<th>Ogita\u2014Rump\u2014Oishi<\/th>\n<\/tr>\n<tr>\n<td>U[1, 2)<\/td>\n<td>95.31<br \/>  275<\/td>\n<td>95.36<br \/>  276<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>\u00b1U[1, 2)<\/td>\n<td>441.61<br \/>  6878<\/td>\n<td>432.99<br \/>  7489<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>U[1e-10, 1e10)<\/td>\n<td>2478.61<br \/>  2740<\/td>\n<td>2478.55<br \/>  2739<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>\u00b1U[1e-10, 1e10)<\/td>\n<td>392.50<br \/>  11893<\/td>\n<td>394.86<br \/>  12126<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>exp[2]<\/td>\n<td>183.70<br \/>  513<\/td>\n<td>183.65<br \/>  512<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>\u00b1exp[2]<\/td>\n<td>329.21<br \/>  5962<\/td>\n<td>347.31<br \/>  7251<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>N(0, 1)<\/td>\n<td>1554.07<br \/>  109700<\/td>\n<td>1408.30<br \/>  95896<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u041e\u0436\u0438\u0434\u0430\u0435\u043c\u043e, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c double-double \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u0435\u0437\u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e, \u0438 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0431\u044b\u0442\u043e\u0432\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445. \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0441\u043e\u0431\u044b\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043a\u0440\u043e\u043c\u0435 \u043e\u0434\u043d\u043e\u0433\u043e: \u043d\u0430\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 FMA \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c <b>\u043c\u0435\u043d\u0435\u0435<\/b> \u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0447\u0435\u043c \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 \u0434\u0432\u0443\u043c\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0414\u0410, \u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u0431\u0435\u0434\u0438\u043b\u0441\u044f, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u0438\u0432\u043d\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0432\u0441\u0443\u043d\u0443\u043b FMA \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u043e\u043e\u0431\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043e\u043d \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0430 \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0430 \u0431\u0435\u0437 \u043c\u043e\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442.<\/p>\n<h1>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430<\/h1>\n<p>  \u041c\u044b \u0443\u043c\u0435\u0435\u043c \u0442\u043e\u0447\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043f\u043e\u0434 \u0441\u0438\u043b\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043b\u044e\u0431\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u043e\u043d\u0443\u0441\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430 \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0445\u0435\u043c\u0443 \u0413\u043e\u0440\u043d\u0435\u0440\u0430, \u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u0438\u043c\u0435\u0435\u043c \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043f\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0446\u0438\u043a\u043b, \u0432 \u0442\u0435\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0434\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043e\u0442 \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u043a \u043c\u043b\u0430\u0434\u0448\u0435\u043c\u0443, \u0430 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043c\u0435\u043d\u044c\u0448\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 A.<\/p>\n<pre><code class=\"cpp\">double __fastcall naive (const dvect_t &amp;A, double x) {   double s=0.0;   for (auto a: A) {     s *= x;     s += a;   }   return s; }  double __fastcall naive_fma (const dvect_t &amp;A, double x) {   double s=0.0;   for (auto a: A)     s = fma (s, x, a);   return s; }      \/\/ \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u0442\u0440\u0451\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u0432: Graillat\u2013Langlois\u2013Louvet double __fastcall graillat (const dvect_t &amp;A, double x) {   double s=0.0, c=0.0, p, pi, t;   for (auto a: A) {     \/\/ \u041f\u043e\u043b\u0438\u043d\u043e\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439     p = two_prod (pi, s, x);     s = two_sum (t, p, a);     \/\/ \u041f\u043e\u043b\u0438\u043d\u043e\u043c \u0438\u0437 \u00ab\u0445\u0432\u043e\u0441\u0442\u0438\u043a\u043e\u0432\u00bb     c *= x;     c += pi+t;  \/\/ \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u0434\u0435\u0441\u044c FMA, \u043d\u043e \u043d\u0435 \u0432\u0438\u0436\u0443 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430   }   return s+c;\t\/\/ \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0437\u0434\u0435\u0441\u044c \u0441\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0432\u0443\u0445 \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u043e\u0432. } <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0430 (\u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430, \u043a\u0430\u043a \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u043e\u0431\u0438), \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0432\u0437\u044f\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 N=100 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0441\u043d\u043e\u0432\u0430 \u0438\u0437\u043b\u0438\u0448\u043d\u0438, \u043a\u0440\u043e\u043c\u0435 \u043e\u0434\u043d\u043e\u0433\u043e: \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 FMA \u0434\u043b\u044f \u043d\u0430\u0438\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u043d\u044b\u043c \u2014 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f. <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>Naive<\/th>\n<th>Naive FMA<\/th>\n<th>Graillat\u2014Langlois\u2014Louvet<\/th>\n<\/tr>\n<tr>\n<td>U[1, 2)<\/td>\n<td>3.15<br \/>  11<\/td>\n<td>2.67<br \/>  9<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>\u00b1U[1, 2)<\/td>\n<td>3.96<br \/>  29<\/td>\n<td>3.03<br \/>  27<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>U[1\/10, 10)<\/td>\n<td>1.86<br \/>  11<\/td>\n<td>1.47<br \/>  7<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>\u00b1U[1\/10, 10)<\/td>\n<td>2.20<br \/>  61<\/td>\n<td>1.29<br \/>  10<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>exp[2]<\/td>\n<td>0.59<br \/>  5<\/td>\n<td>0.46<br \/>  4<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>\u00b1exp[2]<\/td>\n<td>0.90<br \/>  30<\/td>\n<td>0.71<br \/>  6<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<tr>\n<td>N(0, 1)<\/td>\n<td>0.90<br \/>  30<\/td>\n<td>0.71<br \/>  6<\/td>\n<td>0.00<br \/>  0<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0421\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043c\u0435\u0440\u0435, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430\u0443\u0447\u043d\u043e-\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0431\u044b\u0442\u043e\u0432\u0443\u044e \u0441\u0444\u0435\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0431\u044b\u043b\u043e \u0446\u0435\u043b\u0438 \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u043e-\u043d\u0430\u0443\u0447\u043d\u0443\u044e \u0441\u0444\u0435\u0440\u0443, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043c\u043e\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e, \u043d\u043e \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435 \u2014 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0436\u0434\u0438\u0442\u0435 \ud83d\ude42<\/p>\n<p>  \u041e\u0434\u043d\u0430 \u0438\u0437 \u043b\u0443\u0447\u0448\u0438\u0445 \u043d\u0430\u0433\u0440\u0430\u0434 \u0430\u0432\u0442\u043e\u0440\u0443 \u2014 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0438\u043c \u0437\u043d\u0430\u043d\u0438\u0439 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u043e\u0431\u0449\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u044b \ud83d\ude42 \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<h1>\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/h1>\n<p>  [1] \u0420\u0430\u0437\u0434\u0435\u043b\u044b 4.4.2.2 \u0438 5.4-5.5 \u043a\u043d\u0438\u0433\u0438\u00a0Jean-Michel Muller, \u201cHandbook of floating-point arithmetic\u201d, 2018.<\/p>\n<p>  [2] \u0420\u0430\u0437\u0434\u0435\u043b 8.2 \u043a\u043d\u0438\u0433\u0438 (\u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b) \u0413\u0435\u043d\u0440\u0438 \u0421. \u0423\u043e\u0440\u0440\u0435\u043d \u043c\u043b. \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0440\u044e\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\u00bb, 2014.<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/529476\/\"> https:\/\/habr.com\/ru\/post\/529476\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u0412 <a href=\"https:\/\/habr.com\/ru\/post\/525090\/\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0440\u0435\u0447\u044c \u0448\u043b\u0430 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 double \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0441\u0443\u043c\u043c\u0443, \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0441 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043b\u0438 \u0431\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0411\u044b\u043b \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 double-double, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445: \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0438 \u0445\u0432\u043e\u0441\u0442\u0438\u043a-\u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c. \u041e\u043f\u044b\u0442\u043d\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0445\u0432\u043e\u0441\u0442\u0438\u043a\u043e\u0432-\u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0441\u0435\u0431\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043d\u0435 \u043a \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0439, \u0430 \u043a \u0443\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0438 \u0432\u043e\u043e\u0431\u0449\u0435, \u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u043a\u0430\u0434 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043b\u044e\u0431\u0443\u044e \u043d\u0430\u043f\u0435\u0440\u0451\u0434 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0430 \u043a \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u00ab\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0435\u00bb. \u041e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0451 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0443 \u0430 \u044f \u043e\u0431\u0435\u0449\u0430\u043b \u0434\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0430 \u0432 \u0442\u043e\u0447\u043a\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445, \u0432 \u044d\u0442\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u00ab\u0432\u043e\u0434\u044b\u00bb \u0438 \u00ab\u043b\u0438\u0448\u043d\u0438\u0445\u00bb, \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u0432, \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439. \u041f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2x\/ik\/zw\/2xikzw6dbdaulxqnyxa5koaz2pu.jpeg\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-313954","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/313954","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=313954"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/313954\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=313954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=313954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=313954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}