2297 lines
1.5 MiB
2297 lines
1.5 MiB
<!DOCTYPE html>
|
||
<!-- Created by pdf2htmlEX (https://github.com/pdf2htmlEX/pdf2htmlEX) -->
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta charset="utf-8"/>
|
||
<meta name="generator" content="pdf2htmlEX"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||
<style type="text/css">
|
||
/*!
|
||
* Base CSS for pdf2htmlEX
|
||
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
|
||
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
|
||
*/#sidebar{position:absolute;top:0;left:0;bottom:0;width:250px;padding:0;margin:0;overflow:auto}#page-container{position:absolute;top:0;left:0;margin:0;padding:0;border:0}@media screen{#sidebar.opened+#page-container{left:250px}#page-container{bottom:0;right:0;overflow:auto}.loading-indicator{display:none}.loading-indicator.active{display:block;position:absolute;width:64px;height:64px;top:50%;left:50%;margin-top:-32px;margin-left:-32px}.loading-indicator img{position:absolute;top:0;left:0;bottom:0;right:0}}@media print{@page{margin:0}html{margin:0}body{margin:0;-webkit-print-color-adjust:exact}#sidebar{display:none}#page-container{width:auto;height:auto;overflow:visible;background-color:transparent}.d{display:none}}.pf{position:relative;background-color:white;overflow:hidden;margin:0;border:0}.pc{position:absolute;border:0;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;display:block;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0}.pc.opened{display:block}.bf{position:absolute;border:0;margin:0;top:0;bottom:0;width:100%;height:100%;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.bi{position:absolute;border:0;margin:0;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}@media print{.pf{margin:0;box-shadow:none;page-break-after:always;page-break-inside:avoid}@-moz-document url-prefix(){.pf{overflow:visible;border:1px solid #fff}.pc{overflow:visible}}}.c{position:absolute;border:0;padding:0;margin:0;overflow:hidden;display:block}.t{position:absolute;white-space:pre;font-size:1px;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%;unicode-bidi:bidi-override;-moz-font-feature-settings:"liga" 0}.t:after{content:''}.t:before{content:'';display:inline-block}.t span{position:relative;unicode-bidi:bidi-override}._{display:inline-block;color:transparent;z-index:-1}::selection{background:rgba(127,255,255,0.4)}::-moz-selection{background:rgba(127,255,255,0.4)}.pi{display:none}.d{position:absolute;transform-origin:0 100%;-ms-transform-origin:0 100%;-webkit-transform-origin:0 100%}.it{border:0;background-color:rgba(255,255,255,0.0)}.ir:hover{cursor:pointer}</style>
|
||
<style type="text/css">
|
||
/*!
|
||
* Fancy styles for pdf2htmlEX
|
||
* Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com>
|
||
* https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
|
||
*/@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes swing{0{transform:rotate(0)}10%{transform:rotate(0)}90%{transform:rotate(720deg)}100%{transform:rotate(720deg)}}@-webkit-keyframes swing{0{-webkit-transform:rotate(0)}10%{-webkit-transform:rotate(0)}90%{-webkit-transform:rotate(720deg)}100%{-webkit-transform:rotate(720deg)}}@media screen{#sidebar{background-color:#2f3236;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+")}#outline{font-family:Georgia,Times,"Times New Roman",serif;font-size:13px;margin:2em 1em}#outline ul{padding:0}#outline li{list-style-type:none;margin:1em 0}#outline li>ul{margin-left:1em}#outline a,#outline a:visited,#outline a:hover,#outline a:active{line-height:1.2;color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden;outline:0}#outline a:hover{color:#0cf}#page-container{background-color:#9e9e9e;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjOWU5ZTllIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=");-webkit-transition:left 500ms;transition:left 500ms}.pf{margin:13px auto;box-shadow:1px 1px 3px 1px #333;border-collapse:separate}.pc.opened{-webkit-animation:fadein 100ms;animation:fadein 100ms}.loading-indicator.active{-webkit-animation:swing 1.5s ease-in-out .01s infinite alternate none;animation:swing 1.5s ease-in-out .01s infinite alternate none}.checked{background:no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC)}}</style>
|
||
<style type="text/css">
|
||
.ff0{font-family:sans-serif;visibility:hidden;}
|
||
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,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')format("woff");}.ff2{font-family:ff2;line-height:0.727000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff3;src:url('data:application/font-woff;base64,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')format("woff");}.ff3{font-family:ff3;line-height:0.704000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff4;src:url('data:application/font-woff;base64,d09GRgABAAAAABfsAA0AAAAAIZAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAX0AAAABoAAAAcocFRgEdERUYAABe0AAAAHAAAAB4AJwBZT1MvMgAAAaQAAABGAAAAVlXoGT9jbWFwAAAC5AAAANsAAAGSsIqMH2dhc3AAABesAAAACAAAAAj//wADZ2x5ZgAABGgAABDqAAAYLO/ygINoZWFkAAABMAAAADQAAAA2KSTK42hoZWEAAAFkAAAAIAAAACQGVQLhaG10eAAAAewAAAD3AAABTKXjElxsb2NhAAADwAAAAKgAAACo93r9dm1heHAAAAGEAAAAHgAAACAAmgBMbmFtZQAAFVQAAAGsAAAC/S/dmPdwb3N0AAAXAAAAAKsAAADoQUaFJHicY2BkYGBgYmRjevyYO57f5isDN/MLoAjD4wDnJhj9//B/NuaFTO+AXA4GJpAoAFlvDMh4nGNgZGBgevefjYGBecP/w/+vMy9kAIqggGAAqvQHOnicY2BkYGAIZvBkYGUAASYgZmQAiTmA+QwAEo4A5wAAeJxjYGScyjiBgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBlZgCDBqCgAwMCBKS5pgAphd/MTO/+swFVvmP4BeQzguQADJIMiwAAeJxNkDFLw1AUhc+9jwy2kEUIhZSAtCCE4NChBCft4lBKSamCS2hEBPFHZLJ/or+guBQcnJx07dIpo46dXEpXe96Lg4Ev59173uG9+6QF98mIvx/AXCKVZ4xJKjtcmAY1QEG/6XTn+jG5/VNLm5z+q2u4Xxdok0JLDHSDmV4j13OyYP2JnHtyqRDrG70IuXnCPfsz/ULKTK1zaoJEl+jqymV9s4IvJ3gggXyjrx4m8k7fQ5fakR5Cey/WGecaSvP3Q7aYcp2ZEJnt049szmVumC85xyOOnbeGry88Y8234Vpe6dn5K8edOcJerxBqq8acITwAgxY/uQB4nGNgYGBmgGAZBkYGEOgB8hjBfBaGAiAtwSAAFOFgUGBQZbBiCGeIZohlqFKQVJBVUPrN/P8/UAVIRoPBESyTCJSRAcow/P////H/+//v/r/+/8r/y/8vPDB6YPBAh9UfagtWwMjGAJdmZAISTOgKIE4FuoyBlY2dg5OLm4eXj19AUEhYRFRMHKJGQlJKWkZWTl5BUUlZRVVNXUNTS1tHVw8oo89gACQNjYxNTM3MLSytrG1s7ewdHJ2cXVzd3D08vXA7DB34Ea+UgcHHl8Ebxg4IJKQaADLBKcgAAAAAAAAAAAAAAABsAJAAtAEOATABQAFOAVoBegG4AdACEgJSAm4CoALiAv4DRAOGA5gDvAPuBCIEQgRiBHwErgTGBNIE8AUKBRwFSgVkBYoFrAXiBggGRgZiBoAGnAbUBuYG9gcoB1IHeAekB9AH9AhUCHQIhgimCL4Iygj8CRwJQgluCZ4JtAn+ChwKOgpUCoQKnArICugK+AsSCywLOgt4C6YLzgwWeJx9WAl0W9WZfv+T/SRbsmRZm1dZiy1Zlm3F2p4sWbId75YtW5I3eYnXkAUIpKEkLomzhyRgCEvbyTRLmQklMwkzGZw6FDw5JBwOuCxTmFLazjDhzBwY6BloZ4BSFj/Pf9+Tl9DM5Dhv073//e53v3+5l0qlfEuviCT0J1Q6lUMVUV6qhaJAzZgsHrfX5dQWq8XAmPGNBfKqWv0F3BazSS7SqPUil9P7rbeO2Laebh8bgyYJF0mTSWRimJWmS2TfTX7nKGsBk6FWSGUKjZQpsMLzN7/TRT337Ojr3bFjhJEtZmbKJFn0HzJli3+f/ApBX7dImc9arL68TDrOPXXTK4X/gOpcYqAd56WmqFSzRelmQyLWxYgZAhHagy84MksqslXBfntZQVFV4VeXoOHH0/ZWNierf2rvuaEfTwwWCXZ8aMcj2EEy5CKx2ct6Pe4KkdWlBc/NVrTBF776thXtJcFOLThhFu2EeH7NJgdoNWqeWjcrFu7eGqigreTBWQhJmjVqMSvcGQXoaZ0WZrUyqWZYopHLtJLRLKlMK1XcaQzpRHJttmL8Fp/hslKVWbtLpcxSZql21WeolBkySSDLkEGnZSlV0sZb/rI896fpN+lmSoVvarNRqTZ5lEaT22VUup0apZF+08h9VMJ9aDRCdgnoQL7ynG00ch8KNsaWDlKXqTjFUBQrNrNmj+tyqS0nJw7Te+Lkdyl1DdTU15QI+TV6jKDmvoC0a36hL15JX/zNRTrG4/GVNXkeuVQQLpMCdQsKhedTuQuMQiJLhR5yo3+bmvFNTC2TpGaI/k4tI5hoqnTpd7BA/wTX1MJbkIPZVAGEeTYEaESnpTOtFSKzichFp3U5WVgoyU6whkCNymTJH3KWJfIrIiomLdee12VQKgtjXYXQ9MM+t1/tL48/9BfdIa/DneD+E2ifQlmi3cjety+47XaBjwRezuPYCMUGHpeSEXu8rEvpgvPclT2uroMB9R4/LdHS/tTg4uPYvhTbX8P2dr59DYREHt7XaLHFimoRtCEHsfCHzhcAuMZt392hLyhRRuqN6wqz0pSpkJKWWvH46HfNBkNaU7p4u+pOJpuZq93dXFjo8+pDgzmVDlN2KjAy8bk9A9ZwsSGtOo3ZlgkC5mW+SokPINtWVo80ES+g7YDwQ8BjYsRWnj7UqlgPsDCV2B2VGrZ6ffXSXNbSHE4prwqUruvVFBVu8odv97G+2OXo1ObqSm+sWlvm0AcZSO9wlFf6nF63v7/WOVygHBbWKx9BvEOfwBglRwRmjdlj9KiQM7OSEcE7E53cF4uDExfhhQsXLgSRx37YXcO9iLitiPsa9jMkcVsE4EkKGbFZadQYNbxsru0fCEwajNreSomq3JBXbSvxy9dDJ/dlRTBy16sbDnrLfDY3nVXY4IhHyk2wvfYN28GbtJRLlfGjEF+uEPHOq9PwoxD7YreVPGsYDQmQrBcWCsyBeL7HX5p/5k7W5XG3bEpr2Ng0FNOZQoFGoNOy3cUhS/a/+TutDZmOtuno6ZfVAc2ee+IzE+220IZqWaautLksZFten88RwwneHzAImzNVOBaujBEWzPVt5d0fT+FqX4WzdKd188lXtkIXpEIzetUydh1lphzLHCF0tgKWow9ZSRHPlkaNjuBVrXmGhV39vVOd/lDw7ljX9mDIF+2ur2IbyH9Rh3NdpIV1t+EK74qFhtXqeHnz5s3N5XG1aghErvV1bk9dHfdpc0tzS0Nb6xoec4jSQVAZGYQlzkk8E/HoaeRxrV8ihB/c1lRTWFFVOyIxDDiahupq4kV1tdZegHSt0xS0FiChVc3QeeblCo/lvh0l9pmJ25vq9c0P65TiHPf60qqKeMRWPSTojI83MI/MiClKhRFHmYw6cdgS5xriSS3S0/QctlBSlNFsNYrN4FKJLFYzQxyQnh5q597taIPU/ubBAhEwnhx57muv0XNcBCCuNT7eYmnGUURkLHoc7cgpLVUocG9UrlBucVvsoEEJkTt+9tLjD2/l/vTxlhMbWqJ3b7knPn3P2NH7oo+cjO6YD2+n5zY3sd1ZGeO/mWz84ueBGPdJB6+L9Uuf02H6Oq9/XphWSybhUafVYfSwrIlvXpYOB4qK6w+PbNgwcthrszvldpvVNdrY0NA4ut5czJYXpUm3bIGSrVskEnVML5P19n1vqq9XJrUgJ6M4l5M4FwnhBPiZGInml7GfnN3LfQnMvtne41tPntx6HHoeepme+6dHD/5k8bmziHMD9i+lZ0mesQH6JC44zh59U8nHM7qUc8PVK6jh49DGzb2JD9P0bB18HOQWgUr2l2P/DHxZ7YveTcsvYeODUMG9lYBL9Hfg6yD3EjZMctO7zM3/w4wHJUD3Tm4TmKlyuCsUZWV2n8BMY82htyyVAi9SeU6sWJEp8KJ5MpjEtRF5kRKlKAkiF15d9MYEdyGRgJ4EmQ5K401wUMl5UFewPZ/vlK4riQS+JOPvIXzMXIm/Wj6KYdY4NNLV1y13RoyV2gzo/X68vzTs0+RastJpvRAbyNo8sIxBJNYQDOAC+oGhzw/39MDtw9xncMex/0AUM7CD+2QZB3yKfRh+PTDQFsOn3O2JSpDSc4vHab7NJIqYwTY5/NysWJ2IzMQLyCR1Kq3O5WVVLhGDqretO9z6eK0EIttNp3PEIIse+A59BzD37uXOweHztsXH6bk+bryx0P0WxFcxT6DtDB6zYFOlQxz0xO7P6yHCX+CDY4uPIOzcY/RdqEHf0u/op+jXMEdo0UZmMpK5nGsDFv3Uz/buee7ZfdOjhwYThw8ODRyCz7if//KfT/3o19ypA3/1xMEH/+ESldRzE46fThSJekYZm5WutYpuOrrhqcSXG49Gx6IzM/ER+K/undwNem5XrC7KvcvHCd/SQR5PJmXkbYh1ZusKKGIJUWUSUDVgdekQWlP7zk29FU4e3896Dw8PHjkylJEvlmxMdN4Gib4nq89MZRGkv/7R/Rcvcv9zPoUWPbxlmFrGu4XnS8szZhbgklDCrkDekpg/0/vfWx8d7kiMd5840TMGQe5Feu6ucHBcN8eGuW/aeO7LUGufIu6StVrDVG/FAkmokbxO9BGeU50eyJ8WPt03OrVNMbqzLlqqKa7z1BR4p1+JK9qH13eZNUWO9hqj5x97phuj0S53VVGWIjMjr7CqKbLT2VXb4qjUZymkqnyzH8fGkps+RF/i8xjvxziPZCajDx1BT04kBvB6hB6l74LFE/TdUCfoFdc+ivNXruQwFC2/4vhARx+5bdP3E2P1DZORj+547LE74HXOObJp8wZ4g/TFioJ+UPCPNCChXJAu/SD3+yHu98NPexlIGzyMum9DrdWe0K/7EHqT/URPYD90s6TyGTHeUadJ7av0UAjkSfTEq3071mGZWjsZfbU36iimIbVlIDpeUCRKAaZ1kNiGR/7W6brBPYljfPDUXyp934CPu7BxRqWu+hqEWvg2rHnTseYVk/2M0kX8GNLPnRsa+kr0YfCbR/k22iWGek5oo0tmr+ewxbmvgqJtQdSJF+uEk/A6qsRAdOJZTvd8OSQWakmxR3AWrFFOhoNb/L7Tu5zF0SYmHGsaibzOWhyFpiJH1F5TT9s9Qed6+1j4dCi9UW9WqYQcGsMx3uPzWs6ygviYs6J6sYZP3O9ta28JRcIticbhSMzTYDWH2IEbE/dXVSAFvwocG+nrDrxb2yPEgyK0eRZx64RYbeFdSCeuQJHIQUALZ9sSQ7unJipqy2Ql1TZnfW5HqK+xxHX86omsnLrcLF/Y3jbqRXzE1jM8vry1HGDoV7pEnpVYgdN/JlIXb5nc1Na1PhyxBNiBqLfUYHTX3D8+dpQFy+Lbr7Ddid6efL0wbzPaPYMYs/h5G0mdyepWjWt5tIwYznCv0j3V3Q1MS9/A9L3xgXUlVWkNZfZm2b+0jvrq3Mcnxo63hty1oSafMHdECYP0NTJ34Ov+AiCLbyaLK5iGQWtpRq5Rs31buK1tpLmojN6hTFWYc3f6uWk44B9oG5NiRslfcsL78DJVTrFUk2CLMVuFPagV5xwApz5lZUdqwT/ButfF8LGKkKJy24Hf5fMr+L4tS+aSphiH6502qb9fmeOz2bP3Dw/tr80tMG6oY0vauv/aU2xiWVPxw/cPaA0KCSRqQgk4irIvZ+tHC+RaD82o8l3Gqs5OX53F0G+z+xpGDIbf3OF23u3kuEa5MjstxVRWRniI4mUW103N5xs3qQKZAkgqSwOzEZCqrHnuykjY13sMzHKVUZM5EPgc1bTQchrXJ4xsnqMfFmo7kl3JVvRUOCzBRDz/vQRZw6UXl1zUs9hGQeK+bjXT0hhGSB3wbNgZ8msMpenqfGU4kQjUd5qChSkZBh0NaAGobn6fksy1ViHXsi4xvBM71dXY8urA+ffiMwjI+4uLwtrinKhTq/ke0Qj5Hr/TC7hWpuRc6eRcV59cGmFtnBp6IZKqtBtdzuVbi79/Mt83jByo8ovUSMHqw/WWjljs9MrYMItj/Bmfmm/x2VLVv4ZPuN7cfproXY96fxv1LuW9Uv3t1JbUyNv7BxMH9g0N7I90+3093VWB+L+OHTk8PvHQzEC8r7e7Z2hYiBkheA+x8D65GjM0a2JGstx/DzUejISbh5sSkc6q9SXpZpe//8bkkao/0NOV1cc3NE74F9QKx7jgk0Vo9xm0m0midOoaX8ek5XEld4Gr7l7f3Ty+rd28Pi8tHPY4qvo7q0LF6dc/Cx4dnTxSmCtt4F56sLhttK1pY1WGwGEML81oP53suyDJHgvNbaPhptq7sGQbC/8Krg+OALbNR742I18u/hxpWVr8QZJw6BPCjSGfWMkJlY4kD30KbF5nb+3ql7XGNsiVmChNuUaFt9DK5irCjbLaSI9MUajV2CvyRCmSdAmzr6nYUNZQ2ajIlstSRGImQ2oLFOP+gzbUWUJybYaUSZFkZaekpCtVOTx+FWJqpwNE7SSueviY4tJgfNGoSUxtb22Nd/c1zsy4Km15lgMg9e/d6/8qbuT1g31nca+UtRpF1yRdmA3Xbw04IgWVrsbIukAwgFvpnxYbqjxgEnInXMW+UiF3Cjm3BuDqxf6LkbEiBiTuTpjnGvD/4rjJcfQXyTx9Cvvk8X2sJN8qAPvqhL7Ld/rUsf5W3Hel2EKdx9rdlamQWlbVVGfDu62W2PzTSLnj/jdg/um/cVTPzL99rKTsyC/JfAghrwmYiO+aWazKiO++Fv/BI7Hr8/HjR2JX5ufff+fJJ9/huZMvufg5ZBM8ZI/qABIqoAZ3tzo9jWBUcPW3+R5DsZkpsaTLdLKi651eibFCBKIDML/4UWO5pC4zJS9vAOb3ZHUd0TcCORrkzzoeRbtK/rwHkuWPBoSTnUe54yCNYA30ANzG/bEHHx6zQQICVu588qxmDD6gLgu1u2rteRs9SQ7caPI73Mv/nsHvcXGOLp1wuxwnLa/zV/gghu3xP/Gjceyzc6WPYFUn3H7KG7++OkQsea73R2qKVsMPhXM93ImpuX8H/RToiT1cQ/puPqfZ/8+slnrT51snOtCsfLh13qtf+UBrSRpENEQ/Czg2yQMFpM7EQIB+K75pcP7gBseGhXg8JRw+ey8O2OHLM+Ybsoun6Mn4YivMC6MMto1KG7KK7FPJecFLaFtDagC4pUUVqdssN9k7Gw7DgRVj9Uo0xjUg2yk8TzeSWHOoym+hvcmu9dYs0jeWJ9DhM+Tzwy0ai2Xa3MwpgqGntsi4Oh1a1zaa3kDGv6JkFKacXUkiw6PIHPW/qRw6PAAAeJydUk1O20AU/sYkEZVaxK4bFm8JErZskyxg0QUIkCISUEyqbCcwSawED7KDopyCi1Q9AWfhClyBL+NpF+muHvm977353q8NYA+/oVA/P/9ihV313eMALRV5vINj9epxA/vq3eMm9oJvHrewH/wgUzW+0PrlojZYkd/0OMBXJR7vYKQ6Hjcg6s3jJg7Uh8ctSHCAC1g8Y40SOaaYYQlBipjnBCFPjU/pHZMlOEdE2YXGA+aMXaGizunTKPDo7iL0HKvv7mvmhnFIu3CZDCtpLDChZZ28p29EPUSGSwwoBdfUt/Tc0TpiRlzY53WZT2dLSeP4JAwpT2W8lvNIuvphblfVPBddPEo36kXStys6czm0hYzNTC8mYidyb0YyzC4HmVwPbod32RHz3rDhzA1QIeG4uOlluqgSos0MJZ5ct+jb8klTX7lBlk6XXJtxS4sYKTjju50v5CCGvBcm0YyoWR36E556ySnaTGyL5ZUtp0bSKJYz+dNHODDTl4Uu6eqEScLB0/a/bW+XwXb45nc0vKj4OepPUXcds7bw0pRVzmWxdtyW/8n/CfDefjh4nG3OyS5DcQBG8d//lpC0qKFq3LVmejsYFyJC1VTzzAPYdOcFbLwQ8XjcyF06yZezO/lE/vh5N+c/rpIFkYxeWTl9+g3IGzRk2IiCUUVjxk2YNGVaSdmM2aQ3b8GiJctWVMSqauoaVq1Zt2HTlm079uxrOtBy6MixE6fazpy7cJk8uHbj1p17Dx49efbi26cvHyEKmdAVunveOq/N3ThOXU1dS13/BVh0HBgAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEwiAgZgHzGAAHJACBeJxjYGBgZACC2wqnqkH04wDnJhgNAETYBjIAAA==')format("woff");}.ff4{font-family:ff4;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff5;src:url('data:application/font-woff;base64,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')format("woff");}.ff5{font-family:ff5;line-height:0.915000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff6;src:url('data:application/font-woff;base64,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')format("woff");}.ff6{font-family:ff6;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff7;src:url('data:application/font-woff;base64,d09GRgABAAAAABfgAA0AAAAAIXgAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAXxAAAABoAAAAcocFRjEdERUYAABeoAAAAHAAAAB4AJwBZT1MvMgAAAaQAAABGAAAAVlXoGRdjbWFwAAAC5AAAANsAAAGSsIqMH2dhc3AAABegAAAACAAAAAj//wADZ2x5ZgAABGgAABDqAAAYLO/ygINoZWFkAAABMAAAADQAAAA2KSTK72hoZWEAAAFkAAAAIAAAACQGVQLgaG10eAAAAewAAAD1AAABTKTMElxsb2NhAAADwAAAAKgAAACo93r9dm1heHAAAAGEAAAAHgAAACAAmgBMbmFtZQAAFVQAAAGsAAAC/S/dmPdwb3N0AAAXAAAAAKAAAADPcvHZeHicY2BkYGBgYmRbuNvqWTy/zVcGbuYXQBGGxwHOHTD6/+H/bMwLmd4BuRwMTCBRAHfKDX14nGNgZGBgevefjYGBecP/w/+vMS9kAIqggGAAqt8HOXicY2BkYGAIZvBkYGUAASYgZmQAiTmA+QwAEo4A5wAAeJxjYGTMZZzAwMrAwNTFtIeBgaEHQjM+YDBkZAKKMrAyM4BBA1DQgQEBAtJcU4CUwm9mpnf/2YAq3zH8AvIZQXIA/4sMYwAAeJxNkL1qAkEUhc+9YxOFbUKCuBoEhYDGIo1sOrWxkBBW3CLNoiEExHfQJr6ETyBYJFiksjOtjZWlpVUqSRvPzKZw4Jsz9545zI9k4YY82gkwTQTyjicSyBENc0G9woB+xunR9Svk+V8teXJ7Vidwv86QJwMdo6Vb9DVCrA9kxvobMffEskNFv+gVEJsRXtnv6x4BM4lOqVXc6Rxl/XBZz3zCkyLeyLXsUdcUurKin0KZWpJ7+PZerEP8oCPpv7Uc0OM6NDmEtk//xuZcJmJ+wncMcem8DTxd8IwNv4VrWdKz7985Xkwav9qGr9kEU4N/AkFWPqIAAAB4nGNgYGBmgGAZBkYGEOgB8hjBfBaGAiAtwSAAFOFgUGBQZbBiCGeIZohlqFKQVJBVUPrN/P8/UAVIRoPBESyTCJSRAcow/P////H/+//v/r/+/8r/y/8vPDB6YPBAh9UfagtWwMjGAJdmZAISTOgKIE4FuoyBlY2dg5OLm4eXj19AUEhYRFRMHKJGQlJKWkZWTl5BUUlZRVVNXUNTS1tHVw8oo89gACQNjYxNTM3MLSytrG1s7ewdHJ2cXVzd3D08vXA7DB34Ea+UgcHHl8Ebxg4IJKQaADLBKcgAAAAAAAAAAAAAAABsAJAAtAEOATABQAFOAVoBegG4AdACEgJSAm4CoALiAv4DRAOGA5gDvAPuBCIEQgRiBHwErgTGBNIE8AUKBRwFSgVkBYoFrAXiBggGRgZiBoAGnAbUBuYG9gcoB1IHeAekB9AH9AhUCHQIhgimCL4Iygj8CRwJQgluCZ4JtAn+ChwKOgpUCoQKnArICugK+AsSCywLOgt4C6YLzgwWeJx9WAl0W9WZfv+T/SRbsmRZm1dZiy1Zlm3F2p4sWbId75YtW5I3eYnXkAUIpKEkLomzhyRgCEvbyTRLmQklMwkzGZw6FDw5JBwOuCxTmFLazjDhzBwY6BloZ4BSFj/Pf9+Tl9DM5Dhv073//e53v3+5l0qlfEuviCT0J1Q6lUMVUV6qhaJAzZgsHrfX5dQWq8XAmPGNBfKqWv0F3BazSS7SqPUil9P7rbeO2Laebh8bgyYJF0mTSWRimJWmS2TfTX7nKGsBk6FWSGUKjZQpsMLzN7/TRT337Ojr3bFjhJEtZmbKJFn0HzJli3+f/ApBX7dImc9arL68TDrOPXXTK4X/gOpcYqAd56WmqFSzRelmQyLWxYgZAhHagy84MksqslXBfntZQVFV4VeXoOHH0/ZWNierf2rvuaEfTwwWCXZ8aMcj2EEy5CKx2ct6Pe4KkdWlBc/NVrTBF776thXtJcFOLThhFu2EeH7NJgdoNWqeWjcrFu7eGqigreTBWQhJmjVqMSvcGQXoaZ0WZrUyqWZYopHLtJLRLKlMK1XcaQzpRHJttmL8Fp/hslKVWbtLpcxSZql21WeolBkySSDLkEGnZSlV0sZb/rI896fpN+lmSoVvarNRqTZ5lEaT22VUup0apZF+08h9VMJ9aDRCdgnoQL7ynG00ch8KNsaWDlKXqTjFUBQrNrNmj+tyqS0nJw7Te+Lkdyl1DdTU15QI+TV6jKDmvoC0a36hL15JX/zNRTrG4/GVNXkeuVQQLpMCdQsKhedTuQuMQiJLhR5yo3+bmvFNTC2TpGaI/k4tI5hoqnTpd7BA/wTX1MJbkIPZVAGEeTYEaESnpTOtFSKzichFp3U5WVgoyU6whkCNymTJH3KWJfIrIiomLdee12VQKgtjXYXQ9MM+t1/tL48/9BfdIa/DneD+E2ifQlmi3cjety+47XaBjwRezuPYCMUGHpeSEXu8rEvpgvPclT2uroMB9R4/LdHS/tTg4uPYvhTbX8P2dr59DYREHt7XaLHFimoRtCEHsfCHzhcAuMZt392hLyhRRuqN6wqz0pSpkJKWWvH46HfNBkNaU7p4u+pOJpuZq93dXFjo8+pDgzmVDlN2KjAy8bk9A9ZwsSGtOo3ZlgkC5mW+SokPINtWVo80ES+g7YDwQ8BjYsRWnj7UqlgPsDCV2B2VGrZ6ffXSXNbSHE4prwqUruvVFBVu8odv97G+2OXo1ObqSm+sWlvm0AcZSO9wlFf6nF63v7/WOVygHBbWKx9BvEOfwBglRwRmjdlj9KiQM7OSEcE7E53cF4uDExfhhQsXLgSRx37YXcO9iLitiPsa9jMkcVsE4EkKGbFZadQYNbxsru0fCEwajNreSomq3JBXbSvxy9dDJ/dlRTBy16sbDnrLfDY3nVXY4IhHyk2wvfYN28GbtJRLlfGjEF+uEPHOq9PwoxD7YreVPGsYDQmQrBcWCsyBeL7HX5p/5k7W5XG3bEpr2Ng0FNOZQoFGoNOy3cUhS/a/+TutDZmOtuno6ZfVAc2ee+IzE+220IZqWaautLksZFten88RwwneHzAImzNVOBaujBEWzPVt5d0fT+FqX4WzdKd188lXtkIXpEIzetUydh1lphzLHCF0tgKWow9ZSRHPlkaNjuBVrXmGhV39vVOd/lDw7ljX9mDIF+2ur2IbyH9Rh3NdpIV1t+EK74qFhtXqeHnz5s3N5XG1aghErvV1bk9dHfdpc0tzS0Nb6xoec4jSQVAZGYQlzkk8E/HoaeRxrV8ihB/c1lRTWFFVOyIxDDiahupq4kV1tdZegHSt0xS0FiChVc3QeeblCo/lvh0l9pmJ25vq9c0P65TiHPf60qqKeMRWPSTojI83MI/MiClKhRFHmYw6cdgS5xriSS3S0/QctlBSlNFsNYrN4FKJLFYzQxyQnh5q597taIPU/ubBAhEwnhx57muv0XNcBCCuNT7eYmnGUURkLHoc7cgpLVUocG9UrlBucVvsoEEJkTt+9tLjD2/l/vTxlhMbWqJ3b7knPn3P2NH7oo+cjO6YD2+n5zY3sd1ZGeO/mWz84ueBGPdJB6+L9Uuf02H6Oq9/XphWSybhUafVYfSwrIlvXpYOB4qK6w+PbNgwcthrszvldpvVNdrY0NA4ut5czJYXpUm3bIGSrVskEnVML5P19n1vqq9XJrUgJ6M4l5M4FwnhBPiZGInml7GfnN3LfQnMvtne41tPntx6HHoeepme+6dHD/5k8bmziHMD9i+lZ0mesQH6JC44zh59U8nHM7qUc8PVK6jh49DGzb2JD9P0bB18HOQWgUr2l2P/DHxZ7YveTcsvYeODUMG9lYBL9Hfg6yD3EjZMctO7zM3/w4wHJUD3Tm4TmKlyuCsUZWV2n8BMY82htyyVAi9SeU6sWJEp8KJ5MpjEtRF5kRKlKAkiF15d9MYEdyGRgJ4EmQ5K401wUMl5UFewPZ/vlK4riQS+JOPvIXzMXIm/Wj6KYdY4NNLV1y13RoyV2gzo/X68vzTs0+RastJpvRAbyNo8sIxBJNYQDOAC+oGhzw/39MDtw9xncMex/0AUM7CD+2QZB3yKfRh+PTDQFsOn3O2JSpDSc4vHab7NJIqYwTY5/NysWJ2IzMQLyCR1Kq3O5WVVLhGDqretO9z6eK0EIttNp3PEIIse+A59BzD37uXOweHztsXH6bk+bryx0P0WxFcxT6DtDB6zYFOlQxz0xO7P6yHCX+CDY4uPIOzcY/RdqEHf0u/op+jXMEdo0UZmMpK5nGsDFv3Uz/buee7ZfdOjhwYThw8ODRyCz7if//KfT/3o19ypA3/1xMEH/+ESldRzE46fThSJekYZm5WutYpuOrrhqcSXG49Gx6IzM/ER+K/undwNem5XrC7KvcvHCd/SQR5PJmXkbYh1ZusKKGIJUWUSUDVgdekQWlP7zk29FU4e3896Dw8PHjkylJEvlmxMdN4Gib4nq89MZRGkv/7R/Rcvcv9zPoUWPbxlmFrGu4XnS8szZhbgklDCrkDekpg/0/vfWx8d7kiMd5840TMGQe5Feu6ucHBcN8eGuW/aeO7LUGufIu6StVrDVG/FAkmokbxO9BGeU50eyJ8WPt03OrVNMbqzLlqqKa7z1BR4p1+JK9qH13eZNUWO9hqj5x97phuj0S53VVGWIjMjr7CqKbLT2VXb4qjUZymkqnyzH8fGkps+RF/i8xjvxziPZCajDx1BT04kBvB6hB6l74LFE/TdUCfoFdc+ivNXruQwFC2/4vhARx+5bdP3E2P1DZORj+547LE74HXOObJp8wZ4g/TFioJ+UPCPNCChXJAu/SD3+yHu98NPexlIGzyMum9DrdWe0K/7EHqT/URPYD90s6TyGTHeUadJ7av0UAjkSfTEq3071mGZWjsZfbU36iimIbVlIDpeUCRKAaZ1kNiGR/7W6brBPYljfPDUXyp934CPu7BxRqWu+hqEWvg2rHnTseYVk/2M0kX8GNLPnRsa+kr0YfCbR/k22iWGek5oo0tmr+ewxbmvgqJtQdSJF+uEk/A6qsRAdOJZTvd8OSQWakmxR3AWrFFOhoNb/L7Tu5zF0SYmHGsaibzOWhyFpiJH1F5TT9s9Qed6+1j4dCi9UW9WqYQcGsMx3uPzWs6ygviYs6J6sYZP3O9ta28JRcIticbhSMzTYDWH2IEbE/dXVSAFvwocG+nrDrxb2yPEgyK0eRZx64RYbeFdSCeuQJHIQUALZ9sSQ7unJipqy2Ql1TZnfW5HqK+xxHX86omsnLrcLF/Y3jbqRXzE1jM8vry1HGDoV7pEnpVYgdN/JlIXb5nc1Na1PhyxBNiBqLfUYHTX3D8+dpQFy+Lbr7Ddid6efL0wbzPaPYMYs/h5G0mdyepWjWt5tIwYznCv0j3V3Q1MS9/A9L3xgXUlVWkNZfZm2b+0jvrq3Mcnxo63hty1oSafMHdECYP0NTJ34Ov+AiCLbyaLK5iGQWtpRq5Rs31buK1tpLmojN6hTFWYc3f6uWk44B9oG5NiRslfcsL78DJVTrFUk2CLMVuFPagV5xwApz5lZUdqwT/ButfF8LGKkKJy24Hf5fMr+L4tS+aSphiH6502qb9fmeOz2bP3Dw/tr80tMG6oY0vauv/aU2xiWVPxw/cPaA0KCSRqQgk4irIvZ+tHC+RaD82o8l3Gqs5OX53F0G+z+xpGDIbf3OF23u3kuEa5MjstxVRWRniI4mUW103N5xs3qQKZAkgqSwOzEZCqrHnuykjY13sMzHKVUZM5EPgc1bTQchrXJ4xsnqMfFmo7kl3JVvRUOCzBRDz/vQRZw6UXl1zUs9hGQeK+bjXT0hhGSB3wbNgZ8msMpenqfGU4kQjUd5qChSkZBh0NaAGobn6fksy1ViHXsi4xvBM71dXY8urA+ffiMwjI+4uLwtrinKhTq/ke0Qj5Hr/TC7hWpuRc6eRcV59cGmFtnBp6IZKqtBtdzuVbi79/Mt83jByo8ovUSMHqw/WWjljs9MrYMItj/Bmfmm/x2VLVv4ZPuN7cfproXY96fxv1LuW9Uv3t1JbUyNv7BxMH9g0N7I90+3093VWB+L+OHTk8PvHQzEC8r7e7Z2hYiBkheA+x8D65GjM0a2JGstx/DzUejISbh5sSkc6q9SXpZpe//8bkkao/0NOV1cc3NE74F9QKx7jgk0Vo9xm0m0midOoaX8ek5XEld4Gr7l7f3Ty+rd28Pi8tHPY4qvo7q0LF6dc/Cx4dnTxSmCtt4F56sLhttK1pY1WGwGEML81oP53suyDJHgvNbaPhptq7sGQbC/8Krg+OALbNR742I18u/hxpWVr8QZJw6BPCjSGfWMkJlY4kD30KbF5nb+3ql7XGNsiVmChNuUaFt9DK5irCjbLaSI9MUajV2CvyRCmSdAmzr6nYUNZQ2ajIlstSRGImQ2oLFOP+gzbUWUJybYaUSZFkZaekpCtVOTx+FWJqpwNE7SSueviY4tJgfNGoSUxtb22Nd/c1zsy4Km15lgMg9e/d6/8qbuT1g31nca+UtRpF1yRdmA3Xbw04IgWVrsbIukAwgFvpnxYbqjxgEnInXMW+UiF3Cjm3BuDqxf6LkbEiBiTuTpjnGvD/4rjJcfQXyTx9Cvvk8X2sJN8qAPvqhL7Ld/rUsf5W3Hel2EKdx9rdlamQWlbVVGfDu62W2PzTSLnj/jdg/um/cVTPzL99rKTsyC/JfAghrwmYiO+aWazKiO++Fv/BI7Hr8/HjR2JX5ufff+fJJ9/huZMvufg5ZBM8ZI/qABIqoAZ3tzo9jWBUcPW3+R5DsZkpsaTLdLKi651eibFCBKIDML/4UWO5pC4zJS9vAOb3ZHUd0TcCORrkzzoeRbtK/rwHkuWPBoSTnUe54yCNYA30ANzG/bEHHx6zQQICVu588qxmDD6gLgu1u2rteRs9SQ7caPI73Mv/nsHvcXGOLp1wuxwnLa/zV/gghu3xP/Gjceyzc6WPYFUn3H7KG7++OkQsea73R2qKVsMPhXM93ImpuX8H/RToiT1cQ/puPqfZ/8+slnrT51snOtCsfLh13qtf+UBrSRpENEQ/Czg2yQMFpM7EQIB+K75pcP7gBseGhXg8JRw+ey8O2OHLM+Ybsoun6Mn4YivMC6MMto1KG7KK7FPJecFLaFtDagC4pUUVqdssN9k7Gw7DgRVj9Uo0xjUg2yk8TzeSWHOoym+hvcmu9dYs0jeWJ9DhM+Tzwy0ai2Xa3MwpgqGntsi4Oh1a1zaa3kDGv6JkFKacXUkiw6PIHPW/qRw6PAAAeJydUk1O20AU/sYkEZVaxK4bFm8JErZskyxg0QUIkCISUEyqbCcwSawED7KDopyCi1Q9AWfhClyBL+NpF+muHvm977353q8NYA+/oVA/P/9ihV313eMALRV5vINj9epxA/vq3eMm9oJvHrewH/wgUzW+0PrlojZYkd/0OMBXJR7vYKQ6Hjcg6s3jJg7Uh8ctSHCAC1g8Y40SOaaYYQlBipjnBCFPjU/pHZMlOEdE2YXGA+aMXaGizunTKPDo7iL0HKvv7mvmhnFIu3CZDCtpLDChZZ28p29EPUSGSwwoBdfUt/Tc0TpiRlzY53WZT2dLSeP4JAwpT2W8lvNIuvphblfVPBddPEo36kXStys6czm0hYzNTC8mYidyb0YyzC4HmVwPbod32RHz3rDhzA1QIeG4uOlluqgSos0MJZ5ct+jb8klTX7lBlk6XXJtxS4sYKTjju50v5CCGvBcm0YyoWR36E556ySnaTGyL5ZUtp0bSKJYz+dNHODDTl4Uu6eqEScLB0/a/bW+XwXb45nc0vKj4OepPUXcds7bw0pRVzmWxdtyW/8n/CfDefjh4nG3OuU4CAQAA0be7DYmKByjg0QkqqICKV0EsVDxRvEFpN/E3bPwhDS1+mW6onWTayQiN+P2w6j/uEwOhSMqYcRPSJk2ZNiMja9acnLyCeQsWLVlWVLKS9NaUVazbsKmqpm7Lth0Nu/bsO3Co6cixE6dazpy7cOnKtbYbtzrukoMHj548e9HV8+pN38CXb59BaOgniMI4juL4/Q/7bBaiAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEwiAgZgHzGAAHJACBeJxjYGBgZACC2wqnqkH04wDnDhgNAEUUBj4AAA==')format("woff");}.ff7{font-family:ff7;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff8;src:url('data:application/font-woff;base64,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')format("woff");}.ff8{font-family:ff8;line-height:0.923000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff9;src:url('data:application/font-woff;base64,d09GRgABAAAAAATMAA0AAAAABtQAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEsAAAABoAAAAcocFRjEdERUYAAASUAAAAGwAAAB4AJwALT1MvMgAAAaQAAABDAAAAVlZLXqpjbWFwAAAB/AAAAEsAAAFKAK0Ko2dhc3AAAASMAAAACAAAAAj//wADZ2x5ZgAAAlQAAABAAAAAQCG9w3BoZWFkAAABMAAAADMAAAA2J7TKbGhoZWEAAAFkAAAAIAAAACQExQFjaG10eAAAAegAAAAUAAAAFAU2ADdsb2NhAAACSAAAAAwAAAAMAAAAIG1heHAAAAGEAAAAHQAAACAASAAUbmFtZQAAApQAAAHSAAADBtxvx81wb3N0AAAEaAAAACEAAAAs/7H2NXicY2BkYGBgZmiOt45Viee3+crAzfwCKMLwOMC5A06b/2dj3MP0DsjlYGACiQIAN9kLJwB4nGNgZGBgevefjYGB8QsDEDDuYUhhkGRABqwAaf8EK3icY2BkYGBgZRBkANEMDExAzAhmO4D5DAAEgABdAAAAeJxjYGT4xfiFgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMbMAAOMDEggIM01BUgpMMQwvfvPBlT5juEXTA0Aiy8NngAB9AAAAAAAAAFNAAAAAQAAAfQAN3icY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUGGL+/wfywfT/x/9XQNUDASMbA5zDyAQkmBhQASPECnIBCwV66QUAKqUJVAAAAAAAAAAAAAAAACAAAQA3/wYBvALuABAAAAUBJjU0NjMyFhcBFhUUBiMiAZH+qwUMCAkIBQFWBQwIDuIDrAwECAwKDvxUDAQIDAAAeJxtkcFq20AURa8UxxAIbb6gPLqywZZHSkKwCYGg4p0CjaGQpZAHWxBJRhpHeNEv6K4f0u/povRHssmd8XQRqAY0Z968ue++GQAf8AsBjl+Nv54DfAwqzyGGwQ/PJ/gc/PY8wDA883yKizDxPGT8KzODwRlXf9wpywE+BZnnEOfBd88n+BL89Dxg/NXzKSS88DzEeZgiRYMdDmhRYoMtDAQjFBhzjjHnuMGEnEBxzEn3qKBdfoGc/QkyzoZnNXcsHXeeubOiesG1ZvTglG9dDcOaC8w4ejci5lfoODdU3uCO9W3VnmetsuCRGp2r+8L/mpElc2vn98Gd1qSUXlZ4onNFLaTN7tCWm62RUTGWeD6/mUii1FzuK92WRV5LlputrnLDxbOsmqLU5iCj260xu8Vs1vd9lFdd1LSbu/FE+tJs5VF3un3Ra1k2tZGHvNKSZqunWNl6tFSxtT1tWav2ahqatVxbO9Vub3QrWbPWLQOZa6VkfsWFXpd7zv/6Wvq70O72I3YkvLP3PR4j15hyFfNvXynBFUVobknbWpJIycJbJFxP43iaqOQK74RwTAC+ObMdTTXube2rX7rqVlmYoNuubGpR6jJSKpH/67wBKr2CdQAAeJxjYGJg+P/x66H/WxmMGLABViBmZGBiYGawBwDRFgXaAAAAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH04wDnDhgNAEUUBj4AAA==')format("woff");}.ff9{font-family:ff9;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffa;src:url('data:application/font-woff;base64,d09GRgABAAAAABCAAA0AAAAAFoQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAQZAAAABoAAAAcocFRjEdERUYAABBIAAAAHAAAAB4AJwA5T1MvMgAAAagAAABKAAAAVlXpGVBjbWFwAAACpAAAANQAAAGynwT4EGdhc3AAABBAAAAACAAAAAj//wADZ2x5ZgAAA+AAAAo1AAAOCOFv479oZWFkAAABMAAAADQAAAA2KPnK72hoZWEAAAFkAAAAIgAAACQGPwJKaG10eAAAAfQAAACtAAAAyl0xDktsb2NhAAADeAAAAGgAAABoT0BSzG1heHAAAAGIAAAAHgAAACAAeABNbmFtZQAADhgAAAGsAAAC/RTJtwJwb3N0AAAPxAAAAHwAAACg8FTj/XicY2BkYGBgYmT7O+fN5nh+m68M3MwvgCIMjwOcO2D0//n/2ZhnMb0DcjkYmECiAJYnDg54nGNgZGBgevefjYGBOfv//P/OzLMYUhhEGZCBEQCb/waNAAB4nGNgZGBgMGbwYmBmAAEmIGZkAIk5gPkMAA8ZAMYAAHicY2BkfMs4gYGVgYGpi2kPgyxDD4j+P5fxAYMhIxNQlIGVmQEMGhgYGB0YECAgzTUFSCn8ZmJ6958NqPIdwy8gnxEkBwCXdQ6bAAB4nGOUYAADRl8g8R5IizG4AdkmjF8YWIHsRKbZDDJM9Qw5TJcYEphCGeKAYnHM2QwpTEeA/AdA3AbEOgxmTBsYKoBqFzE+ZPBkYmUIYtzLYA+k7YC0HaMRQyrQPEYgPxBoRyAj9//5jC8ZQkBsZimGQJA4UN4CSGsyhgH11jMoM2YypAL5MYxngXavZsgB0gxAzMi4mUEG6IYTjDfA+CSTO1CdBEMqQyoA3csowAAAAHicY2BgYGaAYBkGRgYQWAPkMYL5LAwTgLQCELKAaV0GfQYrBkcGVwZPBn+GYIYwhgKGKgVJBdnfTP//g1XoQFU4A1X4MgQxhDIkMhQBVcj8Zvj////j/zf+X/9/9v/x/8f+H/5/4P++/3v/b/6/6YHIAyFWA6jteAEjGwNcGSMTkGBCVwDxCgywsDKwIXjsEIqDgZOLG0jzADEvHz8Dg4Agg5AwQpmIqJi4hKSUtIysnLyCopIyg4qqmrqGppa2DmEHkgX09IEhCwWGRoRUAwCt9SuMAAAAAAAAAAAAAAAQAB4APgBSAHYAqgDMAO4A+gEoAUQBbgGWAdgB+gIWAk4CegKiAtAC/AMkA5IDsgPEA+gEAAQMBEQEZgSQBL4E1gUgBUIFZAWABbAFyAXyBhIGJAZABlwGogbWBwR4nH1XCXBb1RX992n5shZ/a5cl2dZiS5ZlO4m+rG9bWF5lyxLIjmQ7luN4TZM6Y5ZAGxJKnEwWkhgChHimBAhMmdJJG6BAipl23HZIF8gQAi1rFwYYCgzMlNIylJbWcu/730vSKdVoeZLeO/fc/T4GmM6lg8yvmSyjZBiB9Qpegf9RPBAuNmRhZm+WASbMPAvdzL8YGcNUuAU3NOW/0ELBs40M/qdYUpJB8gnD4RclC0qvxydEBIjwIQsZANXie2pOpSagIiXi4vcK3b8zJq1KoZM9btIyhBnHcwZYQGwWVyhahi+ArD47kkUCU9l8R5bBfU58myHzuEvPMG6v3816gdeAT/Aq2UJgycywO//W7iScGrSUawA0AwFL4OJFMp9PA/SZnae6fAmG8p1e+pxcIueZMtRFySJdv88gIFurxcr6/D6vB9GsFj6ESpD+dl9l2+HuRMs3dh2K+IPVZeX+8vDo4EA4xI+2+fzNNeUFmqkpqNwxpVKZMiU67cDg3zYNaDU+5DvGMDJAvirKFwrB6za6QxY24guCjA9FyLulb+3L/3MOlPuP7HJu23Hq1lM7zkL/nc+R+ZfuOfi9xZ88hFxHUOcfknOMkWECYESNPXiadbNuihAFUpUPn4SfFT6jtClnQ5DU5eeF3+B6hpxrhT835RdBwoAU8kDf8V4j/0xuLoffgNmK/O7DVTG1ptGv5EDmlaE1ZbjJarRY+Yhg5GXK9CEgbamXutucAIfSczu5eAEB694XbiTTIN+9L/9dOPy4d3GOzG/KT7R5+FeAxgvqTr5AbB3FlvlFTKOVN/Jk8tY7fRTn1uM+OJyGD44tnkAX2Y+R66mPx5Y+lunJRUbDWCWbYSzFgBfN5vWgtyzUcp+6Pty397jb8/7+mdt3OSc25844SrcMD/0Acve/+soD97/55h0HHv7OwTuefIJhJD+QCyIXi8hGJIOIGDPCqjOmcnsebB+Y++uOW4p0O7P7tZm+u+vv7t+Jgf4LMn99qmnCOi+k8v9Oom6RpY/JKHKsxPihDP0CJSVE/LVAn5RwCCNJpGstBfq0EIfhvvE9o66em1snNFqP3hMLNVirOP23n+92tQy3jarVToOrJtFQHPhp/0x848becEO5gSvSOcoaOtM3h3pbEut4p4HTGJ1eMed2I4f3USf9Mgef6CqRB9r4oPXJbdt32SZyk6ZUe8ctpsn0R9MnT07Di/nQ6Pavj8AlMQ8eRv+7EEPDMAXglfFGC0tdLnPlNw/v3XKNDcB67BKZX0yif1ruKhPehQHRnt1Ln8MH8CJjYzzUngJmUC1BpZuB+oilqWThQJCcJUTgVErVNVVWVahUFJ7dXaD1VfRuVPVlOpNF1+te4pTrfeu8vvJ1Dl+wqLmdBOuaQm3B8dTpmDpe6jUaqbwM5ms58iykkSpZnEUPyiIrYcGBGBWcefbq7g3q9FyqpT8Xb5k0ttR1hNeZm4XptyePNNSiFq9Hj41u6ou+1dJP9W9GPT5DPay0DqwGmpWthZVIE+BMf2541GS6d7L2Kr/d0xDoHua4+timjZX87OjICUNxq90wFU+ORSjPGPLsFHk6VuwiYVqRrLAavmiRp9KadDaRMJsPJXuE5tQvq+xRYdpoaI4E/P5w85GJ8aMC+BZfe17oyw30O0slbHgPuRpEG7hFHHZNwEp6oIdf0LVclUUDDwyNm01z2SGXo0MhVAcHbH/oHqtvDc9Ojs92N9W1xDrrqQ2+hm9/Ic+K2YYIhYQDnqUJgiVYgoZ3vFU6R4VTYd+pvS6TyiS1SVPRTV2eanKTXsF57Tc35mfgQONQclyDFQaWQiQKzzE1jMB0S5hKr5/mGnoN9Y9CqJSwK3kt0EaxrEKEV1IdCqkvjZFaEgRkw5qlhK+vNGjDGrlNW3hjO+/m5JrGQWdN2qvW3rNl+AatIlBpUhf48N+bWutdG/t+a6uq8LTZqr0VgwpHXYl+yO4zFADb0xybhKMyOVTXt4+VcOY6paV5fUNPT31xg9lVXR2oFjpGXa7fTYdDN4TyeVuZRmaw65Xgqa5mxHzZiE42on+LxHoZQc04WI5DFs6lY9aJcFwbxvBrTwwcdYN3+1D0cwy6C4nTjJg3eB7WkbukPkcrMW2zD6RGUp6cMQcLt+QYsvTQEg/tuIejFd+6Wl1iRJC2ny0cDjXxnuIqtbnUprg2Zcej0fYeT1OZXOeyEkAQkWsfCiyTchs7pcRT4Fl4IzM9URqfS0x8MXTxnexxpBd5+VFJN1i/1iMeSM2lxB6Bv8uC6E8x040xEHODwl225NmI6L8QSy6kY3JQ+9x8XBe+fDmWKEoNTmqSW2a9eMBZbkLTrC3OJ67JZE6v2RjlGa60MRsjVxp5LMEVuHorV8wM57s0Dt+ynesxD4sxV8QeUvFVPURuPr05t81sfnB4aHLc0NZYv91gaGmIbv/j+G2HJybvPD6U3TTQ1z+8RcIMLMWIF3mJub1Wg9jLapDSulKFUskNfPpISp0d6YxOcI0N7XxQztrCjde+vfW2hk/JzIarZkfik40XjEXrJlDnDCp+BrHVYsdbtqgAp5LfLKpJjXWa+m6AQ2Q89Tqc3zxK+7kXa8FTqN+G1flFEMtKLfHjE3VV8FL/YZWlBLtPGZTK4CBXv6G7p9fe2jvCybWlVoO7uERXo2VLq3w1Jm2y2S709Ovk6tLi4kDQIpexLOzvKndVd2yIGx0cK2eVOk0gWrbeoVcSV6svZrBxKoXKYMOabrPTOoKc7iNR6jdaSwWxfvAs1hJWiWU0k0lk7A192k2OuOO49nidfisW/AOgady3r/HLrFuK2WH0mx7nQMNa9bysqcG5lLp3KurRdqU7VZYNfEbTlF4fbYpCT/7pCldDHXjE2Q6d5USMK3paMxBn/u+D6XRVEQFj77dgId+Br8VcMHT4ZUk2PfclnkPv4hTkpzMlR89bpfMrn+TLDwdNKgXoOnf0BK8u0ilAnxzvNGnloE1cS2H/MRRaf9slWHjs0er6EwuvHQ24T7xK8WkQFUu8MB9xwvbzVpqPF7PX/Tjz2V3Z7d/P/Glh4f03HnnkDZEPLPGiHhaqx1oZwB67zMmIKj0dbHaVe1TlfrW2xCBs7XFWqcDwK1hY/Cheo2otkjscQ7Cw9+ddcYhRTJyf4RPE1NNZUqDZGwTBzYI4ScI9+dkC6Evj8Hi7Frap8o/14/JkAHIQ9efP0Lh7Hrt+AqsC3hFAuiNARLokkK30lkDzBPcQtbhHR2d5tBzLW6UPcGQNdPsT0gd8kMFD+BLPXcBzmtVzErp1WYggCXniMlmZFXnYv2RysX8Fv7KDKa74+f83Nby9XP7HjV/R6dpXfyAW2vjwIaNcyBbkQut7ycpNxvhfZMS5ELmQFN5t7sXif3bXivzx+mI3V1xmqymw7yFbs4vdsCBJ3Jwc03QYyoN7mBWdSQ7lmOksAP8T3YhyYfeVyFa3iNyKpR0OrOK26xE334GmZ5j/ADq+8dIAAAB4nJ1SS07jQBB9bZIIpBnEbjYsagkStmyTLGAxCxAgRSRBMRlla4OTWAlusIOinIKLIE7AWbgCV+C53cwisxu3XPWq+tXXBrCLNyjUz5+/WGFb/bLYQUt5Fm/hSL1Y3MCe+rC4iV3np8Ut7Dm/yVSNHVqvJqrCivymxQ5+KLF4C2PVsbgBUe8WN7GvPi1uQZx9nEPjEWsUyDDFDEsIQvg8x3B5anxCb0KW4AweZRcx7jBn7AoldUZfjBz35s5Dz7D65r5mVowD2rnJlLJSjAUmtLSRt/SNqUeIcIEhpeCKekDPDa1DZsS5flwX2XS2lND3j12X8kSStZx50o3v5npVzjOJ83vpej1P+npFZyYHOpckncWLieiJ3KZjGUUXw0iuhoPRTXTIvNdsODIDlAg4Lq57UZyXAVE1Q4EH0y36uniIqS/NIEujC64tNUvzGCk45buZz+UYCRNkeMKzYVesDv0BT73kEG0m1vnyUhfTVELPl1P57sMdJIvs6Tmlq+MGAQcP2/+2vVkGm+HV75iy45KU+lPUXfusLbxMizLjsljbb8v/5P8C7ct+Mnicbco9jgEBAEDhb4ZESfQ6QaGYsSG0sjt+d7HinwNotnOBPRNxMT1TTOklL695Qp6P1H8N7/hIDYRyikrKKqpq6undFIm1tHV09Xz6khgYGhmbmPr2Y2Zu4dfSytrG1s7ewdHJ3dUtCINckC9c/s5JP4qyxllbL7FdFxMAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCIyBmAfMYAAXEAGF4nGNgYGBkAILbCqeqQfTjAOcOGA0ARRQGPgAA')format("woff");}.ffa{font-family:ffa;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffb;src:url('data:application/font-woff;base64,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')format("woff");}.ffb{font-family:ffb;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffc;src:url('data:application/font-woff;base64,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')format("woff");}.ffc{font-family:ffc;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffd;src:url('data:application/font-woff;base64,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')format("woff");}.ffd{font-family:ffd;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ffe;src:url('data:application/font-woff;base64,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')format("woff");}.ffe{font-family:ffe;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:fff;src:url('data:application/font-woff;base64,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')format("woff");}.fff{font-family:fff;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff10;src:url('data:application/font-woff;base64,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')format("woff");}.ff10{font-family:ff10;line-height:0.773000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff11;src:url('data:application/font-woff;base64,d09GRgABAAAAAATAAA0AAAAABtwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEpAAAABoAAAAcocFRqEdERUYAAASIAAAAGwAAAB4AJwALT1MvMgAAAZwAAAA/AAAAVlVXVldjbWFwAAAB8AAAAEYAAAFKzKIgqGdhc3AAAASAAAAACAAAAAj//wADZ2x5ZgAAAkQAAADSAAAA4MubV/JoZWFkAAABMAAAAC8AAAA2KabLq2hoZWEAAAFgAAAAGQAAACQHQgPuaG10eAAAAdwAAAAUAAAAFAcqAD5sb2NhAAACOAAAAAwAAAAMACgAmG1heHAAAAF8AAAAHQAAACAASQBDbmFtZQAAAxgAAAFIAAACZ8jv/IJwb3N0AAAEYAAAAB4AAAA0TLakpHicY2BkYGBgZHD8GuPRHc9v85WBm/kFUIThcYDzNGSa+QVzJJDiYGAC8QBEWwpmAHicY2BkYGCOZAAC5hdQkpEBFbACADPuAjoAAAB4nGNgZGBgYGVwYGBiAAEQycgAEnMA8xkACS4AjQAAAHicY2Bk/MI4gYGVgYGpi2kPAwNDD4RmfMBgyMgEFGVgZWaAAUYBBgQISHNNAVIKz8KZI0F8CMnACCIA6SYJUgAB9AA+AAAAAAFNAAAAAQAAA+gAAHicY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUnoX//w/kg+n/jyXXQtUDASMbA5zDyAQkmBhQASPEiuEMACjNCjEAAAAAABQAFAAUABQAcHicHcsxCsJAEIXhmSxMJAHDxmw6hRg3lopuYiEaIUewskkRW3ttPIC9d7C38BxWNmIlgmcQWVwzxcCD/wML5gB4YStgYANMxjxmPOL7zyfH3dx6fF9s9T0BWGCOvU0nITdCBBRH3STlKhtHozYGZpHgQWhWNkOVTXEUtripugNEMi9J1QT7Sd2HzC8LPSzKssAD53or01TiVSqn0Ws4N+E13UofqUk5EW7WjvCw7QlcnmtxLUq/5yuph392tl0X7/rpidrQgsg2qHI6QsAPxO4tjgAAeJyNkLtOAkEUhv+RS6Ikxor6dFasuxugoDDZQKCzoKA0rtkJkMAOmSUQeh/Axnew0coHsPK5/GeYRAoLdjNzvnM/cwBc4xMKx+8OT4EVWngPfIEGvgPXcKvagetoqVngBm7US+Am7R+MVPVLao8+y7FCG6+BL3CFr8A1POAncB1tdR+4AVHPgZu0v2EIgw0OsFhijgW2EIyQYwdNmpBKFPQLUsRI0EdEzrDiLydZldc0paZ02QUjMTSbg13OF1sZ5Tstk7wsDpLGST+SbLUS76rE6krbnS6YMOY8Jetl2PtqBmtKjE25zfa6MmsqU291k2Fq1nn5l+Wk5UTazxtxYsGA5/+qR18PHb4r4e1emKJ77DY2dq4ljWIZyEl3ar1OknTSOO2eN+3Mb6TiplyssIfbYxSkMEDbamlKieMk4pGzyv4CKFNn3nicY2BiwA9YgZiRgYmBmZGJvTQv09XM1BwAC8ICSwAAAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQhYwBvEYAAPKADMAeJxjYGBgZACC2wqnqkH04wDnaTAaAEWgBloAAA==')format("woff");}.ff11{font-family:ff11;line-height:0.857000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff12;src:url('data:application/font-woff;base64,d09GRgABAAAAAATEAA0AAAAABzQAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEqAAAABoAAAAcocFRrEdERUYAAASMAAAAGwAAAB4AJwALT1MvMgAAAaQAAABGAAAAVlQDXshjbWFwAAACAAAAAEYAAAFKAaMGKGdhc3AAAASEAAAACAAAAAj//wADZ2x5ZgAAAlQAAABSAAAAYKELuVhoZWFkAAABMAAAADMAAAA2KPnKzWhoZWEAAAFkAAAAIAAAACQEswOcaG10eAAAAewAAAAUAAAAFAWgAJxsb2NhAAACSAAAAAwAAAAMAAAAMG1heHAAAAGEAAAAHQAAACAASAAhbmFtZQAAAqgAAAG4AAADRbAC+Ipwb3N0AAAEYAAAACEAAAAs/5n30XicY2BkYGBgYjiyU5jnaTy/zVcGbuYXQBGGxwHOM+D0nP8/meYy/gZyOYBqgQAAdgoNbwB4nGNgZGBg/P3/JwMDsxUDEDDNZUhhkGRABqwAcsoEVHicY2BkYGBgZZBjANEMDExAzAhmO4D5DAAFxQBqAAAAeJxjYGScyziBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAMIFhAEpLmmACkFhuuMv///ZGBg/M3ADuQzguQAXfcNcgAAARgAAAAAAAABTQAAAAEAAAM6AJx4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYFBiu//8P5IPp/4//60LVAwEjGwOcw8gEJJgYUAEjxIrhDACz5gnLAAAAAAAAAAAAAAAAADB4nGNgZJjz/yfTXMbfDLIMDCoibEr6jOxsSmom9ozqaqYmZkbyjOZmxkZiIvyM4kxzeUV4L18CEryXL/OC2Jd5OblAHCmE0BWoEESeAQAUVRetAAB4nK1Sy2rbQBQ9o9iGQvGyqywulEICkZDlBJqsSkxiMJUTpLhkO45lW9jWBEnBeNcPavtN/ZQejYZCS8mqGnTvue/HDIA+fkCh/b78xgp99d5hDz31yeEjROq7wx288/oOd9H3Rg73qP9KT9V5Q+mbjWqwwrHqOuzhrYocPsJCjR3u4Ez9dLiLY++Dwz2ceQlGMHjGASVyrLBGDUGEkGcIn6fFl9TO6SW4RkA6gcYTNozdoyLPqdMosLC2ALH1mlp769l4nFAubKaMlTS2WFIylj5Q90g+Q4obJKSCMfkdNfeUTpkRI/N8KPPVupYoDIe+T3op84NcBzLRTxuzrza56GIhkyAOZGr2VOZyYgqZZ2u9XYpZykP2KLP0JkllnNzN7tNT5v3MhmM2VLOtlGPu2KJhexU+0hjHul6nh93cbCvKzVQlXZr+MTXlTpPf2tFqy0suMrNrDLg6wRX/1yr4HDNjzAtlzeg24oL6AU97BRHOWcQU9a0pV5lEQShX8mdnfpKtXra6pOHCHwy4nOj89dH+Lox/J2wecUZzxUtsL7CdrHkiQmNWVjlXzJ7Cofyfir8ALbyTwHicY2BiYPj/8dvu/3MZVBiwAVYgZmRgYmBm+AAAy9QGXwAAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEIWMAbxGAADygAzAHicY2BgYGQAgtsKp6pB9OMA5xkwGgBFtAZeAAA=')format("woff");}.ff12{font-family:ff12;line-height:0.514000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff13;src:url('data:application/font-woff;base64,d09GRgABAAAAAASYAA0AAAAABrwAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEfAAAABoAAAAcocFRrEdERUYAAARgAAAAGwAAAB4AJwALT1MvMgAAAaQAAAA/AAAAVlStXttjbWFwAAAB+AAAAEwAAAFKAJ0Kq2dhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAlAAAAA8AAAAPDwqdYloZWFkAAABMAAAADMAAAA2KanLymhoZWEAAAFkAAAAIAAAACQGBwLUaG10eAAAAeQAAAAUAAAAFAU8AKlsb2NhAAACRAAAAAwAAAAMAAAAHm1heHAAAAGEAAAAHQAAACAASAATbmFtZQAAAowAAAGqAAAC8ZClxwVwb3N0AAAEOAAAAB8AAAAs/5wAXXicY2BkYGBgYmTbz3y/MZ7f5isDN/MLoAjD4wDnGXB6JQMDsyPTeiCXg4EJJAoAP5QKhgB4nGNgZGBgWs8ABEzXGBj+T2V2ZEhhEGVABqwAWegD4XicY2BkYGBgZRBgANEMDExAzAhmO4D5DAAEZwBcAAAAeJxjYGTMZpzAwMrAwNTFtIdBlqEHRP+fy/iAwZCRCSjKwMrMAAOMDEggIM01BUgpMIQwrQfxISREDQAf0QozAAEYAAAAAAAAAU0AAAABAAAC1gCpeJxjYGBgZoBgGQZGBhBwAfIYwXwWBg0gzQakGRmYGBQYQv7/B/LB9P/H/zdA1QMBIxsDnMPIBCSYGFABI8QKUgELGXoGCgAAIa0JTAAAAAAAAAAAAAAAHgABAKkAAANBAq8ADwAAASMiJisBAyMTIyIGKwE3IQMykAYYBl6DZYNeBhgGkA8CiQJpAf2WAmoBRgAAAHiclVLNSuNQFP5ubDsIUhfD7EY5S0US0rTC6FJRodhWGituE03b0JqrSaX0FeZZxKWP4iP4HH65uQh2Zy455zvnfuc3AdDEKxSq5+YLK/xSfyx20FAHFm/gQP23uIZt9W5xHU2nZnED206bTFXbpPViokqs0FR1ix1sqR2LN3CjAotr2FVvFtfxV31Y3MCu8xun0HjECjlSTDDFAoIAPk8bLk+Fj+iNyRKcwKPsIsIdZoxdoqBO6YuQ4d7ceegZVt/cV8ySsUc7M5kSVoowx5iWNvKavlvqEUKcYUgpuKAe0HNFa58ZcaofV3k6mS4k8P2261IeSbySE0+60d1ML4tZKlF2L12v50lfL+lMZU9nEifTaD4WPZbr5FZG4dkwlIvhYHQV7jPvJRsOzQAF/tHshVFWEJQD5HgwraKv84eI+txMsTA6584SszGPWxIc8/2ezOUEMcNTPOHZcEvOIf0tnmq/ATpMq7PFuc4niQSeL8dim3AH8Tx9ek7oOXRbLY4cdNYbXq+BtdjyL0zYa0FG9QWqfn3WFV4meZFyR6zrd+THyT8BEDV8mgAAeJxjYGJg+P8FiOcyqDBgA6xAzMjAxMDMYA4AjAUD+AAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCFjAG8RgAA8oAMwB4nGNgYGBkAILbCqeqQfTjAOcZMBoARbQGXgAA')format("woff");}.ff13{font-family:ff13;line-height:0.687000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff14;src:url('data:application/font-woff;base64,d09GRgABAAAAAAS8AA0AAAAAByAAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEoAAAABoAAAAcocFRrkdERUYAAASEAAAAGwAAAB4AJwALT1MvMgAAAaQAAABDAAAAVlRDXhVjbWFwAAAB/AAAAEsAAAFKAG0Kw2dhc3AAAAR8AAAACAAAAAj//wADZ2x5ZgAAAlQAAABMAAAATE204D9oZWFkAAABMAAAADMAAAA2KMnKz2hoZWEAAAFkAAAAIAAAACQE7QNLaG10eAAAAegAAAAUAAAAFAVwAFNsb2NhAAACSAAAAAwAAAAMAAAAJm1heHAAAAGEAAAAHQAAACAASAAYbmFtZQAAAqAAAAG2AAADRdsuI7Zwb3N0AAAEWAAAACEAAAAs/373BHicY2BkYGBgYjjCfSMlOJ7f5isDN/MLoAjD4wDnmXA6+P8Npm1MMkAuB1AtEAAAYSMMHwB4nGNgZGBgkvl/g4GBmYsBCJi2MaQwSDIgA1YAUVcDPnicY2BkYGBgZRBlANEMDExAzAhmO4D5DAAE5ABhAAAAeJxjYGRsZZzAwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGVmgAFGBiQQkOaaAqQUGGyYZP7fAKqUYdCAqQEAMVALAQABGAAAAAAAAAFNAAAAAQAAAwoAU3icY2BgYGaAYBkGRgYQcAHyGMF8FgYNIM0GpBkZmBgUGGz+/wfywfT/x/9PQNUDASMbA5zDyAQkmBhQASPEClyABY/cUAEABsUJNAAAAAAAAAAAAAAAACYAAQBT/9gCtgIcABQAAAUUBiMiJwEmNDcBNjMyFhUUBw0BFgK2DAgFDf3WExMCKg0FCAwT/fMCDRMUCAwHAQUJGgkBBQcMCAwK+PgKeJytUstq20AUPaPYhkLwsqssLpRCApGQ5GSRrEpMYmIiJ8hxyXZsy7awowmygvGuH9T2m/opORoNhZaSVTXo3nPfjxkAXfyEQvN9/Y0VuuqTwx466ovDB4jVD4db+Oh1HW6j6/Ud7lD/jZ6q9YHSdxtVY4Uj1XbYw6GKHT7AXA0cbuFU/XK4jSPvs8MdnHop+jB4wR4lciyxQgVBjJCnB5+nwRfUTukluEJAOoTGDGvG7rAlz6nTKDC3tgCJ9RpZe+NZexxTLmymjJU0NlhQMpY+UvdEPsEY10hJBQPye2oeKJ0wI/rmZV/my1UlcRj2fJ/0QqZ7uQpkqGdrs9uuc9HFXIZBEsjI7KjM5dgUMs1WerMQs5DH7Ekm4+t0LIP0fvIwPmHeOzacsKGKbd2S1q3lbDvi6LhLEl2tbiu9yWcR5XqqEs/WCSNTPmvyGztaZXnJRWZ2jQHjBZf836vgc8yMMa/UaUY3EefURzzNFcQ4YxFTVDemXGYSB6Fcyp+d+Wm2fN3okoZzP4q4nPjs/dH+Lox/J6wfcUbzloHNBTaT1U9EaMzKbc4Vs6ewJ/+n4huiL5BwAAB4nGNgYmD4//Hb7v9NDBoM2AArEDMyMDEwM8gDAMfWBXcAAAAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCFjAG8RgAA8oAMwB4nGNgYGBkAILbCqeqQfTjAOeZMBoARb4GYAAA')format("woff");}.ff14{font-family:ff14;line-height:0.580000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff15;src:url('data:application/font-woff;base64,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')format("woff");}.ff15{font-family:ff15;line-height:0.922000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff16;src:url('data:application/font-woff;base64,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')format("woff");}.ff16{font-family:ff16;line-height:0.845000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff17;src:url('data:application/font-woff;base64,d09GRgABAAAAAAWUAA0AAAAACDAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFeAAAABoAAAAcocFR1EdERUYAAAVcAAAAHAAAAB4AJwANT1MvMgAAAaAAAAA8AAAAVlPeXoxjbWFwAAAB9AAAAFoAAAFaBzkMJ2dhc3AAAAVUAAAACAAAAAj//wADZ2x5ZgAAAmAAAAEYAAABWGIQ4GhoZWFkAAABMAAAADMAAAA2J8rLJGhoZWEAAAFkAAAAHAAAACQDxwITaG10eAAAAdwAAAAYAAAAGASaAFZsb2NhAAACUAAAABAAAAAQAGYA5G1heHAAAAGAAAAAHQAAACAASwA1bmFtZQAAA3gAAAG1AAADLUxqr9lwb3N0AAAFMAAAACEAAAAw/9EA3HicY2BkYGBgYmT7EambH89v85WBm/kFUIThcYDzGjitxsDA+JTxIZDLwcAEEgUAPIkKyQB4nGNgZGBgfMgABEy8IJLxKQMjAypgBQAuSAHfeJxjYGRgYGBnMGJgYgABEMnIABJzAPMZAAgGAIEAAAB4nGNgZOxinMDAysDA1MW0h4GBoQdCMz5gMGRkAooysDIzwAAjAxIISHNNAVIKDHmMD8GSDxFqAMKpCRUBGAAAAAAAAAFNAAAAAQAAAg0AJgAnADB4nGNgYGBmgGAZBkYGEAgB8hjBfBYGCyDNxcDBwASECgyJDCkMef//A8Xg7P+P/y/+v/D/DKheKGBkY4ALMDIBCSYGVMAIsZIiwMLAwArnsFFqGtUBACCMDmgAAAAAAAAAAAAAAAAAOABmAKx4nGNgYlBjYGB8yviQQYlBlYFBVUSbUcnUxMxYXZndSBTCsWM0FrZjtGY0EhMXNpJj1GdkZ3yq5aklJMy3mU8VyBAU4KtgF5FilxZhq+ATEJzp5i4nJ88jrKcvJy/Hx8/EWC8iKCjyr5GJv/blSwYmBnWgfXcZbzCIMMiC7GOD2SGopMdoagKyht1ETZtR0NjIjPFuecxOkPlAY7V2xpa5hnnHxPiEvkzoBBscx8TPJzchwS3336JMBiBgZDAAEreBZhsCaRE+RmVBETZloLHqzMqCQJcj/AO3S1wYwWa8LSAgICzJJyDBvowRyNRy1xIAAy1jHQGYCOMuoM3/+qX5mQQFGIv+rQA5AeEY5X99jBEgBgBnNDuMeJylUstq20AUPaPYhkDJpll0UehdOlAJSXEW8aqNSQImcoIdlyw7Tsa2akdjJAfj7+m25GvyPaXHo6GU0qyqQfee+37MADjAMxTq78tvrPBGffA4QEt1Pd5DrL573MCh+ulxEwdB4nELh8E3eqrGPqUfLmqHFd6ppscB83/0eA9f1WePG2irF4+beB+89biFdvAJPVissEWJHDPMsYYgRcxzjJCnxqfUTuglOENE2ofGPRaM3aAiz6nTKPDgbBEy5zVw9tpz59GmXLhMhpU0lphSso7eUndHPsYI5xiSCi7Jr6m5oXTEjOjZ1bbMZ/O1pHF8HIakpzLZylkkfX2/sJtqkYsuHqQfZZEM7IbKXNq2kImZ6+VU7FRuzZ2MR+fDkVwOr8c3oyPmvWLDmWvOciGaC6mQcGxcZZktbE+vqoTSbp4Sj65zDGz5qMkvXNza8ZIrNG6BEaMFXf6v5Q45nKH/E5NpRtbeJ9QnPPXiU3RYwBbrC1vOjKRRLF35s6dwaGZPS11SfRImCReSdl4f5++S+Feq3ZM1NFa8svq66mli9iI0mrLKuVD2Enfkf2v9AgsnitEAAAB4nGNgYgCD/7UMrgzYADsQMzIwMTAzuDC4MwQCAEh/Aq0AAAAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCNiBmAfMYAAPgADV4nGNgYGBkAILbCqeqQfTjAOc1MBoARnwGhgAA')format("woff");}.ff17{font-family:ff17;line-height:0.481000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff18;src:url('data:application/font-woff;base64,d09GRgABAAAAAAU8AA0AAAAAB8QAAgADAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFIAAAABoAAAAcocFR1kdERUYAAAUEAAAAHAAAAB4AJwAMT1MvMgAAAaQAAABEAAAAVlRrgkdjbWFwAAACAAAAAEcAAAFSIaspMGdhc3AAAAT8AAAACAAAAAj//wADZ2x5ZgAAAlgAAACzAAAAyHlFGHBoZWFkAAABMAAAADEAAAA2KcLK92hoZWEAAAFkAAAAIAAAACQF5ARiaG10eAAAAegAAAAYAAAAGA2MAHJsb2NhAAACSAAAAA4AAAAOAGQALG1heHAAAAGEAAAAHQAAACAASQApbmFtZQAAAwwAAAG4AAADRbIE+oxwb3N0AAAExAAAADYAAABBON2473icY2BkYGBgYjhiM8/MKJ7f5isDN/MLoAjD4wDntXDa8v8X5pNMIC4HA5gCAFWfC+kAAAB4nGNgZGBgYvj/hYGBhYUBCJhPMqQwSDIgAzYAUiEDTnicY2BkYGBgY1BjANEMDExAzAhmO4D5DAAGqABzAAAAeJxjYGTezjiBgZWBgamLaQ+DIkMPiP7fw/iAwZCRCSjKwMrMAAOMQJwA4wSkuaYAKQUlGyaG/19AKhl4oGoYAFBOC38BGAAAAAAAAAFNAAAEBAAABAQAOQMfADl4nGNgYGBmgGAZBkYGEPAB8hjBfBYGAyDNAYRMQFpBcZKSzf//CNb/x/eK7p6E6gIDRjYGOJcRpIeJARUwQqwazgAAbDoMHgAAAAAAAAAAAAAAACwAZAAAeJxjYGSw/P+F+SQTA4M0AwODCDsfIzubNqOSqZm5opKJsaKauok1o5G4HKM480nOoEIBJi4hHqmyP79FRZlZy6R4hLiYBAqDGJkEWKQaQ7n4+kK1Qvv4uEIbpRiA5jI0MD1lLGFQZWBgFGFTVlJT12NUVuJjZgeyTU3MjI3EgMYaG9kxmwPZTE/j/PT9TIw8NfgU1BXEmZh4+TEEGAP8mgwMdLXZRZWs1SSUkTkMAKdOIiwAeJytUstq20AUPaPYhkLxsqssLpRCApGQ5WSRrEpMYjCRE6S4ZDuOx7awrQmSgvGuH9T2m/opPZKGQkvJqhp077nvxwyAPn5Aof2+/MYKffXRYQ899dnhI0Tqu8MdfPD6DnfR90YO96j/Sk/VeUfpWxNVY4Vj1XXYw3sVOXyEhRo73MGZ+ulwF8feJ4d7OPMSjGDxggMKZFhhjQqCCCHPED5Piy+pndNLcI2AdAKNZ2wYu0dJnlGnkWPR2ALEjde0sbeetccJ5bzJZFhJY4slJdvQR+qeyGdIcYOEVDAmv6fmgdIpM2JkXw5FtlpXEoXh0PdJL2V+kOtAJvp5Y/flJhOdL2QSxIFM7Z7KTE5sLnOz1tul2KU8mieZpTdJKuPkfvaQnjLvHRuO2VDFtlKOuWOLlu2VHBx3cayrdXrYze22pFxPVdCl7h9TW+w0+W0zWtXwgos0zRoDrk5wxf+tCj7HNIx5pawZ3UZcUD/gaa8gwjmL2Ly6tcXKSBSEciV/duYnZvW61QUNF/5gwOVE52+P9ndh/Dth/YgNzSUvsb3AdrL6iQiNpigzrpg9hUP5PxV/ATPIk8h4nGNgYmD4//Hb7v8TGNQYsAE2IGZkYGJgZmRiZOZKLCrKLy/KTM8oYS/OzM3MSSwCAIHyDLcAAAAAAAH//wACeJxjYGRgYOABYjEgZmJgBEJWIGYB8xgAA9UANHicY2BgYGQAgtsKp6pB9OMA57UwGgBGhgaIAAA=')format("woff");}.ff18{font-family:ff18;line-height:0.524000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff19;src:url('data:application/font-woff;base64,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')format("woff");}.ff19{font-family:ff19;line-height:0.900000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff1a;src:url('data:application/font-woff;base64,d09GRgABAAAAAAUcAA0AAAAAB0AAAwACAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFAAAAABoAAAAcocFR5kdERUYAAATkAAAAHAAAAB4AJwAMT1MvMgAAAaQAAABDAAAAVlSnX5ljbWFwAAACAAAAAE4AAAFSBVULMmdhc3AAAATcAAAACAAAAAj//wADZ2x5ZgAAAmAAAACEAAAAmFneDwhoZWFkAAABMAAAADMAAAA2KMrKxmhoZWEAAAFkAAAAIAAAACQE7QNLaG10eAAAAegAAAAWAAAAFgafAFNsb2NhAAACUAAAAA4AAAAOAEwAJm1heHAAAAGEAAAAHQAAACAASQAYbmFtZQAAAuQAAAHRAAADBrZBi61wb3N0AAAEuAAAACMAAAAu/9P2FXicY2BkYGBgZmjWVzaOiOe3+crAzfwCKMLwOMB5K5wO/n+DaRuTDJDLwcAEEgUAOX8LWgB4nGNgZGBgkvl/g4GBmYsBCJi2MaQwSDIgA1YAUVcDPnicY2BkYGBgYxBlANEMDExAzAhmO4D5DAAE/wBiAAAAeJxjYGRiZ/zCwMrAwNTFtIdBkaEHRP/vYXzAYMjIBBRlYGNmgAFGBiQQkOaaAqQUGOyYZP7fAKqUYdCAqQEAKMgK6wAB9AAAAAAAAAFNAAAAAQAAAwoAUwBTAAB4nGNgYGBmgGAZBkYGEPAB8hjBfBYGAyDNAYRMQFqBwYbB7v9/BOv/4/8n/h+H6gIDRjYGOJcRpIeJARUwQqzCBVgYWPHIDg0AAMF3C5AAAAAAAAAAAAAAAAAAJgBMAAB4nGNgZAj+f4NpG5MMgwgDAyMvo5ioCJuykjqjmok5o5mxEZDLtPjvZyZeYR4OVt6/14SFmbR4WTl4GD/9+MHFw8HDzsjKKcXJyMoOZDOgmKXKCDRHzdTEXJcRSAKNEmcUA5l1DaRdmIn372ewkUxawk/+/QZp54Ka+O83pxQDAMK8IDd4nG2RwWrbQBRFrxTHEAhtvqA8urLBlkdKQpAJgeBiyEKBJtC9kAdLEElGGkd40S/orh/S7+mi9Ee66Z3xdBGoBjRn3ry5774ZAO/wAwGOX4PfngO8D2rPIcbBN88n+Bj89DzCODzzfIqLMPE8ZvwzM4PRGVe/3CnLAT4EmecQ58FXzyf4FHz3PGL8j+dTSHjheYzzcIUVWuxwQIcKW5QwEExQYMo5Rspxgxk5geJISfeooV1+gZz9CTLOhmc1dywdd16480z1gmvN6MEp37oahjWXWHAMbkTMr9Fzbqm8xR3r26oDz1plwRM1elf3lf8NI2vmNs7vozutSSt6yfBA54paWLW7Q1dtSyOTYipxmt7MJFEqlftad1WRN5LlptR1brh4kee2qLQ5yOS2NGa3XCyGYYjyuo/abns3nclQmVKedK+7V72RddsYecxrLasse4iVrUdLNVvb05a1aq+mpVnLjbVT7/ZGd5K1G90xkLlWKubXXOhNtef8r6+1vwvtbj9iR8I7e9vjMXKNOVcx//aVElxRhObWtK0liZQsvUXC9TyO54lKrvBGCMcE4Isz29NU697Wvvqlq26VhQm666u2EaUuI6US+b/OX8tEgcUAAAB4nGNgYmD4//Hrof9bGYwYsAE2IGZkYGJgZpBnUAQA3JgF3AAAAAAB//8AAnicY2BkYGDgAWIxIGZiYARCViBmAfMYAAPVADR4nGNgYGBkAILbCqeqQfTjAOetMBoARtYGmAAA')format("woff");}.ff1a{font-family:ff1a;line-height:0.580000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff1b;src:url('data:application/font-woff;base64,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')format("woff");}.ff1b{font-family:ff1b;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff1c;src:url('data:application/font-woff;base64,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')format("woff");}.ff1c{font-family:ff1c;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
@font-face{font-family:ff1d;src:url('data:application/font-woff;base64,d09GRgABAAAAABHIAA0AAAAAF9gAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAARrAAAABoAAAAcocFSCEdERUYAABGQAAAAHAAAAB4AJwA+T1MvMgAAAaQAAABEAAAAVlXm/r5jbWFwAAACmAAAAMUAAAGSsZ5q7mdhc3AAABGIAAAACAAAAAj//wADZ2x5ZgAAA9QAAAufAAAPdCt6fiZoZWFkAAABMAAAADQAAAA2KJzLa2hoZWEAAAFkAAAAIAAAACQFzQKXaG10eAAAAegAAACvAAAA4GpEC5Zsb2NhAAADYAAAAHIAAAByaTBlXG1heHAAAAGEAAAAHgAAACAAfQBJbmFtZQAAD3QAAAGqAAAC8ZSQzxxwb3N0AAARIAAAAGgAAACSBacFr3icY2BkYGBgYmQ7uyUzMJ7f5isDN/MLoAjD4wDnYzD6/8H/bMzSTO+AXA4GJpAoAHG4DTB4nGNgZGBgevefjYGBuen/wf/XmKUZgCIowAIAnCYGaHicY2BkYGCwYHBjYGYAASYgZmQAiTmA+QwADzwAxwAAeJxjYGT8yjiBgZWBgamLaQ8DA0MPhGZ8wGDIyAQUZWBlZgCDBqAgAxIISHNNAVIKCkpM7/6zAVW+Y/jFAFUDABLjC+94nGOUYAADRl8QAUT9DIFAbMksz2DJKMuQxBjGwA2kk5kYGSyBWBOIo4BYG4plgVgdia8NVruWIYlpAoMTkw9DPJDtxNzEkMZkzaDHtI9BlekQUGwdAx/jWwYzJiGGYMYTDCpAWgVIKzNaMciAzRRiCGT4yuDNKPj/IOM3hlAgO4jZgCEQJA6UlwPriwfiLgZZxmIGYZA4400GPqD5fECaAcRm3McgC/TDfwAEDSEwAHicY2BgYGaAYBkGRgYQ6AHyGMF8FoYCIC3BIAAU4WBQYNBkMGewYnBmcGfwZQgDylUpKP3/D1ShwKDBoM1gyeDE4AaUCWZIZCgCyfx//P/O/9v/b/2//P/i/zP/j//f+3/PA1GoLVgBIxsDXJqRCUgwoSuAOBUEWFgZ2Ng5OLm4eXj5+AUEhRiERaAyomIMDOISYKYkmJSSlpFFmCEnr6CopKyiqqauoamlraPLoKdvYGhkbGJqhtth6MCceKWkAgAb7iSOAAAAAAAAAAAAAAAAAAAgAEAAZAB0AIIAjgCyAO4BBgEyAXYBlAHCAggCJAJoAnoCrgLiAvoDLANYA5YDrAPKA+YEHgRIBG4EmATEBOgFSAVoBXoFmgWyBb4F8gYSBjgGYAZ2BroG2Ab4BxQHRgdeB4wHrAe6AAB4nH1XC2xT5xW+53diJ3FeN/a1Eyc2vr7xI7bjJL62b2wnzvv9cuLECXkRhxAeLW+2sm4UyqtdJFAnKGPtoKigsjVVW20tUtVoDLYJKgraJg3oNtGpD1WrtGgbQ9Wq5Wbn3ptQ2kmT4ut743vO/33nfOf856eA6l/WQJIsUgUUlc75IBgoEPjcNL1FBcmG0S2bxhuK1kQ4c0lpxPrv7qX5i9Ryj6l0InX2rTPT4w6KAiqM9jHF3q5Xa7hYWsCncvIWgNijxoXo7MuLjxoXdi8p9hfIp6SfMkr2HEvrOVuQZm3BAM/SAd7P0KyffMqJHzMG8SOOAwtjADP3JaM8GBiwcJz4EfqZXn6aeodKUmqKEjScwAX5d7yeYlMSDuxPSutoqctgppYoFa7DBlkwi4tQcDlGSb+tx6tki7/xkmEymaQUbGq4jtx0+KDXQC7hbI5gQEC+vN8A19PF8yqVVpORkw4Tyg25S/L+k8zI0GRnkTzVq9INRRGqbPlzuEsuUPmUS/ak5mxOyVEI3RgNmoAvjbNp1Izeks77Q0II7nqEb++IlPurt/mTRaEEUdMlldZhSx6kZ+qLvcVsTb4RWs4kHpvtv/DqYKqybOwltqyrkjc9Hthl5lp8YVuht7IB8Y/iam/jugiiDII8reaCfoGneXhbnD8g9B1qYg7EQDTGGpZekPl68HIL3y+R3xdiJBhwcDa1xikBZfTqPEB8UYBb4oZ3Kis88Qa+rcDnP7V+b9e6C9vUheqF5jfcVf2euuHmgci5p0YbJ3ueB9kv8r+NfstljWAQnSHBIvlC/x4IhoSYSl4pFzTOGChraVBBt/eNx7Y5MtIsj0Wrm2KNXVaDQyjSRt2FlQ16p3VTbe+2mkBdz9v9T4Z8Xr073FcTGmogJG2N1057K7KrXOGq8Nr6wFgxM4H0MA9mBPMJOU5lUXmIhGO4IBsEjAdHIzX4ZGZQ/AeQ1MzP4HDtxYsXG+AVcRT2Bv4yI3FwIodbaGte4eAD50MOmD2OZhmWkeIEt45M8uOunNLiEW+wL+bstbXDqHi/IhbffWPykMdBRyvKewaH2vtgT/N110EJ12p8iqkKpYok/xh8dGdk5AysKsUpPTFqRlIKCuW2xV4z5GxtdL28ozoYCvXOZLTP2qvN7mGDrT7SBpCWVVDkLqorNX0YibuarO3Hpn98TV/HHNw4wJU3TXS6asdqtfk5hb7SUibsoRQNLD9ALMepHHxQE4bL1+GKmCQWbqcOjN7/Lqb51zBPOh4Tb7wFcWoZupTYfsWhXNK4JHHBIMk5FxS1hyS5Wwhy8KkUuRul3+H2C5t7o2x5tGa91jQaaa2oMNtjax0tDY4xgAwDX1pjZ01cNNwOvWeuVVQ7tj5p5Ttap6v7ypqRD0Ormcpmb6B8KO4OjUk45FqGBaxlDUXpsJrplYpOwmxSbMbCVlHT+OIeconKxa5jVfLJ0g9lp5JEySA0nXSD/w+RPSe2iotfbDk50Z3YvfOJ+IFvpXaa9vWfeDGxe6FrJ7m0qTU0qMuehky+8Z894meRfvF+txTLxuUHZIxckddQr1a9lFSDUeOQUrkaBSEkkLFau6d+LpW6Oid4PMF8n9MVTLW2tLSm6svs4fLSTO3mLSdO/j5Dox+xarOHBr+zd2goO9sh52wd8mHJz7HHUcA5ORQiS6MgCZv4mw0E8b0puEq2kgcN4jV8aQXXxlVc/wdVEENHNm7aKaOKVvqEvAqvN6Kgamo88oGjSsak1RaPOPLzFEz6sw0yplkMdDHGuIiiWI7m1BoV51Q5nHhL80adwciHBB2vKh4AfctcN7utOQcG9hYcieWAtv/oXrKpbV48Nwim10NLp8mlcnH+TND3W0iiX9/y5wTI+1IntX+lMizCCvCRFSYWQCZSoegNa8ACBA7N7Nuev+GJ+oGIY3CNvY5xHpz1dDrZ/J5UQ3+Ne0P9psvJ/S3DA90BT0M2k6F1lAQjfXvz8+nhhtbysmhWYd4OmZMd43yavEllynFGJhrsIOR0zc2pm7VkN9lClk6Sx0mrkhPEuR7506s9L0jztF7GSvNk/anNW16cmm5umU389fETJ7bC+6J/csPsJNyUbHNxnXNoi/nMBA54XYEcLnJO/GxK/GzDk5szIS+1j1xa6iSXxFviFxXNi1CN2g9h7b6CLgwSUpYLysti4SktSunimqAtlzASEOzv8Eq8cVM0+qPDVWWDrereROd0Iq8qGQm5fFaaJo6qhLemSeWuqg20eac7nw+kZdsKzZwuy0QrNZ/A9RYRZx5letjZGcwvLa2kkRdl5Bpf3N5X2UEn4p0TbROJwWCzy1ZfPfbh+mecugpkcCcyNzk0UP3H2AByL0Wf8zIHWZuOgNz6ND5Q8omwYT4+MrV/32wgVp7jrPF1tvXWDXfaK+d+8ZyuqNWk39jUPskr+CRflxFfjoRvJR6y0mleFXQ8dBiCy4nmoY7ZTV3JxnjCEQ2PDQgRpzZQ9+zVZwVwLN35TWBgODEYkNJCcSv4CiRl21lpCxCMK4GWakhBqoF58SpJxhKd6p7hyae/Mzzpd9XktDt9LTl/apkKtlTNrU/NdcV8TXyzX+m7uOfCDNYk8gZ5KzQDz0jVgjWouIaZMreec+zaHu/qmu5weMl2OsPJ7omJB+Gp2EjXNKoFe5t52Q/34Rp24TDVoviSqpmRawUJR8FvScMneZJZ+UjeQ7ycMCUk2Po8YMNNUW/A7N03l8fSTKnmgCczMk6bBben8PAvD9UXmW2pZsHbmfxJ0FEqSJ+xZydtTkLGvzcGh9PSSbq3vGnKnKsPEI3OzLPhvrhQV2b1lDsqQo0pq/V8gK8S8CO+38jm59vcHjkO/Xi5gjnTy30jIO0VajOsiIqBKwnQ6spKAv5EPLL2GNhyClh9/kjkXyij99rPYn6k7WienFD6P+7svDQKvhyPZ05NwcITU5Iulq8s89RlfCdXmlqND7tIDLA0pZ53uTtUV2u0leWW2OJTU9HGuK1hTbrNQijZHqgheY6Q65PlnBpZ8gKvgU+SL/V3dN9c99q9+HEEVH3rNSW3A3h9Gd9XKYgQDT4oXMk9zFXpN7g+wppRcuNnyL2HzFe/eyLjG8x1449E4ZG7q23dAwNnqa9iiuv8T0yZb8QUPR77uo+zkuYtqPmPUfNaZUp/qHbDo5KBj49Mjh89MrHucGIoGk4maqODf04dPTI9c+z42v6hwYH+8TGlZ8RgEbHkUoWrHZxZQfKwZUgdY0dPX00i3jXVOproDze57HtHPpw5Gv47eaoyOreudZ1wN5aSuSXwEkd/WfgtFY3sS4B422y8s3En7IeJ7j/A1bFJgu+akccu5CHPodI0r6SdBHCYwz8kFVNhuDVyzeAmYiFGA+xihWDJ2kRO+7CWcRRylsJwlclldUVMub1tOW2dSWuJyW5z5lc97Y6WaL0dflWW2WfNTNPSRleVPVSUS6ytzqihJCNdk0nnumXMOsSRJFHpXCH1uKBc4zyD9c7opQaX7OxNDo10PvdcwO822b8PVGz//tjisFXOJdpewflGJ3c0abj62s4CV+LsbGWIT5j9fHui0mwJ10GfeKnUgscWdmVvgRtoj2cCUHEq3ihvxRixG29OvDnQX51G0sM5jbAgNsPC706wjpO2n1Kre9IbaFcs2zlxUHBy2CBWPehWvsgbx8a603OzAVTlNYlj8RpvGqTPdrY41KDZLHn9ghZiavdppPCrH5S3QeTeU64odCg6lS4f4BordcUJTt4o1dUHIz88MXztyvCxZ4YX3n330zvnz99RMC3zMpciCVMuqroC5DKuAxWP47IxBkjrXgHH6vL8hWqnOyunMNt+fbAjP6RS1bXCwtKiO6hLz2ih00ymtbBw0XWwsgKPuLJv6axwBn3T8lkIVoZgZuUEdEY8ANk9OAsfg+3ig0G8OeWBBNSVia8rNKhlag9h4ZRy3pRmMfEe2PaAjfovTtFg6QB4nJVS3UrjQBg9E9uKsNSLZe9W+S4VSUjTeqGXigrFVmmseDvVaRtaM5JUSl9hn2Xxch9lH8Hn8HQyCPbODJnvfGfOfH8JgCbeoFA9959YYVv98jhAQx15vIUj9cfjGnbVf4/raAY1jxvYDdpUqtoOvb/u1horNFXd4wA/1J7HW7hXicc17Kt/HtfxW7173MB+8BPnsHjBCgUyTDDFAoIEMVcbIVeFT8iOqBKcIeLehcYjZry7REmbkdPI8eTOIvScqu/OK+VacUA/d5EMM2nMMaZn3X5H7oF2iBQXGHAXXNHekLmld8iIOLcvqyKbTBeSxHE7DLmfyGglZ5F09ePMLstZJjp/km7Ui6RvlyQzObC5jMxUz8dix3JnHmSYXgxSuRrcDG/TQ8a9ZsGpa6Bkq7jupTovCdYNFHh2paJvi2dNe+m6WDhbcGbGTSzilASnfL8GC9mDoeqVITT1leaYfIurmm+CDsPafHFpi4mRJIrlVHwR4cBMXue6IHMctlpsOelsFryZAxt313+hIV/yK1RfoKo3Zl7hoSnKjDNi3rgj3w7+ARgnfKgAAHicbcy5DgEBAADRZ5XEfYeShErl6K37Fjffo/XHbNQmmXJG4MfnreUfg8iYQFxCUkpaRlZOXkFRSVlFVU1dQzN6tHV09fSjcmgkNDYxNTO3sLSytrG1s3dwdHJ2cXVz9/D0+gKmCg1WAAAAAf//AAJ4nGNgZGBg4AFiMSBmYmAEQnMgZgHzGAAF+wBmeJxjYGBgZACC2wqnqkH04wDnYzAaAEeABroAAA==')format("woff");}.ff1d{font-family:ff1d;line-height:1.000000;font-style:normal;font-weight:normal;visibility:visible;}
|
||
.m0{transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-ms-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-webkit-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);}
|
||
.m1{transform:none;-ms-transform:none;-webkit-transform:none;}
|
||
.v0{vertical-align:0.000000px;}
|
||
.ls0{letter-spacing:0.000000px;}
|
||
.sc_{text-shadow:none;}
|
||
.sc0{text-shadow:-0.015em 0 transparent,0 0.015em transparent,0.015em 0 transparent,0 -0.015em transparent;}
|
||
@media screen and (-webkit-min-device-pixel-ratio:0){
|
||
.sc_{-webkit-text-stroke:0px transparent;}
|
||
.sc0{-webkit-text-stroke:0.015em transparent;text-shadow:none;}
|
||
}
|
||
.ws0{word-spacing:0.000000px;}
|
||
._3d{margin-left:-9.022504px;}
|
||
._5{margin-left:-5.537550px;}
|
||
._7{margin-left:-3.844782px;}
|
||
._3{margin-left:-1.900950px;}
|
||
._b{width:1.090311px;}
|
||
._0{width:3.073600px;}
|
||
._37{width:4.266392px;}
|
||
._2e{width:9.568288px;}
|
||
._25{width:11.078411px;}
|
||
._d{width:12.510544px;}
|
||
._c{width:14.055322px;}
|
||
._f{width:15.079127px;}
|
||
._8{width:16.199369px;}
|
||
._17{width:17.275051px;}
|
||
._9{width:18.346366px;}
|
||
._e{width:20.024517px;}
|
||
._6{width:21.691454px;}
|
||
._15{width:22.968378px;}
|
||
._52{width:24.015281px;}
|
||
._11{width:25.070054px;}
|
||
._10{width:26.625917px;}
|
||
._4e{width:29.603215px;}
|
||
._4{width:31.241700px;}
|
||
._a{width:32.418280px;}
|
||
._14{width:33.771608px;}
|
||
._1{width:36.288314px;}
|
||
._20{width:38.391299px;}
|
||
._2{width:40.911750px;}
|
||
._4d{width:43.601705px;}
|
||
._4f{width:45.002258px;}
|
||
._23{width:47.282809px;}
|
||
._49{width:48.312469px;}
|
||
._1c{width:50.807160px;}
|
||
._33{width:52.552676px;}
|
||
._54{width:54.909566px;}
|
||
._13{width:56.026302px;}
|
||
._4c{width:60.137409px;}
|
||
._50{width:62.764380px;}
|
||
._39{width:64.460360px;}
|
||
._5a{width:66.763608px;}
|
||
._41{width:76.048579px;}
|
||
._4a{width:85.971349px;}
|
||
._28{width:87.707343px;}
|
||
._43{width:94.611458px;}
|
||
._3c{width:101.627275px;}
|
||
._1a{width:106.722797px;}
|
||
._27{width:108.628803px;}
|
||
._36{width:113.481410px;}
|
||
._2a{width:115.090436px;}
|
||
._19{width:123.460007px;}
|
||
._31{width:126.993991px;}
|
||
._32{width:130.469385px;}
|
||
._5d{width:131.805760px;}
|
||
._26{width:135.015636px;}
|
||
._35{width:142.036482px;}
|
||
._30{width:148.438966px;}
|
||
._2c{width:149.903101px;}
|
||
._62{width:153.791693px;}
|
||
._1b{width:156.934427px;}
|
||
._48{width:160.785485px;}
|
||
._3f{width:170.425668px;}
|
||
._18{width:173.671637px;}
|
||
._47{width:179.635475px;}
|
||
._3b{width:187.054681px;}
|
||
._2b{width:191.321183px;}
|
||
._34{width:196.080230px;}
|
||
._46{width:198.444365px;}
|
||
._29{width:212.242643px;}
|
||
._5c{width:244.779680px;}
|
||
._61{width:247.953920px;}
|
||
._44{width:257.802006px;}
|
||
._5f{width:266.533120px;}
|
||
._60{width:295.205120px;}
|
||
._22{width:301.983850px;}
|
||
._2f{width:309.534890px;}
|
||
._1d{width:321.769152px;}
|
||
._5e{width:357.755680px;}
|
||
._3a{width:390.320438px;}
|
||
._12{width:414.243520px;}
|
||
._42{width:452.383234px;}
|
||
._45{width:527.805332px;}
|
||
._40{width:584.195714px;}
|
||
._24{width:654.100320px;}
|
||
._58{width:791.293425px;}
|
||
._57{width:861.879930px;}
|
||
._16{width:922.236338px;}
|
||
._1e{width:958.292279px;}
|
||
._38{width:987.858602px;}
|
||
._21{width:993.874473px;}
|
||
._59{width:1007.435495px;}
|
||
._4b{width:1017.268394px;}
|
||
._2d{width:1092.954091px;}
|
||
._3e{width:1144.971240px;}
|
||
._56{width:1234.565970px;}
|
||
._1f{width:1236.945128px;}
|
||
._5b{width:1266.223339px;}
|
||
._53{width:1309.570433px;}
|
||
._55{width:1420.803789px;}
|
||
._51{width:1432.758989px;}
|
||
.fcd{color:rgb(16,136,110);}
|
||
.fc0{color:rgb(35,55,59);}
|
||
.fc1{color:rgb(250,250,250);}
|
||
.fc2{color:rgb(255,255,255);}
|
||
.fc8{color:rgb(102,102,102);}
|
||
.fc3{color:rgb(173,34,49);}
|
||
.fc4{color:rgb(156,102,0);}
|
||
.fc5{color:rgb(61,122,122);}
|
||
.fcb{color:rgb(171,92,31);}
|
||
.fce{color:transparent;}
|
||
.fc7{color:rgb(0,0,255);}
|
||
.fca{color:rgb(186,33,33);}
|
||
.fc9{color:rgb(0,128,0);}
|
||
.fc6{color:rgb(176,0,64);}
|
||
.fcc{color:rgb(57,75,79);}
|
||
.fs8{font-size:23.910400px;}
|
||
.fs5{font-size:31.880400px;}
|
||
.fs7{font-size:35.865600px;}
|
||
.fs4{font-size:39.850400px;}
|
||
.fs6{font-size:43.636400px;}
|
||
.fs3{font-size:47.820800px;}
|
||
.fs2{font-size:57.384800px;}
|
||
.fs1{font-size:82.650000px;}
|
||
.fs0{font-size:99.148400px;}
|
||
.y167{bottom:-41.562000px;}
|
||
.y281{bottom:-9.666000px;}
|
||
.y0{bottom:-0.500000px;}
|
||
.y2a3{bottom:3.703000px;}
|
||
.y21d{bottom:4.248000px;}
|
||
.y176{bottom:4.525000px;}
|
||
.y152{bottom:5.112000px;}
|
||
.y19d{bottom:5.180000px;}
|
||
.y162{bottom:5.381000px;}
|
||
.y1dd{bottom:5.448000px;}
|
||
.y28a{bottom:5.548000px;}
|
||
.y2de{bottom:5.619000px;}
|
||
.y1ba{bottom:5.651000px;}
|
||
.y1d0{bottom:5.776000px;}
|
||
.y200{bottom:6.186000px;}
|
||
.y2ff{bottom:6.294000px;}
|
||
.y28c{bottom:6.387000px;}
|
||
.y276{bottom:6.389000px;}
|
||
.y1a7{bottom:6.392000px;}
|
||
.y141{bottom:6.527000px;}
|
||
.y1f2{bottom:6.528000px;}
|
||
.y335{bottom:6.649000px;}
|
||
.ydc{bottom:6.882000px;}
|
||
.y6a{bottom:6.985000px;}
|
||
.y7a{bottom:7.063000px;}
|
||
.y115{bottom:7.078000px;}
|
||
.y46{bottom:7.427000px;}
|
||
.yf1{bottom:7.535000px;}
|
||
.y26f{bottom:7.558000px;}
|
||
.y4e{bottom:7.636000px;}
|
||
.y2af{bottom:8.239000px;}
|
||
.y192{bottom:8.361000px;}
|
||
.y2b5{bottom:8.555000px;}
|
||
.y187{bottom:9.017000px;}
|
||
.y9a{bottom:9.275000px;}
|
||
.y264{bottom:9.491000px;}
|
||
.y228{bottom:9.608000px;}
|
||
.y291{bottom:10.049000px;}
|
||
.y137{bottom:10.183000px;}
|
||
.y326{bottom:10.212000px;}
|
||
.y8c{bottom:10.303000px;}
|
||
.y24e{bottom:10.684000px;}
|
||
.y1c8{bottom:12.694000px;}
|
||
.y149{bottom:12.759000px;}
|
||
.y12{bottom:13.018000px;}
|
||
.y314{bottom:14.880000px;}
|
||
.ya4{bottom:15.185000px;}
|
||
.y32f{bottom:16.047000px;}
|
||
.y289{bottom:16.158000px;}
|
||
.y259{bottom:16.298000px;}
|
||
.yc1{bottom:16.509000px;}
|
||
.y21c{bottom:16.851000px;}
|
||
.y175{bottom:17.127000px;}
|
||
.ydb{bottom:17.766000px;}
|
||
.y19c{bottom:17.783000px;}
|
||
.y69{bottom:17.869000px;}
|
||
.y79{bottom:17.947000px;}
|
||
.y161{bottom:17.984000px;}
|
||
.y2a2{bottom:18.298000px;}
|
||
.y280{bottom:18.557000px;}
|
||
.y1a6{bottom:18.995000px;}
|
||
.y1f1{bottom:19.131000px;}
|
||
.y45{bottom:20.029000px;}
|
||
.y2fe{bottom:20.890000px;}
|
||
.y136{bottom:21.067000px;}
|
||
.y2b4{bottom:21.158000px;}
|
||
.y8b{bottom:21.187000px;}
|
||
.y240{bottom:21.203000px;}
|
||
.y186{bottom:21.620000px;}
|
||
.yfb{bottom:22.542000px;}
|
||
.y1b2{bottom:23.065000px;}
|
||
.y26e{bottom:23.139000px;}
|
||
.y227{bottom:25.189000px;}
|
||
.y1c7{bottom:25.297000px;}
|
||
.y24{bottom:25.331000px;}
|
||
.y313{bottom:25.764000px;}
|
||
.y2d6{bottom:25.818000px;}
|
||
.y24d{bottom:26.266000px;}
|
||
.y288{bottom:26.769000px;}
|
||
.y2fa{bottom:26.871000px;}
|
||
.y258{bottom:27.182000px;}
|
||
.y239{bottom:27.697000px;}
|
||
.y166{bottom:28.504000px;}
|
||
.yda{bottom:28.650000px;}
|
||
.y68{bottom:28.753000px;}
|
||
.y78{bottom:28.831000px;}
|
||
.y11e{bottom:28.993000px;}
|
||
.yc0{bottom:29.111000px;}
|
||
.y2ca{bottom:29.177000px;}
|
||
.y1e6{bottom:29.457000px;}
|
||
.y15a{bottom:29.780000px;}
|
||
.ya3{bottom:30.766000px;}
|
||
.y8a{bottom:32.071000px;}
|
||
.y2c0{bottom:32.280000px;}
|
||
.y44{bottom:32.632000px;}
|
||
.yac{bottom:32.887000px;}
|
||
.y114{bottom:33.180000px;}
|
||
.y11{bottom:33.786000px;}
|
||
.y263{bottom:34.044000px;}
|
||
.y27f{bottom:34.138000px;}
|
||
.y185{bottom:34.222000px;}
|
||
.y2ed{bottom:34.461000px;}
|
||
.y1dc{bottom:34.970000px;}
|
||
.y99{bottom:35.254000px;}
|
||
.y1ff{bottom:35.842000px;}
|
||
.y180{bottom:36.116000px;}
|
||
.y1d9{bottom:36.166000px;}
|
||
.y312{bottom:36.649000px;}
|
||
.y1c6{bottom:37.899000px;}
|
||
.y257{bottom:38.067000px;}
|
||
.yfa{bottom:38.123000px;}
|
||
.y2d5{bottom:38.421000px;}
|
||
.y1b1{bottom:38.647000px;}
|
||
.y26d{bottom:38.721000px;}
|
||
.yf0{bottom:38.951000px;}
|
||
.y127{bottom:39.004000px;}
|
||
.y2c{bottom:39.447000px;}
|
||
.yd9{bottom:39.534000px;}
|
||
.y67{bottom:39.637000px;}
|
||
.y77{bottom:39.715000px;}
|
||
.y140{bottom:40.101000px;}
|
||
.yd3{bottom:40.135000px;}
|
||
.y151{bottom:40.181000px;}
|
||
.y238{bottom:40.300000px;}
|
||
.y226{bottom:40.771000px;}
|
||
.y191{bottom:41.212000px;}
|
||
.ybf{bottom:41.714000px;}
|
||
.y37{bottom:42.041000px;}
|
||
.y24c{bottom:42.285000px;}
|
||
.y2f9{bottom:42.452000px;}
|
||
.y174{bottom:42.731000px;}
|
||
.y135{bottom:42.835000px;}
|
||
.y6{bottom:42.950000px;}
|
||
.y89{bottom:42.955000px;}
|
||
.y325{bottom:43.036000px;}
|
||
.y1e5{bottom:43.205000px;}
|
||
.y334{bottom:43.448000px;}
|
||
.y32e{bottom:43.584000px;}
|
||
.y165{bottom:44.086000px;}
|
||
.yd4{bottom:44.094000px;}
|
||
.y23{bottom:44.534000px;}
|
||
.y11d{bottom:44.574000px;}
|
||
.y2c9{bottom:44.759000px;}
|
||
.y1cf{bottom:45.262000px;}
|
||
.y159{bottom:45.361000px;}
|
||
.y1fe{bottom:46.726000px;}
|
||
.yc9{bottom:47.354000px;}
|
||
.y1b9{bottom:47.506000px;}
|
||
.y311{bottom:47.533000px;}
|
||
.y262{bottom:47.792000px;}
|
||
.y4d{bottom:47.814000px;}
|
||
.y98{bottom:47.857000px;}
|
||
.y2bf{bottom:47.862000px;}
|
||
.y17f{bottom:48.719000px;}
|
||
.y113{bottom:48.762000px;}
|
||
.y256{bottom:48.951000px;}
|
||
.y27e{bottom:49.720000px;}
|
||
.y2ec{bottom:50.042000px;}
|
||
.yd8{bottom:50.418000px;}
|
||
.y1c5{bottom:50.502000px;}
|
||
.y66{bottom:50.522000px;}
|
||
.y1db{bottom:50.552000px;}
|
||
.y76{bottom:50.599000px;}
|
||
.y2d4{bottom:51.024000px;}
|
||
.y10{bottom:51.195000px;}
|
||
.y33c{bottom:51.507000px;}
|
||
.y1d8{bottom:51.747000px;}
|
||
.y56{bottom:51.968000px;}
|
||
.y299{bottom:52.499000px;}
|
||
.y21b{bottom:52.654000px;}
|
||
.y232{bottom:52.816000px;}
|
||
.y237{bottom:52.903000px;}
|
||
.y2a1{bottom:53.391000px;}
|
||
.y134{bottom:53.720000px;}
|
||
.y88{bottom:53.839000px;}
|
||
.y1b0{bottom:54.228000px;}
|
||
.ybe{bottom:54.317000px;}
|
||
.y24b{bottom:54.887000px;}
|
||
.y173{bottom:55.334000px;}
|
||
.y324{bottom:55.639000px;}
|
||
.y13f{bottom:55.683000px;}
|
||
.y150{bottom:55.762000px;}
|
||
.ya2{bottom:56.783000px;}
|
||
.y1e4{bottom:56.953000px;}
|
||
.y1a5{bottom:57.052000px;}
|
||
.y1a{bottom:57.079000px;}
|
||
.y1fd{bottom:57.610000px;}
|
||
.y36{bottom:57.622000px;}
|
||
.y43{bottom:57.837000px;}
|
||
.yef{bottom:58.154000px;}
|
||
.y207{bottom:58.847000px;}
|
||
.y32d{bottom:59.165000px;}
|
||
.y5{bottom:59.625000px;}
|
||
.y275{bottom:59.710000px;}
|
||
.y26c{bottom:59.757000px;}
|
||
.y255{bottom:59.835000px;}
|
||
.y2c8{bottom:60.340000px;}
|
||
.y97{bottom:60.459000px;}
|
||
.y287{bottom:60.629000px;}
|
||
.y2b3{bottom:60.654000px;}
|
||
.y1ce{bottom:60.843000px;}
|
||
.y126{bottom:60.959000px;}
|
||
.yd7{bottom:61.302000px;}
|
||
.y17e{bottom:61.321000px;}
|
||
.y23f{bottom:61.381000px;}
|
||
.y65{bottom:61.406000px;}
|
||
.y261{bottom:61.541000px;}
|
||
.yb4{bottom:61.547000px;}
|
||
.yf9{bottom:61.675000px;}
|
||
.y190{bottom:62.637000px;}
|
||
.y304{bottom:62.710000px;}
|
||
.yc8{bottom:62.935000px;}
|
||
.y1c4{bottom:63.105000px;}
|
||
.y4c{bottom:63.396000px;}
|
||
.y2be{bottom:63.443000px;}
|
||
.yab{bottom:63.550000px;}
|
||
.y19b{bottom:63.686000px;}
|
||
.y22{bottom:63.737000px;}
|
||
.y160{bottom:64.011000px;}
|
||
.y133{bottom:64.604000px;}
|
||
.y87{bottom:64.723000px;}
|
||
.y27d{bottom:65.301000px;}
|
||
.y231{bottom:65.418000px;}
|
||
.y2a9{bottom:65.988000px;}
|
||
.y2a0{bottom:65.994000px;}
|
||
.y11c{bottom:66.133000px;}
|
||
.ybd{bottom:66.919000px;}
|
||
.y33b{bottom:67.088000px;}
|
||
.y24a{bottom:67.490000px;}
|
||
.y172{bottom:67.937000px;}
|
||
.y298{bottom:68.081000px;}
|
||
.y21a{bottom:68.235000px;}
|
||
.y1fc{bottom:68.494000px;}
|
||
.yf{bottom:68.605000px;}
|
||
.y333{bottom:68.992000px;}
|
||
.y225{bottom:69.221000px;}
|
||
.y2d3{bottom:69.262000px;}
|
||
.y310{bottom:69.301000px;}
|
||
.y1af{bottom:69.810000px;}
|
||
.y42{bottom:70.440000px;}
|
||
.y55{bottom:70.538000px;}
|
||
.y1ef{bottom:70.638000px;}
|
||
.y1e3{bottom:70.702000px;}
|
||
.y254{bottom:70.719000px;}
|
||
.y1a4{bottom:70.801000px;}
|
||
.y2b{bottom:70.858000px;}
|
||
.y1b8{bottom:71.217000px;}
|
||
.y14f{bottom:71.344000px;}
|
||
.y31c{bottom:71.751000px;}
|
||
.yee{bottom:71.902000px;}
|
||
.y236{bottom:72.061000px;}
|
||
.yd6{bottom:72.186000px;}
|
||
.y64{bottom:72.290000px;}
|
||
.y112{bottom:72.313000px;}
|
||
.ya1{bottom:72.365000px;}
|
||
.y75{bottom:72.367000px;}
|
||
.y20d{bottom:72.616000px;}
|
||
.y1d7{bottom:72.783000px;}
|
||
.y2fd{bottom:72.977000px;}
|
||
.y96{bottom:73.062000px;}
|
||
.y206{bottom:74.429000px;}
|
||
.y19{bottom:74.489000px;}
|
||
.y18f{bottom:75.239000px;}
|
||
.y274{bottom:75.291000px;}
|
||
.ye2{bottom:75.329000px;}
|
||
.y26b{bottom:75.338000px;}
|
||
.y132{bottom:75.488000px;}
|
||
.y86{bottom:75.607000px;}
|
||
.y2e6{bottom:76.043000px;}
|
||
.y19a{bottom:76.289000px;}
|
||
.y1cd{bottom:76.425000px;}
|
||
.y2ae{bottom:76.616000px;}
|
||
.y23e{bottom:76.963000px;}
|
||
.yf8{bottom:77.257000px;}
|
||
.y184{bottom:77.959000px;}
|
||
.y230{bottom:78.021000px;}
|
||
.y303{bottom:78.292000px;}
|
||
.y29f{bottom:78.596000px;}
|
||
.y158{bottom:78.875000px;}
|
||
.y2c7{bottom:78.886000px;}
|
||
.y1fb{bottom:79.378000px;}
|
||
.ybc{bottom:79.522000px;}
|
||
.y15f{bottom:79.593000px;}
|
||
.y1c3{bottom:79.942000px;}
|
||
.y2f8{bottom:79.951000px;}
|
||
.y224{bottom:80.106000px;}
|
||
.y30f{bottom:80.185000px;}
|
||
.y249{bottom:80.342000px;}
|
||
.y171{bottom:80.539000px;}
|
||
.y13e{bottom:80.569000px;}
|
||
.y323{bottom:80.844000px;}
|
||
.y27c{bottom:80.883000px;}
|
||
.y18c{bottom:81.541000px;}
|
||
.y2a8{bottom:81.570000px;}
|
||
.y253{bottom:81.603000px;}
|
||
.y11b{bottom:81.715000px;}
|
||
.y2b2{bottom:82.188000px;}
|
||
.y148{bottom:82.327000px;}
|
||
.y33a{bottom:82.670000px;}
|
||
.yaa{bottom:82.797000px;}
|
||
.y125{bottom:82.914000px;}
|
||
.y21{bottom:82.940000px;}
|
||
.y41{bottom:83.043000px;}
|
||
.yd5{bottom:83.070000px;}
|
||
.y63{bottom:83.174000px;}
|
||
.y1ee{bottom:83.240000px;}
|
||
.y74{bottom:83.252000px;}
|
||
.y219{bottom:83.817000px;}
|
||
.y1f0{bottom:84.019000px;}
|
||
.y286{bottom:84.181000px;}
|
||
.y1b7{bottom:84.966000px;}
|
||
.y2f3{bottom:85.342000px;}
|
||
.yed{bottom:85.650000px;}
|
||
.y95{bottom:85.665000px;}
|
||
.ye{bottom:86.015000px;}
|
||
.y260{bottom:86.223000px;}
|
||
.yc7{bottom:86.487000px;}
|
||
.y85{bottom:86.492000px;}
|
||
.y17d{bottom:86.527000px;}
|
||
.y32c{bottom:86.702000px;}
|
||
.y35{bottom:87.151000px;}
|
||
.y31b{bottom:87.332000px;}
|
||
.y235{bottom:87.643000px;}
|
||
.y18e{bottom:87.842000px;}
|
||
.y2eb{bottom:87.939000px;}
|
||
.ya0{bottom:87.946000px;}
|
||
.y20c{bottom:88.197000px;}
|
||
.y1d6{bottom:88.365000px;}
|
||
.y2e5{bottom:88.646000px;}
|
||
.y199{bottom:88.892000px;}
|
||
.y54{bottom:89.108000px;}
|
||
.y1a3{bottom:89.530000px;}
|
||
.y297{bottom:89.640000px;}
|
||
.y1fa{bottom:90.262000px;}
|
||
.y22f{bottom:90.624000px;}
|
||
.y273{bottom:90.873000px;}
|
||
.y26a{bottom:90.920000px;}
|
||
.y223{bottom:90.990000px;}
|
||
.y30e{bottom:91.069000px;}
|
||
.y1ae{bottom:91.344000px;}
|
||
.y18{bottom:91.899000px;}
|
||
.y28b{bottom:92.544000px;}
|
||
.y157{bottom:92.624000px;}
|
||
.y170{bottom:93.142000px;}
|
||
.y13d{bottom:93.172000px;}
|
||
.y322{bottom:93.447000px;}
|
||
.y183{bottom:93.540000px;}
|
||
.y252{bottom:93.959000px;}
|
||
.y2d2{bottom:94.014000px;}
|
||
.y62{bottom:94.058000px;}
|
||
.y212{bottom:94.457000px;}
|
||
.y332{bottom:94.537000px;}
|
||
.y164{bottom:95.174000px;}
|
||
.y2f7{bottom:95.533000px;}
|
||
.y40{bottom:95.645000px;}
|
||
.y1ed{bottom:95.843000px;}
|
||
.y2bd{bottom:96.958000px;}
|
||
.yb3{bottom:97.053000px;}
|
||
.ye0{bottom:97.143000px;}
|
||
.y2a7{bottom:97.151000px;}
|
||
.y131{bottom:97.256000px;}
|
||
.y11a{bottom:97.296000px;}
|
||
.y84{bottom:97.376000px;}
|
||
.y2b1{bottom:97.770000px;}
|
||
.y147{bottom:97.909000px;}
|
||
.y2f2{bottom:97.944000px;}
|
||
.y1cc{bottom:97.959000px;}
|
||
.y1e2{bottom:98.199000px;}
|
||
.y94{bottom:98.267000px;}
|
||
.y248{bottom:98.279000px;}
|
||
.y111{bottom:98.417000px;}
|
||
.y29e{bottom:98.422000px;}
|
||
.y106{bottom:98.455000px;}
|
||
.yf7{bottom:98.791000px;}
|
||
.y17c{bottom:99.129000px;}
|
||
.ybb{bottom:99.348000px;}
|
||
.y218{bottom:99.398000px;}
|
||
.y290{bottom:99.543000px;}
|
||
.y285{bottom:99.762000px;}
|
||
.y124{bottom:100.209000px;}
|
||
.y1c2{bottom:100.265000px;}
|
||
.y18d{bottom:100.445000px;}
|
||
.y2ea{bottom:100.541000px;}
|
||
.y14e{bottom:100.873000px;}
|
||
.ye1{bottom:101.102000px;}
|
||
.y1f9{bottom:101.146000px;}
|
||
.y2e4{bottom:101.248000px;}
|
||
.y2a{bottom:101.417000px;}
|
||
.y222{bottom:101.468000px;}
|
||
.y4b{bottom:101.533000px;}
|
||
.y198{bottom:101.744000px;}
|
||
.y25f{bottom:101.804000px;}
|
||
.y30d{bottom:101.953000px;}
|
||
.y205{bottom:101.965000px;}
|
||
.ya9{bottom:102.045000px;}
|
||
.yc6{bottom:102.068000px;}
|
||
.y20{bottom:102.143000px;}
|
||
.y32b{bottom:102.283000px;}
|
||
.y27b{bottom:102.417000px;}
|
||
.y34{bottom:102.733000px;}
|
||
.y234{bottom:103.224000px;}
|
||
.y1a2{bottom:103.279000px;}
|
||
.yd{bottom:103.425000px;}
|
||
.y2ad{bottom:103.553000px;}
|
||
.y2c6{bottom:103.772000px;}
|
||
.y316{bottom:103.877000px;}
|
||
.y61{bottom:104.942000px;}
|
||
.y73{bottom:105.020000px;}
|
||
.y16f{bottom:105.745000px;}
|
||
.y13c{bottom:105.775000px;}
|
||
.y321{bottom:106.049000px;}
|
||
.y2fc{bottom:106.492000px;}
|
||
.y269{bottom:106.501000px;}
|
||
.y2d1{bottom:106.616000px;}
|
||
.y2f{bottom:107.625000px;}
|
||
.y53{bottom:107.679000px;}
|
||
.y130{bottom:108.140000px;}
|
||
.y3f{bottom:108.248000px;}
|
||
.y83{bottom:108.260000px;}
|
||
.y23d{bottom:108.484000px;}
|
||
.yd2{bottom:108.594000px;}
|
||
.y1b6{bottom:108.677000px;}
|
||
.y110{bottom:109.301000px;}
|
||
.y17{bottom:109.308000px;}
|
||
.y105{bottom:109.339000px;}
|
||
.y9f{bottom:109.481000px;}
|
||
.y211{bottom:110.038000px;}
|
||
.y2f1{bottom:110.547000px;}
|
||
.yec{bottom:110.772000px;}
|
||
.y17b{bottom:111.732000px;}
|
||
.y1e1{bottom:111.947000px;}
|
||
.y1f8{bottom:112.031000px;}
|
||
.y156{bottom:112.350000px;}
|
||
.y2bc{bottom:112.539000px;}
|
||
.yb2{bottom:112.635000px;}
|
||
.y30c{bottom:112.838000px;}
|
||
.y1c1{bottom:112.868000px;}
|
||
.y1ad{bottom:112.878000px;}
|
||
.y251{bottom:112.953000px;}
|
||
.y2e9{bottom:113.144000px;}
|
||
.y2b0{bottom:113.351000px;}
|
||
.y146{bottom:113.490000px;}
|
||
.y2e3{bottom:113.851000px;}
|
||
.y4a{bottom:114.135000px;}
|
||
.y296{bottom:114.609000px;}
|
||
.y1ec{bottom:114.956000px;}
|
||
.y15e{bottom:115.099000px;}
|
||
.y28f{bottom:115.124000px;}
|
||
.yba{bottom:115.448000px;}
|
||
.y20b{bottom:115.734000px;}
|
||
.y60{bottom:115.826000px;}
|
||
.y72{bottom:115.904000px;}
|
||
.y2c5{bottom:116.375000px;}
|
||
.y14d{bottom:116.454000px;}
|
||
.y31a{bottom:116.861000px;}
|
||
.y4{bottom:117.024000px;}
|
||
.y25e{bottom:117.386000px;}
|
||
.y247{bottom:117.537000px;}
|
||
.y204{bottom:117.547000px;}
|
||
.y32a{bottom:117.865000px;}
|
||
.y20e{bottom:117.936000px;}
|
||
.y243{bottom:118.340000px;}
|
||
.y13b{bottom:118.377000px;}
|
||
.y320{bottom:118.652000px;}
|
||
.y221{bottom:118.806000px;}
|
||
.y119{bottom:118.831000px;}
|
||
.ydf{bottom:118.957000px;}
|
||
.y1a1{bottom:118.995000px;}
|
||
.y12f{bottom:119.024000px;}
|
||
.y82{bottom:119.144000px;}
|
||
.y2d0{bottom:119.219000px;}
|
||
.yd1{bottom:119.478000px;}
|
||
.y331{bottom:120.081000px;}
|
||
.y339{bottom:120.169000px;}
|
||
.y10f{bottom:120.185000px;}
|
||
.y104{bottom:120.224000px;}
|
||
.y22e{bottom:120.287000px;}
|
||
.y29{bottom:120.620000px;}
|
||
.yc{bottom:120.834000px;}
|
||
.y3e{bottom:120.851000px;}
|
||
.yae{bottom:121.063000px;}
|
||
.y1d5{bottom:121.095000px;}
|
||
.ya8{bottom:121.293000px;}
|
||
.y1f{bottom:121.346000px;}
|
||
.y302{bottom:121.769000px;}
|
||
.y18b{bottom:121.869000px;}
|
||
.y1b5{bottom:122.425000px;}
|
||
.y2a6{bottom:122.695000px;}
|
||
.y1f7{bottom:122.915000px;}
|
||
.y2f0{bottom:123.150000px;}
|
||
.y284{bottom:123.314000px;}
|
||
.yeb{bottom:123.374000px;}
|
||
.y93{bottom:123.473000px;}
|
||
.y30b{bottom:123.722000px;}
|
||
.yf6{bottom:123.812000px;}
|
||
.y23c{bottom:124.066000px;}
|
||
.y217{bottom:124.943000px;}
|
||
.y9e{bottom:125.062000px;}
|
||
.y1c0{bottom:125.471000px;}
|
||
.yc5{bottom:125.620000px;}
|
||
.y1e0{bottom:125.695000px;}
|
||
.y2e8{bottom:125.747000px;}
|
||
.y155{bottom:126.098000px;}
|
||
.y52{bottom:126.249000px;}
|
||
.y2e2{bottom:126.454000px;}
|
||
.y250{bottom:126.701000px;}
|
||
.y5f{bottom:126.710000px;}
|
||
.y16{bottom:126.718000px;}
|
||
.y71{bottom:126.788000px;}
|
||
.y272{bottom:126.853000px;}
|
||
.y29d{bottom:126.940000px;}
|
||
.y123{bottom:127.746000px;}
|
||
.yb1{bottom:128.216000px;}
|
||
.y2e{bottom:128.248000px;}
|
||
.y1ac{bottom:128.459000px;}
|
||
.y1cb{bottom:128.957000px;}
|
||
.y2c4{bottom:128.977000px;}
|
||
.y145{bottom:129.072000px;}
|
||
.y2ac{bottom:129.097000px;}
|
||
.y81{bottom:130.028000px;}
|
||
.y246{bottom:130.140000px;}
|
||
.yd0{bottom:130.362000px;}
|
||
.y15d{bottom:130.681000px;}
|
||
.y242{bottom:130.943000px;}
|
||
.y16e{bottom:130.950000px;}
|
||
.y13a{bottom:130.980000px;}
|
||
.y10e{bottom:131.069000px;}
|
||
.y103{bottom:131.108000px;}
|
||
.y20a{bottom:131.315000px;}
|
||
.y2cf{bottom:131.822000px;}
|
||
.y319{bottom:132.443000px;}
|
||
.y22d{bottom:132.890000px;}
|
||
.y2f6{bottom:133.032000px;}
|
||
.y33{bottom:133.444000px;}
|
||
.y3d{bottom:133.453000px;}
|
||
.y1f6{bottom:133.799000px;}
|
||
.y27a{bottom:133.914000px;}
|
||
.y49{bottom:133.961000px;}
|
||
.y197{bottom:134.123000px;}
|
||
.y220{bottom:134.387000px;}
|
||
.y338{bottom:135.751000px;}
|
||
.y25d{bottom:135.931000px;}
|
||
.yea{bottom:135.977000px;}
|
||
.y92{bottom:136.075000px;}
|
||
.y1d4{bottom:136.677000px;}
|
||
.y17a{bottom:136.938000px;}
|
||
.y301{bottom:137.350000px;}
|
||
.y5e{bottom:137.595000px;}
|
||
.y268{bottom:137.615000px;}
|
||
.y70{bottom:137.672000px;}
|
||
.y2d{bottom:137.727000px;}
|
||
.y2bb{bottom:137.924000px;}
|
||
.y14a{bottom:138.248000px;}
|
||
.y2a5{bottom:138.277000px;}
|
||
.y31f{bottom:138.478000px;}
|
||
.y295{bottom:138.886000px;}
|
||
.y283{bottom:138.895000px;}
|
||
.y3{bottom:139.042000px;}
|
||
.yf5{bottom:139.393000px;}
|
||
.y1df{bottom:139.444000px;}
|
||
.y2dd{bottom:139.571000px;}
|
||
.y28{bottom:139.823000px;}
|
||
.y154{bottom:139.847000px;}
|
||
.y2fb{bottom:140.006000px;}
|
||
.ya7{bottom:140.540000px;}
|
||
.y1e{bottom:140.549000px;}
|
||
.y182{bottom:140.643000px;}
|
||
.y12e{bottom:140.793000px;}
|
||
.y80{bottom:140.912000px;}
|
||
.ycf{bottom:141.247000px;}
|
||
.y2c3{bottom:141.580000px;}
|
||
.y10d{bottom:141.953000px;}
|
||
.y102{bottom:141.992000px;}
|
||
.y1bf{bottom:142.307000px;}
|
||
.y271{bottom:142.434000px;}
|
||
.y2e7{bottom:142.583000px;}
|
||
.y2e1{bottom:142.624000px;}
|
||
.y245{bottom:142.743000px;}
|
||
.y18a{bottom:143.294000px;}
|
||
.yca{bottom:143.327000px;}
|
||
.y24f{bottom:143.383000px;}
|
||
.y16d{bottom:143.553000px;}
|
||
.y139{bottom:143.583000px;}
|
||
.yb9{bottom:143.991000px;}
|
||
.y1ab{bottom:144.041000px;}
|
||
.y15{bottom:144.128000px;}
|
||
.y1ca{bottom:144.539000px;}
|
||
.y1f5{bottom:144.683000px;}
|
||
.y118{bottom:144.848000px;}
|
||
.y1a0{bottom:145.012000px;}
|
||
.y203{bottom:145.084000px;}
|
||
.y51{bottom:145.292000px;}
|
||
.y30a{bottom:145.490000px;}
|
||
.y22c{bottom:145.493000px;}
|
||
.y330{bottom:145.625000px;}
|
||
.y14c{bottom:145.984000px;}
|
||
.y3c{bottom:146.056000px;}
|
||
.y163{bottom:146.262000px;}
|
||
.yde{bottom:146.407000px;}
|
||
.y329{bottom:146.584000px;}
|
||
.y210{bottom:146.656000px;}
|
||
.y196{bottom:146.726000px;}
|
||
.y1ea{bottom:147.912000px;}
|
||
.y1b4{bottom:148.340000px;}
|
||
.y5d{bottom:148.479000px;}
|
||
.y29c{bottom:148.499000px;}
|
||
.y6f{bottom:148.556000px;}
|
||
.yb{bottom:148.576000px;}
|
||
.ye9{bottom:148.580000px;}
|
||
.y2f5{bottom:148.614000px;}
|
||
.y91{bottom:148.678000px;}
|
||
.y32{bottom:149.026000px;}
|
||
.yc4{bottom:149.172000px;}
|
||
.y279{bottom:149.495000px;}
|
||
.y179{bottom:149.540000px;}
|
||
.y122{bottom:149.701000px;}
|
||
.y21f{bottom:149.969000px;}
|
||
.y1da{bottom:149.993000px;}
|
||
.y267{bottom:150.217000px;}
|
||
.y2dc{bottom:150.455000px;}
|
||
.y216{bottom:150.487000px;}
|
||
.y2ba{bottom:150.526000px;}
|
||
.y9d{bottom:150.606000px;}
|
||
.y2ab{bottom:150.631000px;}
|
||
.y48{bottom:151.238000px;}
|
||
.y12d{bottom:151.677000px;}
|
||
.y28e{bottom:151.742000px;}
|
||
.y7f{bottom:151.796000px;}
|
||
.yce{bottom:152.131000px;}
|
||
.y2ce{bottom:152.519000px;}
|
||
.y10c{bottom:152.837000px;}
|
||
.y101{bottom:152.876000px;}
|
||
.y31e{bottom:152.896000px;}
|
||
.y241{bottom:154.031000px;}
|
||
.y244{bottom:154.088000px;}
|
||
.y2c2{bottom:154.183000px;}
|
||
.y294{bottom:154.468000px;}
|
||
.y282{bottom:154.477000px;}
|
||
.yf4{bottom:154.975000px;}
|
||
.y209{bottom:155.340000px;}
|
||
.yad{bottom:155.434000px;}
|
||
.y1f4{bottom:155.567000px;}
|
||
.y23b{bottom:155.587000px;}
|
||
.y2ef{bottom:155.881000px;}
|
||
.y318{bottom:155.995000px;}
|
||
.y144{bottom:156.086000px;}
|
||
.y16c{bottom:156.155000px;}
|
||
.y138{bottom:156.185000px;}
|
||
.y25c{bottom:157.465000px;}
|
||
.y153{bottom:157.580000px;}
|
||
.y22b{bottom:158.095000px;}
|
||
.y1d3{bottom:158.367000px;}
|
||
.y3b{bottom:158.659000px;}
|
||
.y27{bottom:159.026000px;}
|
||
.y195{bottom:159.328000px;}
|
||
.y5c{bottom:159.363000px;}
|
||
.yb7{bottom:159.572000px;}
|
||
.yb8{bottom:159.573000px;}
|
||
.y1d{bottom:159.752000px;}
|
||
.y233{bottom:159.931000px;}
|
||
.y117{bottom:160.429000px;}
|
||
.y1e9{bottom:160.514000px;}
|
||
.y19f{bottom:160.594000px;}
|
||
.y202{bottom:160.665000px;}
|
||
.ye8{bottom:161.182000px;}
|
||
.y90{bottom:161.281000px;}
|
||
.y1eb{bottom:161.293000px;}
|
||
.y2db{bottom:161.339000px;}
|
||
.y14{bottom:161.537000px;}
|
||
.y178{bottom:162.143000px;}
|
||
.y328{bottom:162.165000px;}
|
||
.y20f{bottom:162.237000px;}
|
||
.y2a4{bottom:162.302000px;}
|
||
.y12c{bottom:162.561000px;}
|
||
.y1be{bottom:162.631000px;}
|
||
.y7e{bottom:162.680000px;}
|
||
.ycd{bottom:163.015000px;}
|
||
.y2b9{bottom:163.129000px;}
|
||
.y2e0{bottom:163.189000px;}
|
||
.y10b{bottom:163.721000px;}
|
||
.yb0{bottom:163.723000px;}
|
||
.y100{bottom:163.760000px;}
|
||
.y189{bottom:164.718000px;}
|
||
.y278{bottom:165.077000px;}
|
||
.y2cd{bottom:165.122000px;}
|
||
.ya6{bottom:165.424000px;}
|
||
.y21e{bottom:165.550000px;}
|
||
.y1aa{bottom:165.575000px;}
|
||
.ya{bottom:165.986000px;}
|
||
.y15c{bottom:166.188000px;}
|
||
.y2c1{bottom:166.785000px;}
|
||
.y1de{bottom:166.940000px;}
|
||
.y309{bottom:167.258000px;}
|
||
.y28d{bottom:167.323000px;}
|
||
.y16b{bottom:168.758000px;}
|
||
.y215{bottom:169.216000px;}
|
||
.y293{bottom:170.049000px;}
|
||
.y29b{bottom:170.058000px;}
|
||
.y5b{bottom:170.247000px;}
|
||
.y6e{bottom:170.325000px;}
|
||
.yf3{bottom:170.556000px;}
|
||
.y208{bottom:170.922000px;}
|
||
.y23a{bottom:171.169000px;}
|
||
.y3a{bottom:171.261000px;}
|
||
.y2ee{bottom:171.462000px;}
|
||
.y317{bottom:171.576000px;}
|
||
.y121{bottom:171.657000px;}
|
||
.y143{bottom:171.667000px;}
|
||
.y1f3{bottom:172.389000px;}
|
||
.y315{bottom:172.619000px;}
|
||
.yc3{bottom:172.723000px;}
|
||
.y1b3{bottom:173.022000px;}
|
||
.y25b{bottom:173.047000px;}
|
||
.y1e8{bottom:173.117000px;}
|
||
.y337{bottom:173.250000px;}
|
||
.ye5{bottom:173.411000px;}
|
||
.y12b{bottom:173.445000px;}
|
||
.y2da{bottom:173.695000px;}
|
||
.ye7{bottom:173.785000px;}
|
||
.y8f{bottom:173.883000px;}
|
||
.ycc{bottom:173.899000px;}
|
||
.y194{bottom:174.173000px;}
|
||
.y10a{bottom:174.605000px;}
|
||
.yff{bottom:174.644000px;}
|
||
.y1bd{bottom:175.234000px;}
|
||
.y266{bottom:175.423000px;}
|
||
.y14b{bottom:175.513000px;}
|
||
.y2b8{bottom:175.732000px;}
|
||
.y116{bottom:176.011000px;}
|
||
.y9c{bottom:176.150000px;}
|
||
.y50{bottom:176.291000px;}
|
||
.y2aa{bottom:176.648000px;}
|
||
.y2{bottom:177.167000px;}
|
||
.y2cc{bottom:177.724000px;}
|
||
.y308{bottom:178.142000px;}
|
||
.y26{bottom:178.229000px;}
|
||
.y270{bottom:178.414000px;}
|
||
.y13{bottom:178.947000px;}
|
||
.y1c{bottom:178.955000px;}
|
||
.yaf{bottom:179.305000px;}
|
||
.y31{bottom:180.250000px;}
|
||
.y277{bottom:180.658000px;}
|
||
.y300{bottom:180.827000px;}
|
||
.ydd{bottom:181.118000px;}
|
||
.y5a{bottom:181.131000px;}
|
||
.y31d{bottom:181.132000px;}
|
||
.y1c9{bottom:181.156000px;}
|
||
.y6d{bottom:181.209000px;}
|
||
.y16a{bottom:181.361000px;}
|
||
.y19e{bottom:181.630000px;}
|
||
.y15b{bottom:181.769000px;}
|
||
.y214{bottom:182.965000px;}
|
||
.y9{bottom:183.396000px;}
|
||
.y39{bottom:183.864000px;}
|
||
.y12a{bottom:184.329000px;}
|
||
.y1d2{bottom:184.384000px;}
|
||
.y7d{bottom:184.449000px;}
|
||
.y201{bottom:184.690000px;}
|
||
.y2df{bottom:184.749000px;}
|
||
.ycb{bottom:184.783000px;}
|
||
.y22a{bottom:184.895000px;}
|
||
.y109{bottom:185.490000px;}
|
||
.yfe{bottom:185.528000px;}
|
||
.y29a{bottom:185.640000px;}
|
||
.ye4{bottom:186.014000px;}
|
||
.y2f4{bottom:186.113000px;}
|
||
.ye6{bottom:186.388000px;}
|
||
.y8e{bottom:186.486000px;}
|
||
.y1a9{bottom:186.611000px;}
|
||
.y47{bottom:186.750000px;}
|
||
.y142{bottom:187.249000px;}
|
||
.y177{bottom:187.348000px;}
|
||
.y1bc{bottom:187.836000px;}
|
||
.y265{bottom:188.025000px;}
|
||
.y2b7{bottom:188.335000px;}
|
||
.y292{bottom:188.361000px;}
|
||
.y25a{bottom:188.628000px;}
|
||
.y336{bottom:188.831000px;}
|
||
.y120{bottom:188.952000px;}
|
||
.y307{bottom:189.026000px;}
|
||
.y2d9{bottom:189.104000px;}
|
||
.y327{bottom:189.702000px;}
|
||
.y2cb{bottom:190.327000px;}
|
||
.yb6{bottom:191.094000px;}
|
||
.yf2{bottom:191.592000px;}
|
||
.y181{bottom:191.732000px;}
|
||
.y188{bottom:191.779000px;}
|
||
.y4f{bottom:191.872000px;}
|
||
.y59{bottom:192.015000px;}
|
||
.y6c{bottom:192.093000px;}
|
||
.y1e7{bottom:192.230000px;}
|
||
.y169{bottom:193.963000px;}
|
||
.y129{bottom:195.213000px;}
|
||
.y7c{bottom:195.333000px;}
|
||
.y108{bottom:196.374000px;}
|
||
.yfd{bottom:196.413000px;}
|
||
.y213{bottom:196.713000px;}
|
||
.yc2{bottom:196.748000px;}
|
||
.y193{bottom:197.211000px;}
|
||
.y25{bottom:197.432000px;}
|
||
.y1{bottom:197.790000px;}
|
||
.y1b{bottom:198.158000px;}
|
||
.y8d{bottom:199.089000px;}
|
||
.y306{bottom:199.911000px;}
|
||
.y1d1{bottom:199.966000px;}
|
||
.y2d8{bottom:199.988000px;}
|
||
.ya5{bottom:200.200000px;}
|
||
.y229{bottom:200.476000px;}
|
||
.y8{bottom:200.805000px;}
|
||
.y9b{bottom:201.694000px;}
|
||
.y1a8{bottom:202.193000px;}
|
||
.y58{bottom:202.899000px;}
|
||
.y30{bottom:204.275000px;}
|
||
.y11f{bottom:204.533000px;}
|
||
.y1bb{bottom:204.673000px;}
|
||
.y128{bottom:206.097000px;}
|
||
.y2b6{bottom:206.168000px;}
|
||
.y168{bottom:206.566000px;}
|
||
.yb5{bottom:206.676000px;}
|
||
.y7b{bottom:207.174000px;}
|
||
.y107{bottom:207.258000px;}
|
||
.yfc{bottom:207.297000px;}
|
||
.y38{bottom:209.069000px;}
|
||
.ye3{bottom:210.153000px;}
|
||
.y305{bottom:210.795000px;}
|
||
.y2d7{bottom:210.872000px;}
|
||
.y57{bottom:213.783000px;}
|
||
.y6b{bottom:213.861000px;}
|
||
.y7{bottom:236.149000px;}
|
||
.h12{height:21.901835px;}
|
||
.hf{height:22.124998px;}
|
||
.ha{height:23.910300px;}
|
||
.hd{height:24.890726px;}
|
||
.h10{height:26.899200px;}
|
||
.h9{height:27.576477px;}
|
||
.hc{height:27.656178px;}
|
||
.h13{height:27.752750px;}
|
||
.h6{height:29.887800px;}
|
||
.h11{height:30.283662px;}
|
||
.hb{height:32.727300px;}
|
||
.he{height:33.091994px;}
|
||
.h5{height:33.187635px;}
|
||
.h7{height:35.865600px;}
|
||
.h4{height:40.456284px;}
|
||
.h8{height:43.038600px;}
|
||
.h3{height:58.268250px;}
|
||
.h2{height:74.361300px;}
|
||
.h0{height:255.118000px;}
|
||
.h1{height:255.500000px;}
|
||
.w0{width:453.543000px;}
|
||
.w1{width:454.000000px;}
|
||
.x0{left:0.000000px;}
|
||
.x4{left:10.667000px;}
|
||
.x2b{left:19.586000px;}
|
||
.x30{left:21.617000px;}
|
||
.x1{left:28.346000px;}
|
||
.x27{left:29.376000px;}
|
||
.xd{left:31.335000px;}
|
||
.x5{left:34.488000px;}
|
||
.xb{left:36.225000px;}
|
||
.x2d{left:38.416000px;}
|
||
.x29{left:39.583000px;}
|
||
.x3a{left:40.750000px;}
|
||
.x2e{left:41.910000px;}
|
||
.x10{left:44.038000px;}
|
||
.x3e{left:45.457000px;}
|
||
.xf{left:48.272000px;}
|
||
.x33{left:49.316000px;}
|
||
.x6{left:50.486000px;}
|
||
.x28{left:51.909000px;}
|
||
.xc{left:53.153000px;}
|
||
.x9{left:55.397000px;}
|
||
.x2a{left:58.779000px;}
|
||
.x12{left:60.974000px;}
|
||
.x38{left:63.208000px;}
|
||
.x15{left:65.208000px;}
|
||
.x16{left:68.994000px;}
|
||
.x1a{left:71.983000px;}
|
||
.x39{left:73.701000px;}
|
||
.x19{left:74.787000px;}
|
||
.x47{left:76.693000px;}
|
||
.x2c{left:80.782000px;}
|
||
.x1e{left:82.881000px;}
|
||
.x41{left:88.122000px;}
|
||
.x32{left:89.406000px;}
|
||
.x43{left:90.866000px;}
|
||
.x1f{left:93.907000px;}
|
||
.x14{left:99.081000px;}
|
||
.x17{left:101.945000px;}
|
||
.x8{left:106.772000px;}
|
||
.x37{left:109.763000px;}
|
||
.x42{left:116.815000px;}
|
||
.x40{left:120.775000px;}
|
||
.x1b{left:122.774000px;}
|
||
.x11{left:124.486000px;}
|
||
.x20{left:125.776000px;}
|
||
.x31{left:127.973000px;}
|
||
.x18{left:138.153000px;}
|
||
.x1c{left:139.711000px;}
|
||
.x1d{left:156.647000px;}
|
||
.x2{left:158.505000px;}
|
||
.xa{left:170.858000px;}
|
||
.x34{left:173.715000px;}
|
||
.x3b{left:186.676000px;}
|
||
.x3c{left:189.665000px;}
|
||
.x35{left:194.513000px;}
|
||
.x2f{left:202.333000px;}
|
||
.x3f{left:203.787000px;}
|
||
.x3d{left:208.494000px;}
|
||
.x36{left:213.343000px;}
|
||
.x21{left:227.163000px;}
|
||
.x44{left:228.590000px;}
|
||
.x25{left:230.562000px;}
|
||
.x45{left:231.579000px;}
|
||
.xe{left:233.751000px;}
|
||
.x26{left:243.264000px;}
|
||
.x22{left:245.992000px;}
|
||
.x46{left:250.408000px;}
|
||
.x23{left:264.822000px;}
|
||
.x24{left:283.651000px;}
|
||
.x3{left:378.705000px;}
|
||
.x13{left:424.403000px;}
|
||
.x7{left:428.637000px;}
|
||
@media print{
|
||
.v0{vertical-align:0.000000pt;}
|
||
.ls0{letter-spacing:0.000000pt;}
|
||
.ws0{word-spacing:0.000000pt;}
|
||
._3d{margin-left:-12.030006pt;}
|
||
._5{margin-left:-7.383400pt;}
|
||
._7{margin-left:-5.126375pt;}
|
||
._3{margin-left:-2.534600pt;}
|
||
._b{width:1.453748pt;}
|
||
._0{width:4.098134pt;}
|
||
._37{width:5.688522pt;}
|
||
._2e{width:12.757717pt;}
|
||
._25{width:14.771215pt;}
|
||
._d{width:16.680726pt;}
|
||
._c{width:18.740429pt;}
|
||
._f{width:20.105503pt;}
|
||
._8{width:21.599159pt;}
|
||
._17{width:23.033401pt;}
|
||
._9{width:24.461821pt;}
|
||
._e{width:26.699356pt;}
|
||
._6{width:28.921939pt;}
|
||
._15{width:30.624503pt;}
|
||
._52{width:32.020374pt;}
|
||
._11{width:33.426739pt;}
|
||
._10{width:35.501222pt;}
|
||
._4e{width:39.470953pt;}
|
||
._4{width:41.655600pt;}
|
||
._a{width:43.224373pt;}
|
||
._14{width:45.028811pt;}
|
||
._1{width:48.384419pt;}
|
||
._20{width:51.188399pt;}
|
||
._2{width:54.549000pt;}
|
||
._4d{width:58.135607pt;}
|
||
._4f{width:60.003010pt;}
|
||
._23{width:63.043745pt;}
|
||
._49{width:64.416626pt;}
|
||
._1c{width:67.742880pt;}
|
||
._33{width:70.070234pt;}
|
||
._54{width:73.212754pt;}
|
||
._13{width:74.701737pt;}
|
||
._4c{width:80.183212pt;}
|
||
._50{width:83.685840pt;}
|
||
._39{width:85.947147pt;}
|
||
._5a{width:89.018144pt;}
|
||
._41{width:101.398106pt;}
|
||
._4a{width:114.628466pt;}
|
||
._28{width:116.943124pt;}
|
||
._43{width:126.148610pt;}
|
||
._3c{width:135.503033pt;}
|
||
._1a{width:142.297062pt;}
|
||
._27{width:144.838404pt;}
|
||
._36{width:151.308547pt;}
|
||
._2a{width:153.453915pt;}
|
||
._19{width:164.613342pt;}
|
||
._31{width:169.325321pt;}
|
||
._32{width:173.959180pt;}
|
||
._5d{width:175.741013pt;}
|
||
._26{width:180.020849pt;}
|
||
._35{width:189.381976pt;}
|
||
._30{width:197.918621pt;}
|
||
._2c{width:199.870801pt;}
|
||
._62{width:205.055590pt;}
|
||
._1b{width:209.245902pt;}
|
||
._48{width:214.380646pt;}
|
||
._3f{width:227.234224pt;}
|
||
._18{width:231.562182pt;}
|
||
._47{width:239.513967pt;}
|
||
._3b{width:249.406241pt;}
|
||
._2b{width:255.094911pt;}
|
||
._34{width:261.440307pt;}
|
||
._46{width:264.592486pt;}
|
||
._29{width:282.990191pt;}
|
||
._5c{width:326.372907pt;}
|
||
._61{width:330.605227pt;}
|
||
._44{width:343.736008pt;}
|
||
._5f{width:355.377493pt;}
|
||
._60{width:393.606827pt;}
|
||
._22{width:402.645133pt;}
|
||
._2f{width:412.713187pt;}
|
||
._1d{width:429.025536pt;}
|
||
._5e{width:477.007573pt;}
|
||
._3a{width:520.427251pt;}
|
||
._12{width:552.324693pt;}
|
||
._42{width:603.177645pt;}
|
||
._45{width:703.740443pt;}
|
||
._40{width:778.927619pt;}
|
||
._24{width:872.133760pt;}
|
||
._58{width:1055.057901pt;}
|
||
._57{width:1149.173241pt;}
|
||
._16{width:1229.648451pt;}
|
||
._1e{width:1277.723038pt;}
|
||
._38{width:1317.144803pt;}
|
||
._21{width:1325.165964pt;}
|
||
._59{width:1343.247326pt;}
|
||
._4b{width:1356.357859pt;}
|
||
._2d{width:1457.272122pt;}
|
||
._3e{width:1526.628319pt;}
|
||
._56{width:1646.087959pt;}
|
||
._1f{width:1649.260170pt;}
|
||
._5b{width:1688.297786pt;}
|
||
._53{width:1746.093911pt;}
|
||
._55{width:1894.405052pt;}
|
||
._51{width:1910.345318pt;}
|
||
.fs8{font-size:31.880533pt;}
|
||
.fs5{font-size:42.507200pt;}
|
||
.fs7{font-size:47.820800pt;}
|
||
.fs4{font-size:53.133867pt;}
|
||
.fs6{font-size:58.181867pt;}
|
||
.fs3{font-size:63.761067pt;}
|
||
.fs2{font-size:76.513067pt;}
|
||
.fs1{font-size:110.200000pt;}
|
||
.fs0{font-size:132.197867pt;}
|
||
.y167{bottom:-55.416000pt;}
|
||
.y281{bottom:-12.888000pt;}
|
||
.y0{bottom:-0.666667pt;}
|
||
.y2a3{bottom:4.937333pt;}
|
||
.y21d{bottom:5.664000pt;}
|
||
.y176{bottom:6.033333pt;}
|
||
.y152{bottom:6.816000pt;}
|
||
.y19d{bottom:6.906667pt;}
|
||
.y162{bottom:7.174667pt;}
|
||
.y1dd{bottom:7.264000pt;}
|
||
.y28a{bottom:7.397333pt;}
|
||
.y2de{bottom:7.492000pt;}
|
||
.y1ba{bottom:7.534667pt;}
|
||
.y1d0{bottom:7.701333pt;}
|
||
.y200{bottom:8.248000pt;}
|
||
.y2ff{bottom:8.392000pt;}
|
||
.y28c{bottom:8.516000pt;}
|
||
.y276{bottom:8.518667pt;}
|
||
.y1a7{bottom:8.522667pt;}
|
||
.y141{bottom:8.702667pt;}
|
||
.y1f2{bottom:8.704000pt;}
|
||
.y335{bottom:8.865333pt;}
|
||
.ydc{bottom:9.176000pt;}
|
||
.y6a{bottom:9.313333pt;}
|
||
.y7a{bottom:9.417333pt;}
|
||
.y115{bottom:9.437333pt;}
|
||
.y46{bottom:9.902667pt;}
|
||
.yf1{bottom:10.046667pt;}
|
||
.y26f{bottom:10.077333pt;}
|
||
.y4e{bottom:10.181333pt;}
|
||
.y2af{bottom:10.985333pt;}
|
||
.y192{bottom:11.148000pt;}
|
||
.y2b5{bottom:11.406667pt;}
|
||
.y187{bottom:12.022667pt;}
|
||
.y9a{bottom:12.366667pt;}
|
||
.y264{bottom:12.654667pt;}
|
||
.y228{bottom:12.810667pt;}
|
||
.y291{bottom:13.398667pt;}
|
||
.y137{bottom:13.577333pt;}
|
||
.y326{bottom:13.616000pt;}
|
||
.y8c{bottom:13.737333pt;}
|
||
.y24e{bottom:14.245333pt;}
|
||
.y1c8{bottom:16.925333pt;}
|
||
.y149{bottom:17.012000pt;}
|
||
.y12{bottom:17.357333pt;}
|
||
.y314{bottom:19.840000pt;}
|
||
.ya4{bottom:20.246667pt;}
|
||
.y32f{bottom:21.396000pt;}
|
||
.y289{bottom:21.544000pt;}
|
||
.y259{bottom:21.730667pt;}
|
||
.yc1{bottom:22.012000pt;}
|
||
.y21c{bottom:22.468000pt;}
|
||
.y175{bottom:22.836000pt;}
|
||
.ydb{bottom:23.688000pt;}
|
||
.y19c{bottom:23.710667pt;}
|
||
.y69{bottom:23.825333pt;}
|
||
.y79{bottom:23.929333pt;}
|
||
.y161{bottom:23.978667pt;}
|
||
.y2a2{bottom:24.397333pt;}
|
||
.y280{bottom:24.742667pt;}
|
||
.y1a6{bottom:25.326667pt;}
|
||
.y1f1{bottom:25.508000pt;}
|
||
.y45{bottom:26.705333pt;}
|
||
.y2fe{bottom:27.853333pt;}
|
||
.y136{bottom:28.089333pt;}
|
||
.y2b4{bottom:28.210667pt;}
|
||
.y8b{bottom:28.249333pt;}
|
||
.y240{bottom:28.270667pt;}
|
||
.y186{bottom:28.826667pt;}
|
||
.yfb{bottom:30.056000pt;}
|
||
.y1b2{bottom:30.753333pt;}
|
||
.y26e{bottom:30.852000pt;}
|
||
.y227{bottom:33.585333pt;}
|
||
.y1c7{bottom:33.729333pt;}
|
||
.y24{bottom:33.774667pt;}
|
||
.y313{bottom:34.352000pt;}
|
||
.y2d6{bottom:34.424000pt;}
|
||
.y24d{bottom:35.021333pt;}
|
||
.y288{bottom:35.692000pt;}
|
||
.y2fa{bottom:35.828000pt;}
|
||
.y258{bottom:36.242667pt;}
|
||
.y239{bottom:36.929333pt;}
|
||
.y166{bottom:38.005333pt;}
|
||
.yda{bottom:38.200000pt;}
|
||
.y68{bottom:38.337333pt;}
|
||
.y78{bottom:38.441333pt;}
|
||
.y11e{bottom:38.657333pt;}
|
||
.yc0{bottom:38.814667pt;}
|
||
.y2ca{bottom:38.902667pt;}
|
||
.y1e6{bottom:39.276000pt;}
|
||
.y15a{bottom:39.706667pt;}
|
||
.ya3{bottom:41.021333pt;}
|
||
.y8a{bottom:42.761333pt;}
|
||
.y2c0{bottom:43.040000pt;}
|
||
.y44{bottom:43.509333pt;}
|
||
.yac{bottom:43.849333pt;}
|
||
.y114{bottom:44.240000pt;}
|
||
.y11{bottom:45.048000pt;}
|
||
.y263{bottom:45.392000pt;}
|
||
.y27f{bottom:45.517333pt;}
|
||
.y185{bottom:45.629333pt;}
|
||
.y2ed{bottom:45.948000pt;}
|
||
.y1dc{bottom:46.626667pt;}
|
||
.y99{bottom:47.005333pt;}
|
||
.y1ff{bottom:47.789333pt;}
|
||
.y180{bottom:48.154667pt;}
|
||
.y1d9{bottom:48.221333pt;}
|
||
.y312{bottom:48.865333pt;}
|
||
.y1c6{bottom:50.532000pt;}
|
||
.y257{bottom:50.756000pt;}
|
||
.yfa{bottom:50.830667pt;}
|
||
.y2d5{bottom:51.228000pt;}
|
||
.y1b1{bottom:51.529333pt;}
|
||
.y26d{bottom:51.628000pt;}
|
||
.yf0{bottom:51.934667pt;}
|
||
.y127{bottom:52.005333pt;}
|
||
.y2c{bottom:52.596000pt;}
|
||
.yd9{bottom:52.712000pt;}
|
||
.y67{bottom:52.849333pt;}
|
||
.y77{bottom:52.953333pt;}
|
||
.y140{bottom:53.468000pt;}
|
||
.yd3{bottom:53.513333pt;}
|
||
.y151{bottom:53.574667pt;}
|
||
.y238{bottom:53.733333pt;}
|
||
.y226{bottom:54.361333pt;}
|
||
.y191{bottom:54.949333pt;}
|
||
.ybf{bottom:55.618667pt;}
|
||
.y37{bottom:56.054667pt;}
|
||
.y24c{bottom:56.380000pt;}
|
||
.y2f9{bottom:56.602667pt;}
|
||
.y174{bottom:56.974667pt;}
|
||
.y135{bottom:57.113333pt;}
|
||
.y6{bottom:57.266667pt;}
|
||
.y89{bottom:57.273333pt;}
|
||
.y325{bottom:57.381333pt;}
|
||
.y1e5{bottom:57.606667pt;}
|
||
.y334{bottom:57.930667pt;}
|
||
.y32e{bottom:58.112000pt;}
|
||
.y165{bottom:58.781333pt;}
|
||
.yd4{bottom:58.792000pt;}
|
||
.y23{bottom:59.378667pt;}
|
||
.y11d{bottom:59.432000pt;}
|
||
.y2c9{bottom:59.678667pt;}
|
||
.y1cf{bottom:60.349333pt;}
|
||
.y159{bottom:60.481333pt;}
|
||
.y1fe{bottom:62.301333pt;}
|
||
.yc9{bottom:63.138667pt;}
|
||
.y1b9{bottom:63.341333pt;}
|
||
.y311{bottom:63.377333pt;}
|
||
.y262{bottom:63.722667pt;}
|
||
.y4d{bottom:63.752000pt;}
|
||
.y98{bottom:63.809333pt;}
|
||
.y2bf{bottom:63.816000pt;}
|
||
.y17f{bottom:64.958667pt;}
|
||
.y113{bottom:65.016000pt;}
|
||
.y256{bottom:65.268000pt;}
|
||
.y27e{bottom:66.293333pt;}
|
||
.y2ec{bottom:66.722667pt;}
|
||
.yd8{bottom:67.224000pt;}
|
||
.y1c5{bottom:67.336000pt;}
|
||
.y66{bottom:67.362667pt;}
|
||
.y1db{bottom:67.402667pt;}
|
||
.y76{bottom:67.465333pt;}
|
||
.y2d4{bottom:68.032000pt;}
|
||
.y10{bottom:68.260000pt;}
|
||
.y33c{bottom:68.676000pt;}
|
||
.y1d8{bottom:68.996000pt;}
|
||
.y56{bottom:69.290667pt;}
|
||
.y299{bottom:69.998667pt;}
|
||
.y21b{bottom:70.205333pt;}
|
||
.y232{bottom:70.421333pt;}
|
||
.y237{bottom:70.537333pt;}
|
||
.y2a1{bottom:71.188000pt;}
|
||
.y134{bottom:71.626667pt;}
|
||
.y88{bottom:71.785333pt;}
|
||
.y1b0{bottom:72.304000pt;}
|
||
.ybe{bottom:72.422667pt;}
|
||
.y24b{bottom:73.182667pt;}
|
||
.y173{bottom:73.778667pt;}
|
||
.y324{bottom:74.185333pt;}
|
||
.y13f{bottom:74.244000pt;}
|
||
.y150{bottom:74.349333pt;}
|
||
.ya2{bottom:75.710667pt;}
|
||
.y1e4{bottom:75.937333pt;}
|
||
.y1a5{bottom:76.069333pt;}
|
||
.y1a{bottom:76.105333pt;}
|
||
.y1fd{bottom:76.813333pt;}
|
||
.y36{bottom:76.829333pt;}
|
||
.y43{bottom:77.116000pt;}
|
||
.yef{bottom:77.538667pt;}
|
||
.y207{bottom:78.462667pt;}
|
||
.y32d{bottom:78.886667pt;}
|
||
.y5{bottom:79.500000pt;}
|
||
.y275{bottom:79.613333pt;}
|
||
.y26c{bottom:79.676000pt;}
|
||
.y255{bottom:79.780000pt;}
|
||
.y2c8{bottom:80.453333pt;}
|
||
.y97{bottom:80.612000pt;}
|
||
.y287{bottom:80.838667pt;}
|
||
.y2b3{bottom:80.872000pt;}
|
||
.y1ce{bottom:81.124000pt;}
|
||
.y126{bottom:81.278667pt;}
|
||
.yd7{bottom:81.736000pt;}
|
||
.y17e{bottom:81.761333pt;}
|
||
.y23f{bottom:81.841333pt;}
|
||
.y65{bottom:81.874667pt;}
|
||
.y261{bottom:82.054667pt;}
|
||
.yb4{bottom:82.062667pt;}
|
||
.yf9{bottom:82.233333pt;}
|
||
.y190{bottom:83.516000pt;}
|
||
.y304{bottom:83.613333pt;}
|
||
.yc8{bottom:83.913333pt;}
|
||
.y1c4{bottom:84.140000pt;}
|
||
.y4c{bottom:84.528000pt;}
|
||
.y2be{bottom:84.590667pt;}
|
||
.yab{bottom:84.733333pt;}
|
||
.y19b{bottom:84.914667pt;}
|
||
.y22{bottom:84.982667pt;}
|
||
.y160{bottom:85.348000pt;}
|
||
.y133{bottom:86.138667pt;}
|
||
.y87{bottom:86.297333pt;}
|
||
.y27d{bottom:87.068000pt;}
|
||
.y231{bottom:87.224000pt;}
|
||
.y2a9{bottom:87.984000pt;}
|
||
.y2a0{bottom:87.992000pt;}
|
||
.y11c{bottom:88.177333pt;}
|
||
.ybd{bottom:89.225333pt;}
|
||
.y33b{bottom:89.450667pt;}
|
||
.y24a{bottom:89.986667pt;}
|
||
.y172{bottom:90.582667pt;}
|
||
.y298{bottom:90.774667pt;}
|
||
.y21a{bottom:90.980000pt;}
|
||
.y1fc{bottom:91.325333pt;}
|
||
.yf{bottom:91.473333pt;}
|
||
.y333{bottom:91.989333pt;}
|
||
.y225{bottom:92.294667pt;}
|
||
.y2d3{bottom:92.349333pt;}
|
||
.y310{bottom:92.401333pt;}
|
||
.y1af{bottom:93.080000pt;}
|
||
.y42{bottom:93.920000pt;}
|
||
.y55{bottom:94.050667pt;}
|
||
.y1ef{bottom:94.184000pt;}
|
||
.y1e3{bottom:94.269333pt;}
|
||
.y254{bottom:94.292000pt;}
|
||
.y1a4{bottom:94.401333pt;}
|
||
.y2b{bottom:94.477333pt;}
|
||
.y1b8{bottom:94.956000pt;}
|
||
.y14f{bottom:95.125333pt;}
|
||
.y31c{bottom:95.668000pt;}
|
||
.yee{bottom:95.869333pt;}
|
||
.y236{bottom:96.081333pt;}
|
||
.yd6{bottom:96.248000pt;}
|
||
.y64{bottom:96.386667pt;}
|
||
.y112{bottom:96.417333pt;}
|
||
.ya1{bottom:96.486667pt;}
|
||
.y75{bottom:96.489333pt;}
|
||
.y20d{bottom:96.821333pt;}
|
||
.y1d7{bottom:97.044000pt;}
|
||
.y2fd{bottom:97.302667pt;}
|
||
.y96{bottom:97.416000pt;}
|
||
.y206{bottom:99.238667pt;}
|
||
.y19{bottom:99.318667pt;}
|
||
.y18f{bottom:100.318667pt;}
|
||
.y274{bottom:100.388000pt;}
|
||
.ye2{bottom:100.438667pt;}
|
||
.y26b{bottom:100.450667pt;}
|
||
.y132{bottom:100.650667pt;}
|
||
.y86{bottom:100.809333pt;}
|
||
.y2e6{bottom:101.390667pt;}
|
||
.y19a{bottom:101.718667pt;}
|
||
.y1cd{bottom:101.900000pt;}
|
||
.y2ae{bottom:102.154667pt;}
|
||
.y23e{bottom:102.617333pt;}
|
||
.yf8{bottom:103.009333pt;}
|
||
.y184{bottom:103.945333pt;}
|
||
.y230{bottom:104.028000pt;}
|
||
.y303{bottom:104.389333pt;}
|
||
.y29f{bottom:104.794667pt;}
|
||
.y158{bottom:105.166667pt;}
|
||
.y2c7{bottom:105.181333pt;}
|
||
.y1fb{bottom:105.837333pt;}
|
||
.ybc{bottom:106.029333pt;}
|
||
.y15f{bottom:106.124000pt;}
|
||
.y1c3{bottom:106.589333pt;}
|
||
.y2f8{bottom:106.601333pt;}
|
||
.y224{bottom:106.808000pt;}
|
||
.y30f{bottom:106.913333pt;}
|
||
.y249{bottom:107.122667pt;}
|
||
.y171{bottom:107.385333pt;}
|
||
.y13e{bottom:107.425333pt;}
|
||
.y323{bottom:107.792000pt;}
|
||
.y27c{bottom:107.844000pt;}
|
||
.y18c{bottom:108.721333pt;}
|
||
.y2a8{bottom:108.760000pt;}
|
||
.y253{bottom:108.804000pt;}
|
||
.y11b{bottom:108.953333pt;}
|
||
.y2b2{bottom:109.584000pt;}
|
||
.y148{bottom:109.769333pt;}
|
||
.y33a{bottom:110.226667pt;}
|
||
.yaa{bottom:110.396000pt;}
|
||
.y125{bottom:110.552000pt;}
|
||
.y21{bottom:110.586667pt;}
|
||
.y41{bottom:110.724000pt;}
|
||
.yd5{bottom:110.760000pt;}
|
||
.y63{bottom:110.898667pt;}
|
||
.y1ee{bottom:110.986667pt;}
|
||
.y74{bottom:111.002667pt;}
|
||
.y219{bottom:111.756000pt;}
|
||
.y1f0{bottom:112.025333pt;}
|
||
.y286{bottom:112.241333pt;}
|
||
.y1b7{bottom:113.288000pt;}
|
||
.y2f3{bottom:113.789333pt;}
|
||
.yed{bottom:114.200000pt;}
|
||
.y95{bottom:114.220000pt;}
|
||
.ye{bottom:114.686667pt;}
|
||
.y260{bottom:114.964000pt;}
|
||
.yc7{bottom:115.316000pt;}
|
||
.y85{bottom:115.322667pt;}
|
||
.y17d{bottom:115.369333pt;}
|
||
.y32c{bottom:115.602667pt;}
|
||
.y35{bottom:116.201333pt;}
|
||
.y31b{bottom:116.442667pt;}
|
||
.y235{bottom:116.857333pt;}
|
||
.y18e{bottom:117.122667pt;}
|
||
.y2eb{bottom:117.252000pt;}
|
||
.ya0{bottom:117.261333pt;}
|
||
.y20c{bottom:117.596000pt;}
|
||
.y1d6{bottom:117.820000pt;}
|
||
.y2e5{bottom:118.194667pt;}
|
||
.y199{bottom:118.522667pt;}
|
||
.y54{bottom:118.810667pt;}
|
||
.y1a3{bottom:119.373333pt;}
|
||
.y297{bottom:119.520000pt;}
|
||
.y1fa{bottom:120.349333pt;}
|
||
.y22f{bottom:120.832000pt;}
|
||
.y273{bottom:121.164000pt;}
|
||
.y26a{bottom:121.226667pt;}
|
||
.y223{bottom:121.320000pt;}
|
||
.y30e{bottom:121.425333pt;}
|
||
.y1ae{bottom:121.792000pt;}
|
||
.y18{bottom:122.532000pt;}
|
||
.y28b{bottom:123.392000pt;}
|
||
.y157{bottom:123.498667pt;}
|
||
.y170{bottom:124.189333pt;}
|
||
.y13d{bottom:124.229333pt;}
|
||
.y322{bottom:124.596000pt;}
|
||
.y183{bottom:124.720000pt;}
|
||
.y252{bottom:125.278667pt;}
|
||
.y2d2{bottom:125.352000pt;}
|
||
.y62{bottom:125.410667pt;}
|
||
.y212{bottom:125.942667pt;}
|
||
.y332{bottom:126.049333pt;}
|
||
.y164{bottom:126.898667pt;}
|
||
.y2f7{bottom:127.377333pt;}
|
||
.y40{bottom:127.526667pt;}
|
||
.y1ed{bottom:127.790667pt;}
|
||
.y2bd{bottom:129.277333pt;}
|
||
.yb3{bottom:129.404000pt;}
|
||
.ye0{bottom:129.524000pt;}
|
||
.y2a7{bottom:129.534667pt;}
|
||
.y131{bottom:129.674667pt;}
|
||
.y11a{bottom:129.728000pt;}
|
||
.y84{bottom:129.834667pt;}
|
||
.y2b1{bottom:130.360000pt;}
|
||
.y147{bottom:130.545333pt;}
|
||
.y2f2{bottom:130.592000pt;}
|
||
.y1cc{bottom:130.612000pt;}
|
||
.y1e2{bottom:130.932000pt;}
|
||
.y94{bottom:131.022667pt;}
|
||
.y248{bottom:131.038667pt;}
|
||
.y111{bottom:131.222667pt;}
|
||
.y29e{bottom:131.229333pt;}
|
||
.y106{bottom:131.273333pt;}
|
||
.yf7{bottom:131.721333pt;}
|
||
.y17c{bottom:132.172000pt;}
|
||
.ybb{bottom:132.464000pt;}
|
||
.y218{bottom:132.530667pt;}
|
||
.y290{bottom:132.724000pt;}
|
||
.y285{bottom:133.016000pt;}
|
||
.y124{bottom:133.612000pt;}
|
||
.y1c2{bottom:133.686667pt;}
|
||
.y18d{bottom:133.926667pt;}
|
||
.y2ea{bottom:134.054667pt;}
|
||
.y14e{bottom:134.497333pt;}
|
||
.ye1{bottom:134.802667pt;}
|
||
.y1f9{bottom:134.861333pt;}
|
||
.y2e4{bottom:134.997333pt;}
|
||
.y2a{bottom:135.222667pt;}
|
||
.y222{bottom:135.290667pt;}
|
||
.y4b{bottom:135.377333pt;}
|
||
.y198{bottom:135.658667pt;}
|
||
.y25f{bottom:135.738667pt;}
|
||
.y30d{bottom:135.937333pt;}
|
||
.y205{bottom:135.953333pt;}
|
||
.ya9{bottom:136.060000pt;}
|
||
.yc6{bottom:136.090667pt;}
|
||
.y20{bottom:136.190667pt;}
|
||
.y32b{bottom:136.377333pt;}
|
||
.y27b{bottom:136.556000pt;}
|
||
.y34{bottom:136.977333pt;}
|
||
.y234{bottom:137.632000pt;}
|
||
.y1a2{bottom:137.705333pt;}
|
||
.yd{bottom:137.900000pt;}
|
||
.y2ad{bottom:138.070667pt;}
|
||
.y2c6{bottom:138.362667pt;}
|
||
.y316{bottom:138.502667pt;}
|
||
.y61{bottom:139.922667pt;}
|
||
.y73{bottom:140.026667pt;}
|
||
.y16f{bottom:140.993333pt;}
|
||
.y13c{bottom:141.033333pt;}
|
||
.y321{bottom:141.398667pt;}
|
||
.y2fc{bottom:141.989333pt;}
|
||
.y269{bottom:142.001333pt;}
|
||
.y2d1{bottom:142.154667pt;}
|
||
.y2f{bottom:143.500000pt;}
|
||
.y53{bottom:143.572000pt;}
|
||
.y130{bottom:144.186667pt;}
|
||
.y3f{bottom:144.330667pt;}
|
||
.y83{bottom:144.346667pt;}
|
||
.y23d{bottom:144.645333pt;}
|
||
.yd2{bottom:144.792000pt;}
|
||
.y1b6{bottom:144.902667pt;}
|
||
.y110{bottom:145.734667pt;}
|
||
.y17{bottom:145.744000pt;}
|
||
.y105{bottom:145.785333pt;}
|
||
.y9f{bottom:145.974667pt;}
|
||
.y211{bottom:146.717333pt;}
|
||
.y2f1{bottom:147.396000pt;}
|
||
.yec{bottom:147.696000pt;}
|
||
.y17b{bottom:148.976000pt;}
|
||
.y1e1{bottom:149.262667pt;}
|
||
.y1f8{bottom:149.374667pt;}
|
||
.y156{bottom:149.800000pt;}
|
||
.y2bc{bottom:150.052000pt;}
|
||
.yb2{bottom:150.180000pt;}
|
||
.y30c{bottom:150.450667pt;}
|
||
.y1c1{bottom:150.490667pt;}
|
||
.y1ad{bottom:150.504000pt;}
|
||
.y251{bottom:150.604000pt;}
|
||
.y2e9{bottom:150.858667pt;}
|
||
.y2b0{bottom:151.134667pt;}
|
||
.y146{bottom:151.320000pt;}
|
||
.y2e3{bottom:151.801333pt;}
|
||
.y4a{bottom:152.180000pt;}
|
||
.y296{bottom:152.812000pt;}
|
||
.y1ec{bottom:153.274667pt;}
|
||
.y15e{bottom:153.465333pt;}
|
||
.y28f{bottom:153.498667pt;}
|
||
.yba{bottom:153.930667pt;}
|
||
.y20b{bottom:154.312000pt;}
|
||
.y60{bottom:154.434667pt;}
|
||
.y72{bottom:154.538667pt;}
|
||
.y2c5{bottom:155.166667pt;}
|
||
.y14d{bottom:155.272000pt;}
|
||
.y31a{bottom:155.814667pt;}
|
||
.y4{bottom:156.032000pt;}
|
||
.y25e{bottom:156.514667pt;}
|
||
.y247{bottom:156.716000pt;}
|
||
.y204{bottom:156.729333pt;}
|
||
.y32a{bottom:157.153333pt;}
|
||
.y20e{bottom:157.248000pt;}
|
||
.y243{bottom:157.786667pt;}
|
||
.y13b{bottom:157.836000pt;}
|
||
.y320{bottom:158.202667pt;}
|
||
.y221{bottom:158.408000pt;}
|
||
.y119{bottom:158.441333pt;}
|
||
.ydf{bottom:158.609333pt;}
|
||
.y1a1{bottom:158.660000pt;}
|
||
.y12f{bottom:158.698667pt;}
|
||
.y82{bottom:158.858667pt;}
|
||
.y2d0{bottom:158.958667pt;}
|
||
.yd1{bottom:159.304000pt;}
|
||
.y331{bottom:160.108000pt;}
|
||
.y339{bottom:160.225333pt;}
|
||
.y10f{bottom:160.246667pt;}
|
||
.y104{bottom:160.298667pt;}
|
||
.y22e{bottom:160.382667pt;}
|
||
.y29{bottom:160.826667pt;}
|
||
.yc{bottom:161.112000pt;}
|
||
.y3e{bottom:161.134667pt;}
|
||
.yae{bottom:161.417333pt;}
|
||
.y1d5{bottom:161.460000pt;}
|
||
.ya8{bottom:161.724000pt;}
|
||
.y1f{bottom:161.794667pt;}
|
||
.y302{bottom:162.358667pt;}
|
||
.y18b{bottom:162.492000pt;}
|
||
.y1b5{bottom:163.233333pt;}
|
||
.y2a6{bottom:163.593333pt;}
|
||
.y1f7{bottom:163.886667pt;}
|
||
.y2f0{bottom:164.200000pt;}
|
||
.y284{bottom:164.418667pt;}
|
||
.yeb{bottom:164.498667pt;}
|
||
.y93{bottom:164.630667pt;}
|
||
.y30b{bottom:164.962667pt;}
|
||
.yf6{bottom:165.082667pt;}
|
||
.y23c{bottom:165.421333pt;}
|
||
.y217{bottom:166.590667pt;}
|
||
.y9e{bottom:166.749333pt;}
|
||
.y1c0{bottom:167.294667pt;}
|
||
.yc5{bottom:167.493333pt;}
|
||
.y1e0{bottom:167.593333pt;}
|
||
.y2e8{bottom:167.662667pt;}
|
||
.y155{bottom:168.130667pt;}
|
||
.y52{bottom:168.332000pt;}
|
||
.y2e2{bottom:168.605333pt;}
|
||
.y250{bottom:168.934667pt;}
|
||
.y5f{bottom:168.946667pt;}
|
||
.y16{bottom:168.957333pt;}
|
||
.y71{bottom:169.050667pt;}
|
||
.y272{bottom:169.137333pt;}
|
||
.y29d{bottom:169.253333pt;}
|
||
.y123{bottom:170.328000pt;}
|
||
.yb1{bottom:170.954667pt;}
|
||
.y2e{bottom:170.997333pt;}
|
||
.y1ac{bottom:171.278667pt;}
|
||
.y1cb{bottom:171.942667pt;}
|
||
.y2c4{bottom:171.969333pt;}
|
||
.y145{bottom:172.096000pt;}
|
||
.y2ac{bottom:172.129333pt;}
|
||
.y81{bottom:173.370667pt;}
|
||
.y246{bottom:173.520000pt;}
|
||
.yd0{bottom:173.816000pt;}
|
||
.y15d{bottom:174.241333pt;}
|
||
.y242{bottom:174.590667pt;}
|
||
.y16e{bottom:174.600000pt;}
|
||
.y13a{bottom:174.640000pt;}
|
||
.y10e{bottom:174.758667pt;}
|
||
.y103{bottom:174.810667pt;}
|
||
.y20a{bottom:175.086667pt;}
|
||
.y2cf{bottom:175.762667pt;}
|
||
.y319{bottom:176.590667pt;}
|
||
.y22d{bottom:177.186667pt;}
|
||
.y2f6{bottom:177.376000pt;}
|
||
.y33{bottom:177.925333pt;}
|
||
.y3d{bottom:177.937333pt;}
|
||
.y1f6{bottom:178.398667pt;}
|
||
.y27a{bottom:178.552000pt;}
|
||
.y49{bottom:178.614667pt;}
|
||
.y197{bottom:178.830667pt;}
|
||
.y220{bottom:179.182667pt;}
|
||
.y338{bottom:181.001333pt;}
|
||
.y25d{bottom:181.241333pt;}
|
||
.yea{bottom:181.302667pt;}
|
||
.y92{bottom:181.433333pt;}
|
||
.y1d4{bottom:182.236000pt;}
|
||
.y17a{bottom:182.584000pt;}
|
||
.y301{bottom:183.133333pt;}
|
||
.y5e{bottom:183.460000pt;}
|
||
.y268{bottom:183.486667pt;}
|
||
.y70{bottom:183.562667pt;}
|
||
.y2d{bottom:183.636000pt;}
|
||
.y2bb{bottom:183.898667pt;}
|
||
.y14a{bottom:184.330667pt;}
|
||
.y2a5{bottom:184.369333pt;}
|
||
.y31f{bottom:184.637333pt;}
|
||
.y295{bottom:185.181333pt;}
|
||
.y283{bottom:185.193333pt;}
|
||
.y3{bottom:185.389333pt;}
|
||
.yf5{bottom:185.857333pt;}
|
||
.y1df{bottom:185.925333pt;}
|
||
.y2dd{bottom:186.094667pt;}
|
||
.y28{bottom:186.430667pt;}
|
||
.y154{bottom:186.462667pt;}
|
||
.y2fb{bottom:186.674667pt;}
|
||
.ya7{bottom:187.386667pt;}
|
||
.y1e{bottom:187.398667pt;}
|
||
.y182{bottom:187.524000pt;}
|
||
.y12e{bottom:187.724000pt;}
|
||
.y80{bottom:187.882667pt;}
|
||
.ycf{bottom:188.329333pt;}
|
||
.y2c3{bottom:188.773333pt;}
|
||
.y10d{bottom:189.270667pt;}
|
||
.y102{bottom:189.322667pt;}
|
||
.y1bf{bottom:189.742667pt;}
|
||
.y271{bottom:189.912000pt;}
|
||
.y2e7{bottom:190.110667pt;}
|
||
.y2e1{bottom:190.165333pt;}
|
||
.y245{bottom:190.324000pt;}
|
||
.y18a{bottom:191.058667pt;}
|
||
.yca{bottom:191.102667pt;}
|
||
.y24f{bottom:191.177333pt;}
|
||
.y16d{bottom:191.404000pt;}
|
||
.y139{bottom:191.444000pt;}
|
||
.yb9{bottom:191.988000pt;}
|
||
.y1ab{bottom:192.054667pt;}
|
||
.y15{bottom:192.170667pt;}
|
||
.y1ca{bottom:192.718667pt;}
|
||
.y1f5{bottom:192.910667pt;}
|
||
.y118{bottom:193.130667pt;}
|
||
.y1a0{bottom:193.349333pt;}
|
||
.y203{bottom:193.445333pt;}
|
||
.y51{bottom:193.722667pt;}
|
||
.y30a{bottom:193.986667pt;}
|
||
.y22c{bottom:193.990667pt;}
|
||
.y330{bottom:194.166667pt;}
|
||
.y14c{bottom:194.645333pt;}
|
||
.y3c{bottom:194.741333pt;}
|
||
.y163{bottom:195.016000pt;}
|
||
.yde{bottom:195.209333pt;}
|
||
.y329{bottom:195.445333pt;}
|
||
.y210{bottom:195.541333pt;}
|
||
.y196{bottom:195.634667pt;}
|
||
.y1ea{bottom:197.216000pt;}
|
||
.y1b4{bottom:197.786667pt;}
|
||
.y5d{bottom:197.972000pt;}
|
||
.y29c{bottom:197.998667pt;}
|
||
.y6f{bottom:198.074667pt;}
|
||
.yb{bottom:198.101333pt;}
|
||
.ye9{bottom:198.106667pt;}
|
||
.y2f5{bottom:198.152000pt;}
|
||
.y91{bottom:198.237333pt;}
|
||
.y32{bottom:198.701333pt;}
|
||
.yc4{bottom:198.896000pt;}
|
||
.y279{bottom:199.326667pt;}
|
||
.y179{bottom:199.386667pt;}
|
||
.y122{bottom:199.601333pt;}
|
||
.y21f{bottom:199.958667pt;}
|
||
.y1da{bottom:199.990667pt;}
|
||
.y267{bottom:200.289333pt;}
|
||
.y2dc{bottom:200.606667pt;}
|
||
.y216{bottom:200.649333pt;}
|
||
.y2ba{bottom:200.701333pt;}
|
||
.y9d{bottom:200.808000pt;}
|
||
.y2ab{bottom:200.841333pt;}
|
||
.y48{bottom:201.650667pt;}
|
||
.y12d{bottom:202.236000pt;}
|
||
.y28e{bottom:202.322667pt;}
|
||
.y7f{bottom:202.394667pt;}
|
||
.yce{bottom:202.841333pt;}
|
||
.y2ce{bottom:203.358667pt;}
|
||
.y10c{bottom:203.782667pt;}
|
||
.y101{bottom:203.834667pt;}
|
||
.y31e{bottom:203.861333pt;}
|
||
.y241{bottom:205.374667pt;}
|
||
.y244{bottom:205.450667pt;}
|
||
.y2c2{bottom:205.577333pt;}
|
||
.y294{bottom:205.957333pt;}
|
||
.y282{bottom:205.969333pt;}
|
||
.yf4{bottom:206.633333pt;}
|
||
.y209{bottom:207.120000pt;}
|
||
.yad{bottom:207.245333pt;}
|
||
.y1f4{bottom:207.422667pt;}
|
||
.y23b{bottom:207.449333pt;}
|
||
.y2ef{bottom:207.841333pt;}
|
||
.y318{bottom:207.993333pt;}
|
||
.y144{bottom:208.114667pt;}
|
||
.y16c{bottom:208.206667pt;}
|
||
.y138{bottom:208.246667pt;}
|
||
.y25c{bottom:209.953333pt;}
|
||
.y153{bottom:210.106667pt;}
|
||
.y22b{bottom:210.793333pt;}
|
||
.y1d3{bottom:211.156000pt;}
|
||
.y3b{bottom:211.545333pt;}
|
||
.y27{bottom:212.034667pt;}
|
||
.y195{bottom:212.437333pt;}
|
||
.y5c{bottom:212.484000pt;}
|
||
.yb7{bottom:212.762667pt;}
|
||
.yb8{bottom:212.764000pt;}
|
||
.y1d{bottom:213.002667pt;}
|
||
.y233{bottom:213.241333pt;}
|
||
.y117{bottom:213.905333pt;}
|
||
.y1e9{bottom:214.018667pt;}
|
||
.y19f{bottom:214.125333pt;}
|
||
.y202{bottom:214.220000pt;}
|
||
.ye8{bottom:214.909333pt;}
|
||
.y90{bottom:215.041333pt;}
|
||
.y1eb{bottom:215.057333pt;}
|
||
.y2db{bottom:215.118667pt;}
|
||
.y14{bottom:215.382667pt;}
|
||
.y178{bottom:216.190667pt;}
|
||
.y328{bottom:216.220000pt;}
|
||
.y20f{bottom:216.316000pt;}
|
||
.y2a4{bottom:216.402667pt;}
|
||
.y12c{bottom:216.748000pt;}
|
||
.y1be{bottom:216.841333pt;}
|
||
.y7e{bottom:216.906667pt;}
|
||
.ycd{bottom:217.353333pt;}
|
||
.y2b9{bottom:217.505333pt;}
|
||
.y2e0{bottom:217.585333pt;}
|
||
.y10b{bottom:218.294667pt;}
|
||
.yb0{bottom:218.297333pt;}
|
||
.y100{bottom:218.346667pt;}
|
||
.y189{bottom:219.624000pt;}
|
||
.y278{bottom:220.102667pt;}
|
||
.y2cd{bottom:220.162667pt;}
|
||
.ya6{bottom:220.565333pt;}
|
||
.y21e{bottom:220.733333pt;}
|
||
.y1aa{bottom:220.766667pt;}
|
||
.ya{bottom:221.314667pt;}
|
||
.y15c{bottom:221.584000pt;}
|
||
.y2c1{bottom:222.380000pt;}
|
||
.y1de{bottom:222.586667pt;}
|
||
.y309{bottom:223.010667pt;}
|
||
.y28d{bottom:223.097333pt;}
|
||
.y16b{bottom:225.010667pt;}
|
||
.y215{bottom:225.621333pt;}
|
||
.y293{bottom:226.732000pt;}
|
||
.y29b{bottom:226.744000pt;}
|
||
.y5b{bottom:226.996000pt;}
|
||
.y6e{bottom:227.100000pt;}
|
||
.yf3{bottom:227.408000pt;}
|
||
.y208{bottom:227.896000pt;}
|
||
.y23a{bottom:228.225333pt;}
|
||
.y3a{bottom:228.348000pt;}
|
||
.y2ee{bottom:228.616000pt;}
|
||
.y317{bottom:228.768000pt;}
|
||
.y121{bottom:228.876000pt;}
|
||
.y143{bottom:228.889333pt;}
|
||
.y1f3{bottom:229.852000pt;}
|
||
.y315{bottom:230.158667pt;}
|
||
.yc3{bottom:230.297333pt;}
|
||
.y1b3{bottom:230.696000pt;}
|
||
.y25b{bottom:230.729333pt;}
|
||
.y1e8{bottom:230.822667pt;}
|
||
.y337{bottom:231.000000pt;}
|
||
.ye5{bottom:231.214667pt;}
|
||
.y12b{bottom:231.260000pt;}
|
||
.y2da{bottom:231.593333pt;}
|
||
.ye7{bottom:231.713333pt;}
|
||
.y8f{bottom:231.844000pt;}
|
||
.ycc{bottom:231.865333pt;}
|
||
.y194{bottom:232.230667pt;}
|
||
.y10a{bottom:232.806667pt;}
|
||
.yff{bottom:232.858667pt;}
|
||
.y1bd{bottom:233.645333pt;}
|
||
.y266{bottom:233.897333pt;}
|
||
.y14b{bottom:234.017333pt;}
|
||
.y2b8{bottom:234.309333pt;}
|
||
.y116{bottom:234.681333pt;}
|
||
.y9c{bottom:234.866667pt;}
|
||
.y50{bottom:235.054667pt;}
|
||
.y2aa{bottom:235.530667pt;}
|
||
.y2{bottom:236.222667pt;}
|
||
.y2cc{bottom:236.965333pt;}
|
||
.y308{bottom:237.522667pt;}
|
||
.y26{bottom:237.638667pt;}
|
||
.y270{bottom:237.885333pt;}
|
||
.y13{bottom:238.596000pt;}
|
||
.y1c{bottom:238.606667pt;}
|
||
.yaf{bottom:239.073333pt;}
|
||
.y31{bottom:240.333333pt;}
|
||
.y277{bottom:240.877333pt;}
|
||
.y300{bottom:241.102667pt;}
|
||
.ydd{bottom:241.490667pt;}
|
||
.y5a{bottom:241.508000pt;}
|
||
.y31d{bottom:241.509333pt;}
|
||
.y1c9{bottom:241.541333pt;}
|
||
.y6d{bottom:241.612000pt;}
|
||
.y16a{bottom:241.814667pt;}
|
||
.y19e{bottom:242.173333pt;}
|
||
.y15b{bottom:242.358667pt;}
|
||
.y214{bottom:243.953333pt;}
|
||
.y9{bottom:244.528000pt;}
|
||
.y39{bottom:245.152000pt;}
|
||
.y12a{bottom:245.772000pt;}
|
||
.y1d2{bottom:245.845333pt;}
|
||
.y7d{bottom:245.932000pt;}
|
||
.y201{bottom:246.253333pt;}
|
||
.y2df{bottom:246.332000pt;}
|
||
.ycb{bottom:246.377333pt;}
|
||
.y22a{bottom:246.526667pt;}
|
||
.y109{bottom:247.320000pt;}
|
||
.yfe{bottom:247.370667pt;}
|
||
.y29a{bottom:247.520000pt;}
|
||
.ye4{bottom:248.018667pt;}
|
||
.y2f4{bottom:248.150667pt;}
|
||
.ye6{bottom:248.517333pt;}
|
||
.y8e{bottom:248.648000pt;}
|
||
.y1a9{bottom:248.814667pt;}
|
||
.y47{bottom:249.000000pt;}
|
||
.y142{bottom:249.665333pt;}
|
||
.y177{bottom:249.797333pt;}
|
||
.y1bc{bottom:250.448000pt;}
|
||
.y265{bottom:250.700000pt;}
|
||
.y2b7{bottom:251.113333pt;}
|
||
.y292{bottom:251.148000pt;}
|
||
.y25a{bottom:251.504000pt;}
|
||
.y336{bottom:251.774667pt;}
|
||
.y120{bottom:251.936000pt;}
|
||
.y307{bottom:252.034667pt;}
|
||
.y2d9{bottom:252.138667pt;}
|
||
.y327{bottom:252.936000pt;}
|
||
.y2cb{bottom:253.769333pt;}
|
||
.yb6{bottom:254.792000pt;}
|
||
.yf2{bottom:255.456000pt;}
|
||
.y181{bottom:255.642667pt;}
|
||
.y188{bottom:255.705333pt;}
|
||
.y4f{bottom:255.829333pt;}
|
||
.y59{bottom:256.020000pt;}
|
||
.y6c{bottom:256.124000pt;}
|
||
.y1e7{bottom:256.306667pt;}
|
||
.y169{bottom:258.617333pt;}
|
||
.y129{bottom:260.284000pt;}
|
||
.y7c{bottom:260.444000pt;}
|
||
.y108{bottom:261.832000pt;}
|
||
.yfd{bottom:261.884000pt;}
|
||
.y213{bottom:262.284000pt;}
|
||
.yc2{bottom:262.330667pt;}
|
||
.y193{bottom:262.948000pt;}
|
||
.y25{bottom:263.242667pt;}
|
||
.y1{bottom:263.720000pt;}
|
||
.y1b{bottom:264.210667pt;}
|
||
.y8d{bottom:265.452000pt;}
|
||
.y306{bottom:266.548000pt;}
|
||
.y1d1{bottom:266.621333pt;}
|
||
.y2d8{bottom:266.650667pt;}
|
||
.ya5{bottom:266.933333pt;}
|
||
.y229{bottom:267.301333pt;}
|
||
.y8{bottom:267.740000pt;}
|
||
.y9b{bottom:268.925333pt;}
|
||
.y1a8{bottom:269.590667pt;}
|
||
.y58{bottom:270.532000pt;}
|
||
.y30{bottom:272.366667pt;}
|
||
.y11f{bottom:272.710667pt;}
|
||
.y1bb{bottom:272.897333pt;}
|
||
.y128{bottom:274.796000pt;}
|
||
.y2b6{bottom:274.890667pt;}
|
||
.y168{bottom:275.421333pt;}
|
||
.yb5{bottom:275.568000pt;}
|
||
.y7b{bottom:276.232000pt;}
|
||
.y107{bottom:276.344000pt;}
|
||
.yfc{bottom:276.396000pt;}
|
||
.y38{bottom:278.758667pt;}
|
||
.ye3{bottom:280.204000pt;}
|
||
.y305{bottom:281.060000pt;}
|
||
.y2d7{bottom:281.162667pt;}
|
||
.y57{bottom:285.044000pt;}
|
||
.y6b{bottom:285.148000pt;}
|
||
.y7{bottom:314.865333pt;}
|
||
.h12{height:29.202446pt;}
|
||
.hf{height:29.499997pt;}
|
||
.ha{height:31.880400pt;}
|
||
.hd{height:33.187635pt;}
|
||
.h10{height:35.865600pt;}
|
||
.h9{height:36.768636pt;}
|
||
.hc{height:36.874903pt;}
|
||
.h13{height:37.003667pt;}
|
||
.h6{height:39.850400pt;}
|
||
.h11{height:40.378215pt;}
|
||
.hb{height:43.636400pt;}
|
||
.he{height:44.122658pt;}
|
||
.h5{height:44.250180pt;}
|
||
.h7{height:47.820800pt;}
|
||
.h4{height:53.941712pt;}
|
||
.h8{height:57.384800pt;}
|
||
.h3{height:77.691000pt;}
|
||
.h2{height:99.148400pt;}
|
||
.h0{height:340.157333pt;}
|
||
.h1{height:340.666667pt;}
|
||
.w0{width:604.724000pt;}
|
||
.w1{width:605.333333pt;}
|
||
.x0{left:0.000000pt;}
|
||
.x4{left:14.222667pt;}
|
||
.x2b{left:26.114667pt;}
|
||
.x30{left:28.822667pt;}
|
||
.x1{left:37.794667pt;}
|
||
.x27{left:39.168000pt;}
|
||
.xd{left:41.780000pt;}
|
||
.x5{left:45.984000pt;}
|
||
.xb{left:48.300000pt;}
|
||
.x2d{left:51.221333pt;}
|
||
.x29{left:52.777333pt;}
|
||
.x3a{left:54.333333pt;}
|
||
.x2e{left:55.880000pt;}
|
||
.x10{left:58.717333pt;}
|
||
.x3e{left:60.609333pt;}
|
||
.xf{left:64.362667pt;}
|
||
.x33{left:65.754667pt;}
|
||
.x6{left:67.314667pt;}
|
||
.x28{left:69.212000pt;}
|
||
.xc{left:70.870667pt;}
|
||
.x9{left:73.862667pt;}
|
||
.x2a{left:78.372000pt;}
|
||
.x12{left:81.298667pt;}
|
||
.x38{left:84.277333pt;}
|
||
.x15{left:86.944000pt;}
|
||
.x16{left:91.992000pt;}
|
||
.x1a{left:95.977333pt;}
|
||
.x39{left:98.268000pt;}
|
||
.x19{left:99.716000pt;}
|
||
.x47{left:102.257333pt;}
|
||
.x2c{left:107.709333pt;}
|
||
.x1e{left:110.508000pt;}
|
||
.x41{left:117.496000pt;}
|
||
.x32{left:119.208000pt;}
|
||
.x43{left:121.154667pt;}
|
||
.x1f{left:125.209333pt;}
|
||
.x14{left:132.108000pt;}
|
||
.x17{left:135.926667pt;}
|
||
.x8{left:142.362667pt;}
|
||
.x37{left:146.350667pt;}
|
||
.x42{left:155.753333pt;}
|
||
.x40{left:161.033333pt;}
|
||
.x1b{left:163.698667pt;}
|
||
.x11{left:165.981333pt;}
|
||
.x20{left:167.701333pt;}
|
||
.x31{left:170.630667pt;}
|
||
.x18{left:184.204000pt;}
|
||
.x1c{left:186.281333pt;}
|
||
.x1d{left:208.862667pt;}
|
||
.x2{left:211.340000pt;}
|
||
.xa{left:227.810667pt;}
|
||
.x34{left:231.620000pt;}
|
||
.x3b{left:248.901333pt;}
|
||
.x3c{left:252.886667pt;}
|
||
.x35{left:259.350667pt;}
|
||
.x2f{left:269.777333pt;}
|
||
.x3f{left:271.716000pt;}
|
||
.x3d{left:277.992000pt;}
|
||
.x36{left:284.457333pt;}
|
||
.x21{left:302.884000pt;}
|
||
.x44{left:304.786667pt;}
|
||
.x25{left:307.416000pt;}
|
||
.x45{left:308.772000pt;}
|
||
.xe{left:311.668000pt;}
|
||
.x26{left:324.352000pt;}
|
||
.x22{left:327.989333pt;}
|
||
.x46{left:333.877333pt;}
|
||
.x23{left:353.096000pt;}
|
||
.x24{left:378.201333pt;}
|
||
.x3{left:504.940000pt;}
|
||
.x13{left:565.870667pt;}
|
||
.x7{left:571.516000pt;}
|
||
}
|
||
</style>
|
||
<script>
|
||
/*
|
||
Copyright 2012 Mozilla Foundation
|
||
Copyright 2013 Lu Wang <coolwanglu@gmail.com>
|
||
Apachine License Version 2.0
|
||
*/
|
||
(function(){function b(a,b,e,f){var c=(a.className||"").split(/\s+/g);""===c[0]&&c.shift();var d=c.indexOf(b);0>d&&e&&c.push(b);0<=d&&f&&c.splice(d,1);a.className=c.join(" ");return 0<=d}if(!("classList"in document.createElement("div"))){var e={add:function(a){b(this.element,a,!0,!1)},contains:function(a){return b(this.element,a,!1,!1)},remove:function(a){b(this.element,a,!1,!0)},toggle:function(a){b(this.element,a,!0,!0)}};Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){if(this._classList)return this._classList;
|
||
var a=Object.create(e,{element:{value:this,writable:!1,enumerable:!0}});Object.defineProperty(this,"_classList",{value:a,writable:!1,enumerable:!1});return a},enumerable:!0})}})();
|
||
</script>
|
||
<script>
|
||
(function(){/*
|
||
pdf2htmlEX.js: Core UI functions for pdf2htmlEX
|
||
Copyright 2012,2013 Lu Wang <coolwanglu@gmail.com> and other contributors
|
||
https://github.com/pdf2htmlEX/pdf2htmlEX/blob/master/share/LICENSE
|
||
*/
|
||
var pdf2htmlEX=window.pdf2htmlEX=window.pdf2htmlEX||{},CSS_CLASS_NAMES={page_frame:"pf",page_content_box:"pc",page_data:"pi",background_image:"bi",link:"l",input_radio:"ir",__dummy__:"no comma"},DEFAULT_CONFIG={container_id:"page-container",sidebar_id:"sidebar",outline_id:"outline",loading_indicator_cls:"loading-indicator",preload_pages:3,render_timeout:100,scale_step:0.9,key_handler:!0,hashchange_handler:!0,view_history_handler:!0,__dummy__:"no comma"},EPS=1E-6;
|
||
function invert(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[3]*a[4])/b,(a[1]*a[4]-a[0]*a[5])/b]}function transform(a,b){return[a[0]*b[0]+a[2]*b[1]+a[4],a[1]*b[0]+a[3]*b[1]+a[5]]}function get_page_number(a){return parseInt(a.getAttribute("data-page-no"),16)}function disable_dragstart(a){for(var b=0,c=a.length;b<c;++b)a[b].addEventListener("dragstart",function(){return!1},!1)}
|
||
function clone_and_extend_objs(a){for(var b={},c=0,e=arguments.length;c<e;++c){var h=arguments[c],d;for(d in h)h.hasOwnProperty(d)&&(b[d]=h[d])}return b}
|
||
function Page(a){if(a){this.shown=this.loaded=!1;this.page=a;this.num=get_page_number(a);this.original_height=a.clientHeight;this.original_width=a.clientWidth;var b=a.getElementsByClassName(CSS_CLASS_NAMES.page_content_box)[0];b&&(this.content_box=b,this.original_scale=this.cur_scale=this.original_height/b.clientHeight,this.page_data=JSON.parse(a.getElementsByClassName(CSS_CLASS_NAMES.page_data)[0].getAttribute("data-data")),this.ctm=this.page_data.ctm,this.ictm=invert(this.ctm),this.loaded=!0)}}
|
||
Page.prototype={hide:function(){this.loaded&&this.shown&&(this.content_box.classList.remove("opened"),this.shown=!1)},show:function(){this.loaded&&!this.shown&&(this.content_box.classList.add("opened"),this.shown=!0)},rescale:function(a){this.cur_scale=0===a?this.original_scale:a;this.loaded&&(a=this.content_box.style,a.msTransform=a.webkitTransform=a.transform="scale("+this.cur_scale.toFixed(3)+")");a=this.page.style;a.height=this.original_height*this.cur_scale+"px";a.width=this.original_width*this.cur_scale+
|
||
"px"},view_position:function(){var a=this.page,b=a.parentNode;return[b.scrollLeft-a.offsetLeft-a.clientLeft,b.scrollTop-a.offsetTop-a.clientTop]},height:function(){return this.page.clientHeight},width:function(){return this.page.clientWidth}};function Viewer(a){this.config=clone_and_extend_objs(DEFAULT_CONFIG,0<arguments.length?a:{});this.pages_loading=[];this.init_before_loading_content();var b=this;document.addEventListener("DOMContentLoaded",function(){b.init_after_loading_content()},!1)}
|
||
Viewer.prototype={scale:1,cur_page_idx:0,first_page_idx:0,init_before_loading_content:function(){this.pre_hide_pages()},initialize_radio_button:function(){for(var a=document.getElementsByClassName(CSS_CLASS_NAMES.input_radio),b=0;b<a.length;b++)a[b].addEventListener("click",function(){this.classList.toggle("checked")})},init_after_loading_content:function(){this.sidebar=document.getElementById(this.config.sidebar_id);this.outline=document.getElementById(this.config.outline_id);this.container=document.getElementById(this.config.container_id);
|
||
this.loading_indicator=document.getElementsByClassName(this.config.loading_indicator_cls)[0];for(var a=!0,b=this.outline.childNodes,c=0,e=b.length;c<e;++c)if("ul"===b[c].nodeName.toLowerCase()){a=!1;break}a||this.sidebar.classList.add("opened");this.find_pages();if(0!=this.pages.length){disable_dragstart(document.getElementsByClassName(CSS_CLASS_NAMES.background_image));this.config.key_handler&&this.register_key_handler();var h=this;this.config.hashchange_handler&&window.addEventListener("hashchange",
|
||
function(a){h.navigate_to_dest(document.location.hash.substring(1))},!1);this.config.view_history_handler&&window.addEventListener("popstate",function(a){a.state&&h.navigate_to_dest(a.state)},!1);this.container.addEventListener("scroll",function(){h.update_page_idx();h.schedule_render(!0)},!1);[this.container,this.outline].forEach(function(a){a.addEventListener("click",h.link_handler.bind(h),!1)});this.initialize_radio_button();this.render()}},find_pages:function(){for(var a=[],b={},c=this.container.childNodes,
|
||
e=0,h=c.length;e<h;++e){var d=c[e];d.nodeType===Node.ELEMENT_NODE&&d.classList.contains(CSS_CLASS_NAMES.page_frame)&&(d=new Page(d),a.push(d),b[d.num]=a.length-1)}this.pages=a;this.page_map=b},load_page:function(a,b,c){var e=this.pages;if(!(a>=e.length||(e=e[a],e.loaded||this.pages_loading[a]))){var e=e.page,h=e.getAttribute("data-page-url");if(h){this.pages_loading[a]=!0;var d=e.getElementsByClassName(this.config.loading_indicator_cls)[0];"undefined"===typeof d&&(d=this.loading_indicator.cloneNode(!0),
|
||
d.classList.add("active"),e.appendChild(d));var f=this,g=new XMLHttpRequest;g.open("GET",h,!0);g.onload=function(){if(200===g.status||0===g.status){var b=document.createElement("div");b.innerHTML=g.responseText;for(var d=null,b=b.childNodes,e=0,h=b.length;e<h;++e){var p=b[e];if(p.nodeType===Node.ELEMENT_NODE&&p.classList.contains(CSS_CLASS_NAMES.page_frame)){d=p;break}}b=f.pages[a];f.container.replaceChild(d,b.page);b=new Page(d);f.pages[a]=b;b.hide();b.rescale(f.scale);disable_dragstart(d.getElementsByClassName(CSS_CLASS_NAMES.background_image));
|
||
f.schedule_render(!1);c&&c(b)}delete f.pages_loading[a]};g.send(null)}void 0===b&&(b=this.config.preload_pages);0<--b&&(f=this,setTimeout(function(){f.load_page(a+1,b)},0))}},pre_hide_pages:function(){var a="@media screen{."+CSS_CLASS_NAMES.page_content_box+"{display:none;}}",b=document.createElement("style");b.styleSheet?b.styleSheet.cssText=a:b.appendChild(document.createTextNode(a));document.head.appendChild(b)},render:function(){for(var a=this.container,b=a.scrollTop,c=a.clientHeight,a=b-c,b=
|
||
b+c+c,c=this.pages,e=0,h=c.length;e<h;++e){var d=c[e],f=d.page,g=f.offsetTop+f.clientTop,f=g+f.clientHeight;g<=b&&f>=a?d.loaded?d.show():this.load_page(e):d.hide()}},update_page_idx:function(){var a=this.pages,b=a.length;if(!(2>b)){for(var c=this.container,e=c.scrollTop,c=e+c.clientHeight,h=-1,d=b,f=d-h;1<f;){var g=h+Math.floor(f/2),f=a[g].page;f.offsetTop+f.clientTop+f.clientHeight>=e?d=g:h=g;f=d-h}this.first_page_idx=d;for(var g=h=this.cur_page_idx,k=0;d<b;++d){var f=a[d].page,l=f.offsetTop+f.clientTop,
|
||
f=f.clientHeight;if(l>c)break;f=(Math.min(c,l+f)-Math.max(e,l))/f;if(d===h&&Math.abs(f-1)<=EPS){g=h;break}f>k&&(k=f,g=d)}this.cur_page_idx=g}},schedule_render:function(a){if(void 0!==this.render_timer){if(!a)return;clearTimeout(this.render_timer)}var b=this;this.render_timer=setTimeout(function(){delete b.render_timer;b.render()},this.config.render_timeout)},register_key_handler:function(){var a=this;window.addEventListener("DOMMouseScroll",function(b){if(b.ctrlKey){b.preventDefault();var c=a.container,
|
||
e=c.getBoundingClientRect(),c=[b.clientX-e.left-c.clientLeft,b.clientY-e.top-c.clientTop];a.rescale(Math.pow(a.config.scale_step,b.detail),!0,c)}},!1);window.addEventListener("keydown",function(b){var c=!1,e=b.ctrlKey||b.metaKey,h=b.altKey;switch(b.keyCode){case 61:case 107:case 187:e&&(a.rescale(1/a.config.scale_step,!0),c=!0);break;case 173:case 109:case 189:e&&(a.rescale(a.config.scale_step,!0),c=!0);break;case 48:e&&(a.rescale(0,!1),c=!0);break;case 33:h?a.scroll_to(a.cur_page_idx-1):a.container.scrollTop-=
|
||
a.container.clientHeight;c=!0;break;case 34:h?a.scroll_to(a.cur_page_idx+1):a.container.scrollTop+=a.container.clientHeight;c=!0;break;case 35:a.container.scrollTop=a.container.scrollHeight;c=!0;break;case 36:a.container.scrollTop=0,c=!0}c&&b.preventDefault()},!1)},rescale:function(a,b,c){var e=this.scale;this.scale=a=0===a?1:b?e*a:a;c||(c=[0,0]);b=this.container;c[0]+=b.scrollLeft;c[1]+=b.scrollTop;for(var h=this.pages,d=h.length,f=this.first_page_idx;f<d;++f){var g=h[f].page;if(g.offsetTop+g.clientTop>=
|
||
c[1])break}g=f-1;0>g&&(g=0);var g=h[g].page,k=g.clientWidth,f=g.clientHeight,l=g.offsetLeft+g.clientLeft,m=c[0]-l;0>m?m=0:m>k&&(m=k);k=g.offsetTop+g.clientTop;c=c[1]-k;0>c?c=0:c>f&&(c=f);for(f=0;f<d;++f)h[f].rescale(a);b.scrollLeft+=m/e*a+g.offsetLeft+g.clientLeft-m-l;b.scrollTop+=c/e*a+g.offsetTop+g.clientTop-c-k;this.schedule_render(!0)},fit_width:function(){var a=this.cur_page_idx;this.rescale(this.container.clientWidth/this.pages[a].width(),!0);this.scroll_to(a)},fit_height:function(){var a=this.cur_page_idx;
|
||
this.rescale(this.container.clientHeight/this.pages[a].height(),!0);this.scroll_to(a)},get_containing_page:function(a){for(;a;){if(a.nodeType===Node.ELEMENT_NODE&&a.classList.contains(CSS_CLASS_NAMES.page_frame)){a=get_page_number(a);var b=this.page_map;return a in b?this.pages[b[a]]:null}a=a.parentNode}return null},link_handler:function(a){var b=a.target,c=b.getAttribute("data-dest-detail");if(c){if(this.config.view_history_handler)try{var e=this.get_current_view_hash();window.history.replaceState(e,
|
||
"","#"+e);window.history.pushState(c,"","#"+c)}catch(h){}this.navigate_to_dest(c,this.get_containing_page(b));a.preventDefault()}},navigate_to_dest:function(a,b){try{var c=JSON.parse(a)}catch(e){return}if(c instanceof Array){var h=c[0],d=this.page_map;if(h in d){for(var f=d[h],h=this.pages[f],d=2,g=c.length;d<g;++d){var k=c[d];if(null!==k&&"number"!==typeof k)return}for(;6>c.length;)c.push(null);var g=b||this.pages[this.cur_page_idx],d=g.view_position(),d=transform(g.ictm,[d[0],g.height()-d[1]]),
|
||
g=this.scale,l=[0,0],m=!0,k=!1,n=this.scale;switch(c[1]){case "XYZ":l=[null===c[2]?d[0]:c[2]*n,null===c[3]?d[1]:c[3]*n];g=c[4];if(null===g||0===g)g=this.scale;k=!0;break;case "Fit":case "FitB":l=[0,0];k=!0;break;case "FitH":case "FitBH":l=[0,null===c[2]?d[1]:c[2]*n];k=!0;break;case "FitV":case "FitBV":l=[null===c[2]?d[0]:c[2]*n,0];k=!0;break;case "FitR":l=[c[2]*n,c[5]*n],m=!1,k=!0}if(k){this.rescale(g,!1);var p=this,c=function(a){l=transform(a.ctm,l);m&&(l[1]=a.height()-l[1]);p.scroll_to(f,l)};h.loaded?
|
||
c(h):(this.load_page(f,void 0,c),this.scroll_to(f))}}}},scroll_to:function(a,b){var c=this.pages;if(!(0>a||a>=c.length)){c=c[a].view_position();void 0===b&&(b=[0,0]);var e=this.container;e.scrollLeft+=b[0]-c[0];e.scrollTop+=b[1]-c[1]}},get_current_view_hash:function(){var a=[],b=this.pages[this.cur_page_idx];a.push(b.num);a.push("XYZ");var c=b.view_position(),c=transform(b.ictm,[c[0],b.height()-c[1]]);a.push(c[0]/this.scale);a.push(c[1]/this.scale);a.push(this.scale);return JSON.stringify(a)}};
|
||
pdf2htmlEX.Viewer=Viewer;})();
|
||
</script>
|
||
<script>
|
||
try{
|
||
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
|
||
}catch(e){}
|
||
</script>
|
||
<title></title>
|
||
</head>
|
||
<body>
|
||
<div id="sidebar">
|
||
<div id="outline">
|
||
<ul><li><a class="l" href="#pf6" data-dest-detail='[6,"XYZ",28.346,255.118,null]'>I/O Operations</a><ul><li><a class="l" href="#pfa" data-dest-detail='[10,"XYZ",28.346,228.21,null]'>printf</a></li><li><a class="l" href="#pfb" data-dest-detail='[11,"XYZ",28.346,212.909,null]'>Memory Mapped I/O</a></li><li><a class="l" href="#pf10" data-dest-detail='[16,"XYZ",28.346,228.21,null]'>Speed Up Raw Data Loading</a></li></ul></li><li><a class="l" href="#pf12" data-dest-detail='[18,"XYZ",28.346,255.118,null]'>Memory Optimizations</a><ul><li><a class="l" href="#pf13" data-dest-detail='[19,"XYZ",28.346,203.33,null]'>Heap Memory</a></li><li><a class="l" href="#pf14" data-dest-detail='[20,"XYZ",28.346,228.21,null]'>Stack Memory</a></li><li><a class="l" href="#pf15" data-dest-detail='[21,"XYZ",28.346,217.784,null]'>Cache Utilization</a></li><li><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",28.346,228.21,null]'>Memory Alignment</a></li><li><a class="l" href="#pf1e" data-dest-detail='[30,"XYZ",28.346,228.21,null]'>Memory Prefetch</a></li></ul></li><li><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",28.346,255.118,null]'>Arithmetic Types</a><ul><li><a class="l" href="#pf22" data-dest-detail='[34,"XYZ",28.346,228.21,null]'>Data Types</a></li><li><a class="l" href="#pf23" data-dest-detail='[35,"XYZ",28.346,228.21,null]'>Arithmetic Operations</a></li><li><a class="l" href="#pf28" data-dest-detail='[40,"XYZ",28.346,228.21,null]'>Conversion</a></li><li><a class="l" href="#pf29" data-dest-detail='[41,"XYZ",28.346,228.21,null]'>Floating-Point</a></li><li><a class="l" href="#pf2b" data-dest-detail='[43,"XYZ",28.346,228.21,null]'>Compiler Intrinsic Functions</a></li><li><a class="l" href="#pf31" data-dest-detail='[49,"XYZ",28.346,228.21,null]'>Value in a Range</a></li><li><a class="l" href="#pf33" data-dest-detail='[51,"XYZ",28.346,228.21,null]'>Lookup Table</a></li></ul></li><li><a class="l" href="#pf36" data-dest-detail='[54,"XYZ",28.346,255.118,null]'>Control Flow</a><ul><li><a class="l" href="#pf38" data-dest-detail='[56,"XYZ",28.346,183.273,null]'>Branches</a></li><li><a class="l" href="#pf3b" data-dest-detail='[59,"XYZ",28.346,221.512,null]'>Branch Hints - [[likely]] / [[unlikely]]</a></li><li><a class="l" href="#pf3c" data-dest-detail='[60,"XYZ",28.346,228.21,null]'>Signed/Unsigned Integers</a></li><li><a class="l" href="#pf3d" data-dest-detail='[61,"XYZ",28.346,228.21,null]'>Loops</a></li><li><a class="l" href="#pf3e" data-dest-detail='[62,"XYZ",28.346,228.21,null]'>Loop Hoisting</a></li><li><a class="l" href="#pf3f" data-dest-detail='[63,"XYZ",28.346,228.21,null]'>Loop Unrolling</a></li><li><a class="l" href="#pf41" data-dest-detail='[65,"XYZ",28.346,228.21,null]'>Assertions</a></li><li><a class="l" href="#pf42" data-dest-detail='[66,"XYZ",28.346,228.21,null]'>Compiler Hints - [[assume]]/std::unreachable()</a></li><li><a class="l" href="#pf43" data-dest-detail='[67,"XYZ",28.346,199.45,null]'>Recursion</a></li></ul></li><li><a class="l" href="#pf45" data-dest-detail='[69,"XYZ",28.346,255.118,null]'>Functions</a><ul><li><a class="l" href="#pf46" data-dest-detail='[70,"XYZ",28.346,228.21,null]'>Function Call Cost</a></li><li><a class="l" href="#pf47" data-dest-detail='[71,"XYZ",28.346,228.21,null]'>Argument Passing</a></li><li><a class="l" href="#pf4a" data-dest-detail='[74,"XYZ",28.346,211.771,null]'>Function Inlining</a></li><li><a class="l" href="#pf4e" data-dest-detail='[78,"XYZ",28.346,228.21,null]'>Function Attributes</a></li><li><a class="l" href="#pf4f" data-dest-detail='[79,"XYZ",28.346,228.21,null]'>Pointers Aliasing</a></li></ul></li><li><a class="l" href="#pf53" data-dest-detail='[83,"XYZ",28.346,255.118,null]'>Object-Oriented Programming</a></li><li><a class="l" href="#pf5a" data-dest-detail='[90,"XYZ",28.346,255.118,null]'>Std Library and Other Language Aspects</a></li></ul></div>
|
||
</div>
|
||
<div id="page-container">
|
||
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Mo<span class="_ _0"></span>dern<span class="_ _1"> </span>C++</div><div class="t m0 x1 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">Programming</div><div class="t m0 x1 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0">22.<span class="_ _2"> </span>Perf<span class="_ _3"></span>ormance<span class="_ _4"> </span>Optimiza<span class="_ _5"></span>tion<span class="_ _4"> </span>I<span class="_ _0"></span>I</div><div class="t m0 x2 h4 y4 ff2 fs2 fc0 sc0 ls0 ws0">Code<span class="_ _6"> </span>Optimiza<span class="_ _7"></span>tion</div><div class="t m0 x1 h5 y5 ff3 fs3 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>ederico<span class="_ _8"> </span>Busato</div><div class="t m0 x3 h6 y6 ff4 fs4 fc0 sc0 ls0 ws0">2024-11-05</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x5 h8 y8 ff1 fs4 fc2 sc0 ls0 ws0">1<span class="_ _a"> </span><span class="fs2 fc0">I/O<span class="_ _6"> </span>Op<span class="_ _b"></span>erations</span></div><div class="t m0 x6 h9 y9 ff5 fs4 fc0 sc0 ls0 ws0">printf</div><div class="t m0 x6 h6 ya ff4 fs4 fc0 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _c"> </span>Mapp<span class="_ _b"></span>ed<span class="_ _c"> </span>I/O</div><div class="t m0 x6 h6 yb ff4 fs4 fc0 sc0 ls0 ws0">Sp<span class="_ _b"></span>eed<span class="_ _c"> </span>Up<span class="_ _d"> </span>Ra<span class="_ _3"></span>w<span class="_ _c"> </span>Data<span class="_ _d"> </span>Loading</div><div class="t m0 x5 h8 yc ff1 fs4 fc2 sc0 ls0 ws0">2<span class="_ _a"> </span><span class="fs2 fc0">Memo<span class="_ _3"></span>ry<span class="_ _6"> </span>Optimizations</span></div><div class="t m0 x6 h6 yd ff4 fs4 fc0 sc0 ls0 ws0">Heap<span class="_ _d"> </span>Memory</div><div class="t m0 x6 h6 ye ff4 fs4 fc0 sc0 ls0 ws0">Stack<span class="_ _d"> </span>Memory</div><div class="t m0 x6 h6 yf ff4 fs4 fc0 sc0 ls0 ws0">Cache<span class="_ _d"> </span>Utilization</div><div class="t m0 x6 h6 y10 ff4 fs4 fc0 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _c"> </span>Alignment</div><div class="t m0 x6 h6 y11 ff4 fs4 fc0 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _c"> </span>Prefetch</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">1/87</div><a class="l" href="#pf6" data-dest-detail='[6,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:196.223000px;width:102.826000px;height:16.145000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfa" data-dest-detail='[10,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:180.242000px;width:33.374000px;height:10.327000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pfb" data-dest-detail='[11,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:162.499000px;width:91.130000px;height:11.955000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf10" data-dest-detail='[16,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:145.643000px;width:123.176000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf12" data-dest-detail='[18,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:117.048000px;width:151.843000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf13" data-dest-detail='[19,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:100.491000px;width:60.495000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf14" data-dest-detail='[20,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:83.081000px;width:62.294000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf15" data-dest-detail='[21,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:67.609000px;width:73.281000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf19" data-dest-detail='[25,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:48.262000px;width:81.694000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf1e" data-dest-detail='[30,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:30.852000px;width:73.917000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x5 h8 y13 ff1 fs4 fc2 sc0 ls0 ws0">3<span class="_ _a"> </span><span class="fs2 fc0">Arithmetic<span class="_ _6"> </span>T<span class="_ _5"></span>yp<span class="_ _b"></span>es</span></div><div class="t m0 x6 h6 y14 ff4 fs4 fc0 sc0 ls0 ws0">Data<span class="_ _d"> </span>T<span class="_ _3"></span>ypes</div><div class="t m0 x6 h6 y15 ff4 fs4 fc0 sc0 ls0 ws0">Arithmetic<span class="_ _d"> </span>Op<span class="_ _b"></span>erations</div><div class="t m0 x6 h6 y16 ff4 fs4 fc0 sc0 ls0 ws0">Conversion</div><div class="t m0 x6 h6 y17 ff4 fs4 fc0 sc0 ls0 ws0">Floating-P<span class="_ _3"></span>oint</div><div class="t m0 x6 h6 y18 ff4 fs4 fc0 sc0 ls0 ws0">Compiler<span class="_ _d"> </span>Intrinsic<span class="_ _c"> </span>F<span class="_ _3"></span>unctions</div><div class="t m0 x6 h6 y19 ff4 fs4 fc0 sc0 ls0 ws0">V<span class="_ _3"></span>alue<span class="_ _c"> </span>in<span class="_ _d"> </span>a<span class="_ _c"> </span>Range</div><div class="t m0 x6 h6 y1a ff4 fs4 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>okup<span class="_ _d"> </span>T<span class="_ _3"></span>able</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">2/87</div><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:175.161000px;width:115.119000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf22" data-dest-detail='[34,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:158.604000px;width:49.895000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf23" data-dest-detail='[35,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:141.194000px;width:94.534000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf28" data-dest-detail='[40,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:125.722000px;width:47.239000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf29" data-dest-detail='[41,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:106.375000px;width:61.436000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf2b" data-dest-detail='[43,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:88.965000px;width:118.750000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf31" data-dest-detail='[49,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:71.555000px;width:73.156000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf33" data-dest-detail='[51,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:54.146000px;width:58.807000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x5 h8 y1b ff1 fs4 fc2 sc0 ls0 ws0">4<span class="_ _a"> </span><span class="fs2 fc0">Control<span class="_ _6"> </span>Flo<span class="_ _3"></span>w</span></div><div class="t m0 x6 h6 y1c ff4 fs4 fc0 sc0 ls0 ws0">Branches</div><div class="t m0 x6 h6 y1d ff4 fs4 fc0 sc0 ls0 ws0">Branch<span class="_ _d"> </span>Hints<span class="_ _c"> </span>-<span class="_ _d"> </span><span class="ff5">[[likely]]<span class="_ _6"> </span>/<span class="_ _6"> </span>[[unlikely]]</span></div><div class="t m0 x6 h6 y1e ff4 fs4 fc0 sc0 ls0 ws0">Signed/Unsigned<span class="_ _d"> </span>Integers</div><div class="t m0 x6 h6 y1f ff4 fs4 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>ops</div><div class="t m0 x6 h6 y20 ff4 fs4 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _d"> </span>Hoisting</div><div class="t m0 x6 h6 y21 ff4 fs4 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _d"> </span>Unrolling</div><div class="t m0 x6 h6 y22 ff4 fs4 fc0 sc0 ls0 ws0">Assertions</div><div class="t m0 x6 h6 y23 ff4 fs4 fc0 sc0 ls0 ws0">Compiler<span class="_ _d"> </span>Hints<span class="_ _c"> </span>-<span class="_ _d"> </span><span class="ff5">[[assume]]/std::unreachable()</span></div><div class="t m0 x6 h6 y24 ff4 fs4 fc0 sc0 ls0 ws0">Recursion</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">3/87</div><a class="l" href="#pf36" data-dest-detail='[54,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:195.335000px;width:86.536000px;height:13.782000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf38" data-dest-detail='[56,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:177.958000px;width:39.795000px;height:8.912000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3b" data-dest-detail='[59,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:156.598000px;width:197.592000px;height:11.069000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3c" data-dest-detail='[60,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:137.062000px;width:108.385000px;height:11.955000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3d" data-dest-detail='[61,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:118.413000px;width:26.594000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3e" data-dest-detail='[62,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:99.210000px;width:60.439000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf3f" data-dest-detail='[63,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:80.007000px;width:63.747000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf41" data-dest-detail='[65,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:62.741000px;width:44.029000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf42" data-dest-detail='[66,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:41.601000px;width:225.958000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf43" data-dest-detail='[67,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:24.335000px;width:42.161000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>able<span class="_ _8"> </span>of<span class="_ _9"> </span>Contents</div><div class="t m0 x5 h8 y25 ff1 fs4 fc2 sc0 ls0 ws0">5<span class="_ _a"> </span><span class="fs2 fc0">F<span class="_ _3"></span>unctions</span></div><div class="t m0 x6 h6 y26 ff4 fs4 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _c"> </span>Call<span class="_ _d"> </span>Cost</div><div class="t m0 x6 h6 y27 ff4 fs4 fc0 sc0 ls0 ws0">Argument<span class="_ _d"> </span>Passing</div><div class="t m0 x6 h6 y28 ff4 fs4 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _c"> </span>Inlining</div><div class="t m0 x6 h6 y29 ff4 fs4 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _c"> </span>A<span class="_ _3"></span>ttributes</div><div class="t m0 x6 h6 y2a ff4 fs4 fc0 sc0 ls0 ws0">P<span class="_ _3"></span>ointers<span class="_ _c"> </span>Aliasing</div><div class="t m0 x5 h8 y2b ff1 fs4 fc2 sc0 ls0 ws0">6<span class="_ _a"> </span><span class="fs2 fc0">Object-Oriented<span class="_ _6"> </span>Programming</span></div><div class="t m0 x5 h8 y2c ff1 fs4 fc2 sc0 ls0 ws0">7<span class="_ _a"> </span><span class="ff5 fs2 fc0">Std<span class="_ _6"> </span><span class="ff1">Lib<span class="_ _3"></span>ra<span class="_ _3"></span>ry<span class="_ _6"> </span>and<span class="_ _e"> </span>Other<span class="_ _6"> </span>Language<span class="_ _e"> </span>Asp<span class="_ _0"></span>ects</span></span></div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">4/87</div><a class="l" href="#pf45" data-dest-detail='[69,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:194.609000px;width:64.888000px;height:13.782000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf46" data-dest-detail='[70,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:177.232000px;width:79.535000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf47" data-dest-detail='[71,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:156.092000px;width:77.598000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf4a" data-dest-detail='[74,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:136.889000px;width:71.870000px;height:10.849000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf4e" data-dest-detail='[78,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:119.624000px;width:83.022000px;height:8.911000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf4f" data-dest-detail='[79,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:49.490000px;bottom:98.484000px;width:71.676000px;height:10.848000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf53" data-dest-detail='[83,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:67.072000px;width:201.724000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf5a" data-dest-detail='[90,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:47.076000px;bottom:35.661000px;width:270.846000px;height:14.745000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf6" class="pf w0 h0" data-page-no="6"><div class="pc pc6 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y2d ff1 fs0 fc0 sc0 ls0 ws0">I/O<span class="_ _1"> </span>Op<span class="_ _0"></span>erations</div><a class="l" href="#pf6" data-dest-detail='[6,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:130.534000px;width:176.211000px;height:26.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf7" class="pf w0 h0" data-page-no="7"><div class="pc pc7 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIX0lEQVR42u3YsQ2DMBRFUTvCoswMEVUmiCLqSGzGEhmHgiGyQSrKuDEdM3yFcyaw3m+unIfHmAAAIIzPulysAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIBDrrVaAQCAOEopflIBAAhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFJNAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApJoAAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUA4H9023wL+7jv6+1CAABnc39OOV/7tv1Saq0ZBACAEHYJtBQE7HyLKgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">I/O<span class="_ _9"> </span>Operations</div><div class="t m0 x9 h8 y2e ff1 fs2 fc3 sc0 ls0 ws0">I/O<span class="_ _6"> </span>Op<span class="_ _b"></span>erations<span class="_ _6"> </span>a<span class="_ _3"></span>re<span class="_ _e"> </span>o<span class="_ _3"></span>rders<span class="_ _6"> </span>of<span class="_ _6"> </span>magnitude<span class="_ _e"> </span>slo<span class="_ _3"></span>w<span class="_ _3"></span>er<span class="_ _6"> </span>than</div><div class="t m0 xa h8 y2f ff1 fs2 fc3 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _6"> </span>accesses</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">5/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf8" class="pf w0 h0" data-page-no="8"><div class="pc pc8 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">I/O<span class="_ _9"> </span>Streams</div><div class="t m0 x1 hb y30 ff4 fs6 fc0 sc0 ls0 ws0">In<span class="_ _c"> </span>general,<span class="_ _c"> </span>input/output<span class="_ _8"> </span>operations<span class="_ _f"> </span>a<span class="_ _3"></span>re<span class="_ _f"> </span>one<span class="_ _c"> </span>of<span class="_ _f"> </span>the<span class="_ _c"> </span>most<span class="_ _f"> </span>exp<span class="_ _b"></span>ensive</div><div class="t m0 xb hb y31 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _10"> </span><span class="ff8">endl<span class="_ _10"> </span></span>fo<span class="_ _3"></span>r<span class="_ _10"> </span><span class="ff8">ostream<span class="_ _10"> </span></span>only<span class="_ _c"> </span>when<span class="_ _f"> </span>it<span class="_ _c"> </span>is<span class="_ _f"> </span>strictly<span class="_ _c"> </span>necessary<span class="_ _c"> </span>(p<span class="_ _3"></span>refer<span class="_ _10"> </span><span class="ff9">\<span class="ff8">n<span class="_ _d"> </span></span></span>)</span></div><div class="t m0 xb hb y32 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Disable<span class="_ _c"> </span><span class="ffa">synchronization<span class="_ _f"> </span></span>with<span class="_ _10"> </span><span class="ff8">printf/scanf<span class="_ _d"> </span></span>:</span></div><div class="t m0 xc hc y33 ff8 fs4 fc0 sc0 ls0 ws0">std::ios<span class="_ _f"> </span>base::sync<span class="_ _c"> </span>with<span class="_ _f"> </span>stdio(false)</div><div class="t m0 xb hb y34 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Disable<span class="_ _c"> </span>IO<span class="_ _f"> </span><span class="ffa">flushing<span class="_ _9"> </span></span>when<span class="_ _f"> </span>mixing<span class="_ _10"> </span><span class="ff8">istream/ostream<span class="_ _10"> </span></span>calls:</span></div><div class="t m0 xc hc y35 ff8 fs4 fc0 sc0 ls0 ws0"><istream<span class="_ _f"> </span>obj>.tie(nullptr);</div><div class="t m0 xb hb y36 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Increase<span class="_ _c"> </span>IO<span class="_ _f"> </span><span class="ffa">buffer<span class="_ _c"> </span>size<span class="_ _0"></span></span>:</span></div><div class="t m0 xc hc y37 ff8 fs4 fc0 sc0 ls0 ws0">file.rdbuf()->pubsetbuf(buffer<span class="_ _f"> </span>var,<span class="_ _e"> </span>buffer<span class="_ _f"> </span>size);</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">6/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf9" class="pf w0 h0" data-page-no="9"><div class="pc pc9 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIeElEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSNmMJRiHgiHYgCpKhRvTMQA0P+GcCezn5sp5dzglAAAI43G/rawAAEA0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgI9ca7UCAABxlFL8pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAwNJ1MzrrNE0eDADgO33fz+i0flIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpJgAAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFJNAACASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAP5arrVaAQCAOEopflIBAAhHpAIAIFIBAECkAgAgUgEA4FfdeNku9W7P89UDAwDMzv445LxZt/GVUmvNIAAAhPAGM84aAjuukdsAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">I/O<span class="_ _9"> </span>Streams<span class="_ _8"> </span>-<span class="_ _9"> </span>Example</div><div class="t m0 xd hd y38 ffb fs7 fc4 sc0 ls0 ws0">#include<span class="_ _11"> </span><span class="fc5"><iostream></span></div><div class="t m0 xd hd y39 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc7">main<span class="fc0">()<span class="_ _9"> </span>{</span></span></div><div class="t m0 x6 hd y3a ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>ifstream<span class="_ _9"> </span>fin;</div><div class="t m0 x6 hd y3b ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>--------------------------------------------------------</div><div class="t m0 x6 hd y3c ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>ios_base<span class="fc8">::</span>sync_with_stdio(<span class="fc9">false</span>);<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _9"> </span>sync<span class="_ _e"> </span>disable</span></div><div class="t m0 x6 hd y3d ffc fs7 fc0 sc0 ls0 ws0">fin.tie(<span class="ff5 fc9">nullptr</span>);<span class="_ _12"> </span><span class="ffb fc5">//<span class="_ _9"> </span>flush<span class="_ _9"> </span>disable</span></div><div class="t m0 xe hd y3e ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>buffer<span class="_ _9"> </span>increase</div><div class="t m0 x6 hd y3f ff5 fs7 fc9 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">BUFFER_SIZE<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>1024<span class="_ _9"> </span>*<span class="_ _e"> </span>1024</span>;<span class="_ _13"> </span><span class="ffb fc5">//<span class="_ _9"> </span>1<span class="_ _9"> </span>MB</span></span></span></div><div class="t m0 x6 hd y40 ff5 fs7 fc6 sc0 ls0 ws0">char<span class="_ _9"> </span><span class="ffc fc0">buffer[BUFFER_SIZE];</span></div><div class="t m0 x6 hd y41 ffc fs7 fc0 sc0 ls0 ws0">fin.rdbuf()<span class="fc8">-></span>pubsetbuf(buffer,<span class="_ _9"> </span>BUFFER_SIZE);</div><div class="t m0 x6 hd y42 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>--------------------------------------------------------</div><div class="t m0 x6 hd y43 ffc fs7 fc0 sc0 ls0 ws0">fin.open(filename);<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _9"> </span>Note:<span class="_ _e"> </span>open()<span class="_ _9"> </span>after<span class="_ _9"> </span>optimizations</span></div><div class="t m0 x6 hd y44 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>IO<span class="_ _9"> </span>operations</div><div class="t m0 x6 hd y45 ffc fs7 fc0 sc0 ls0 ws0">fin.close();</div><div class="t m0 xd hd y46 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">7/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfa" class="pf w0 h0" data-page-no="a"><div class="pc pca w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 he y7 ff5 fs3 fc1 sc0 ls0 ws0">printf</div><div class="t m0 xb hb y47 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _14"> </span><span class="ff8">printf<span class="_ _10"> </span><span class="ff4">is<span class="_ _c"> </span>faster<span class="_ _c"> </span>than<span class="_ _10"> </span></span>ostream<span class="_ _10"> </span><span class="ff4">(see<span class="_ _f"> </span></span>speed<span class="_ _15"> </span>test<span class="_ _15"> </span>link<span class="ff4">)</span></span></div><div class="t m0 xb hb y48 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">A<span class="_ _10"> </span><span class="ff8">printf<span class="_ _10"> </span></span>call<span class="_ _c"> </span>with<span class="_ _c"> </span>a<span class="_ _f"> </span>simple<span class="_ _c"> </span>format<span class="_ _c"> </span>string<span class="_ _c"> </span>ending<span class="_ _f"> </span>with<span class="_ _10"> </span><span class="ff9">\<span class="ff8">n<span class="_ _10"> </span></span></span>is<span class="_ _c"> </span>converted<span class="_ _c"> </span>to<span class="_ _f"> </span>a</span></div><div class="t m0 xc hb y49 ff8 fs6 fc0 sc0 ls0 ws0">puts()<span class="_ _10"> </span><span class="ff4">call</span></div><div class="t m0 xc hd y4a ffc fs7 fc0 sc0 ls0 ws0">printf(<span class="fca">"Hello<span class="_ _9"> </span>World<span class="ff5 fcb">\n</span>"</span>);</div><div class="t m0 xc hd y4b ffc fs7 fc0 sc0 ls0 ws0">printf(<span class="fca">"%s<span class="ff5 fcb">\n</span>"</span>,<span class="_ _9"> </span>string);</div><div class="t m0 xb hb y4c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">No<span class="_ _c"> </span>optimization<span class="_ _f"> </span>if<span class="_ _c"> </span>the<span class="_ _f"> </span>string<span class="_ _c"> </span>is<span class="_ _f"> </span>not<span class="_ _c"> </span>ending<span class="_ _c"> </span>with<span class="_ _10"> </span><span class="ff9">\<span class="ff8">n<span class="_ _10"> </span></span></span>or<span class="_ _c"> </span>one<span class="_ _c"> </span>or<span class="_ _c"> </span>mo<span class="_ _3"></span>re<span class="_ _10"> </span><span class="ff8">%<span class="_ _10"> </span></span>a<span class="_ _3"></span>re</span></div><div class="t m0 x6 hb y4d ff4 fs6 fc0 sc0 ls0 ws0">detected<span class="_ _c"> </span>in<span class="_ _c"> </span>the<span class="_ _f"> </span>format<span class="_ _c"> </span>string</div><div class="t m0 xb hd y4e ffc fs7 fcc sc0 ls0 ws0">www.ciselant.de/projects/gcc_printf/gcc_printf.html</div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">8/87</div><a class="l" href="https://github.com/fmtlib/fmt#speed-tests"><div class="d m1" style="border-style:none;position:absolute;left:228.032000px;bottom:180.341000px;width:87.902000px;height:16.930000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://www.ciselant.de/projects/gcc_printf/gcc_printf.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:2.859000px;width:242.067000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfb" class="pf w0 h0" data-page-no="b"><div class="pc pcb w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIX0lEQVR42u3YsQ3CMBRFURvFSskMUSomQIgaic2yRMZJkSGyAVVK3JiOKjX6QueM8Kqrl8frPQEAQBjbupysAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAICvXGu1AgAAcZRSPKkAAIQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIA8D+6fRqscOj1mI0AAPB7l9sz53Pf9ndKrTWDAAAQwgcnPRQE0vCkzwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _9"> </span>Mapp<span class="_ _b"></span>ed<span class="_ _9"> </span>I/O</div><div class="t m0 x1 hb y4f ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _c"> </span><span class="ff1">memory-mapped<span class="_ _8"> </span>file<span class="_ _c"> </span></span>is<span class="_ _f"> </span>a<span class="_ _c"> </span>segment<span class="_ _f"> </span>of<span class="_ _c"> </span>virtual<span class="_ _f"> </span>memo<span class="_ _3"></span>ry<span class="_ _f"> </span>that<span class="_ _c"> </span>has<span class="_ _f"> </span>b<span class="_ _b"></span>een<span class="_ _c"> </span>assigned<span class="_ _f"> </span>a</div><div class="t m0 x1 hb y50 ff4 fs6 fc0 sc0 ls0 ws0">direct<span class="_ _c"> </span>byte-fo<span class="_ _3"></span>r-b<span class="_ _3"></span>yte<span class="_ _f"> </span>co<span class="_ _3"></span>rrelation<span class="_ _f"> </span>with<span class="_ _c"> </span>some<span class="_ _f"> </span>p<span class="_ _b"></span>ortion<span class="_ _c"> </span>of<span class="_ _c"> </span>a<span class="_ _c"> </span>file</div><div class="t m0 x1 hb y51 ff1 fs6 fc0 sc0 ls0 ws0">Benefits:</div><div class="t m0 xb hb y52 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Orders<span class="_ _c"> </span>of<span class="_ _f"> </span>magnitude<span class="_ _c"> </span>faster<span class="_ _f"> </span>than<span class="_ _c"> </span>system<span class="_ _f"> </span>calls</span></div><div class="t m0 xb hb y53 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Input<span class="_ _c"> </span>can<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>“cached”<span class="_ _f"> </span>in<span class="_ _c"> </span>RAM<span class="_ _f"> </span>memo<span class="_ _3"></span>ry<span class="_ _f"> </span>(page/file<span class="_ _c"> </span>cache)</span></div><div class="t m0 xb hb y54 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">A<span class="_ _c"> </span>file<span class="_ _f"> </span>requires<span class="_ _c"> </span>disk<span class="_ _f"> </span>access<span class="_ _c"> </span>only<span class="_ _f"> </span>when<span class="_ _c"> </span>a<span class="_ _c"> </span>new<span class="_ _f"> </span>page<span class="_ _c"> </span>b<span class="_ _0"></span>ounda<span class="_ _3"></span>ry<span class="_ _c"> </span>is<span class="_ _c"> </span>crossed</span></div><div class="t m0 xb hb y55 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Memo<span class="_ _3"></span>ry-mapping<span class="_ _f"> </span>may<span class="_ _c"> </span>b<span class="_ _3"></span>ypass<span class="_ _c"> </span>the<span class="_ _f"> </span>page/sw<span class="_ _3"></span>ap<span class="_ _f"> </span>file<span class="_ _c"> </span>completely</span></div><div class="t m0 xb hb y56 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Load<span class="_ _c"> </span>and<span class="_ _f"> </span>sto<span class="_ _3"></span>re<span class="_ _f"> </span><span class="ffa">raw<span class="_ _9"> </span></span>data<span class="_ _c"> </span>(no<span class="_ _c"> </span>parsing/conversion)</span></div><div class="t m0 x7 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">9/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfc" class="pf w0 h0" data-page-no="c"><div class="pc pcc w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4YtcsArOIFZOIGItuJlLOI6FQ7iB1XGVaWLnAAfCH3meCcKX5uVPu8NpAACAMJ6P+8oKAABEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPhKtVYrAAAQR87ZJRUAgHBEKgAAIhUAAEQqAAAiFQAARCoAAH9n7Oit8zz7MACAZUopHb3WJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAIDAUq3VCgAAxJFzdkkFACAckQoAgEgFAACRCgBAd8bpurXCAq/zzQgAAL+wP15S2qzb9B6G1ppBAAAI4QP90RoCmyl3WAAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _9"> </span>Mapp<span class="_ _b"></span>ed<span class="_ _9"> </span>I/O<span class="_ _8"> </span>-<span class="_ _9"> </span>Example<span class="_ _16"> </span>1/2</div><div class="t m0 xd hf y57 ffb fs5 fc4 sc0 ls0 ws0">#if<span class="_ _8"> </span>!defined(__linux__)</div><div class="t m0 xf hf y58 ffb fs5 fc4 sc0 ls0 ws0">#error<span class="_ _8"> </span>It<span class="_ _17"> </span>works<span class="_ _8"> </span>only<span class="_ _17"> </span>on<span class="_ _8"> </span>linux</div><div class="t m0 xd hf y59 ffb fs5 fc4 sc0 ls0 ws0">#endif</div><div class="t m0 xd hf y5a ffb fs5 fc4 sc0 ls0 ws0">#include<span class="_ _6"> </span><span class="fc5"><fcntl.h><span class="_ _18"> </span>//::open</span></div><div class="t m0 xd hf y5b ffb fs5 fc4 sc0 ls0 ws0">#include<span class="_ _6"> </span><span class="fc5"><sys/mman.h><span class="_ _19"> </span>//::mmap</span></div><div class="t m0 xd hf y5c ffb fs5 fc4 sc0 ls0 ws0">#include<span class="_ _6"> </span><span class="fc5"><sys/stat.h><span class="_ _19"> </span>//::open</span></div><div class="t m0 xd hf y5d ffb fs5 fc4 sc0 ls0 ws0">#include<span class="_ _6"> </span><span class="fc5"><sys/types.h><span class="_ _1a"> </span>//::open</span></div><div class="t m0 xd hf y5e ffb fs5 fc4 sc0 ls0 ws0">#include<span class="_ _6"> </span><span class="fc5"><unistd.h><span class="_ _1b"> </span>//::lseek</span></div><div class="t m0 xd hf y5f ffb fs5 fc5 sc0 ls0 ws0">//<span class="_ _8"> </span>usage:<span class="_ _17"> </span>./exec<span class="_ _8"> </span><file><span class="_ _17"> </span><byte_size><span class="_ _8"> </span><mode></div><div class="t m0 xd hf y60 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc7">main<span class="fc0">(</span></span>int<span class="_ _17"> </span><span class="ffd fc0">argc,<span class="_ _17"> </span></span>char<span class="ffd fc8">*<span class="_ _8"> </span><span class="fc0">argv[])<span class="_ _17"> </span>{</span></span></div><div class="t m0 x10 hf y61 ff5 fs5 fc6 sc0 ls0 ws0">size_t<span class="_ _8"> </span><span class="ffd fc0">file_size<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>std<span class="fc8">::</span>stoll(argv[<span class="fc8">2</span>]);</span></div><div class="t m0 x10 hf y62 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _1c"> </span><span class="ffd fc0">is_read<span class="_ _1c"> </span><span class="fc8">=<span class="_ _8"> </span></span>std<span class="fc8">::</span>string(argv[<span class="fc8">3</span>])<span class="_ _17"> </span><span class="fc8">==<span class="_ _17"> </span><span class="fca">"READ"</span></span>;</span></div><div class="t m0 x10 hf y63 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">fd<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>is_read<span class="_ _8"> </span><span class="fc8">?<span class="_ _17"> </span>::</span>open(argv[<span class="fc8">1</span>],<span class="_ _17"> </span>O_RDONLY)<span class="_ _8"> </span><span class="fc8">:</span></span></div><div class="t m0 x11 hf y64 ffd fs5 fc8 sc0 ls0 ws0">::<span class="fc0">open(argv[</span>1<span class="fc0">],<span class="_ _8"> </span>O_RDWR<span class="_ _17"> </span></span>|<span class="_ _17"> </span><span class="fc0">O_CREAT<span class="_ _8"> </span></span>|<span class="_ _17"> </span><span class="fc0">O_TRUNC,<span class="_ _17"> </span>S_IRUSR<span class="_ _8"> </span></span>|<span class="_ _17"> </span><span class="fc0">S_IWUSR);</span></div><div class="t m0 x10 hf y65 ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(fd<span class="_ _17"> </span><span class="fc8">==<span class="_ _17"> </span>-1</span>)</span></div><div class="t m0 x12 hf y66 ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::open"</span>)<span class="_ _1d"> </span><span class="ffb fc5">//<span class="_ _8"> </span>try<span class="_ _17"> </span>to<span class="_ _8"> </span>get<span class="_ _17"> </span>the<span class="_ _8"> </span>last<span class="_ _17"> </span>byte</span></div><div class="t m0 x10 hf y67 ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(<span class="fc8">::</span>lseek(fd,<span class="_ _17"> </span></span>static_cast<span class="ffd fc8"><</span><span class="fc6">off_t<span class="ffd fc8">><span class="fc0">(file_size<span class="_ _17"> </span></span>-<span class="_ _8"> </span>1<span class="fc0">),<span class="_ _17"> </span>SEEK_SET)<span class="_ _17"> </span></span>==<span class="_ _8"> </span>-1<span class="fc0">)</span></span></span></div><div class="t m0 x12 hf y68 ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::lseek"</span>)</div><div class="t m0 x10 hf y69 ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(<span class="fc8">!</span>is_read<span class="_ _17"> </span><span class="fc8">&&<span class="_ _17"> </span>::</span>write(fd,<span class="_ _8"> </span><span class="fca">""</span>,<span class="_ _17"> </span><span class="fc8">1</span>)<span class="_ _17"> </span><span class="fc8">!=<span class="_ _8"> </span>1</span>)<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _17"> </span>try<span class="_ _8"> </span>to<span class="_ _17"> </span>write</span></span></div><div class="t m0 x12 hf y6a ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::write"</span>)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">10/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfd" class="pf w0 h0" data-page-no="d"><div class="pc pcd w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4YtcsArOIFZOIGItuJlLOI6FQ7iB1XGVaWLnAAfCH3meCcKX5uVPu8NpAACAMJ6P+8oKAABEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPhKtVYrAAAQR87ZJRUAgHBEKgAAIhUAAEQqAAAiFQAARCoAAH9n7Oit8zz7MACAZUopHb3WJRUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAIDAUq3VCgAAxJFzdkkFACAckQoAgEgFAACRCgBAd8bpurXCL7zONyMAACywP15S2qzb9B6G1ppBAAAI4QPChRoC3U5+GwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _17"> </span>Mapp<span class="_ _0"></span>ed<span class="_ _8"> </span>I/O<span class="_ _17"> </span>Example<span class="_ _1e"> </span>2/2</div><div class="t m0 xd hf y6b ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">mm_mode<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>(is_read)<span class="_ _8"> </span><span class="fc8">?<span class="_ _17"> </span></span>PROT_READ<span class="_ _17"> </span><span class="fc8">:<span class="_ _8"> </span></span>PROT_WRITE;</span></div><div class="t m0 xd hf y6c ffb fs5 fc5 sc0 ls0 ws0">//<span class="_ _8"> </span>Open<span class="_ _17"> </span>Memory<span class="_ _8"> </span>Mapped<span class="_ _17"> </span>file</div><div class="t m0 xd hf y6d ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">mmap_ptr<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span></span>static_cast<span class="ffd fc8"><</span><span class="fc6">char<span class="ffd fc8">*><span class="fc0">(</span></span></span></div><div class="t m0 x14 hf y6e ffd fs5 fc8 sc0 ls0 ws0">::<span class="fc0">mmap(<span class="ff5 fc9">nullptr</span>,<span class="_ _8"> </span>file_size,<span class="_ _17"> </span>mm_mode,<span class="_ _17"> </span>MAP_SHARED,<span class="_ _8"> </span>fd,<span class="_ _17"> </span></span>0<span class="fc0">)<span class="_ _17"> </span>);</span></div><div class="t m0 xd hf y6f ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(mmap_ptr<span class="_ _17"> </span><span class="fc8">==<span class="_ _17"> </span></span>MAP_FAILED)</span></div><div class="t m0 xf hf y70 ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::mmap"</span>);</div><div class="t m0 xd hf y71 ffb fs5 fc5 sc0 ls0 ws0">//<span class="_ _8"> </span>Advise<span class="_ _17"> </span>sequential<span class="_ _8"> </span>access</div><div class="t m0 xd hf y72 ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(<span class="fc8">::</span>madvise(mmap_ptr,<span class="_ _17"> </span>file_size,<span class="_ _17"> </span>MADV_SEQUENTIAL)<span class="_ _8"> </span><span class="fc8">==<span class="_ _17"> </span>-1</span>)</span></div><div class="t m0 xf hf y73 ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::madvise"</span>);</div><div class="t m0 xd hf y74 ffb fs5 fc5 sc0 ls0 ws0">//<span class="_ _8"> </span>MemoryMapped<span class="_ _17"> </span>Operations</div><div class="t m0 xd hf y75 ffb fs5 fc5 sc0 ls0 ws0">//<span class="_ _8"> </span>read<span class="_ _17"> </span>from/write<span class="_ _8"> </span>to<span class="_ _17"> </span>"mmap_ptr"<span class="_ _8"> </span>as<span class="_ _17"> </span>a<span class="_ _8"> </span>normal<span class="_ _17"> </span>array:<span class="_ _8"> </span>mmap_ptr[i]</div><div class="t m0 xd hf y76 ffb fs5 fc5 sc0 ls0 ws0">//<span class="_ _8"> </span>Close<span class="_ _17"> </span>Memory<span class="_ _8"> </span>Mapped<span class="_ _17"> </span>file</div><div class="t m0 xd hf y77 ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(<span class="fc8">::</span>munmap(mmap_ptr,<span class="_ _17"> </span>file_size)<span class="_ _17"> </span><span class="fc8">==<span class="_ _8"> </span>-1</span>)</span></div><div class="t m0 xf hf y78 ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::munmap"</span>);</div><div class="t m0 xd hf y79 ff5 fs5 fc9 sc0 ls0 ws0">if<span class="_ _8"> </span><span class="ffd fc0">(<span class="fc8">::</span>close(fd)<span class="_ _17"> </span><span class="fc8">==<span class="_ _17"> </span>-1</span>)</span></div><div class="t m0 xf hf y7a ffd fs5 fc0 sc0 ls0 ws0">ERROR(<span class="fca">"::close"</span>);</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">11/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pfe" class="pf w0 h0" data-page-no="e"><div class="pc pce w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGIt3GYu4TgWDuEGVsdVpomdlY0i8h88zwThS/Py583ukAAAIIzb9bKwAgAA0YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABecq3VCgAAxFFKcUkFACAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAAPCBbkZvnabJhwEAfKfv+xm91iUVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAH4t11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAiK4bT2sr/N/9eDYCAMBb2/2Q82rZxkdKrTWDAAAQwhMOVxoCGYEx+AAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _3"></span>w-Level<span class="_ _17"> </span>Pa<span class="_ _3"></span>rsing<span class="_ _1f"> </span>1/2</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">Consider<span class="_ _c"> </span>using<span class="_ _c"> </span>optimized<span class="_ _f"> </span>(low-level)<span class="_ _c"> </span>numeric<span class="_ _c"> </span>conversion<span class="_ _c"> </span>routines:</div><div class="t m0 xd hf y7c ff5 fs5 fc9 sc0 ls0 ws0">template<span class="ffd fc8"><</span><span class="fc6">int<span class="_ _8"> </span><span class="ffd fc0">N,<span class="_ _17"> </span></span>unsigned<span class="_ _17"> </span><span class="ffd fc0">MUL,<span class="_ _8"> </span></span>int<span class="_ _17"> </span><span class="ffd fc0">INDEX<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0></span></span></span></div><div class="t m0 xd hf y7d ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">fastStringToIntStr<span class="ffd fc0">;</span></span></div><div class="t m0 xd hf y7e ff5 fs5 fc9 sc0 ls0 ws0">inline<span class="_ _8"> </span><span class="fc6">unsigned<span class="_ _17"> </span><span class="ffd fc7">fastStringToUnsigned<span class="fc0">(</span></span></span>const<span class="_ _17"> </span><span class="fc6">char<span class="ffd fc8">*<span class="_ _8"> </span><span class="fc0">str,<span class="_ _17"> </span></span></span>int<span class="_ _17"> </span><span class="ffd fc0">length)<span class="_ _8"> </span>{</span></span></div><div class="t m0 xf hf y7f ff5 fs5 fc9 sc0 ls0 ws0">switch<span class="ffd fc0">(length)<span class="_ _8"> </span>{</span></div><div class="t m0 x15 hf y80 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _8"> </span><span class="ffd fc8">10<span class="fc0">:<span class="_ _17"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><10</span>,<span class="_ _8"> </span><span class="fc8">1000000000>::</span>aux(str);</span></div><div class="t m0 x15 hf y81 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">9<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>9</span>,<span class="_ _8"> </span><span class="fc8">100000000>::</span>aux(str);</span></div><div class="t m0 x15 hf y82 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">8<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>8</span>,<span class="_ _8"> </span><span class="fc8">10000000>::</span>aux(str);</span></div><div class="t m0 x15 hf y83 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">7<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>7</span>,<span class="_ _8"> </span><span class="fc8">1000000>::</span>aux(str);</span></div><div class="t m0 x15 hf y84 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">6<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>6</span>,<span class="_ _8"> </span><span class="fc8">100000>::</span>aux(str);</span></div><div class="t m0 x15 hf y85 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">5<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>5</span>,<span class="_ _8"> </span><span class="fc8">10000>::</span>aux(str);</span></div><div class="t m0 x15 hf y86 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">4<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>4</span>,<span class="_ _8"> </span><span class="fc8">1000>::</span>aux(str);</span></div><div class="t m0 x15 hf y87 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">3<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>3</span>,<span class="_ _8"> </span><span class="fc8">100>::</span>aux(str);</span></div><div class="t m0 x15 hf y88 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">2<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>2</span>,<span class="_ _8"> </span><span class="fc8">10>::</span>aux(str);</span></div><div class="t m0 x15 hf y89 ff5 fs5 fc9 sc0 ls0 ws0">case<span class="_ _14"> </span><span class="ffd fc8">1<span class="fc0">:<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">fastStringToIntStr<span class="fc8"><<span class="_ _17"> </span>1</span>,<span class="_ _8"> </span><span class="fc8">1>::</span>aux(str);</span></div><div class="t m0 x15 hf y8a ff5 fs5 fc9 sc0 ls0 ws0">default<span class="ffd fc8">:<span class="_ _8"> </span></span>return<span class="_ _17"> </span><span class="ffd fc8">0<span class="fc0">;</span></span></div><div class="t m0 xf hf y8b ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y8c ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">12/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pff" class="pf w0 h0" data-page-no="f"><div class="pc pcf w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImUlEQVR42u3ZsU0DQRCG0Vt0I6KTa7AcUQFCxEhugcD1uAl34MA1IBFQBB0QWRdgJjlnDgnsZA7eq2D1b/Jpt60enzsAACjj8+P9zgoAAFQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAuGiZaQUAAOqICC+pAACUI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAC/6Wd01nEcXRgAwHWGYZjRab2kAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAf1PLTCsAAFBHRHhJBQCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAAbtPP5aDfp9P6dePCYF7eDnsjAHCFlplWAACgjojw3Q8AQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAABwi/64XVqhoK+XnREAgP/p4Wnd2uJ+Ov503TRNBgEAoIQzDIwjAMxPjBgAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _3"></span>w-Level<span class="_ _17"> </span>Pa<span class="_ _3"></span>rsing<span class="_ _1f"> </span>2/2</div><div class="t m0 xd hd y8d ff5 fs7 fc9 sc0 ls0 ws0">template<span class="ffc fc8"><</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">N,<span class="_ _9"> </span></span>unsigned<span class="_ _e"> </span><span class="ffc fc0">MUL,<span class="_ _9"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">INDEX<span class="fc8">></span></span></span></div><div class="t m0 xd hd y8e ff5 fs7 fc9 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc7">fastStringToIntStr<span class="_ _9"> </span><span class="ffc fc0">{</span></span></div><div class="t m0 x6 hd y8f ff5 fs7 fc9 sc0 ls0 ws0">static<span class="_ _9"> </span>inline<span class="_ _9"> </span><span class="fc6">unsigned<span class="_ _e"> </span><span class="ffc fc7">aux<span class="fc0">(</span></span></span>const<span class="_ _9"> </span><span class="fc6">char<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">str)<span class="_ _e"> </span>{</span></span></span></div><div class="t m0 x16 hd y90 ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span>static_cast<span class="ffc fc8"><</span><span class="fc6">unsigned<span class="ffc fc8">><span class="fc0">(str[INDEX]<span class="_ _9"> </span></span>-<span class="_ _e"> </span><span class="ffe fca">'<span class="ffc">0</span>'</span><span class="fc0">)<span class="_ _9"> </span></span>*<span class="_ _9"> </span><span class="fc0">MUL<span class="_ _20"> </span></span>+</span></span></div><div class="t m0 x17 hd y91 ffc fs7 fc0 sc0 ls0 ws0">fastStringToIntStr<span class="fc8"><</span>N<span class="_ _9"> </span><span class="fc8">-<span class="_ _9"> </span>1</span>,<span class="_ _e"> </span>MUL<span class="_ _9"> </span><span class="fc8">/<span class="_ _9"> </span>10</span>,<span class="_ _e"> </span>INDEX<span class="_ _9"> </span><span class="fc8">+<span class="_ _9"> </span>1>::</span>aux(str);</div><div class="t m0 x6 hd y92 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hd y93 ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hd y94 ff5 fs7 fc9 sc0 ls0 ws0">template<span class="ffc fc8"><</span><span class="fc6">unsigned<span class="_ _9"> </span><span class="ffc fc0">MUL,<span class="_ _9"> </span></span>int<span class="_ _e"> </span><span class="ffc fc0">INDEX<span class="fc8">></span></span></span></div><div class="t m0 xd hd y95 ff5 fs7 fc9 sc0 ls0 ws0">struct<span class="_ _9"> </span><span class="fc7">fastStringToIntStr<span class="ffc fc8"><1<span class="fc0">,<span class="_ _9"> </span>MUL,<span class="_ _e"> </span>INDEX</span>><span class="_ _9"> </span><span class="fc0">{</span></span></span></div><div class="t m0 x6 hd y96 ff5 fs7 fc9 sc0 ls0 ws0">static<span class="_ _9"> </span>inline<span class="_ _9"> </span><span class="fc6">unsigned<span class="_ _e"> </span><span class="ffc fc7">aux<span class="fc0">(</span></span></span>const<span class="_ _9"> </span><span class="fc6">char<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">str)<span class="_ _e"> </span>{</span></span></span></div><div class="t m0 x16 hd y97 ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span>static_cast<span class="ffc fc8"><</span><span class="fc6">unsigned<span class="ffc fc8">><span class="fc0">(str[INDEX]<span class="_ _9"> </span></span>-<span class="_ _e"> </span><span class="ffe fca">'<span class="ffc">0</span>'</span><span class="fc0">);</span></span></span></div><div class="t m0 x6 hd y98 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hd y99 ffc fs7 fc0 sc0 ls0 ws0">};</div><div class="t m0 xb h10 y9a fff fs7 fcc sc0 ls0 ws0">F<span class="_ _3"></span>aster<span class="_ _d"> </span>parsing:<span class="_ _f"> </span><span class="ffc">lemire.me/blog/tag/simd-swar-parsing</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">13/87</div><a class="l" href="https://lemire.me/blog/tag/simd-swar-parsing/"><div class="d m1" style="border-style:none;position:absolute;left:95.184000px;bottom:4.498000px;width:171.457000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf10" class="pf w0 h0" data-page-no="10"><div class="pc pc10 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Sp<span class="_ _b"></span>eed<span class="_ _17"> </span>Up<span class="_ _17"> </span>Raw<span class="_ _8"> </span>Data<span class="_ _9"> </span>Loading<span class="_ _21"> </span>1/2</div><div class="t m0 xb hb y9b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Ha<span class="_ _3"></span>rd<span class="_ _f"> </span>disk<span class="_ _c"> </span>is<span class="_ _f"> </span>orders<span class="_ _c"> </span>of<span class="_ _c"> </span>magnitude<span class="_ _c"> </span>slow<span class="_ _3"></span>er<span class="_ _c"> </span>than<span class="_ _c"> </span>RAM</span></div><div class="t m0 xb hb y9c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">P<span class="_ _3"></span>arsing<span class="_ _c"> </span>is<span class="_ _c"> </span>faster<span class="_ _f"> </span>than<span class="_ _c"> </span>data<span class="_ _f"> </span>reading</span></div><div class="t m0 xb hb y9d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">P<span class="_ _3"></span>arsing<span class="_ _c"> </span>can<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>avoided<span class="_ _c"> </span>by<span class="_ _c"> </span>using<span class="_ _c"> </span><span class="ffa">binary<span class="_ _9"> </span></span>sto<span class="_ _3"></span>rage<span class="_ _f"> </span>and<span class="_ _10"> </span><span class="ff8">mmap</span></span></div><div class="t m0 xb hb y9e ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Decreasing<span class="_ _c"> </span>the<span class="_ _f"> </span>numb<span class="_ _b"></span>er<span class="_ _c"> </span>of<span class="_ _f"> </span>ha<span class="_ _3"></span>rd<span class="_ _f"> </span>disk<span class="_ _c"> </span>accesses<span class="_ _f"> </span>improves<span class="_ _c"> </span>the<span class="_ _c"> </span>p<span class="_ _b"></span>erfo<span class="_ _3"></span>rmance<span class="_ _f"> </span><span class="ff10">→</span></span></div><div class="t m0 x6 hb y9f ff1 fs6 fc0 sc0 ls0 ws0">comp<span class="_ _3"></span>ression</div><div class="t m0 x1 hb ya0 ff1 fs6 fc0 sc0 ls0 ws0">LZ4<span class="_ _c"> </span><span class="ff4">is<span class="_ _c"> </span>lossless<span class="_ _f"> </span>compression<span class="_ _c"> </span>algo<span class="_ _3"></span>rithm<span class="_ _c"> </span>providing<span class="_ _c"> </span><span class="ffa">extremely<span class="_ _c"> </span>fast<span class="_ _f"> </span>decomp<span class="_ _3"></span>ression<span class="_ _f"> </span><span class="ff4">up<span class="_ _f"> </span>to</span></span></span></div><div class="t m0 x1 hb ya1 ff4 fs6 fc0 sc0 ls0 ws0">35%<span class="_ _c"> </span>of<span class="_ _17"> </span><span class="ff8">memcpy<span class="_ _f"> </span></span>and<span class="_ _c"> </span>go<span class="_ _b"></span>o<span class="_ _b"></span>d<span class="_ _f"> </span>compression<span class="_ _c"> </span>ratio</div><div class="t m0 x1 h11 ya2 ff8 fs6 fc0 sc0 ls0 ws0">github.com/lz4/lz4</div><div class="t m0 x1 hb ya3 ff4 fs6 fc0 sc0 ls0 ws0">Another<span class="_ _c"> </span>alternative<span class="_ _c"> </span>is<span class="_ _f"> </span><span class="ff1">Facebo<span class="_ _b"></span>ok<span class="_ _8"> </span>zstd</span></div><div class="t m0 x1 h11 ya4 ff8 fs6 fc0 sc0 ls0 ws0">github.com/facebook/zstd</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">14/87</div><a class="l" href="https://github.com/lz4/lz4"><div class="d m1" style="border-style:none;position:absolute;left:27.350000px;bottom:53.363000px;width:105.083000px;height:11.992000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://github.com/facebook/zstd"><div class="d m1" style="border-style:none;position:absolute;left:27.350000px;bottom:11.764000px;width:139.447000px;height:11.993000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf11" class="pf w0 h0" data-page-no="11"><div class="pc pc11 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Sp<span class="_ _b"></span>eed<span class="_ _17"> </span>Up<span class="_ _17"> </span>Raw<span class="_ _8"> </span>Data<span class="_ _9"> </span>Loading<span class="_ _21"> </span>2/2</div><div class="t m0 x1 hb ya5 ff4 fs6 fc0 sc0 ls0 ws0">P<span class="_ _3"></span>erformance<span class="_ _c"> </span>compa<span class="_ _3"></span>rison<span class="_ _f"> </span>of<span class="_ _c"> </span>different<span class="_ _f"> </span>metho<span class="_ _b"></span>ds<span class="_ _c"> </span>for<span class="_ _c"> </span>a<span class="_ _c"> </span>file<span class="_ _c"> </span>of<span class="_ _f"> </span>4.8<span class="_ _c"> </span>GB<span class="_ _f"> </span>of<span class="_ _c"> </span>integer<span class="_ _f"> </span>values</div><div class="t m0 x18 h6 ya6 ff1 fs4 fc0 sc0 ls0 ws0">Load<span class="_ _c"> </span>Metho<span class="_ _b"></span>d<span class="_ _22"> </span>Exec.<span class="_ _e"> </span>Time<span class="_ _23"> </span>Sp<span class="_ _b"></span>eedup</div><div class="t m0 x19 h6 ya7 ff8 fs4 fc0 sc0 ls0 ws0">ifstream<span class="_ _24"> </span><span class="ff4">102<span class="_ _25"> </span>667<span class="_ _d"> </span>ms<span class="_ _26"> </span>1.0x</span></div><div class="t m0 x19 h6 ya8 ff8 fs4 fc0 sc0 ls0 ws0">memory<span class="_ _e"> </span>mapped<span class="_ _6"> </span>+<span class="_ _6"> </span>parsing<span class="_ _e"> </span>(first<span class="_ _6"> </span>run)<span class="_ _27"> </span><span class="ff4">30<span class="_ _25"> </span>235<span class="_ _d"> </span>ms<span class="_ _26"> </span>3.4x</span></div><div class="t m0 x19 h6 ya9 ff8 fs4 fc0 sc0 ls0 ws0">memory<span class="_ _e"> </span>mapped<span class="_ _6"> </span>+<span class="_ _6"> </span>parsing<span class="_ _e"> </span>(second<span class="_ _6"> </span>run)<span class="_ _28"> </span><span class="ff4">22<span class="_ _25"> </span>509<span class="_ _d"> </span>ms<span class="_ _26"> </span>4.5x</span></div><div class="t m0 x19 h6 yaa ff8 fs4 fc0 sc0 ls0 ws0">memory<span class="_ _e"> </span>mapped<span class="_ _6"> </span>+<span class="_ _6"> </span>lz4<span class="_ _e"> </span>(first<span class="_ _6"> </span>run)<span class="_ _29"> </span><span class="ff4">3<span class="_ _25"> </span>914<span class="_ _d"> </span>ms<span class="_ _2a"> </span>26.2x</span></div><div class="t m0 x19 h6 yab ff8 fs4 fc0 sc0 ls0 ws0">memory<span class="_ _e"> </span>mapped<span class="_ _6"> </span>+<span class="_ _6"> </span>lz4<span class="_ _e"> </span>(second<span class="_ _6"> </span>run)<span class="_ _2b"> </span><span class="ff4">1<span class="_ _25"> </span>261<span class="_ _d"> </span>ms<span class="_ _2a"> </span>81.4x</span></div><div class="t m0 x1 h6 yac ff4 fs4 fc0 sc0 ls0 ws0">NOTE:<span class="_ _d"> </span>the<span class="_ _c"> </span>size<span class="_ _d"> </span>of<span class="_ _c"> </span>the<span class="_ _d"> </span>Lz4<span class="_ _c"> </span>comp<span class="_ _3"></span>ressed<span class="_ _c"> </span>file<span class="_ _d"> </span>is<span class="_ _c"> </span>1,8<span class="_ _d"> </span>GB</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">15/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf12" class="pf w0 h0" data-page-no="12"><div class="pc pc12 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 yad ff1 fs0 fc0 sc0 ls0 ws0">Memo<span class="_ _7"></span>ry</div><div class="t m0 x8 h2 yae ff1 fs0 fc0 sc0 ls0 ws0">Optimizations</div><a class="l" href="#pf12" data-dest-detail='[18,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:149.618000px;width:241.993000px;height:24.025000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf12" data-dest-detail='[18,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:115.247000px;width:158.930000px;height:24.025000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf13" class="pf w0 h0" data-page-no="13"><div class="pc pc13 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Heap<span class="_ _17"> </span>Memo<span class="_ _3"></span>ry</div><div class="t m0 xb hb yaf ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Dynamic<span class="_ _c"> </span>heap<span class="_ _f"> </span>allo<span class="_ _b"></span>cation<span class="_ _c"> </span>is<span class="_ _f"> </span>exp<span class="_ _b"></span>ensive<span class="_ _0"></span><span class="ff4">:<span class="_ _9"> </span>implementation<span class="_ _f"> </span>dep<span class="_ _b"></span>endent<span class="_ _c"> </span>and<span class="_ _f"> </span>interact</span></span></div><div class="t m0 x6 hb yb0 ff4 fs6 fc0 sc0 ls0 ws0">with<span class="_ _c"> </span>the<span class="_ _c"> </span>op<span class="_ _0"></span>erating<span class="_ _c"> </span>system</div><div class="t m0 xb hb yb1 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Many<span class="_ _c"> </span>small<span class="_ _c"> </span>heap<span class="_ _f"> </span>allo<span class="_ _b"></span>cations<span class="_ _c"> </span>are<span class="_ _c"> </span>mo<span class="_ _3"></span>re<span class="_ _f"> </span>exp<span class="_ _b"></span>ensive<span class="_ _c"> </span>than<span class="_ _c"> </span>one<span class="_ _f"> </span>large<span class="_ _c"> </span>memo<span class="_ _3"></span>ry<span class="_ _c"> </span>allo<span class="_ _b"></span>cation</span></div><div class="t m0 x6 h6 yb2 ff4 fs4 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>default<span class="_ _c"> </span>page<span class="_ _d"> </span>size<span class="_ _c"> </span>on<span class="_ _d"> </span>Linux<span class="_ _c"> </span>is<span class="_ _d"> </span>4<span class="_ _c"> </span>KB.<span class="_ _d"> </span>Fo<span class="_ _3"></span>r<span class="_ _c"> </span>smaller/multiple<span class="_ _d"> </span>sizes,<span class="_ _c"> </span>C++<span class="_ _d"> </span>uses<span class="_ _c"> </span>a</div><div class="t m0 x6 h6 yb3 ff4 fs4 fc0 sc0 ls0 ws0">sub-allo<span class="_ _b"></span>cato<span class="_ _3"></span>r</div><div class="t m0 xb hb yb4 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Allo<span class="_ _b"></span>cations<span class="_ _c"> </span>within<span class="_ _f"> </span>the<span class="_ _c"> </span>page<span class="_ _f"> </span>size<span class="_ _c"> </span>is<span class="_ _f"> </span>faster<span class="_ _c"> </span>than<span class="_ _f"> </span>la<span class="_ _3"></span>rger<span class="_ _f"> </span>allo<span class="_ _b"></span>cations<span class="_ _9"> </span><span class="ff4">(sub-allo<span class="_ _b"></span>cato<span class="_ _3"></span>r)</span></span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">16/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf14" class="pf w0 h0" data-page-no="14"><div class="pc pc14 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Stack<span class="_ _17"> </span>Memo<span class="_ _3"></span>ry</div><div class="t m0 xb hb yb5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Stack<span class="_ _c"> </span>memory<span class="_ _c"> </span>is<span class="_ _c"> </span>faster<span class="_ _c"> </span>than<span class="_ _f"> </span>heap<span class="_ _c"> </span>memory<span class="ff4">.<span class="_ _9"> </span>The<span class="_ _f"> </span>stack<span class="_ _c"> </span>memory<span class="_ _c"> </span>p<span class="_ _3"></span>rovides<span class="_ _f"> </span>high</span></span></div><div class="t m0 x6 hb yb6 ff4 fs6 fc0 sc0 ls0 ws0">lo<span class="_ _b"></span>calit<span class="_ _3"></span>y<span class="_ _3"></span>,<span class="_ _c"> </span>it<span class="_ _c"> </span>is<span class="_ _c"> </span>small<span class="_ _f"> </span>(cache<span class="_ _c"> </span>fit),<span class="_ _f"> </span>and<span class="_ _c"> </span>its<span class="_ _c"> </span>size<span class="_ _f"> </span>is<span class="_ _c"> </span>known<span class="_ _c"> </span>at<span class="_ _c"> </span>compile-time</div><div class="t m0 xb hb yb7 ff7 fs6 fc0 sc0 ls0 ws0">•</div><div class="t m0 xc hb yb8 ff5 fs6 fc0 sc0 ls0 ws0">static<span class="_ _10"> </span><span class="ff4">stack<span class="_ _c"> </span>allo<span class="_ _b"></span>cations<span class="_ _f"> </span>p<span class="_ _3"></span>ro<span class="_ _b"></span>duce<span class="_ _f"> </span>b<span class="_ _b"></span>etter<span class="_ _c"> </span>co<span class="_ _b"></span>de.<span class="_ _e"> </span>It<span class="_ _c"> </span>avoids<span class="_ _f"> </span>filling<span class="_ _c"> </span>the<span class="_ _f"> </span>stack<span class="_ _c"> </span>each</span></div><div class="t m0 x6 hb yb9 ff4 fs6 fc0 sc0 ls0 ws0">time<span class="_ _c"> </span>the<span class="_ _c"> </span>function<span class="_ _f"> </span>is<span class="_ _c"> </span>reached</div><div class="t m0 xb hb yba ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _14"> </span><span class="ff5">constexpr<span class="_ _10"> </span><span class="ff4">a<span class="_ _3"></span>rrays<span class="_ _c"> </span>with<span class="_ _c"> </span>dynamic<span class="_ _c"> </span>indexing<span class="_ _f"> </span>produces<span class="_ _c"> </span>very<span class="_ _f"> </span>inefficient<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _f"> </span>with</span></span></div><div class="t m0 x6 hb ybb ff4 fs6 fc0 sc0 ls0 ws0">GCC.<span class="_ _c"> </span>Use<span class="_ _10"> </span><span class="ff5">static<span class="_ _15"> </span>constexpr<span class="_ _10"> </span></span>instead</div><div class="t m0 xc hd ybc ff5 fs7 fc6 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc7">f<span class="fc0">(</span></span>int<span class="_ _9"> </span><span class="ffc fc0">x)<span class="_ _e"> </span>{</span></div><div class="t m0 xc hd ybd ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>bad<span class="_ _9"> </span>performance<span class="_ _e"> </span>with<span class="_ _9"> </span>GCC</div><div class="t m0 xc hd ybe ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _20"> </span>constexpr<span class="_ _2c"> </span>int<span class="_ _9"> </span>array[]<span class="_ _9"> </span>=<span class="_ _e"> </span>{1,2,3,4,5,6,7,8,9};</div><div class="t m0 x1a hd ybf ff5 fs7 fc9 sc0 ls0 ws0">static<span class="_ _9"> </span>constexpr<span class="_ _9"> </span><span class="fc6">int<span class="_ _e"> </span><span class="ffc fc0">array[]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>{<span class="fc8">1</span>,<span class="fc8">2</span>,<span class="fc8">3</span>,<span class="fc8">4</span>,<span class="fc8">5</span>,<span class="fc8">6</span>,<span class="fc8">7</span>,<span class="fc8">8</span>,<span class="fc8">9</span>};</span></span></div><div class="t m0 x1a hd yc0 ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">array[x];</span></div><div class="t m0 xc hd yc1 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">17/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf15" class="pf w0 h0" data-page-no="15"><div class="pc pc15 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Cache<span class="_ _17"> </span>Utilization</div><div class="t m0 x1 hb yc2 ff1 fs6 fc0 sc0 ls0 ws0">Maximize<span class="_ _f"> </span>cache<span class="_ _8"> </span>utilization<span class="ff4">:</span></div><div class="t m0 xb hb yc3 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Maximize<span class="_ _c"> </span>spatial<span class="_ _f"> </span>and<span class="_ _c"> </span>temp<span class="_ _b"></span>oral<span class="_ _c"> </span>lo<span class="_ _b"></span>calit<span class="_ _3"></span>y<span class="_ _f"> </span>(see<span class="_ _c"> </span>next<span class="_ _f"> </span>examples)</span></div><div class="t m0 xb hb yc4 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _c"> </span>small<span class="_ _f"> </span>data<span class="_ _c"> </span>types</span></div><div class="t m0 xb hb yc5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff8">std::vector<bool><span class="_ _10"> </span></span>over<span class="_ _c"> </span>arra<span class="_ _3"></span>y<span class="_ _c"> </span>of<span class="_ _10"> </span><span class="ff8">bool</span></span></div><div class="t m0 xb hb yc6 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff8">std::bitset<N><span class="_ _10"> </span></span>over<span class="_ _10"> </span><span class="ff8">std::vector<bool><span class="_ _10"> </span></span>if<span class="_ _c"> </span>the<span class="_ _c"> </span>data<span class="_ _f"> </span>size<span class="_ _c"> </span>is<span class="_ _f"> </span>kno<span class="_ _3"></span>wn<span class="_ _f"> </span>in</span></div><div class="t m0 x6 hb yc7 ff4 fs6 fc0 sc0 ls0 ws0">advance<span class="_ _c"> </span>or<span class="_ _c"> </span>bounded</div><div class="t m0 xb hb yc8 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _c"> </span><span class="ffa">stack<span class="_ _9"> </span></span>data<span class="_ _c"> </span>structures<span class="_ _f"> </span><span class="ffa">instead<span class="_ _9"> </span></span>of<span class="_ _f"> </span>head<span class="_ _c"> </span>data<span class="_ _c"> </span>structures,<span class="_ _f"> </span>e.g.<span class="_ _4"> </span><span class="ff8">std::vector</span></span></div><div class="t m0 x6 hb yc9 ff4 fs6 fc0 sc0 ls0 ws0">vs.<span class="_ _4"> </span><span class="ff8">static<span class="_ _8"> </span>vector<span class="_ _11"> </span><span class="ff11 fs8"></span></span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">18/87</div><a class="l" href="https://github.com/volt-software/Ichor/blob/dev/include/ichor/stl/StaticVector.h"><div class="d m1" style="border-style:none;position:absolute;left:66.259000px;bottom:43.369000px;width:89.829000px;height:14.505000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf16" class="pf w0 h0" data-page-no="16"><div class="pc pc16 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Spatial<span class="_ _17"> </span>Lo<span class="_ _b"></span>cality<span class="_ _8"> </span>Example<span class="_ _2d"> </span>1/2</div><div class="t m0 x1 hb y7b ff8 fs6 fc0 sc0 ls0 ws0">A,<span class="_ _15"> </span>B,<span class="_ _15"> </span>C<span class="_ _c"> </span><span class="ff4">matrices<span class="_ _c"> </span>of<span class="_ _f"> </span>size<span class="_ _c"> </span><span class="ffa">N<span class="_ _c"> </span><span class="ff10">×<span class="_ _2e"> </span></span>N</span></span></div><div class="t m0 xd h11 yca ff8 fs6 fc0 sc0 ls0 ws0">C<span class="_ _15"> </span>=<span class="_ _15"> </span>A<span class="_ _15"> </span>*<span class="_ _15"> </span>B</div><div class="t m0 x8 hf ycb ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">i<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>i<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>i<span class="fc8">++</span>)<span class="_ _17"> </span>{</span></span></div><div class="t m0 x1b hf ycc ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">j<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>j<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>j<span class="fc8">++</span>)<span class="_ _17"> </span>{</span></span></div><div class="t m0 x1c hf ycd ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">sum<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span>0</span>;</span></div><div class="t m0 x1c hf yce ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">k<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>k<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>k<span class="fc8">++</span>)</span></span></div><div class="t m0 x1d hf ycf ffd fs5 fc0 sc0 ls0 ws0">sum<span class="_ _8"> </span><span class="fc8">+=<span class="_ _17"> </span></span>A[i][k]<span class="_ _17"> </span><span class="fc8">*<span class="_ _8"> </span></span>B[k][j];<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>row<span class="_ _17"> </span><span class="ff12">×<span class="_ _8"> </span></span>column</span></div><div class="t m0 x1c hf yd0 ffd fs5 fc0 sc0 ls0 ws0">C[i][j]<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span></span>sum;</div><div class="t m0 x1b hf yd1 ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x8 hf yd2 ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h11 yd3 ff8 fs6 fc0 sc0 ls0 ws0">C<span class="_ _15"> </span>=<span class="_ _15"> </span>A<span class="_ _15"> </span>*<span class="_ _15"> </span>B</div><div class="t m0 x1e h12 yd4 ff13 fs5 fc0 sc0 ls0 ws0">T</div><div class="t m0 x8 hf yd5 ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">i<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>i<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>i<span class="fc8">++</span>)<span class="_ _17"> </span>{</span></span></div><div class="t m0 x1b hf yd6 ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">j<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>j<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>j<span class="fc8">++</span>)<span class="_ _17"> </span>{</span></span></div><div class="t m0 x1c hf yd7 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">sum<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span>0</span>;</span></div><div class="t m0 x1c hf yd8 ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">k<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>k<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>k<span class="fc8">++</span>)</span></span></div><div class="t m0 x1d hf yd9 ffd fs5 fc0 sc0 ls0 ws0">sum<span class="_ _8"> </span><span class="fc8">+=<span class="_ _17"> </span></span>A[i][k]<span class="_ _17"> </span><span class="fc8">*<span class="_ _8"> </span><span class="fc3">B[j][k]</span></span>;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>row<span class="_ _17"> </span><span class="ff12">×<span class="_ _8"> </span></span>row</span></div><div class="t m0 x1c hf yda ffd fs5 fc0 sc0 ls0 ws0">C[i][j]<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span></span>sum;</div><div class="t m0 x1b hf ydb ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x8 hf ydc ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">19/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf17" class="pf w0 h0" data-page-no="17"><div class="pc pc17 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Spatial<span class="_ _17"> </span>Lo<span class="_ _b"></span>cality<span class="_ _8"> </span>Example<span class="_ _2d"> </span>2/2</div><div class="t m0 x1 hb ydd ff1 fs6 fc0 sc0 ls0 ws0">Benchma<span class="_ _3"></span>rk:</div><div class="t m0 x15 h11 yde ff5 fs6 fc0 sc0 ls0 ws0">N<span class="_ _2f"> </span><span class="ff8">64<span class="_ _2c"> </span>128<span class="_ _30"> </span>256<span class="_ _30"> </span>512<span class="_ _31"> </span>1024</span></div><div class="t m0 x15 hb ydf ff8 fs6 fc0 sc0 ls0 ws0">A<span class="_ _15"> </span>*<span class="_ _15"> </span>B<span class="_ _31"> </span><span class="ff14"><<span class="_ _c"> </span><span class="ff4">1<span class="_ _f"> </span>ms<span class="_ _32"> </span>5<span class="_ _c"> </span>ms<span class="_ _27"> </span>29<span class="_ _c"> </span>ms<span class="_ _28"> </span>141<span class="_ _c"> </span>ms<span class="_ _33"> </span>1,030<span class="_ _c"> </span>ms</span></span></div><div class="t m0 x15 h11 ye0 ff8 fs6 fc0 sc0 ls0 ws0">A<span class="_ _15"> </span>*<span class="_ _15"> </span>B</div><div class="t m0 x1f h12 ye1 ff13 fs5 fc0 sc0 ls0 ws0">T</div><div class="t m0 x20 hb ye0 ff14 fs6 fc0 sc0 ls0 ws0"><<span class="_ _c"> </span><span class="ff4">1<span class="_ _c"> </span>ms<span class="_ _32"> </span>2<span class="_ _f"> </span>ms<span class="_ _32"> </span>6<span class="_ _c"> </span>ms<span class="_ _27"> </span>48<span class="_ _c"> </span>ms<span class="_ _28"> </span>385<span class="_ _c"> </span>ms</span></div><div class="t m0 x15 hb ye2 ff8 fs6 fc0 sc0 ls0 ws0">Speedup<span class="_ _34"> </span><span class="ff4">/<span class="_ _35"> </span>2.5x<span class="_ _35"> </span>4.8x<span class="_ _35"> </span>2.9x<span class="_ _35"> </span>2.7x</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">20/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf18" class="pf w0 h0" data-page-no="18"><div class="pc pc18 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">T<span class="_ _7"></span>emporal-Locality<span class="_ _8"> </span>Example</div><div class="t m0 x1 hb ye3 ff1 fs6 fc0 sc0 ls0 ws0">Sp<span class="_ _b"></span>eeding<span class="_ _8"> </span>up<span class="_ _f"> </span>a<span class="_ _8"> </span>random-access<span class="_ _8"> </span>function</div><div class="t m0 xd hd ye4 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _36"> </span><span class="ffb fc5">//<span class="_ _9"> </span>V1</span></span></span></div><div class="t m0 x6 hd ye5 ffc fs7 fc0 sc0 ls0 ws0">out_array[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>in_array[hash(i)];</div><div class="t m0 x21 hd ye6 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">K<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>K<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>K<span class="_ _9"> </span><span class="fc8">+=<span class="_ _e"> </span></span>CACHE)<span class="_ _9"> </span>{<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _e"> </span>V2</span></span></span></div><div class="t m0 x22 hd ye7 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x23 hd ye8 ff5 fs7 fc9 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>hash(i);</span></div><div class="t m0 x23 hd ye9 ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">(x<span class="_ _9"> </span><span class="fc8">>=<span class="_ _e"> </span></span>K<span class="_ _9"> </span><span class="fc8">&&<span class="_ _9"> </span></span>x<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>K<span class="_ _9"> </span><span class="fc8">+<span class="_ _9"> </span></span>CACHE)</span></div><div class="t m0 x24 hd yea ffc fs7 fc0 sc0 ls0 ws0">out_array[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>in_array[x];</div><div class="t m0 x22 hd yeb ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x21 hd yec ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd h6 yed ff8 fs4 fc0 sc0 ls0 ws0">V1<span class="_ _25"> </span><span class="ff4">:<span class="_ _9"> </span>436<span class="_ _c"> </span>ms,<span class="_ _11"> </span></span>V2<span class="_ _25"> </span><span class="ff4">:<span class="_ _17"> </span>336<span class="_ _c"> </span>ms<span class="_ _d"> </span><span class="ff10">→<span class="_ _c"> </span></span>1.3x<span class="_ _d"> </span>sp<span class="_ _b"></span>eedup<span class="_ _c"> </span>(temp<span class="_ _b"></span>oral<span class="_ _d"> </span>locality<span class="_ _d"> </span>improvement)</span></div><div class="t m0 x1 h6 yee ff4 fs4 fc0 sc0 ls0 ws0">..<span class="_ _17"> </span>but<span class="_ _c"> </span>it<span class="_ _d"> </span>needs<span class="_ _c"> </span>a<span class="_ _d"> </span>careful<span class="_ _d"> </span>evaluation<span class="_ _d"> </span>of<span class="_ _10"> </span><span class="ff8">CACHE<span class="_ _25"> </span></span>,<span class="_ _c"> </span>and<span class="_ _d"> </span>it<span class="_ _c"> </span>can<span class="_ _d"> </span>even<span class="_ _c"> </span>decrease<span class="_ _d"> </span>the<span class="_ _c"> </span>performance<span class="_ _d"> </span>for</div><div class="t m0 x1 h6 yef ff4 fs4 fc0 sc0 ls0 ws0">other<span class="_ _d"> </span>sizes</div><div class="t m0 x1 h6 yf0 ff4 fs4 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>re-sorted<span class="_ _11"> </span><span class="ff8">hash(i)<span class="_ _25"> </span></span>:<span class="_ _9"> </span>135<span class="_ _d"> </span>ms<span class="_ _c"> </span><span class="ff10">→<span class="_ _d"> </span></span>3.2x<span class="_ _c"> </span>sp<span class="_ _b"></span>eedup<span class="_ _d"> </span>(spatial<span class="_ _c"> </span>lo<span class="_ _b"></span>calit<span class="_ _3"></span>y<span class="_ _c"> </span>improvement)</div><div class="t m0 xb hd yf1 ffc fs7 fcc sc0 ls0 ws0">lemire.me/blog/2019/04/27</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">21/87</div><a class="l" href="https://lemire.me/blog/2019/04/27/speeding-up-a-random-access-function/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:2.758000px;width:119.676000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf19" class="pf w0 h0" data-page-no="19"><div class="pc pc19 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _17"> </span>Alignment</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>alignment<span class="_ _c"> </span><span class="ff4">refers<span class="_ _f"> </span>to<span class="_ _c"> </span>placing<span class="_ _f"> </span>data<span class="_ _c"> </span>in<span class="_ _f"> </span>memory<span class="_ _c"> </span>at<span class="_ _c"> </span>addresses<span class="_ _c"> </span>that<span class="_ _c"> </span>conform<span class="_ _c"> </span>to</span></div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">certain<span class="_ _c"> </span>b<span class="_ _b"></span>oundaries,<span class="_ _c"> </span>t<span class="_ _3"></span>ypically<span class="_ _f"> </span>p<span class="_ _b"></span>o<span class="_ _3"></span>wers<span class="_ _c"> </span>of<span class="_ _c"> </span>tw<span class="_ _3"></span>o<span class="_ _c"> </span>(e.g.,<span class="_ _f"> </span>1,<span class="_ _c"> </span>2,<span class="_ _c"> </span>4,<span class="_ _f"> </span>8,<span class="_ _c"> </span>16<span class="_ _f"> </span>bytes,<span class="_ _c"> </span>etc.)</div><div class="t m0 x1 h6 yf3 ffa fs4 fc0 sc0 ls0 ws0">Note<span class="_ _0"></span><span class="ff4">:<span class="_ _8"> </span>Fo<span class="_ _3"></span>r<span class="_ _c"> </span>multidimensional<span class="_ _d"> </span>data,<span class="_ _c"> </span>alignment<span class="_ _d"> </span>only<span class="_ _c"> </span>means<span class="_ _d"> </span>that<span class="_ _c"> </span>the<span class="_ _d"> </span>start<span class="_ _d"> </span>address<span class="_ _d"> </span>of<span class="_ _c"> </span>the<span class="_ _d"> </span>data<span class="_ _c"> </span>is</span></div><div class="t m0 x1 h6 yf4 ff4 fs4 fc0 sc0 ls0 ws0">aligned,<span class="_ _d"> </span>not<span class="_ _c"> </span>that<span class="_ _d"> </span>all<span class="_ _c"> </span>sta<span class="_ _3"></span>rt<span class="_ _c"> </span>offsets<span class="_ _d"> </span>for<span class="_ _d"> </span>all<span class="_ _c"> </span>dimensions<span class="_ _d"> </span>are<span class="_ _d"> </span>aligned.,<span class="_ _d"> </span>e.g.<span class="_ _9"> </span>for<span class="_ _d"> </span>a<span class="_ _d"> </span>2D<span class="_ _c"> </span>matrix,<span class="_ _d"> </span>if</div><div class="t m0 xd h6 yf5 ff8 fs4 fc0 sc0 ls0 ws0">row[0][0]<span class="_ _11"> </span><span class="ff4">is<span class="_ _d"> </span>aligned<span class="_ _c"> </span>doesn’t<span class="_ _c"> </span>imply<span class="_ _d"> </span>that<span class="_ _11"> </span></span>row[0][1]<span class="_ _11"> </span><span class="ff4">has<span class="_ _c"> </span>the<span class="_ _d"> </span>same<span class="_ _d"> </span>property<span class="_ _7"></span>.<span class="_ _17"> </span>Also<span class="_ _c"> </span>the<span class="_ _d"> </span>strides</span></div><div class="t m0 x1 h6 yf6 ff4 fs4 fc0 sc0 ls0 ws0">b<span class="_ _b"></span>et<span class="_ _3"></span>ween<span class="_ _d"> </span>rows<span class="_ _d"> </span>need<span class="_ _d"> </span>to<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _d"> </span>multiple<span class="_ _c"> </span>of<span class="_ _d"> </span>the<span class="_ _c"> </span>alignment</div><div class="t m0 x1 hb yf7 ff1 fs6 fc0 sc0 ls0 ws0">Data<span class="_ _f"> </span>alignment<span class="_ _f"> </span><span class="ff4">is<span class="_ _c"> </span>classified<span class="_ _f"> </span>in:</span></div><div class="t m0 xb hb yf8 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Internal<span class="_ _8"> </span>alignment<span class="_ _c"> </span><span class="ff4">for<span class="_ _c"> </span>struct/class<span class="_ _c"> </span>la<span class="_ _3"></span>yout<span class="_ _c"> </span>optimization<span class="_ _c"> </span><span class="ff10">→<span class="_ _f"> </span></span>reducing<span class="_ _c"> </span>memory</span></span></div><div class="t m0 x6 hb yf9 ff4 fs6 fc0 sc0 ls0 ws0">fo<span class="_ _b"></span>otp<span class="_ _3"></span>rint,<span class="_ _f"> </span>optimizing<span class="_ _c"> </span>memory<span class="_ _c"> </span>bandwidth,<span class="_ _c"> </span>and<span class="_ _f"> </span>minimizing<span class="_ _c"> </span>cache-line<span class="_ _c"> </span>misses</div><div class="t m0 xb hb yfa ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">External<span class="_ _8"> </span>alignment<span class="_ _c"> </span><span class="ff4">across<span class="_ _c"> </span>several<span class="_ _f"> </span>elements<span class="_ _c"> </span>of<span class="_ _f"> </span>the<span class="_ _c"> </span>same<span class="_ _f"> </span>type<span class="_ _c"> </span><span class="ff10">→<span class="_ _f"> </span></span>minimizing</span></span></div><div class="t m0 x6 hb yfb ff4 fs6 fc0 sc0 ls0 ws0">cache-line<span class="_ _c"> </span>misses,<span class="_ _c"> </span>vectorization<span class="_ _c"> </span>(SIMD<span class="_ _c"> </span>instructions)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">22/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1a" class="pf w0 h0" data-page-no="1a"><div class="pc pc1a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Internal<span class="_ _17"> </span>Structure<span class="_ _17"> </span>Alignment</div><div class="t m0 xd hf yfc ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">A1<span class="_ _17"> </span><span class="ffd fc0">{</span></span></div><div class="t m0 x10 hf yfd ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x1;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>0</span></span></div><div class="t m0 x10 hf yfe ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y1;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>8!!<span class="_ _8"> </span>(not<span class="_ _17"> </span>1)</span></span></div><div class="t m0 x10 hf yff ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x2;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>16</span></span></div><div class="t m0 x10 hf y100 ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y2;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>24</span></span></div><div class="t m0 x10 hf y101 ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x3;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>32</span></span></div><div class="t m0 x10 hf y102 ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y3;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>40</span></span></div><div class="t m0 x10 hf y103 ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x4;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>48</span></span></div><div class="t m0 x10 hf y104 ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y4;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>56</span></span></div><div class="t m0 x10 hf y105 ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x5;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>64<span class="_ _17"> </span>(65<span class="_ _8"> </span>bytes)</span></span></div><div class="t m0 xd hf y106 ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x25 hf y107 ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">A2<span class="_ _17"> </span><span class="ffd fc0">{<span class="_ _1c"> </span><span class="ffb fc5">//<span class="_ _8"> </span>internal<span class="_ _17"> </span>alignment</span></span></span></div><div class="t m0 x26 hf y108 ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x1;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>0</span></span></div><div class="t m0 x26 hf y109 ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x2;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>1</span></span></div><div class="t m0 x26 hf y10a ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x3;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>2</span></span></div><div class="t m0 x26 hf y10b ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x4;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>3</span></span></div><div class="t m0 x26 hf y10c ff5 fs5 fc6 sc0 ls0 ws0">char<span class="_ _1c"> </span><span class="ffd fc0">x5;<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>offset<span class="_ _8"> </span>4</span></span></div><div class="t m0 x26 hf y10d ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y1;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>8</span></span></div><div class="t m0 x26 hf y10e ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y2;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>16</span></span></div><div class="t m0 x26 hf y10f ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y3;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>24</span></span></div><div class="t m0 x26 hf y110 ff5 fs5 fc6 sc0 ls0 ws0">double<span class="_ _8"> </span><span class="ffd fc0">y4;<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>offset<span class="_ _17"> </span>32<span class="_ _8"> </span>(40<span class="_ _17"> </span>bytes)</span></span></div><div class="t m0 x25 hf y111 ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x27 hb y112 ff1 fs6 fc0 sc0 ls0 ws0">(1)<span class="_ _6"> </span><span class="ff4">W<span class="_ _3"></span>e<span class="_ _f"> </span>are<span class="_ _c"> </span>w<span class="_ _3"></span>asting<span class="_ _c"> </span>40%<span class="_ _f"> </span>of<span class="_ _c"> </span>memory<span class="_ _c"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>(<span class="_ _25"> </span><span class="ff8">A1<span class="_ _d"> </span></span>)</span></div><div class="t m0 x27 hb y113 ff1 fs6 fc0 sc0 ls0 ws0">(2)<span class="_ _6"> </span><span class="ff4">Considering<span class="_ _c"> </span>an<span class="_ _f"> </span><span class="ffa">a<span class="_ _3"></span>rray<span class="_ _c"> </span>of<span class="_ _c"> </span>structures<span class="_ _9"> </span><span class="ff4">(</span>A<span class="_ _3"></span>oS<span class="_ _37"></span><span class="ff4">)<span class="_ _c"> </span>and<span class="_ _c"> </span>a<span class="_ _f"> </span>cache<span class="_ _c"> </span>line<span class="_ _f"> </span>of<span class="_ _c"> </span>64<span class="_ _f"> </span>bytes<span class="_ _c"> </span>(x64</span></span></span></div><div class="t m0 x6 hb y114 ff4 fs6 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>ro<span class="_ _b"></span>cessors),<span class="_ _c"> </span>every<span class="_ _c"> </span>access<span class="_ _f"> </span>to<span class="_ _10"> </span><span class="ff8">A1<span class="_ _10"> </span></span>involves<span class="_ _c"> </span>tw<span class="_ _3"></span>o<span class="_ _c"> </span>cache<span class="_ _c"> </span>line<span class="_ _f"> </span>op<span class="_ _b"></span>erations<span class="_ _c"> </span>(<span class="ff10">∼<span class="ff1">2x<span class="_ _8"> </span>slow<span class="_ _3"></span>er<span class="ff4">)</span></span></span></div><div class="t m0 xb h10 y115 fff fs7 fcc sc0 ls0 ws0">see<span class="_ _d"> </span>also<span class="_ _25"> </span><span class="ffc">#pragma<span class="_ _e"> </span>pack(1)</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">23/87</div><a class="l" href="https://devblogs.microsoft.com/oldnewthing/20200103-00/?p=103290"><div class="d m1" style="border-style:none;position:absolute;left:67.359000px;bottom:2.301000px;width:72.602000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1b" class="pf w0 h0" data-page-no="1b"><div class="pc pc1b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">External<span class="_ _17"> </span>Structure<span class="_ _17"> </span>Alignment<span class="_ _38"> </span>1/3</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">In<span class="_ _c"> </span>addiction<span class="_ _c"> </span>to<span class="_ _f"> </span>internal<span class="_ _c"> </span>lay<span class="_ _3"></span>out<span class="_ _c"> </span>problems,<span class="_ _c"> </span>even<span class="_ _c"> </span>the<span class="_ _f"> </span>structure<span class="_ _10"> </span><span class="ff8">A2<span class="_ _10"> </span></span>intro<span class="_ _b"></span>duces<span class="_ _c"> </span>overhead<span class="_ _c"> </span>if</div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">o<span class="_ _3"></span>rganized<span class="_ _c"> </span>in<span class="_ _f"> </span>an<span class="_ _c"> </span>arra<span class="_ _3"></span>y<span class="_ _7"></span>.<span class="_ _e"> </span>Loads<span class="_ _c"> </span>lead<span class="_ _c"> </span>to<span class="_ _c"> </span>one<span class="_ _c"> </span>or<span class="_ _c"> </span>t<span class="_ _3"></span>wo<span class="_ _c"> </span>cache<span class="_ _c"> </span>line<span class="_ _c"> </span>op<span class="_ _b"></span>erations<span class="_ _c"> </span>dep<span class="_ _b"></span>ending<span class="_ _f"> </span>on<span class="_ _c"> </span>the</div><div class="t m0 x1 hb y116 ff4 fs6 fc0 sc0 ls0 ws0">alignment<span class="_ _c"> </span>at<span class="_ _c"> </span>a<span class="_ _f"> </span>sp<span class="_ _b"></span>ecific<span class="_ _f"> </span>index,<span class="_ _c"> </span>e.g.</div><div class="t m0 x10 hb y117 ff8 fs6 fc0 sc0 ls0 ws0">index<span class="_ _15"> </span>0<span class="_ _c"> </span><span class="ff10">→<span class="_ _c"> </span><span class="ff4">one<span class="_ _f"> </span>cache<span class="_ _c"> </span>line<span class="_ _f"> </span>load</span></span></div><div class="t m0 x10 hb y118 ff8 fs6 fc0 sc0 ls0 ws0">index<span class="_ _15"> </span>1<span class="_ _c"> </span><span class="ff10">→<span class="_ _c"> </span><span class="ff4">tw<span class="_ _3"></span>o<span class="_ _c"> </span>cache<span class="_ _f"> </span>line<span class="_ _c"> </span>loads</span></span></div><div class="t m0 x1 hb y119 ff4 fs6 fc0 sc0 ls0 ws0">It<span class="_ _c"> </span>is<span class="_ _c"> </span>p<span class="_ _0"></span>ossible<span class="_ _c"> </span>to<span class="_ _c"> </span>fix<span class="_ _c"> </span>the<span class="_ _f"> </span>structure<span class="_ _c"> </span>alignment<span class="_ _f"> </span>in<span class="_ _c"> </span>tw<span class="_ _3"></span>o<span class="_ _c"> </span>wa<span class="_ _3"></span>ys:</div><div class="t m0 xb hb y11a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Memo<span class="_ _3"></span>ry<span class="_ _8"> </span>padding<span class="_ _f"> </span><span class="ff4">refers<span class="_ _c"> </span>to<span class="_ _f"> </span>manually<span class="_ _c"> </span>intro<span class="_ _0"></span>ducing<span class="_ _c"> </span>extra<span class="_ _c"> </span>b<span class="_ _3"></span>ytes<span class="_ _f"> </span>at<span class="_ _c"> </span>the<span class="_ _f"> </span>end<span class="_ _c"> </span>of<span class="_ _f"> </span>the</span></span></div><div class="t m0 x6 hb y11b ff4 fs6 fc0 sc0 ls0 ws0">data<span class="_ _c"> </span>structure<span class="_ _c"> </span>to<span class="_ _f"> </span>enforce<span class="_ _c"> </span>memo<span class="_ _3"></span>ry<span class="_ _c"> </span>alignment.</div><div class="t m0 x6 h6 y11c ff4 fs4 fc0 sc0 ls0 ws0">e.g.<span class="_ _17"> </span>add<span class="_ _c"> </span>a<span class="_ _11"> </span><span class="ff8">char<span class="_ _11"> </span></span>a<span class="_ _3"></span>rray<span class="_ _d"> </span>of<span class="_ _c"> </span>size<span class="_ _d"> </span>24<span class="_ _c"> </span>to<span class="_ _d"> </span>the<span class="_ _c"> </span>structure<span class="_ _11"> </span><span class="ff8">A2</span></div><div class="t m0 xb hb y11d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Align<span class="_ _8"> </span>k<span class="_ _3"></span>eywo<span class="_ _3"></span>rd<span class="_ _f"> </span>or<span class="_ _f"> </span>attribute<span class="_ _c"> </span><span class="ff4">allows<span class="_ _c"> </span>sp<span class="_ _b"></span>ecifying<span class="_ _c"> </span>the<span class="_ _f"> </span>alignment<span class="_ _c"> </span>requirement<span class="_ _f"> </span>of<span class="_ _c"> </span>a</span></span></div><div class="t m0 x6 hb y11e ff4 fs6 fc0 sc0 ls0 ws0">t<span class="_ _3"></span>yp<span class="_ _b"></span>e<span class="_ _f"> </span>or<span class="_ _c"> </span>an<span class="_ _c"> </span>object<span class="_ _c"> </span>(next<span class="_ _f"> </span>slide)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">24/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1c" class="pf w0 h0" data-page-no="1c"><div class="pc pc1c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJ50lEQVR42u3dMWpcVxTHYb3wLq4OWUNIlQ3IWClUBYJAArnwlrKJrGKKWYGLMGvwDlKJU3hy0SAXBmM0iqOMJM+5M99Xvsr6g8yP+/S408+vfz0BAIAyPvz1/gcrAABQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOCLqfduBQAA6mitOUkFAKAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDg380meLzMNMJLiAgjAABfc5IKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAADGNvXerQAAQB2tNSepAACUI1IBABCpAAAgUgEAEKkAAPBUswkYXWYaYS8iwggAvBAnqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwHc19d6tAABAHa01J6kAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAUN1sAkaXmUaAgiLCCMDOnKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAMBgZhNweG43m7PL6+3nq+Xi9OLqwedG28HH9fr87bvtMb+xv9EAeKSp924FhpaZRoCCIsIIwG5aa173AwBQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgHtciwoAQC2uRQUAoCKRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQCA6mYTMLrMNAKDiggjADzISSoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAAxmNgGH53azObu83n6+Wi5OL64efG40AChl6r1bgaFlphEYVEQYAWBba83rfgAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAHCPa1EBAKjFtagAAFQkUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAI7IbAJGl5lGgOFEhBGAb3CSCgCASAUAgP/idT8A1fmrnt34mwqG5iQVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAAiplNADyX283m7PJ6+/lquTAOAP/L1Hu3AkPLTCPAcCLCr3mpkaGU1prX/QAAlCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAsG9unAIAoBY3TgEAUJFIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgBAdbMJgP3KTCMAu4kIIxwqJ6kAAIhUAAAQqQAAiFQAABCpAAAcHF/3Q0V1Pnj35SwAe+EkFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIduNgEAj3d6cbX9cLVcWAZ4XlPv3QpQTWYW+ZdExPH8sMBwvsP/UexFa83rfgAAyhGpAACIVAAAEKkAAAzH1/1QkU8BADhyTlIBABCpAAAgUgEAEKkAAPBUbpwCAKAWN04BAFCRSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAQHWzCRhdZhoBeIqIMAJU4yQVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAAAGM5uAw3O72ZxdXm8/Xy0XpxdXDz4/tok+rtfnb98d/BRH8mMCHKSp924FhpaZRgCeIiKMAKW01rzuBwCgHJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAAPe4FhUAgFpciwoAQEUiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAwPGab/74yQrw2d+//WkEANi7X978Pk0/vrq7+efk5O7uziAAAJTwCdZYpBl0CE4PAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">External<span class="_ _17"> </span>Structure<span class="_ _17"> </span>Alignment<span class="_ _38"> </span>2/3</div><div class="t m0 xb hb y11f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Explicit<span class="_ _17"> </span><span class="ff4">alignment/padding<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span><span class="ff1">variable<span class="_ _f"> </span>/<span class="_ _8"> </span>struct<span class="_ _8"> </span>decla<span class="_ _3"></span>ration<span class="_ _f"> </span><span class="ff10">→<span class="_ _c"> </span><span class="ff4">affects</span></span></span></span></span></div><div class="t m0 xc h11 y120 ff8 fs6 fc0 sc0 ls0 ws0">sizeof(T)</div><div class="t m0 x16 hb y121 ff4 fs6 fcd sc0 ls0 ws0">C++11<span class="_ _6"> </span><span class="fc0">:<span class="_ _4"> </span><span class="ff8">alignas(N)</span></span></div><div class="t m0 x28 hb y122 ff4 fs6 fc0 sc0 ls0 ws0">GCC/Clang<span class="_ _6"> </span>:<span class="_ _39"> </span><span class="ff8">attribute<span class="_ _a"> </span>((aligned(N)))</span></div><div class="t m0 x19 hb y123 ff4 fs6 fc0 sc0 ls0 ws0">MSV<span class="_ _3"></span>C<span class="_ _6"> </span>:<span class="_ _39"> </span><span class="ff8">declspec(align(N))</span></div><div class="t m0 xb hb y124 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Explicit<span class="_ _17"> </span><span class="ff4">alignment<span class="_ _f"> </span>for<span class="_ _c"> </span><span class="ff1">p<span class="_ _b"></span>ointers</span></span></span></div><div class="t m0 x16 hb y125 ff4 fs6 fcd sc0 ls0 ws0">C++20<span class="_ _6"> </span><span class="fc0">:<span class="_ _4"> </span><span class="ff8">std::assume<span class="_ _8"> </span>aligned<N>(ptr)<span class="_ _10"> </span></span>(<span class="_ _d"> </span><span class="ff8"><memory><span class="_ _25"> </span></span>)</span></div><div class="t m0 x16 hb y126 ff4 fs6 fcd sc0 ls0 ws0">C++17<span class="_ _6"> </span><span class="fc0">:<span class="_ _e"> </span>aligned<span class="_ _11"> </span><span class="ff8">new<span class="_ _10"> </span></span>or<span class="_ _10"> </span><span class="ff8">std::aligned<span class="_ _f"> </span>alloc(align,<span class="_ _15"> </span>size)</span></span></div><div class="t m0 x28 hb y127 ff4 fs6 fc0 sc0 ls0 ws0">GCC/Clang<span class="_ _6"> </span>:<span class="_ _39"> </span><span class="ff8">builtin<span class="_ _8"> </span>assume<span class="_ _8"> </span>aligned(ptr,<span class="_ _15"> </span>N)</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">25/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1d" class="pf w0 h0" data-page-no="1d"><div class="pc pc1d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIeElEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGItuJlLOI6FQ7iB1XGVaWJnLYr6HzzPBOFL8/Ln1WaXAAAgjOvlPLMCAADRiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJ5yrdUKAADEUUpxSQUAIByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAD7TTeit4zj6MACA9/R9P6HXuqQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSTQAAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKSaAAAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAfFWutVoBAIA4SikuqQAAhCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAA8G/dcFxaAV5x25+MAAA/sN4ecl7M23BPqbVmEAAAQngA/FAaAm1JWzUAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">External<span class="_ _17"> </span>Structure<span class="_ _17"> </span>Alignment<span class="_ _38"> </span>3/3</div><div class="t m0 xd hf y128 ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">alignas<span class="ffd fc0">(<span class="fc8">16</span>)<span class="_ _17"> </span>S1<span class="_ _17"> </span>{<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>C++11</span></span></span></div><div class="t m0 xf hf y129 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">x,<span class="_ _17"> </span>y;</span></div><div class="t m0 xd hf y12a ffd fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf y12b ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">__attribute__<span class="ffd fc0">((aligned(<span class="fc8">16</span>)))<span class="_ _17"> </span>S2<span class="_ _17"> </span>{<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>compiler-specific<span class="_ _8"> </span>attribute</span></span></span></div><div class="t m0 xf hf y12c ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">x,<span class="_ _17"> </span>y;</span></div><div class="t m0 xd hf y12d ffd fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf y12e ff5 fs5 fc9 sc0 ls0 ws0">constexpr<span class="_ _8"> </span>auto<span class="_ _17"> </span><span class="ffd fc0">MaxAlign<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span></span>__STDCPP_DEFAULT_NEW_ALIGNMENT__;</span></div><div class="t m0 xd hf y12f ffd fs5 fc0 sc0 ls0 ws0">S1<span class="_ _8"> </span>s;<span class="_ _1d"> </span><span class="ffb fc5">//<span class="_ _17"> </span>16B<span class="_ _8"> </span>alignment</span></div><div class="t m0 xd hf y130 ff5 fs5 fc9 sc0 ls0 ws0">alignas<span class="ffd fc0">(<span class="fc8">16</span>)<span class="_ _8"> </span></span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">var[<span class="fc8">3</span>];<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>16B<span class="_ _17"> </span>alignment</span></span></span></div><div class="t m0 xd hf y131 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">ptr1<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span></span>new<span class="_ _8"> </span><span class="ffd fc0">S1[<span class="fc8">10</span>];<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>Warning!<span class="_ _17"> </span>no<span class="_ _8"> </span>aligment<span class="_ _17"> </span>guarantee</span></span></div><div class="t m0 xd hf y132 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">ptr2<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span></span>new<span class="_ _8"> </span><span class="fc6">int<span class="ffd fc0">[<span class="fc8">100</span>];<span class="_ _3a"> </span><span class="ffb fc5">//<span class="_ _8"> </span>alignment:<span class="_ _17"> </span>max(4B,<span class="_ _8"> </span>MaxAlign)</span></span></span></div><div class="t m0 xd hf y133 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">ptr3<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>std<span class="fc8">::</span>aligned_alloc(<span class="fc8">8</span>,<span class="_ _8"> </span><span class="fc8">4</span>);<span class="_ _3b"> </span><span class="ffb fc5">//<span class="_ _8"> </span>C++17,<span class="_ _17"> </span>alignment:<span class="_ _8"> </span>max(8B,<span class="_ _17"> </span>MaxAlign)</span></span></div><div class="t m0 xd hf y134 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">ptr4<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>__builtin_assume_aligned(ptr2,<span class="_ _8"> </span><span class="fc8">16</span>);<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>compiler-specific<span class="_ _17"> </span>attribute</span></span></div><div class="t m0 xd hf y135 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">ptr5<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>std<span class="fc8">::</span>assume_aligned<span class="fc8"><16></span>(ptr2);<span class="_ _3c"> </span><span class="ffb fc5">//<span class="_ _8"> </span>C++20</span></span></div><div class="t m0 xd hf y136 ff5 fs5 fc9 sc0 ls0 ws0">auto<span class="_ _8"> </span><span class="ffd fc0">ptr<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span></span>new<span class="_ _8"> </span><span class="ffd fc0">(std<span class="fc8">::</span>align_val_t(<span class="fc8">4</span>))<span class="_ _17"> </span></span><span class="fc6">int<span class="ffd fc0">[<span class="fc8">2</span>]};<span class="_ _1c"> </span><span class="ffb fc5">//<span class="_ _8"> </span>C++17,<span class="_ _17"> </span>max(16B,<span class="_ _8"> </span>MaxAlign)</span></span></span></div><div class="t m0 xd hf y137 ffd fs5 fc8 sc0 ls0 ws0">::<span class="ff5 fc9">operator<span class="_ _8"> </span>delete</span><span class="fc0">[]<span class="_ _17"> </span>(ptr,<span class="_ _17"> </span>std</span>::<span class="fc0">align_val_t{</span>4<span class="fc0">});</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">26/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1e" class="pf w0 h0" data-page-no="1e"><div class="pc pc1e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Memo<span class="_ _3"></span>ry<span class="_ _17"> </span>Prefetch</div><div class="t m0 x29 hb y7b ff8 fs6 fc0 sc0 ls0 ws0">builtin<span class="_ _8"> </span>prefetch<span class="_ _10"> </span><span class="ff4">is<span class="_ _c"> </span>used<span class="_ _f"> </span>to<span class="_ _c"> </span><span class="ffa">minimize<span class="_ _f"> </span>cache-miss<span class="_ _c"> </span>latency<span class="_ _e"> </span></span>b<span class="_ _3"></span>y<span class="_ _c"> </span>moving<span class="_ _f"> </span>data<span class="_ _c"> </span>into<span class="_ _f"> </span>a</span></div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">cache<span class="_ _c"> </span>b<span class="_ _b"></span>efore<span class="_ _c"> </span>it<span class="_ _c"> </span>is<span class="_ _c"> </span>accessed.<span class="_ _e"> </span>It<span class="_ _c"> </span>can<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>used<span class="_ _f"> </span>not<span class="_ _c"> </span>only<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>improving<span class="_ _c"> </span><span class="ffa">spatial<span class="_ _c"> </span>lo<span class="_ _b"></span>calit<span class="_ _3"></span>y<span class="ff4">,<span class="_ _f"> </span>but</span></span></div><div class="t m0 x1 hb y116 ff4 fs6 fc0 sc0 ls0 ws0">also<span class="_ _c"> </span><span class="ffa">temp<span class="_ _b"></span>oral<span class="_ _c"> </span>lo<span class="_ _b"></span>calit<span class="_ _3"></span>y</span></div><div class="t m0 xd hd y138 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>size;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x6 hd y139 ff5 fs7 fc9 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">data<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>array[i];</span></div><div class="t m0 x6 hd y13a ffc fs7 fc0 sc0 ls0 ws0">__builtin_prefetch(array<span class="_ _9"> </span><span class="fc8">+<span class="_ _9"> </span></span>i<span class="_ _e"> </span><span class="fc8">+<span class="_ _9"> </span>1</span>,<span class="_ _9"> </span><span class="fc8">0</span>,<span class="_ _e"> </span><span class="fc8">1</span>);<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _9"> </span>2nd<span class="_ _9"> </span>argument,<span class="_ _e"> </span><span class="ff15">'</span>0<span class="ff15">'<span class="_ _9"> </span></span>means<span class="_ _9"> </span>read-only</span></div><div class="t m0 x26 hd y13b ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>3th<span class="_ _9"> </span>argument,<span class="_ _e"> </span><span class="ff15">'</span>1<span class="ff15">'<span class="_ _9"> </span></span>means</div><div class="t m0 x26 hd y13c ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>temporal<span class="_ _9"> </span>locality=1,<span class="_ _e"> </span>default=3</div><div class="t m0 x6 hd y13d ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>do<span class="_ _9"> </span>some<span class="_ _e"> </span>computation<span class="_ _9"> </span>on<span class="_ _9"> </span><span class="ff15">'</span>data<span class="ff15">'</span>,<span class="_ _e"> </span>e.g.<span class="_ _9"> </span>CRC</div><div class="t m0 xd hd y13e ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hb y13f ff4 fs6 fc0 sc0 ls0 ws0">Alternatively<span class="_ _7"></span>,<span class="_ _10"> </span><span class="ff8">-fprefetch-loop-arrays<span class="_ _10"> </span></span>can<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>used<span class="_ _c"> </span>to<span class="_ _c"> </span>emit<span class="_ _f"> </span>prefetching</div><div class="t m0 x1 hb y140 ff4 fs6 fc0 sc0 ls0 ws0">instructions</div><div class="t m0 xb hd y141 ffc fs7 fcc sc0 ls0 ws0">The<span class="_ _9"> </span>pros<span class="_ _9"> </span>and<span class="_ _e"> </span>cons<span class="_ _9"> </span>of<span class="_ _9"> </span>explicit<span class="_ _e"> </span>software<span class="_ _9"> </span>prefetching</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">27/87</div><a class="l" href="https://johnnysswlab.com/the-pros-and-cons-of-explicit-software-prefetching/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:1.750000px;width:237.360000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf1f" class="pf w0 h0" data-page-no="1f"><div class="pc pc1f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIfklEQVR42u3ZoQ0CMQCG0ZZcg2QGgmICQtAktwKCeViCDRDMQIJgCDZAneKoKQ4NCNIL703Q/DVf2jhbrAIAAFTjejmPrAAAQG1EKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAALzHnbAUAAOqRUvKSCgBAdUQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA+DfNUA567/t2s3VhMCyn48EIAHwh5pytAABAPVJKvvsBAKiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAAPhA0+2mVoAfuK33RgCAd8yXbYyTcekeIZRSDAIAQBWeNwUdAiXTDiAAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Multi-Threading<span class="_ _17"> </span>and<span class="_ _17"> </span>Caches</div><div class="t m0 x1 hb y142 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span><span class="ff1">CPU/threads<span class="_ _8"> </span>affinit<span class="_ _3"></span>y<span class="_ _f"> </span><span class="ff4">controls<span class="_ _c"> </span>how<span class="_ _c"> </span>a<span class="_ _c"> </span>process<span class="_ _f"> </span>is<span class="_ _c"> </span>mapp<span class="_ _b"></span>ed<span class="_ _f"> </span>and<span class="_ _c"> </span>executed<span class="_ _f"> </span>over</span></span></div><div class="t m0 x1 hb y143 ff4 fs6 fc0 sc0 ls0 ws0">multiple<span class="_ _c"> </span>cores<span class="_ _c"> </span>(including<span class="_ _c"> </span>so<span class="_ _b"></span>ckets).<span class="_ _9"> </span>It<span class="_ _c"> </span>affects<span class="_ _f"> </span>the<span class="_ _c"> </span>process<span class="_ _f"> </span>p<span class="_ _b"></span>erfo<span class="_ _3"></span>rmance<span class="_ _f"> </span>due<span class="_ _c"> </span>to</div><div class="t m0 x1 hb y144 ff4 fs6 fc0 sc0 ls0 ws0">co<span class="_ _3"></span>re-to-core<span class="_ _c"> </span>communication<span class="_ _c"> </span>and<span class="_ _c"> </span>cache<span class="_ _f"> </span>line<span class="_ _c"> </span>invalidation<span class="_ _f"> </span>overhead</div><div class="t m0 x1 hb y145 ff4 fs6 fc0 sc0 ls0 ws0">Maximizing<span class="_ _c"> </span>threads<span class="_ _c"> </span><span class="ffa">“clustering”<span class="_ _9"> </span></span>on<span class="_ _f"> </span>a<span class="_ _c"> </span>single<span class="_ _f"> </span>co<span class="_ _3"></span>re<span class="_ _f"> </span>can<span class="_ _c"> </span>p<span class="_ _b"></span>otentially<span class="_ _f"> </span>lead<span class="_ _c"> </span>to<span class="_ _f"> </span>higher<span class="_ _c"> </span>cache</div><div class="t m0 x1 hb y146 ff4 fs6 fc0 sc0 ls0 ws0">hits<span class="_ _c"> </span>rate<span class="_ _c"> </span>and<span class="_ _f"> </span>faster<span class="_ _c"> </span>communication.<span class="_ _e"> </span>On<span class="_ _c"> </span>the<span class="_ _f"> </span>other<span class="_ _c"> </span>hand,<span class="_ _f"> </span>if<span class="_ _c"> </span>the<span class="_ _f"> </span>threads<span class="_ _c"> </span>wo<span class="_ _3"></span>rk</div><div class="t m0 x1 hb y147 ff4 fs6 fc0 sc0 ls0 ws0">indep<span class="_ _b"></span>endently/almost<span class="_ _c"> </span>indep<span class="_ _b"></span>endently<span class="_ _7"></span>,<span class="_ _f"> </span>namely<span class="_ _c"> </span>they<span class="_ _f"> </span>show<span class="_ _c"> </span>high<span class="_ _c"> </span>lo<span class="_ _b"></span>cality<span class="_ _c"> </span>on<span class="_ _c"> </span>their<span class="_ _c"> </span>wo<span class="_ _3"></span>rking</div><div class="t m0 x1 hb y148 ff4 fs6 fc0 sc0 ls0 ws0">set,<span class="_ _c"> </span>mapping<span class="_ _c"> </span>them<span class="_ _f"> </span>to<span class="_ _c"> </span>different<span class="_ _f"> </span>cores<span class="_ _c"> </span>can<span class="_ _c"> </span>imp<span class="_ _3"></span>rove<span class="_ _f"> </span>the<span class="_ _c"> </span>p<span class="_ _b"></span>erformance</div><div class="t m0 xb hd y149 ffc fs7 fcc sc0 ls0 ws0">C++11<span class="_ _9"> </span>threads,<span class="_ _9"> </span>affinity<span class="_ _e"> </span>and<span class="_ _9"> </span>hyper-threading</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">28/87</div><a class="l" href="https://eli.thegreenplace.net/2016/c11-threads-affinity-and-hyperthreading/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:7.982000px;width:204.409000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf20" class="pf w0 h0" data-page-no="20"><div class="pc pc20 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y14a ff1 fs0 fc0 sc0 ls0 ws0">Arithmetic<span class="_ _1"> </span>T<span class="_ _3d"></span>yp<span class="_ _0"></span>es</div><a class="l" href="#pf20" data-dest-detail='[32,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:197.451000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf21" class="pf w0 h0" data-page-no="21"><div class="pc pc21 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAInElEQVR42u3ZMUoDURSG0Xkyl1SDaxArVxBCaiFbsHA92YQ7sHANgkUW4Q6swhSJtxkLQWwTCLkD56zg8b8pPt60++W6AwCAMj53HzdWAACgGpEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAMCflplWAACgjojwkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBAJin3gTApY3jWOQkwzC4DnzSMAteUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDAdbXMtAIAAHVEhJdUAADKEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAA//RzOejheNw8PbswmJf3t1cjAHCGlplWAACgjojwux8AgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAABwkn6/vbMCXN3X44sRAODXw2rT2u1i2n933TRNBgEAoIQf/FkmAC9NBx0AAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Ha<span class="_ _3"></span>rdw<span class="_ _3"></span>are<span class="_ _8"> </span>Notes</div><div class="t m0 xb hb yb5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Instruction<span class="_ _c"> </span>throughput<span class="_ _f"> </span>greatly<span class="_ _c"> </span>dep<span class="_ _b"></span>ends<span class="_ _f"> </span>on<span class="_ _c"> </span>processor<span class="_ _c"> </span>mo<span class="_ _b"></span>del<span class="_ _c"> </span>and<span class="_ _f"> </span>cha<span class="_ _3"></span>racteristics,</span></div><div class="t m0 x6 h6 yb6 ff4 fs4 fc0 sc0 ls0 ws0">e.g.,<span class="_ _d"> </span>there<span class="_ _c"> </span>is<span class="_ _d"> </span>no<span class="_ _c"> </span>ha<span class="_ _3"></span>rdwa<span class="_ _3"></span>re<span class="_ _c"> </span>support<span class="_ _d"> </span>for<span class="_ _d"> </span>integer<span class="_ _d"> </span>division<span class="_ _c"> </span>on<span class="_ _d"> </span>GPUs.<span class="_ _9"> </span>This<span class="_ _c"> </span>operation<span class="_ _c"> </span>is</div><div class="t m0 x6 h6 y14b ff4 fs4 fc0 sc0 ls0 ws0">translated<span class="_ _d"> </span>to<span class="_ _10"> </span>100<span class="_ _c"> </span>instructions<span class="_ _d"> </span>for<span class="_ _d"> </span>64-bit<span class="_ _c"> </span>operands</div><div class="t m0 xb hb y14c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Mo<span class="_ _b"></span>dern<span class="_ _c"> </span>processors<span class="_ _c"> </span>p<span class="_ _3"></span>rovide<span class="_ _f"> </span>sepa<span class="_ _3"></span>rated<span class="_ _f"> </span>units<span class="_ _c"> </span>for<span class="_ _c"> </span>floating-p<span class="_ _b"></span>oint<span class="_ _c"> </span>computation<span class="_ _f"> </span>(<span class="ff8">FPU</span>)</span></div><div class="t m0 xb hb y14d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">A<span class="_ _3"></span>ddition<span class="ff4">,<span class="_ _f"> </span></span>subtraction<span class="ff4">,<span class="_ _c"> </span>and<span class="_ _f"> </span></span>bit<span class="_ _3"></span>wise<span class="_ _f"> </span>op<span class="_ _b"></span>erations<span class="_ _9"> </span><span class="ff4">a<span class="_ _3"></span>re<span class="_ _f"> </span>computed<span class="_ _c"> </span>by<span class="_ _c"> </span>the<span class="_ _c"> </span><span class="ff8">ALU</span>,<span class="_ _c"> </span>and<span class="_ _f"> </span>they</span></span></div><div class="t m0 x6 hb y14e ff4 fs6 fc0 sc0 ls0 ws0">have<span class="_ _c"> </span>very<span class="_ _c"> </span>similar<span class="_ _c"> </span>throughput</div><div class="t m0 xb hb y14f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">In<span class="_ _c"> </span>mo<span class="_ _b"></span>dern<span class="_ _f"> </span>p<span class="_ _3"></span>ro<span class="_ _b"></span>cessors,<span class="_ _c"> </span><span class="ffa">multiplication<span class="_ _f"> </span></span>and<span class="_ _c"> </span><span class="ffa">addition<span class="_ _8"> </span></span>a<span class="_ _3"></span>re<span class="_ _f"> </span>computed<span class="_ _c"> </span>by<span class="_ _c"> </span>the<span class="_ _c"> </span>same</span></div><div class="t m0 x6 hb y150 ff4 fs6 fc0 sc0 ls0 ws0">ha<span class="_ _3"></span>rdwa<span class="_ _3"></span>re<span class="_ _c"> </span>comp<span class="_ _b"></span>onent<span class="_ _c"> </span>for<span class="_ _c"> </span>decreasing<span class="_ _c"> </span>circuit<span class="_ _c"> </span>area<span class="_ _c"> </span><span class="ff10">→<span class="_ _c"> </span></span>multiplication<span class="_ _c"> </span>and<span class="_ _c"> </span>addition<span class="_ _c"> </span>can</div><div class="t m0 x6 hb y151 ff4 fs6 fc0 sc0 ls0 ws0">b<span class="_ _b"></span>e<span class="_ _c"> </span>fused<span class="_ _f"> </span>in<span class="_ _c"> </span>a<span class="_ _f"> </span>single<span class="_ _c"> </span>op<span class="_ _b"></span>eration<span class="_ _10"> </span><span class="ff8">fma<span class="_ _10"> </span></span>(floating-p<span class="_ _b"></span>oint)<span class="_ _c"> </span>and<span class="_ _10"> </span><span class="ff8">mad<span class="_ _10"> </span></span>(integer)</div><div class="t m0 xb hd y152 ffc fs7 fcc sc0 ls0 ws0">uops.info:<span class="_ _20"> </span>Latency,<span class="_ _17"> </span>Throughput,<span class="_ _e"> </span>and<span class="_ _9"> </span>Port<span class="_ _9"> </span>Usage<span class="_ _e"> </span>Information</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">29/87</div><a class="l" href="https://uops.info/table.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:0.335000px;width:279.726000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf22" class="pf w0 h0" data-page-no="22"><div class="pc pc22 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXklEQVR42u3YsQ2CQBiG4TvDhdIZDJUTGENtwmYs4TgUDOEGVpRec3TM8EeeZ4SvevPl4TEmAAAI47MuFysAABCNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4JBrrVYAACCOUoonFQCAcEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAi1QQAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAAD+R7fNNytAfN/X2wgAnMT9OeV87dv2S6m1ZhAAAELYAYpmFAQL8UcKAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Data<span class="_ _17"> </span>T<span class="_ _7"></span>yp<span class="_ _b"></span>es</div><div class="t m0 xb hb yb5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">32-bit<span class="_ _8"> </span>integral<span class="_ _f"> </span>vs.<span class="_ _6"> </span>floating-p<span class="_ _b"></span>oint<span class="ff4">:<span class="_ _e"> </span>in<span class="_ _c"> </span>general,<span class="_ _f"> </span>integral<span class="_ _c"> </span>types<span class="_ _f"> </span>a<span class="_ _3"></span>re<span class="_ _f"> </span>faster,<span class="_ _c"> </span>but<span class="_ _f"> </span>it</span></span></div><div class="t m0 x6 hb yb6 ff4 fs6 fc0 sc0 ls0 ws0">dep<span class="_ _b"></span>ends<span class="_ _c"> </span>on<span class="_ _f"> </span>the<span class="_ _c"> </span>processor<span class="_ _c"> </span>cha<span class="_ _3"></span>racteristics</div><div class="t m0 xb hb y153 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">32-bit<span class="_ _8"> </span>t<span class="_ _3"></span>yp<span class="_ _b"></span>es<span class="_ _8"> </span>are<span class="_ _f"> </span>faster<span class="_ _8"> </span>than<span class="_ _f"> </span>64-bit<span class="_ _8"> </span>types</span></div><div class="t m0 x2a h6 y154 ff7 fs4 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">64-bit<span class="_ _d"> </span>integral<span class="_ _d"> </span>types<span class="_ _c"> </span>a<span class="_ _3"></span>re<span class="_ _d"> </span>slightly<span class="_ _c"> </span>slo<span class="_ _3"></span>wer<span class="_ _d"> </span>than<span class="_ _d"> </span>32-bit<span class="_ _d"> </span>integral<span class="_ _d"> </span>types.<span class="_ _9"> </span>Mo<span class="_ _b"></span>dern<span class="_ _d"> </span>processors</span></div><div class="t m0 x1a h6 y155 ff4 fs4 fc0 sc0 ls0 ws0">widely<span class="_ _d"> </span>supp<span class="_ _b"></span>ort<span class="_ _d"> </span>native<span class="_ _c"> </span>64-bit<span class="_ _d"> </span>instructions<span class="_ _c"> </span>fo<span class="_ _3"></span>r<span class="_ _c"> </span>most<span class="_ _d"> </span>op<span class="_ _b"></span>erations,<span class="_ _c"> </span>otherwise<span class="_ _d"> </span>they<span class="_ _c"> </span>require</div><div class="t m0 x1a h6 y156 ff4 fs4 fc0 sc0 ls0 ws0">multiple<span class="_ _d"> </span>op<span class="_ _b"></span>erations</div><div class="t m0 x2a h6 y157 ff7 fs4 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Single<span class="_ _d"> </span>precision<span class="_ _d"> </span>floating-p<span class="_ _b"></span>oints<span class="_ _c"> </span>a<span class="_ _3"></span>re<span class="_ _c"> </span>up<span class="_ _d"> </span>to<span class="_ _c"> </span>three<span class="_ _d"> </span>times<span class="_ _c"> </span>faster<span class="_ _d"> </span>than<span class="_ _c"> </span>double<span class="_ _d"> </span>precision</span></div><div class="t m0 x1a h6 y158 ff4 fs4 fc0 sc0 ls0 ws0">floating-p<span class="_ _b"></span>oints</div><div class="t m0 xb hb y159 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Small<span class="_ _8"> </span>integral<span class="_ _f"> </span>types<span class="_ _8"> </span>are<span class="_ _f"> </span>slo<span class="_ _3"></span>wer<span class="_ _f"> </span>than<span class="_ _8"> </span>32-bit<span class="_ _8"> </span>integer<span class="ff4">,<span class="_ _c"> </span>but<span class="_ _c"> </span>they<span class="_ _f"> </span>require<span class="_ _c"> </span>less</span></span></div><div class="t m0 x6 hb y15a ff4 fs6 fc0 sc0 ls0 ws0">memo<span class="_ _3"></span>ry<span class="_ _f"> </span><span class="ff10">→<span class="_ _c"> </span></span>cache/memory<span class="_ _c"> </span>efficiency</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">30/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf23" class="pf w0 h0" data-page-no="23"><div class="pc pc23 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJTklEQVR42u3cMU4bURSGUSaaq1RPWUOUKgV1FKVCIpK3QMF6sonsgIIlIESK7ICGHaRCr8C5MnI6lAqBje079jkLQMw/zac7kodPX74dAQBAGXe/f72zAgAA1YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACeDJlpBQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAABY1WgC4DD13uv8M601bwTgfy6pAACU45IKMAF17r6OvsB2uKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCA9YwmeKHF4vH45NQOz7u9uTICALC+ITOtAABAHRHhcz8AAOWIVAAARCoAAIhUAABEKgAArMtPUL1C733Pnqi15nkBgIJcUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgDAbg2ZaQUAAOqICJdUAADKEakAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQCAKRtNABya3vuhPXJrzXsHpsUlFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAA7MaIIXWiwej09O7fC825srIwAA6xsy0woAANQRET73AwBQjkgFAECkAgCASAUAQKQCAMC6/AQVHITeuxE2obVmBIBNcEkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAALs1ZKYVAACoIyJcUgEAKEekAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAA9tloAoAt6L3v0+O01rxTYKNcUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAwGYNmWkFAADqiAiXVAAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAANi00QRvove+T4/TWvNOAYAdckkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAACbNWSmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAsDXjVP7Rh/l8dnbuhcG0XF9eGAGAFQyZaQUAAOqICJ/7AQAoR6QCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgDAgRlNAACs4GE+n52dv+EfvL68sCpPhsy0AgAAdUSEz/0AAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCAVxnvf3y0Akzdn+8/jQDA3vj8dTYMH94v7/8eHS2XS4MAAFDCP3jeW/qZRW4pAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Arithmetic<span class="_ _17"> </span>Op<span class="_ _b"></span>erations<span class="_ _3e"> </span>1/3</div><div class="t m0 xb hb y15b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Arithmetic<span class="_ _c"> </span><span class="ff1">increment/decrement<span class="_ _10"> </span><span class="ff8">x++<span class="_ _d"> </span></span></span>/<span class="_ _25"> </span><span class="ff8">x--<span class="_ _10"> </span></span>has<span class="_ _f"> </span>the<span class="_ _c"> </span>same<span class="_ _f"> </span>p<span class="_ _b"></span>erformance<span class="_ _c"> </span>of</span></div><div class="t m0 xc hb y15c ff8 fs6 fc0 sc0 ls0 ws0">x<span class="_ _15"> </span>+<span class="_ _15"> </span>1<span class="_ _25"> </span><span class="ff4">/<span class="_ _d"> </span></span>x<span class="_ _15"> </span>-<span class="_ _15"> </span>1</div><div class="t m0 xb hb y15d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Arithmetic<span class="_ _c"> </span><span class="ff1">comp<span class="_ _b"></span>ound<span class="_ _8"> </span>op<span class="_ _b"></span>erators<span class="_ _c"> </span></span>(<span class="_ _d"> </span><span class="ff8">a<span class="_ _6"> </span>*=<span class="_ _15"> </span>b<span class="_ _d"> </span></span>)<span class="_ _c"> </span>has<span class="_ _f"> </span>the<span class="_ _c"> </span>same<span class="_ _f"> </span>p<span class="_ _b"></span>erfo<span class="_ _3"></span>rmance<span class="_ _f"> </span>of</span></div><div class="t m0 x6 hb y15e ff4 fs6 fc0 sc0 ls0 ws0">assignment<span class="_ _c"> </span>+<span class="_ _c"> </span>op<span class="_ _0"></span>eration<span class="_ _c"> </span>(<span class="_ _25"> </span><span class="ff8">a<span class="_ _15"> </span>=<span class="_ _15"> </span>a<span class="_ _15"> </span>*<span class="_ _15"> </span>b<span class="_ _d"> </span></span>)<span class="_ _c"> </span><span class="ff1">*</span></div><div class="t m0 xb hb y15f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Prefer<span class="_ _8"> </span>p<span class="_ _3"></span>refix<span class="_ _8"> </span>increment/decrement<span class="_ _c"> </span><span class="ff4">(<span class="_ _d"> </span><span class="ff8">++var<span class="_ _d"> </span></span>)<span class="_ _c"> </span>instead<span class="_ _c"> </span>of<span class="_ _f"> </span>the<span class="_ _c"> </span>p<span class="_ _b"></span>ostfix<span class="_ _f"> </span>op<span class="_ _b"></span>erator</span></span></div><div class="t m0 x6 hb y160 ff4 fs6 fc0 sc0 ls0 ws0">(<span class="_ _25"> </span><span class="ff8">var++<span class="_ _d"> </span></span>)<span class="_ _c"> </span><span class="ff1">*</span></div><div class="t m0 xb h10 y161 ff1 fs7 fcc sc0 ls0 ws0">*<span class="_ _d"> </span><span class="fff">the<span class="_ _25"> </span>compiler<span class="_ _d"> </span>automatically<span class="_ _d"> </span>applies<span class="_ _d"> </span>such<span class="_ _d"> </span>optimization<span class="_ _d"> </span>whenever<span class="_ _d"> </span>possible.<span class="_ _8"> </span>This<span class="_ _d"> </span>is<span class="_ _d"> </span>not<span class="_ _d"> </span>ensured<span class="_ _d"> </span>fo<span class="_ _3"></span>r</span></div><div class="t m0 x1 h10 y162 fff fs7 fcc sc0 ls0 ws0">object<span class="_ _d"> </span>t<span class="_ _3"></span>yp<span class="_ _b"></span>es</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">31/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf24" class="pf w0 h0" data-page-no="24"><div class="pc pc24 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Arithmetic<span class="_ _17"> </span>Op<span class="_ _b"></span>erations<span class="_ _3e"> </span>2/3</div><div class="t m0 xb hb y15b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Keep<span class="_ _8"> </span>nea<span class="_ _3"></span>r<span class="_ _8"> </span>constant<span class="_ _8"> </span>values/va<span class="_ _3"></span>riables<span class="_ _f"> </span><span class="ff10">→<span class="_ _c"> </span><span class="ff4">the<span class="_ _f"> </span>compiler<span class="_ _c"> </span>can<span class="_ _f"> </span>merge<span class="_ _c"> </span>their<span class="_ _f"> </span>values</span></span></span></div><div class="t m0 xb hb y163 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Some<span class="_ _c"> </span>op<span class="_ _b"></span>erations<span class="_ _f"> </span>on<span class="_ _c"> </span><span class="ff5">unsigned<span class="_ _15"> </span>types<span class="_ _f"> </span></span>a<span class="_ _3"></span>re<span class="_ _f"> </span>faster<span class="_ _c"> </span>than<span class="_ _f"> </span>on<span class="_ _c"> </span><span class="ff5">signed<span class="_ _15"> </span>types<span class="_ _f"> </span></span>b<span class="_ _b"></span>ecause</span></div><div class="t m0 x6 hb y15d ff4 fs6 fc0 sc0 ls0 ws0">they<span class="_ _c"> </span>don’t<span class="_ _c"> </span>have<span class="_ _f"> </span>to<span class="_ _c"> </span>deal<span class="_ _f"> </span>with<span class="_ _c"> </span>negative<span class="_ _f"> </span>numb<span class="_ _b"></span>ers,<span class="_ _c"> </span>e.g.<span class="_ _a"> </span><span class="ff8">x<span class="_ _15"> </span>/<span class="_ _15"> </span>2<span class="_ _6"> </span><span class="ff10">→<span class="_ _15"> </span></span>x<span class="_ _15"> </span>>><span class="_ _15"> </span>1</span></div><div class="t m0 xb hb y164 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Some<span class="_ _c"> </span>op<span class="_ _b"></span>erations<span class="_ _f"> </span>on<span class="_ _c"> </span><span class="ff5">signed<span class="_ _15"> </span>types<span class="_ _f"> </span></span>a<span class="_ _3"></span>re<span class="_ _f"> </span>faster<span class="_ _c"> </span>than<span class="_ _f"> </span>on<span class="_ _c"> </span><span class="ff5">unsigned<span class="_ _15"> </span>types<span class="_ _f"> </span></span>b<span class="_ _b"></span>ecause</span></div><div class="t m0 x6 hb y15f ff4 fs6 fc0 sc0 ls0 ws0">they<span class="_ _c"> </span>can<span class="_ _c"> </span>exploit<span class="_ _f"> </span><span class="ffa">undefined<span class="_ _c"> </span>b<span class="_ _0"></span>ehavio<span class="_ _3"></span>r<span class="ff4">,<span class="_ _c"> </span>see<span class="_ _c"> </span>next<span class="_ _f"> </span>slide</span></span></div><div class="t m0 xb hb y165 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _f"> </span><span class="ff1">logic<span class="_ _8"> </span>op<span class="_ _b"></span>erations<span class="_ _10"> </span><span class="ff8">||<span class="_ _10"> </span></span></span>to<span class="_ _c"> </span><span class="ff1">bitwise<span class="_ _f"> </span>op<span class="_ _b"></span>erations<span class="_ _10"> </span><span class="ff8">|<span class="_ _10"> </span></span></span>to<span class="_ _c"> </span>take<span class="_ _c"> </span>advantage<span class="_ _c"> </span>of</span></div><div class="t m0 x6 hb y166 ff4 fs6 fc0 sc0 ls0 ws0">sho<span class="_ _3"></span>rt-circuiting</div><div class="t m0 xb hd y167 ffc fs7 fcc sc0 ls0 ws0"><span class="fce sc0">Is</span><span class="_ _9"> </span><span class="fce sc0">if(A</span><span class="_ _9"> </span><span class="fce sc0">|</span><span class="_ _e"> </span><span class="fce sc0">B)</span><span class="_ _9"> </span><span class="fce sc0">always</span><span class="_ _9"> </span><span class="fce sc0">faster</span><span class="_ _e"> </span><span class="fce sc0">than</span><span class="_ _9"> </span><span class="fce sc0">if(A</span><span class="_ _9"> </span><span class="fce sc0">||</span><span class="_ _9"> </span><span class="fce sc0">B)?</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">32/87</div><a class="l" href="https://stackoverflow.com/questions/71039947/is-ifa-b-always-faster-than-ifa-b"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:-46.339000px;width:204.409000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf25" class="pf w0 h0" data-page-no="25"><div class="pc pc25 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAJJklEQVR42u3ZMYoUQRiG4SnpH6PCM4iRJxAxFjYUTNbAU/QhjJaFib2BgXMFYQMP4Q2Mlgoc/8EdE5FBZBXHXqqnnyfsoGv4JnnpKo+ePFsBAEA3Pn28umcFAAB6I1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAPipZKYVAADoR0T4kgoAQHdEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAC43XAHZ7TWDA0AsAS11v/yHl9SAQDojkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAgDs2mAAA/sZ2tztfrw+fbMbRLDCRkplTn9FaMzQAwBLUWo9/SUS47gcAoDsiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAH4YTAAAJ+bFxcUvTzbjaBbmpWTm1Ge01gwNALAEtdbjXxIRrvsBAOiOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAOCPBhMAwOxsd7vz9frwyWYczcIpKZk59RmtNUMDACxBrfX4l0SE634AALojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAvzOYAAA4Gd9ubl5eXh4+2YyjWeaoZObUZ7TWDA0AsAS11uNfEhGu+wEA6I5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAAC6UjLTCgAA9CMifEkFAKA7IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAA3G6Yyw/9st2evXrtD4N5+fD+nREA+AclM60AAEA/IsJ1PwAA3RGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAzMly/eWgFWLjPz98aAYB+PH56VsqD+/vrr6vVfr83CAAAXfgO5aJP+G5HjyoAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Arithmetic<span class="_ _17"> </span>Op<span class="_ _b"></span>erations<span class="_ _3e"> </span>3/3</div><div class="t m0 x2b hd y168 ff5 fs7 fc6 sc0 ls0 ws0">bool<span class="_ _9"> </span><span class="ffc fc7">mainGuT<span class="fc0">(</span></span>uint32_t<span class="_ _9"> </span><span class="ffc fc0">i1,<span class="_ _e"> </span></span>uint32_t<span class="_ _9"> </span><span class="ffc fc0">i2,<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _e"> </span><span class="ff16">if<span class="_ _9"> </span>i1,<span class="_ _9"> </span>i2<span class="_ _9"> </span>are<span class="_ _e"> </span>int32<span class="_ _d"> </span>t,<span class="_ _e"> </span>the<span class="_ _9"> </span>code</span></span></span></div><div class="t m0 x2c hd y169 ff5 fs7 fc6 sc0 ls0 ws0">uint8_t<span class="_ _9"> </span><span class="ffc fc8">*<span class="fc0">block)<span class="_ _9"> </span>{<span class="_ _3f"> </span><span class="ffb fc5">//<span class="_ _9"> </span><span class="ff16">uses<span class="_ _9"> </span>half<span class="_ _e"> </span>of<span class="_ _9"> </span>the<span class="_ _9"> </span>instructions!!</span></span></span></span></div><div class="t m0 x2d hd y16a ff5 fs7 fc6 sc0 ls0 ws0">uint8_t<span class="_ _9"> </span><span class="ffc fc0">c1,<span class="_ _9"> </span>c2;</span></div><div class="t m0 x2d hd y16b ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>1<span class="_ _40"> </span>//<span class="_ _9"> </span><span class="ff16">why?<span class="_ _9"> </span></span>if<span class="_ _e"> </span><span class="ff16">i1,<span class="_ _9"> </span>i2<span class="_ _9"> </span></span>are<span class="_ _e"> </span><span class="ff16">uint32<span class="_ _d"> </span>t<span class="_ _e"> </span></span>the<span class="_ _17"> </span>compiler</div><div class="t m0 x2d hd y16c ffc fs7 fc0 sc0 ls0 ws0">c1<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>block[i1],<span class="_ _e"> </span>c2<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>block[i2];<span class="_ _41"> </span><span class="ffb fc5">//<span class="_ _9"> </span>must<span class="_ _9"> </span>copy<span class="_ _e"> </span>them<span class="_ _9"> </span>into<span class="_ _9"> </span>32-bit<span class="_ _e"> </span>registers<span class="_ _9"> </span>to</span></div><div class="t m0 x2d hd y16d ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">(c1<span class="_ _9"> </span><span class="fc8">!=<span class="_ _e"> </span></span>c2)<span class="_ _9"> </span></span>return<span class="_ _9"> </span><span class="ffc fc0">(c1<span class="_ _e"> </span><span class="fc8">><span class="_ _9"> </span></span>c2);<span class="_ _41"> </span><span class="ffb fc5">//<span class="_ _17"> </span>ensure<span class="_ _e"> </span>wrap-around<span class="_ _9"> </span>behavior<span class="_ _9"> </span>before<span class="_ _e"> </span>passing</span></span></div><div class="t m0 x2d hd y16e ffc fs7 fc0 sc0 ls0 ws0">i1<span class="fc8">++</span>,<span class="_ _9"> </span>i2<span class="fc8">++</span>;<span class="_ _42"> </span><span class="ffb fc5">//<span class="_ _9"> </span>them<span class="_ _9"> </span>to<span class="_ _e"> </span>the<span class="_ _9"> </span>subscript<span class="_ _9"> </span>operator<span class="_ _e"> </span>(size_t)</span></div><div class="t m0 x2d hd y16f ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>2<span class="_ _40"> </span>//<span class="_ _9"> </span><span class="ff16">On<span class="_ _9"> </span>the<span class="_ _e"> </span>other<span class="_ _9"> </span>hand,<span class="_ _9"> </span>int32<span class="_ _c"> </span>t<span class="_ _9"> </span>overflow<span class="_ _e"> </span>is</span></div><div class="t m0 x2d hd y170 ffc fs7 fc0 sc0 ls0 ws0">c1<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>block[i1],<span class="_ _e"> </span>c2<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>block[i2];<span class="_ _41"> </span><span class="ffb fc5">//<span class="_ _9"> </span><span class="ff16">undefined<span class="_ _9"> </span>behavior<span class="_ _e"> </span>and<span class="_ _9"> </span>the<span class="_ _9"> </span>compiler<span class="_ _e"> </span>can</span></span></div><div class="t m0 x2d hd y171 ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">(c1<span class="_ _9"> </span><span class="fc8">!=<span class="_ _e"> </span></span>c2)<span class="_ _9"> </span></span>return<span class="_ _9"> </span><span class="ffc fc0">(c1<span class="_ _e"> </span><span class="fc8">><span class="_ _9"> </span></span>c2);<span class="_ _41"> </span><span class="ffb fc5">//<span class="_ _17"> </span><span class="ff16">assume<span class="_ _e"> </span>it<span class="_ _9"> </span>never<span class="_ _9"> </span>happens</span></span></span></div><div class="t m0 x2d hd y172 ffc fs7 fc0 sc0 ls0 ws0">i1<span class="fc8">++</span>,<span class="_ _9"> </span>i2<span class="fc8">++</span>;</div><div class="t m0 x2d hd y173 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>...<span class="_ _9"> </span>continue<span class="_ _e"> </span>repeating<span class="_ _9"> </span>the<span class="_ _36"> </span>//<span class="_ _9"> </span>the<span class="_ _9"> </span>code<span class="_ _e"> </span>is<span class="_ _9"> </span>also<span class="_ _9"> </span>optimal<span class="_ _9"> </span>with<span class="_ _e"> </span><span class="ff16">size<span class="_ _d"> </span>t<span class="_ _e"> </span></span>on<span class="_ _9"> </span>64-bit</div><div class="t m0 x2b hd y174 ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _13"> </span><span class="ffb fc5">//<span class="_ _43"> </span>code<span class="_ _9"> </span>multiple<span class="_ _9"> </span>times<span class="_ _3f"> </span>//<span class="_ _9"> </span>arch<span class="_ _9"> </span>because<span class="_ _e"> </span><span class="ff16">block<span class="_ _9"> </span></span>cannot<span class="_ _9"> </span>be<span class="_ _e"> </span>larger<span class="_ _9"> </span>than<span class="_ _9"> </span>it</span></div><div class="t m0 xb hd y175 ffc fs7 fcc sc0 ls0 ws0">Garbage<span class="_ _9"> </span>In,<span class="_ _9"> </span>Garbage<span class="_ _e"> </span>Out:<span class="_ _20"> </span>Arguing<span class="_ _17"> </span>about<span class="_ _e"> </span>Undefined<span class="_ _17"> </span>Behavior<span class="_ _e"> </span>with<span class="_ _9"> </span>Nasal<span class="_ _9"> </span>Daemons,</div><div class="t m0 x2d hd y176 ffc fs7 fcc sc0 ls0 ws0">Chandler<span class="_ _9"> </span>Carruth,<span class="_ _9"> </span>CppCon<span class="_ _e"> </span>2016</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">33/87</div><a class="l" href="https://www.youtube.com/watch?v=yG1OZ69H_-o"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:14.138000px;width:391.471000px;height:11.657000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://www.youtube.com/watch?v=yG1OZ69H_-o"><div class="d m1" style="border-style:none;position:absolute;left:27.350000px;bottom:-0.253000px;width:148.468000px;height:11.154000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf26" class="pf w0 h0" data-page-no="26"><div class="pc pc26 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQ3CMBRFURvFooqYAVExAULUSGzGEoxDwRBsQBWlwo3pKCko4Cc6ZwLrubn6ebM7JAAACON+uy6sAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIC3XGu1AgAAcZRSXFIBAAhHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAD4n25Cbx3H0YcBAHyn7/sJvdYlFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAACzkWutVgAAII5SiksqAADhiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAA89UN57UVgM8ex4sRAPiZ7f6U82rZhmdKrTWDAAAQwgsszhoC3noQQAAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Arithmetic<span class="_ _17"> </span>Op<span class="_ _b"></span>erations<span class="_ _17"> </span>-<span class="_ _9"> </span>Integer<span class="_ _17"> </span>Multiplication</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">Integer<span class="_ _c"> </span>multiplication<span class="_ _c"> </span>requires<span class="_ _f"> </span>double<span class="_ _c"> </span>the<span class="_ _f"> </span>numb<span class="_ _b"></span>er<span class="_ _c"> </span>of<span class="_ _f"> </span>bits<span class="_ _c"> </span>of<span class="_ _f"> </span>the<span class="_ _c"> </span>op<span class="_ _0"></span>erands</div><div class="t m0 xd hd y177 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span><span class="ff16">32-bit<span class="_ _9"> </span>platforms</span></div><div class="t m0 xd hd y178 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc7">f1<span class="fc0">(</span></span>int<span class="_ _9"> </span><span class="ffc fc0">x,<span class="_ _e"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">y)<span class="_ _9"> </span>{</span></div><div class="t m0 x6 hd y179 ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">*<span class="_ _e"> </span></span>y;<span class="_ _12"> </span><span class="ffb fc5">//<span class="_ _9"> </span>efficient<span class="_ _9"> </span>but<span class="_ _e"> </span>can<span class="_ _9"> </span>overflow</span></span></div><div class="t m0 xd hd y17a ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hd y17b ff5 fs7 fc6 sc0 ls0 ws0">int64_t<span class="_ _9"> </span><span class="ffc fc7">f2<span class="fc0">(</span></span>int64_t<span class="_ _9"> </span><span class="ffc fc0">x,<span class="_ _e"> </span></span>int64_t<span class="_ _9"> </span><span class="ffc fc0">y)<span class="_ _9"> </span>{<span class="_ _43"> </span><span class="ffb fc5">//<span class="_ _9"> </span>same<span class="_ _e"> </span>for<span class="_ _9"> </span>f2(int<span class="_ _9"> </span>x,<span class="_ _e"> </span>int64_t<span class="_ _17"> </span>y)</span></span></div><div class="t m0 x6 hd y17c ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">*<span class="_ _e"> </span></span>y;<span class="_ _12"> </span><span class="ffb fc5">//<span class="_ _9"> </span>always<span class="_ _9"> </span>correct<span class="_ _e"> </span>but<span class="_ _9"> </span>slow</span></span></div><div class="t m0 xd hd y17d ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hd y17e ff5 fs7 fc6 sc0 ls0 ws0">int64_t<span class="_ _9"> </span><span class="ffc fc7">f3<span class="fc0">(</span></span>int<span class="_ _9"> </span><span class="ffc fc0">x,<span class="_ _e"> </span></span>int<span class="_ _9"> </span><span class="ffc fc0">y)<span class="_ _9"> </span>{</span></div><div class="t m0 x6 hd y17f ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">*<span class="_ _e"> </span></span></span>static_cast<span class="ffc fc8"><</span><span class="fc6">int64_t<span class="ffc fc8">><span class="fc0">(y);<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _9"> </span>correct<span class="_ _e"> </span>and<span class="_ _9"> </span>efficient!!</span></span></span></span></div><div class="t m0 xd hd y180 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">34/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf27" class="pf w0 h0" data-page-no="27"><div class="pc pc27 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Arithmetic<span class="_ _17"> </span>Op<span class="_ _b"></span>erations<span class="_ _17"> </span>-<span class="_ _9"> </span>P<span class="_ _3"></span>ow<span class="_ _3"></span>er-of-T<span class="_ _5"></span>wo<span class="_ _8"> </span>Multiplication/Division/Mo<span class="_ _b"></span>dulo</div><div class="t m0 xb hb y181 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _c"> </span>shift<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span><span class="ff1">p<span class="_ _0"></span>o<span class="_ _3"></span>w<span class="_ _3"></span>er-of-t<span class="_ _3"></span>wo<span class="_ _f"> </span>multiplications<span class="_ _c"> </span><span class="ff4">(<span class="_ _d"> </span><span class="ff8">a<span class="_ _15"> </span><span class="ff10">≪<span class="_ _15"> </span></span>b<span class="_ _d"> </span></span>)<span class="_ _c"> </span>and<span class="_ _c"> </span></span>divisions</span></span></div><div class="t m0 x6 hb y9c ff4 fs6 fc0 sc0 ls0 ws0">(<span class="_ _25"> </span><span class="ff8">a<span class="_ _15"> </span><span class="ff10">≫<span class="_ _15"> </span></span>b<span class="_ _d"> </span></span>)<span class="_ _c"> </span>only<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>run-time<span class="_ _c"> </span>values<span class="_ _f"> </span><span class="ff1">*</span></div><div class="t m0 xb hb y182 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _c"> </span>bitwise<span class="_ _c"> </span><span class="ff17">and<span class="_ _c"> </span></span>(<span class="_ _d"> </span><span class="ff8">a<span class="_ _15"> </span>%<span class="_ _6"> </span>b<span class="_ _15"> </span><span class="ff10">→<span class="_ _15"> </span></span>a<span class="_ _15"> </span>&<span class="_ _15"> </span>(b<span class="_ _15"> </span>-<span class="_ _15"> </span>1)<span class="_ _d"> </span></span>)<span class="_ _c"> </span>for<span class="_ _c"> </span><span class="ff1">p<span class="_ _b"></span>ow<span class="_ _3"></span>er-of-t<span class="_ _3"></span>wo<span class="_ _f"> </span>mo<span class="_ _b"></span>dulo</span></span></div><div class="t m0 x6 hb y9e ff4 fs6 fc0 sc0 ls0 ws0">op<span class="_ _b"></span>erations<span class="_ _c"> </span>only<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>run-time<span class="_ _c"> </span>values<span class="_ _f"> </span><span class="ff1">*</span></div><div class="t m0 xb hb y183 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Constant<span class="_ _8"> </span>multiplication<span class="_ _f"> </span>and<span class="_ _8"> </span>division<span class="_ _f"> </span><span class="ff4">can<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>heavily<span class="_ _c"> </span>optimized<span class="_ _f"> </span>b<span class="_ _3"></span>y<span class="_ _f"> </span>the<span class="_ _c"> </span>compiler,</span></span></div><div class="t m0 x6 hb y184 ff4 fs6 fc0 sc0 ls0 ws0">even<span class="_ _c"> </span>for<span class="_ _c"> </span>non-trivial<span class="_ _c"> </span>values</div><div class="t m0 xb h10 y185 ff1 fs7 fcc sc0 ls0 ws0">*<span class="_ _d"> </span><span class="fff">the<span class="_ _25"> </span>compiler<span class="_ _d"> </span>automatically<span class="_ _d"> </span>applies<span class="_ _d"> </span>such<span class="_ _d"> </span>optimizations<span class="_ _d"> </span>if<span class="_ _11"> </span><span class="ffc">b<span class="_ _15"> </span></span>is<span class="_ _d"> </span>known<span class="_ _25"> </span>at<span class="_ _d"> </span>compile-time.<span class="_ _8"> </span>Bitwise</span></div><div class="t m0 x1 h10 y186 fff fs7 fcc sc0 ls0 ws0">op<span class="_ _b"></span>erations<span class="_ _d"> </span>mak<span class="_ _3"></span>e<span class="_ _d"> </span>the<span class="_ _d"> </span>co<span class="_ _b"></span>de<span class="_ _d"> </span>ha<span class="_ _3"></span>rder<span class="_ _d"> </span>to<span class="_ _d"> </span>read</div><div class="t m0 x1 hd y187 ffc fs7 fcc sc0 ls0 ws0">Ideal<span class="_ _9"> </span>divisors:<span class="_ _20"> </span>when<span class="_ _9"> </span>a<span class="_ _9"> </span>division<span class="_ _e"> </span>compiles<span class="_ _9"> </span>down<span class="_ _9"> </span>to<span class="_ _9"> </span>just<span class="_ _e"> </span>a<span class="_ _9"> </span>multiplication</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">35/87</div><a class="l" href="https://lemire.me/blog/2021/04/28/ideal-divisors-when-a-division-compiles-down-to-just-a-multiplication/?amp&__twitter_impression=true"><div class="d m1" style="border-style:none;position:absolute;left:27.350000px;bottom:4.240000px;width:336.214000px;height:11.154000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf28" class="pf w0 h0" data-page-no="28"><div class="pc pc28 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI00lEQVR42u3aMUoDQRiG4YzOj6VnECuL1CJWgQi5goXn8RLewMIjBImFN0jjDaxSGYcNa2cXQUHy7/I8J8h807zspJxfXk8AACCNt9eXIysAAJCNSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEA4FtprVkBAIA8IsKXVAAA0hGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBg2OooT9V1u+ls7nYBgMzWq6UR9imtNSsAAJBHRHjuBwAgHZEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCADAgdZSn6rrddDZ3uwBAZuvV0gj7jPNLaq3HrhYAYLhKa80KAADkERH+kwoAQDoiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkWoCAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQDgkOooT9V1u+ls7nYBgMzWq6UR9imtNSsAAJBHRHjuBwAgHZEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAA6rDuWHfmy3i9s7FwbD8vz0aAQA/qC01qwAAEAeEeG5HwCAdEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQDgJ3Vzf2YF4P+83zwYAYBfubhalHJ60m8+J5O+7w0CAEAKX0bROAdcuha7AAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Conversion</div><div class="t m0 x15 h10 y188 ff1 fs7 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>rom<span class="_ _44"> </span>T<span class="_ _7"></span>o<span class="_ _45"> </span>Cost</div><div class="t m0 x2e h10 y189 ffc fs7 fc0 sc0 ls0 ws0">Signed<span class="_ _46"> </span>Unsigned<span class="_ _47"> </span><span class="fff">no<span class="_ _d"> </span>cost,<span class="_ _25"> </span>bit<span class="_ _d"> </span>representation<span class="_ _25"> </span>is<span class="_ _d"> </span>the<span class="_ _d"> </span>same</span></div><div class="t m0 x2e h10 y18a ffc fs7 fc0 sc0 ls0 ws0">Unsigned<span class="_ _48"> </span>Larger<span class="_ _9"> </span>Unsigned<span class="_ _49"> </span><span class="fff">no<span class="_ _d"> </span>cost,<span class="_ _25"> </span>register<span class="_ _d"> </span>extended</span></div><div class="t m0 x2e h10 y18b ffc fs7 fc0 sc0 ls0 ws0">Signed<span class="_ _46"> </span>Larger<span class="_ _9"> </span>Signed<span class="_ _4a"> </span><span class="fff">1<span class="_ _d"> </span>clock-cycle,<span class="_ _d"> </span>register<span class="_ _d"> </span>+<span class="_ _d"> </span>sign<span class="_ _d"> </span>extended</span></div><div class="t m0 x2e hd y18c ffc fs7 fc0 sc0 ls0 ws0">Integer<span class="_ _47"> </span>Floating-point</div><div class="t m0 x2f h10 y18d fff fs7 fc0 sc0 ls0 ws0">4-16<span class="_ _d"> </span>clock-cycles</div><div class="t m0 x2f h10 y18e fff fs7 fc0 sc0 ls0 ws0">Signed<span class="_ _d"> </span><span class="ff18">→<span class="_ _25"> </span></span>Floating-p<span class="_ _b"></span>oint<span class="_ _d"> </span>is<span class="_ _d"> </span>faster<span class="_ _d"> </span>than</div><div class="t m0 x2f h10 y18f fff fs7 fc0 sc0 ls0 ws0">Unsigned<span class="_ _d"> </span><span class="ff18">→<span class="_ _25"> </span></span>Floating-p<span class="_ _b"></span>oint<span class="_ _d"> </span>(except<span class="_ _d"> </span><span class="ffc">AVX512</span></div><div class="t m0 x2f h10 y190 fff fs7 fc0 sc0 ls0 ws0">instruction<span class="_ _d"> </span>set<span class="_ _25"> </span>is<span class="_ _d"> </span>enabled)</div><div class="t m0 x2e h10 y191 ffc fs7 fc0 sc0 ls0 ws0">Floating-point<span class="_ _23"> </span>Integer<span class="_ _46"> </span><span class="fff">fast<span class="_ _d"> </span>if<span class="_ _f"> </span></span>SSE2<span class="fff">,<span class="_ _d"> </span>slo<span class="_ _3"></span>w<span class="_ _d"> </span>otherwise<span class="_ _d"> </span>(50-100<span class="_ _d"> </span>clo<span class="_"> </span>ck-cycles)</span></div><div class="t m0 xb h10 y192 ffc fs7 fcc sc0 ls0 ws0">Optimizing<span class="_ _9"> </span>software<span class="_ _9"> </span>in<span class="_ _e"> </span>C++<span class="fff">,<span class="_ _25"> </span><span class="ff19">Agner<span class="_ _d"> </span>Fog</span></span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">36/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf29" class="pf w0 h0" data-page-no="29"><div class="pc pc29 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Floating-P<span class="_ _3"></span>oint<span class="_ _17"> </span>Division</div><div class="t m0 x1 hb y193 ff1 fs6 fc0 sc0 ls0 ws0">Multiplication<span class="_ _f"> </span>is<span class="_ _8"> </span>much<span class="_ _8"> </span>faster<span class="_ _8"> </span>than<span class="_ _8"> </span>division*</div><div class="t m0 x1 hd y194 ffc fs7 fc0 sc0 ls0 ws0">not<span class="_ _9"> </span>optimized:</div><div class="t m0 xd hd y195 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>"value"<span class="_ _9"> </span>is<span class="_ _e"> </span>floating-point<span class="_ _9"> </span>(dynamic)</div><div class="t m0 xd hd y196 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x6 hd y197 ffc fs7 fc0 sc0 ls0 ws0">A[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>B[i]<span class="_ _e"> </span><span class="fc8">/<span class="_ _9"> </span></span>value;</div><div class="t m0 x1 hd y198 ffc fs7 fc0 sc0 ls0 ws0">optimized:</div><div class="t m0 xd hd y199 ffc fs7 fc0 sc0 ls0 ws0">div<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span>1.0<span class="_ _e"> </span>/<span class="_ _9"> </span></span>value;<span class="_ _41"> </span><span class="ffb fc5">//<span class="_ _9"> </span>div<span class="_ _9"> </span>is<span class="_ _9"> </span>floating-point</span></div><div class="t m0 xd hd y19a ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x6 hd y19b ffc fs7 fc0 sc0 ls0 ws0">A[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>B[i]<span class="_ _e"> </span><span class="fc8">*<span class="_ _9"> </span></span>div;</div><div class="t m0 xb h10 y19c ff1 fs7 fcc sc0 ls0 ws0">*<span class="_ _d"> </span><span class="fff">Multiplying<span class="_ _25"> </span>by<span class="_ _d"> </span>the<span class="_ _25"> </span>inverse<span class="_ _d"> </span>is<span class="_ _d"> </span>not<span class="_ _d"> </span>the<span class="_ _d"> </span>same<span class="_ _d"> </span>as<span class="_ _d"> </span>the<span class="_ _25"> </span>division</span></div><div class="t m0 x10 h10 y19d fff fs7 fcc sc0 ls0 ws0">see<span class="_ _d"> </span><span class="ffc">lemire.me/blog/2019/03/12</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">37/87</div><a class="l" href="https://lemire.me/blog/2019/03/12/multiplying-by-the-inverse-is-not-the-same-as-the-division/"><div class="d m1" style="border-style:none;position:absolute;left:57.090000px;bottom:0.403000px;width:119.676000px;height:12.000000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2a" class="pf w0 h0" data-page-no="2a"><div class="pc pc2a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Floating-P<span class="_ _3"></span>oint<span class="_ _17"> </span>FMA</div><div class="t m0 x1 hb y193 ff4 fs6 fc0 sc0 ls0 ws0">Mo<span class="_ _b"></span>dern<span class="_ _c"> </span>processors<span class="_ _c"> </span>allo<span class="_ _3"></span>w<span class="_ _f"> </span>p<span class="_ _b"></span>erfo<span class="_ _3"></span>rming<span class="_ _10"> </span><span class="ff8">a<span class="_ _15"> </span>*<span class="_ _15"> </span>b<span class="_ _15"> </span>+<span class="_ _15"> </span>c<span class="_ _10"> </span></span>in<span class="_ _c"> </span>a<span class="_ _f"> </span>single<span class="_ _c"> </span>op<span class="_ _b"></span>eration,<span class="_ _f"> </span>called<span class="_ _c"> </span><span class="ff1">fused</span></div><div class="t m0 x1 hb y19e ff1 fs6 fc0 sc0 ls0 ws0">multiply-add<span class="_ _c"> </span><span class="ff4">(<span class="_ _d"> </span><span class="ff8">std::fma<span class="_ _10"> </span></span>in<span class="_ _c"> </span><span class="fcd">C++11</span>).<span class="_ _e"> </span>This<span class="_ _c"> </span>implies<span class="_ _c"> </span>b<span class="_ _b"></span>etter<span class="_ _f"> </span>p<span class="_ _b"></span>erformance<span class="_ _c"> </span>and<span class="_ _c"> </span>accuracy</span></div><div class="t m0 x1 hb y19f ff4 fs6 fc0 sc0 ls0 ws0">CPU<span class="_ _c"> </span>processors<span class="_ _c"> </span>perform<span class="_ _c"> </span>computations<span class="_ _c"> </span>with<span class="_ _f"> </span>a<span class="_ _c"> </span>larger<span class="_ _c"> </span>register<span class="_ _c"> </span>size<span class="_ _c"> </span>than<span class="_ _f"> </span>the<span class="_ _c"> </span>original<span class="_ _c"> </span>data</div><div class="t m0 x1 hb y1a0 ff4 fs6 fc0 sc0 ls0 ws0">t<span class="_ _3"></span>yp<span class="_ _b"></span>e<span class="_ _f"> </span>(e.g.<span class="_ _e"> </span>48-bit<span class="_ _c"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>32-bit<span class="_ _c"> </span>floating-p<span class="_ _b"></span>oint)<span class="_ _f"> </span>for<span class="_ _c"> </span>performing<span class="_ _c"> </span>this<span class="_ _c"> </span>op<span class="_ _b"></span>eration</div><div class="t m0 x1 hb y1a1 ff4 fs6 fc0 sc0 ls0 ws0">Compiler<span class="_ _c"> </span>b<span class="_ _b"></span>ehavior:</div><div class="t m0 xb h6 y1a2 ff7 fs4 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">GCC<span class="_ _d"> </span>9<span class="_ _c"> </span>and<span class="_ _d"> </span>ICC<span class="_ _c"> </span>19<span class="_ _d"> </span>produce<span class="_ _c"> </span>a<span class="_ _d"> </span>single<span class="_ _c"> </span>instruction<span class="_ _d"> </span>for<span class="_ _11"> </span><span class="ff8">std::fma<span class="_ _11"> </span></span>and<span class="_ _d"> </span>for<span class="_ _11"> </span><span class="ff8">a<span class="_ _e"> </span>*<span class="_ _6"> </span>b<span class="_ _e"> </span>+<span class="_ _6"> </span>c<span class="_ _11"> </span></span>with</span></div><div class="t m0 xc hc y1a3 ff8 fs4 fc0 sc0 ls0 ws0">-O3<span class="_ _e"> </span>-march=native</div><div class="t m0 xb h6 y1a4 ff7 fs4 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Clang<span class="_ _d"> </span>9<span class="_ _c"> </span>and<span class="_ _d"> </span>MSVC<span class="_ _d"> </span>19.*<span class="_ _c"> </span>p<span class="_ _3"></span>ro<span class="_ _b"></span>duce<span class="_ _c"> </span>a<span class="_ _d"> </span>single<span class="_ _c"> </span>instruction<span class="_ _d"> </span>for<span class="_ _11"> </span><span class="ff8">std::fma<span class="_ _11"> </span></span>but<span class="_ _d"> </span>not<span class="_ _c"> </span>fo<span class="_ _3"></span>r</span></div><div class="t m0 xc hc y1a5 ff8 fs4 fc0 sc0 ls0 ws0">a<span class="_ _e"> </span>*<span class="_ _6"> </span>b<span class="_ _6"> </span>+<span class="_ _e"> </span>c</div><div class="t m0 xb hd y1a6 ffc fs7 fcc sc0 ls0 ws0">FMA:<span class="_ _9"> </span>solve<span class="_ _9"> </span>quadratic<span class="_ _e"> </span>equation</div><div class="t m0 x5 hd y1a7 ffc fs7 fcc sc0 ls0 ws0">FMA:<span class="_ _9"> </span>extended<span class="_ _9"> </span>precision<span class="_ _e"> </span>addition<span class="_ _9"> </span>and<span class="_ _9"> </span>multiplication<span class="_ _e"> </span>by<span class="_ _9"> </span>constant</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">38/87</div><a class="l" href="https://marc-b-reynolds.github.io/math/2020/01/10/Quadratic.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:16.006000px;width:138.506000px;height:11.657000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://marc-b-reynolds.github.io/math/2020/01/09/ConstAddMul.html"><div class="d m1" style="border-style:none;position:absolute;left:34.324000px;bottom:1.615000px;width:298.555000px;height:11.154000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2b" class="pf w0 h0" data-page-no="2b"><div class="pc pc2b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXklEQVR42u3YsQ2CQBiG4TvDhdIZCJUTGENt4mYu4TgUDMEGVpRec3bM8EOeZ4SvevPl8T4lAAAIY13mixUAAIhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAsMu1VisAABBHKcWTCgBAOCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVBAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAADn0W3vwQrAcX2fHyMAnMzt8cr52rftl1JrzSAAAITwB4+QFAQ43sXVAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Compiler<span class="_ _17"> </span>Intrinsic<span class="_ _17"> </span>Functions<span class="_ _4b"> </span>1/5</div><div class="t m0 x1 hb y1a8 ff1 fs6 fc0 sc0 ls0 ws0">Compiler<span class="_ _f"> </span>intrinsics<span class="_ _f"> </span><span class="ff4">are<span class="_ _c"> </span>highly<span class="_ _c"> </span>optimized<span class="_ _c"> </span>functions<span class="_ _f"> </span>directly<span class="_ _c"> </span>provided<span class="_ _c"> </span>b<span class="_ _3"></span>y<span class="_ _f"> </span>the<span class="_ _c"> </span>compiler</span></div><div class="t m0 x1 hb y1a9 ff4 fs6 fc0 sc0 ls0 ws0">instead<span class="_ _c"> </span>of<span class="_ _c"> </span>external<span class="_ _f"> </span>libra<span class="_ _3"></span>ries</div><div class="t m0 x1 hb y1aa ffa fs6 fc0 sc0 ls0 ws0">A<span class="_ _3"></span>dvantages:</div><div class="t m0 xb hb y1ab ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Directly<span class="_ _c"> </span>mapp<span class="_ _b"></span>ed<span class="_ _f"> </span>to<span class="_ _c"> </span>hardw<span class="_ _3"></span>a<span class="_ _3"></span>re<span class="_ _f"> </span>functionalities<span class="_ _c"> </span>if<span class="_ _f"> </span>available</span></div><div class="t m0 xb hb y1ac ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Inline<span class="_ _c"> </span>expansion</span></div><div class="t m0 xb hb y1ad ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Do<span class="_ _d"> </span>not<span class="_ _c"> </span>inhibit<span class="_ _d"> </span>high-level<span class="_ _c"> </span>optimizations,<span class="_ _d"> </span>and<span class="_ _c"> </span>they<span class="_ _d"> </span>are<span class="_ _d"> </span>p<span class="_ _b"></span>ortable<span class="_ _d"> </span>contra<span class="_ _3"></span>ry<span class="_ _c"> </span>to<span class="_ _d"> </span><span class="ff8">asm<span class="_ _c"> </span></span>co<span class="_ _b"></span>de</span></div><div class="t m0 x1 hb y1ae ffa fs6 fc0 sc0 ls0 ws0">Dra<span class="_ _3"></span>wbacks:</div><div class="t m0 xb hb y1af ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">P<span class="_ _3"></span>ortabilit<span class="_ _3"></span>y<span class="_ _c"> </span>is<span class="_ _f"> </span>limited<span class="_ _c"> </span>to<span class="_ _f"> </span>a<span class="_ _c"> </span>sp<span class="_ _b"></span>ecific<span class="_ _f"> </span>compiler</span></div><div class="t m0 xb hb y1b0 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Some<span class="_ _c"> </span>intrinsics<span class="_ _f"> </span>do<span class="_ _c"> </span>not<span class="_ _f"> </span>w<span class="_ _3"></span>ork<span class="_ _c"> </span>on<span class="_ _c"> </span>all<span class="_ _c"> </span>platforms</span></div><div class="t m0 xb hb y1b1 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>same<span class="_ _f"> </span>instricics<span class="_ _c"> </span>can<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>mapp<span class="_ _b"></span>ed<span class="_ _f"> </span>to<span class="_ _c"> </span>a<span class="_ _f"> </span>non-optimal<span class="_ _c"> </span>instruction<span class="_ _f"> </span>sequence</span></div><div class="t m0 x6 hb y1b2 ff4 fs6 fc0 sc0 ls0 ws0">dep<span class="_ _b"></span>ending<span class="_ _c"> </span>on<span class="_ _f"> </span>the<span class="_ _c"> </span>compiler</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">39/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2c" class="pf w0 h0" data-page-no="2c"><div class="pc pc2c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Compiler<span class="_ _17"> </span>Intrinsic<span class="_ _17"> </span>Functions<span class="_ _4b"> </span>2/5</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">Most<span class="_ _c"> </span>compilers<span class="_ _c"> </span>provide<span class="_ _c"> </span>intrinsics<span class="_ _c"> </span><span class="ff1">bit-manipulation<span class="_ _8"> </span>functions<span class="_ _f"> </span></span>for<span class="_ _c"> </span><span class="ff8">SSE4.2<span class="_ _c"> </span></span>or<span class="_ _c"> </span><span class="ff8">ABM</span></div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">(A<span class="_ _3"></span>dvanced<span class="_ _f"> </span>Bit<span class="_ _c"> </span>Manipulation)<span class="_ _f"> </span>instruction<span class="_ _c"> </span>sets<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>Intel<span class="_ _c"> </span>and<span class="_ _f"> </span>AMD<span class="_ _c"> </span>processors</div><div class="t m0 x1 hb y1b3 ff4 fs6 fc0 sc0 ls0 ws0">GCC<span class="_ _c"> </span>examples:</div><div class="t m0 x30 h6 y1b4 ff5 fs4 fc0 sc0 ls0 ws0">builtin<span class="_ _f"> </span>popcount(x)<span class="_ _14"> </span><span class="ff4">count<span class="_ _d"> </span>the<span class="_ _c"> </span>numb<span class="_ _b"></span>er<span class="_ _d"> </span>of<span class="_ _c"> </span>one<span class="_ _d"> </span>bits</span></div><div class="t m0 xf h6 y1b5 ff5 fs4 fc0 sc0 ls0 ws0">builtin<span class="_ _f"> </span>clz(x)<span class="_ _14"> </span><span class="ff4">(<span class="ff8">count<span class="_ _e"> </span>leading<span class="_ _6"> </span>zeros</span>)<span class="_ _d"> </span>counts<span class="_ _c"> </span>the<span class="_ _d"> </span>numb<span class="_ _b"></span>er<span class="_ _c"> </span>of<span class="_ _d"> </span>zero<span class="_ _c"> </span>bits<span class="_ _d"> </span>following<span class="_ _d"> </span>the</span></div><div class="t m0 x31 h6 y1b6 ff4 fs4 fc0 sc0 ls0 ws0">most<span class="_ _d"> </span>significant<span class="_ _c"> </span>one<span class="_ _d"> </span>bit</div><div class="t m0 xf h6 y1b7 ff5 fs4 fc0 sc0 ls0 ws0">builtin<span class="_ _f"> </span>ctz(x)<span class="_ _14"> </span><span class="ff4">(<span class="ff8">count<span class="_ _e"> </span>trailing<span class="_ _6"> </span>zeros</span>)<span class="_ _d"> </span>counts<span class="_ _c"> </span>the<span class="_ _d"> </span>numb<span class="_ _b"></span>er<span class="_ _c"> </span>of<span class="_ _d"> </span>zero<span class="_ _c"> </span>bits<span class="_ _d"> </span>preceding</span></div><div class="t m0 x31 h6 y1b8 ff4 fs4 fc0 sc0 ls0 ws0">the<span class="_ _d"> </span>least<span class="_ _c"> </span>significant<span class="_ _d"> </span>one<span class="_ _c"> </span>bit</div><div class="t m0 xf h6 y1b9 ff5 fs4 fc0 sc0 ls0 ws0">builtin<span class="_ _f"> </span>ffs(x)<span class="_ _14"> </span><span class="ff4">(<span class="ff8">find<span class="_ _e"> </span>first<span class="_ _6"> </span>set</span>)<span class="_ _d"> </span>index<span class="_ _c"> </span>of<span class="_ _d"> </span>the<span class="_ _c"> </span>least<span class="_ _d"> </span>significant<span class="_ _c"> </span>one<span class="_ _d"> </span>bit</span></div><div class="t m0 xb hd y1ba ffc fs7 fcc sc0 ls0 ws0">gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">40/87</div><a class="l" href="https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:0.874000px;width:218.531000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2d" class="pf w0 h0" data-page-no="2d"><div class="pc pc2d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Compiler<span class="_ _17"> </span>Intrinsic<span class="_ _17"> </span>Functions<span class="_ _4b"> </span>3/5</div><div class="t m0 xb hb y1bb ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Compute<span class="_ _c"> </span><span class="ff8">integer<span class="_ _15"> </span>log2</span></span></div><div class="t m0 xc hd y1bc ff5 fs7 fc9 sc0 ls0 ws0">inline<span class="_ _9"> </span><span class="fc6">unsigned<span class="_ _9"> </span><span class="ffc fc7">log2<span class="fc0">(</span></span>unsigned<span class="_ _e"> </span><span class="ffc fc0">x)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x1a hd y1bd ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc8">31<span class="_ _9"> </span>-<span class="_ _e"> </span><span class="fc0">__builtin_clz(x);</span></span></div><div class="t m0 xc hd y1be ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hb y1bf ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Check<span class="_ _c"> </span>if<span class="_ _f"> </span>a<span class="_ _c"> </span>numb<span class="_ _b"></span>er<span class="_ _f"> </span>is<span class="_ _c"> </span>a<span class="_ _f"> </span><span class="ff8">power<span class="_ _15"> </span>of<span class="_ _15"> </span>2</span></span></div><div class="t m0 xc hd y1c0 ff5 fs7 fc9 sc0 ls0 ws0">inline<span class="_ _9"> </span><span class="fc6">bool<span class="_ _9"> </span><span class="ffc fc7">is_power2<span class="fc0">(</span></span>unsigned<span class="_ _e"> </span><span class="ffc fc0">x)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x1a hd y1c1 ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">__builtin_popcount(x)<span class="_ _9"> </span><span class="fc8">==<span class="_ _e"> </span>1</span>;</span></div><div class="t m0 xc hd y1c2 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hb y1c3 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Bit<span class="_ _c"> </span>search<span class="_ _c"> </span>and<span class="_ _c"> </span>clear</span></div><div class="t m0 xc hd y1c4 ff5 fs7 fc9 sc0 ls0 ws0">inline<span class="_ _9"> </span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc7">bit_search_clear<span class="fc0">(</span></span>unsigned<span class="_ _e"> </span><span class="ffc fc0">x)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x1a hd y1c5 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">pos<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>__builtin_ffs(x);<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _9"> </span>range<span class="_ _e"> </span>[0,<span class="_ _9"> </span>31]</span></span></div><div class="t m0 x1a hd y1c6 ffc fs7 fc0 sc0 ls0 ws0">x<span class="_ _36"> </span><span class="fc8">&=<span class="_ _9"> </span></span><span class="ff18">∼</span>(<span class="fc8">1u<span class="_ _9"> </span><<<span class="_ _9"> </span></span>pos);</div><div class="t m0 x1a hd y1c7 ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc fc0">pos;</span></div><div class="t m0 xc hd y1c8 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">41/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2e" class="pf w0 h0" data-page-no="2e"><div class="pc pc2e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Compiler<span class="_ _17"> </span>Intrinsic<span class="_ _17"> </span>Functions<span class="_ _4b"> </span>4/5</div><div class="t m0 x1 hb y1a8 ff1 fs6 fc0 sc0 ls0 ws0">Example<span class="_ _f"> </span>of<span class="_ _8"> </span>intrinsic<span class="_ _8"> </span>p<span class="_ _b"></span>ortabilit<span class="_ _3"></span>y<span class="_ _f"> </span>issue:</div><div class="t m0 x29 hb y1c9 ff5 fs6 fc0 sc0 ls0 ws0">builtin<span class="_ _8"> </span>popcount()<span class="_ _10"> </span><span class="ff4">GCC<span class="_ _c"> </span>produces<span class="_ _4c"> </span><span class="ff8">popcountdi2<span class="_ _10"> </span></span>instruction<span class="_ _c"> </span>while<span class="_ _c"> </span>Intel</span></div><div class="t m0 x1 hb y1aa ff4 fs6 fc0 sc0 ls0 ws0">Compiler<span class="_ _c"> </span>(ICC)<span class="_ _c"> </span>produces<span class="_ _f"> </span>13<span class="_ _c"> </span>instructions</div><div class="t m0 x5 hb y1ca ff5 fs6 fc0 sc0 ls0 ws0">mm<span class="_ _8"> </span>popcnt<span class="_ _8"> </span>u32<span class="_ _10"> </span><span class="ff4">GCC<span class="_ _c"> </span>and<span class="_ _f"> </span>ICC<span class="_ _c"> </span>produce<span class="_ _10"> </span><span class="ff8">popcnt<span class="_ _10"> </span></span>instruction,<span class="_ _f"> </span>but<span class="_ _c"> </span>it<span class="_ _f"> </span>is<span class="_ _c"> </span>available<span class="_ _f"> </span>only</span></div><div class="t m0 x1 hb y1cb ff4 fs6 fc0 sc0 ls0 ws0">fo<span class="_ _3"></span>r<span class="_ _f"> </span>p<span class="_ _3"></span>ro<span class="_ _b"></span>cessor<span class="_ _c"> </span>with<span class="_ _c"> </span>supp<span class="_ _b"></span>ort<span class="_ _c"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span><span class="ff8">SSE4.2<span class="_ _f"> </span></span>instruction<span class="_ _c"> </span>set</div><div class="t m0 x1 hb y1cc ff1 fs6 fc0 sc0 ls0 ws0">Mo<span class="_ _3"></span>re<span class="_ _8"> </span>advanced<span class="_ _8"> </span>usage</div><div class="t m0 xb hb y1cd ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Compute<span class="_ _c"> </span>CRC:<span class="_ _4d"> </span><span class="ff8">mm<span class="_ _8"> </span>crc32<span class="_ _8"> </span>u32</span></span></div><div class="t m0 xb hb y1ce ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">AES<span class="_ _c"> </span>cryptography:<span class="_ _49"> </span><span class="ff8">mm256<span class="_ _8"> </span>aesenclast<span class="_ _8"> </span>epi128</span></span></div><div class="t m0 xb hb y1cf ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Hash<span class="_ _c"> </span>function:<span class="_ _49"> </span><span class="ff8">mm<span class="_ _8"> </span>sha256msg1<span class="_ _8"> </span>epu32</span></span></div><div class="t m0 xb hd y1d0 ffc fs7 fcc sc0 ls0 ws0">software.intel.com/sites/landingpage/IntrinsicsGuide/</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">42/87</div><a class="l" href="https://software.intel.com/sites/landingpage/IntrinsicsGuide/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:0.999000px;width:251.482000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf2f" class="pf w0 h0" data-page-no="2f"><div class="pc pc2f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Compiler<span class="_ _17"> </span>Intrinsic<span class="_ _17"> </span>Functions<span class="_ _4b"> </span>5/5</div><div class="t m0 x1 hb y1d1 ffa fs6 fc0 sc0 ls0 ws0">Using<span class="_ _c"> </span>intrinsic<span class="_ _c"> </span>instructions<span class="_ _f"> </span>is<span class="_ _c"> </span>extremely<span class="_ _f"> </span>dangerous<span class="_ _c"> </span>if<span class="_ _f"> </span>the<span class="_ _c"> </span>target<span class="_ _c"> </span>p<span class="_ _3"></span>ro<span class="_ _b"></span>cessor<span class="_ _c"> </span>do<span class="_ _b"></span>es<span class="_ _c"> </span>not</div><div class="t m0 x1 hb y1d2 ffa fs6 fc0 sc0 ls0 ws0">natively<span class="_ _c"> </span>supp<span class="_ _b"></span>ort<span class="_ _c"> </span>such<span class="_ _c"> </span>instructions</div><div class="t m0 x1 hb y1d3 ff4 fs6 fc0 sc0 ls0 ws0">Example:</div><div class="t m0 xd hb y1d4 ffa fs6 fc0 sc0 ls0 ws0">“If<span class="_ _8"> </span>you<span class="_ _8"> </span>run<span class="_ _8"> </span>co<span class="_ _b"></span>de<span class="_ _17"> </span>that<span class="_ _8"> </span>uses<span class="_ _17"> </span>the<span class="_ _17"> </span>intrinsic<span class="_ _8"> </span>on<span class="_ _17"> </span>ha<span class="_ _3"></span>rdwa<span class="_ _3"></span>re<span class="_ _8"> </span>that<span class="_ _17"> </span>do<span class="_ _b"></span>esn’t<span class="_ _17"> </span>supp<span class="_ _b"></span>ort<span class="_ _f"> </span>the<span class="_ _4e"> </span><span class="ffb">lzcnt</span></div><div class="t m0 xd hb y1d5 ffa fs6 fc0 sc0 ls0 ws0">instruction,<span class="_ _c"> </span>the<span class="_ _c"> </span>results<span class="_ _f"> </span>are<span class="_ _c"> </span>unp<span class="_ _3"></span>redictable”<span class="_ _c"> </span>-<span class="_ _f"> </span>MSVC</div><div class="t m0 x1 hb y1d6 ff4 fs6 fc0 sc0 ls0 ws0">on<span class="_ _c"> </span>the<span class="_ _c"> </span>contrary<span class="_ _7"></span>,<span class="_ _c"> </span>GNU<span class="_ _c"> </span>and<span class="_ _f"> </span>clang<span class="_ _4c"> </span><span class="ff8">builtin<span class="_ _8"> </span>*<span class="_ _10"> </span></span>instructions<span class="_ _c"> </span>are<span class="_ _c"> </span>alw<span class="_ _3"></span>ays<span class="_ _c"> </span>w<span class="_ _3"></span>ell-defined.</div><div class="t m0 x1 hb y1d7 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span>instruction<span class="_ _c"> </span>is<span class="_ _f"> </span>translated<span class="_ _c"> </span>to<span class="_ _f"> </span>a<span class="_ _c"> </span>non-optimal<span class="_ _f"> </span>op<span class="_ _b"></span>eration<span class="_ _c"> </span>sequence<span class="_ _f"> </span>in<span class="_ _c"> </span>the<span class="_ _f"> </span>wo<span class="_ _3"></span>rst<span class="_ _c"> </span>case</div><div class="t m0 x1 hb y1d8 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span>instruction<span class="_ _c"> </span>set<span class="_ _f"> </span>supp<span class="_ _b"></span>ort<span class="_ _c"> </span>should<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>checked<span class="_ _c"> </span>at<span class="_ _c"> </span><span class="ffa">run-time<span class="_ _17"> </span></span>(e.g.<span class="_ _e"> </span>with<span class="_ _4c"> </span><span class="ff8">cpuid</span></div><div class="t m0 x1 hb y1d9 ff4 fs6 fc0 sc0 ls0 ws0">function<span class="_ _c"> </span>on<span class="_ _c"> </span>MSVC),<span class="_ _c"> </span>or,<span class="_ _c"> </span>when<span class="_ _c"> </span>available,<span class="_ _c"> </span>by<span class="_ _c"> </span>using<span class="_ _c"> </span>compiler-time<span class="_ _c"> </span>macro<span class="_ _f"> </span>(e.g.<span class="_ _39"> </span><span class="ff8">AVX<span class="_ _4f"> </span></span>)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">43/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf30" class="pf w0 h0" data-page-no="30"><div class="pc pc30 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">A<span class="_ _3"></span>utomatic<span class="_ _17"> </span>Compiler<span class="_ _17"> </span>Function<span class="_ _8"> </span>T<span class="_ _7"></span>ransfo<span class="_ _3"></span>rmation</div><div class="t m0 xd hb y1a8 ff8 fs6 fc0 sc0 ls0 ws0">std::abs<span class="_ _10"> </span><span class="ff4">can<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>recognized<span class="_ _f"> </span>by<span class="_ _c"> </span>the<span class="_ _c"> </span>compiler<span class="_ _c"> </span>and<span class="_ _f"> </span>transfo<span class="_ _3"></span>rmed<span class="_ _f"> </span>to<span class="_ _c"> </span>a<span class="_ _f"> </span>hardw<span class="_ _3"></span>a<span class="_ _3"></span>re</span></div><div class="t m0 x1 hb y1a9 ff4 fs6 fc0 sc0 ls0 ws0">instruction</div><div class="t m0 x1 hb y1aa ff4 fs6 fc0 sc0 ls0 ws0">In<span class="_ _c"> </span>a<span class="_ _c"> </span>similar<span class="_ _c"> </span>w<span class="_ _3"></span>ay<span class="_ _7"></span>,<span class="_ _c"> </span><span class="fcd">C++20<span class="_ _c"> </span></span>p<span class="_ _3"></span>rovides<span class="_ _f"> </span>a<span class="_ _c"> </span>p<span class="_ _b"></span>ortable<span class="_ _c"> </span>and<span class="_ _c"> </span>efficient<span class="_ _c"> </span>wa<span class="_ _3"></span>y<span class="_ _c"> </span>to<span class="_ _c"> </span>express<span class="_ _c"> </span>bit<span class="_ _c"> </span>op<span class="_ _b"></span>erations</div><div class="t m0 xd h11 y1da ff1a fs6 fc0 sc0 ls0 ws0"><<span class="ff8">bit</span>></div><div class="t m0 x32 hb y1ac ff8 fs6 fc0 sc0 ls0 ws0">rotate<span class="_ _15"> </span>left<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::rotl</div><div class="t m0 x1e hb y1ad ff8 fs6 fc0 sc0 ls0 ws0">rotate<span class="_ _15"> </span>right<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::rotr</div><div class="t m0 x33 hb y11a ff8 fs6 fc0 sc0 ls0 ws0">count<span class="_ _15"> </span>leading<span class="_ _15"> </span>zero<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::countl<span class="_ _8"> </span>zero</div><div class="t m0 x9 hb y11b ff8 fs6 fc0 sc0 ls0 ws0">count<span class="_ _15"> </span>leading<span class="_ _15"> </span>one<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::countl<span class="_ _8"> </span>one</div><div class="t m0 x10 hb y11c ff8 fs6 fc0 sc0 ls0 ws0">count<span class="_ _15"> </span>trailing<span class="_ _15"> </span>zero<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::countr<span class="_ _8"> </span>zero</div><div class="t m0 x33 hb y1db ff8 fs6 fc0 sc0 ls0 ws0">count<span class="_ _15"> </span>trailing<span class="_ _15"> </span>one<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::countr<span class="_ _8"> </span>one</div><div class="t m0 x12 hb y1dc ff8 fs6 fc0 sc0 ls0 ws0">population<span class="_ _15"> </span>count<span class="_ _6"> </span><span class="ff4">:<span class="_ _4"> </span></span>std::popcount</div><div class="t m0 xb hd y1dd ffc fs7 fcc sc0 ls0 ws0">Why<span class="_ _9"> </span>is<span class="_ _9"> </span>the<span class="_ _e"> </span>standard<span class="_ _9"> </span>"abs"<span class="_ _9"> </span>function<span class="_ _e"> </span>faster<span class="_ _9"> </span>than<span class="_ _9"> </span>mine?</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">44/87</div><a class="l" href="https://stackoverflow.com/questions/66023408/why-is-the-standard-abs-function-faster-than-mine"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:0.671000px;width:246.775000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf31" class="pf w0 h0" data-page-no="31"><div class="pc pc31 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQkCMRiG4UQuWB3OIFZOIGItuJlLOI6FQ7iB1XGVaWJnZSUi/+nzTBC+NC9/Xm12CQAAwrhezjMrAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAp11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUA4D91E3rrOI4+DADgPX3fT+i1LqkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUEwAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAL8s11qtAABAHKUUl1QAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAH9QNx6UVAL7vtj8ZAeCl9faQ82LehntKrTWDAAAQwgOkqhoC5brxRgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">V<span class="_ _3"></span>alue<span class="_ _17"> </span>in<span class="_ _17"> </span>a<span class="_ _9"> </span>Range</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Checking<span class="_ _f"> </span>if<span class="_ _8"> </span>a<span class="_ _8"> </span>non-negative<span class="_ _8"> </span>value<span class="_ _8"> </span><span class="ff1b">x<span class="_ _e"> </span></span>is<span class="_ _f"> </span>within<span class="_ _8"> </span>a<span class="_ _8"> </span>range<span class="_ _f"> </span><span class="ff1b">[A,<span class="_ _8"> </span>B]<span class="_ _e"> </span></span>can<span class="_ _8"> </span>b<span class="_ _b"></span>e<span class="_ _8"> </span>optimized<span class="_ _8"> </span>if</div><div class="t m0 x1 hb yf2 ff1b fs6 fc0 sc0 ls0 ws0">B<span class="_ _17"> </span><span class="ff1a">><span class="_ _8"> </span></span>A<span class="_ _f"> </span><span class="ff4">(useful<span class="_ _c"> </span>when<span class="_ _f"> </span>the<span class="_ _c"> </span>condition<span class="_ _f"> </span>is<span class="_ _c"> </span>rep<span class="_ _b"></span>eated<span class="_ _f"> </span>multiple<span class="_ _c"> </span>times)</span></div><div class="t m0 xd hc y1de ff5 fs4 fc9 sc0 ls0 ws0">if<span class="_ _e"> </span><span class="ff8 fc0">(x<span class="_ _6"> </span><span class="fc8">>=<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8">&&<span class="_ _6"> </span></span>x<span class="_ _e"> </span><span class="fc8"><=<span class="_ _6"> </span></span>B)</span></div><div class="t m0 xd hc y1df ffb fs4 fc5 sc0 ls0 ws0">//<span class="_ _e"> </span><span class="ff16">STEP<span class="_ _6"> </span>1</span>:<span class="_ _6"> </span>subtract<span class="_ _e"> </span><span class="ff16">A</span></div><div class="t m0 xd hc y1e0 ff5 fs4 fc9 sc0 ls0 ws0">if<span class="_ _e"> </span><span class="ff8 fc0">(x<span class="_ _6"> </span><span class="fc8">-<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8">>=<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8">-<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8">&&<span class="_ _6"> </span></span>x<span class="_ _e"> </span><span class="fc8">-<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8"><=<span class="_ _6"> </span></span>B<span class="_ _e"> </span><span class="fc8">-<span class="_ _6"> </span></span>A)</span></div><div class="t m0 xd hc y1e1 ffb fs4 fc5 sc0 ls0 ws0">//<span class="_ _e"> </span>--></div><div class="t m0 xd hc y1e2 ff5 fs4 fc9 sc0 ls0 ws0">if<span class="_ _e"> </span><span class="ff8 fc0">(x<span class="_ _6"> </span><span class="fc8">-<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8">>=<span class="_ _6"> </span>0<span class="_ _e"> </span>&&<span class="_ _6"> </span></span>x<span class="_ _e"> </span><span class="fc8">-<span class="_ _6"> </span></span>A<span class="_ _e"> </span><span class="fc8"><=<span class="_ _6"> </span></span>B<span class="_ _e"> </span><span class="fc8">-<span class="_ _6"> </span></span>A)<span class="_ _e"> </span><span class="ffb fc5">//<span class="_ _6"> </span>B<span class="_ _6"> </span>-<span class="_ _e"> </span>A<span class="_ _6"> </span>is<span class="_ _e"> </span>precomputed</span></span></div><div class="t m0 xd hc y1e3 ffb fs4 fc5 sc0 ls0 ws0">//<span class="_ _e"> </span><span class="ff16">STEP<span class="_ _6"> </span>2</span></div><div class="t m0 xd hc y1e4 ffb fs4 fc5 sc0 ls0 ws0">//<span class="_ _50"> </span>-<span class="_ _e"> </span>convert<span class="_ _6"> </span>"x<span class="_ _6"> </span>-<span class="_ _e"> </span>A<span class="_ _6"> </span>>=<span class="_ _e"> </span>0"<span class="_ _6"> </span>--><span class="_ _e"> </span>(unsigned)<span class="_ _6"> </span>(x<span class="_ _e"> </span>-<span class="_ _6"> </span>A)</div><div class="t m0 xd hc y1e5 ffb fs4 fc5 sc0 ls0 ws0">//<span class="_ _50"> </span>-<span class="_ _e"> </span>"B<span class="_ _6"> </span>-<span class="_ _6"> </span>A"<span class="_ _e"> </span>is<span class="_ _6"> </span>always<span class="_ _e"> </span>positive</div><div class="t m0 xd hc y1e6 ff5 fs4 fc9 sc0 ls0 ws0">if<span class="_ _e"> </span><span class="ff8 fc0">((</span><span class="fc6">unsigned<span class="ff8 fc0">)<span class="_ _6"> </span>(x<span class="_ _6"> </span><span class="fc8">-<span class="_ _e"> </span></span>A)<span class="_ _6"> </span><span class="fc8"><=<span class="_ _e"> </span></span>(</span>unsigned<span class="ff8 fc0">)<span class="_ _6"> </span>(B<span class="_ _e"> </span><span class="fc8">-<span class="_ _6"> </span></span>A))</span></span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">45/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf32" class="pf w0 h0" data-page-no="32"><div class="pc pc32 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">V<span class="_ _3"></span>alue<span class="_ _17"> </span>in<span class="_ _17"> </span>a<span class="_ _9"> </span>Range<span class="_ _17"> </span>Examples</div><div class="t m0 x1 hb y1e7 ff4 fs6 fc0 sc0 ls0 ws0">Check<span class="_ _c"> </span>if<span class="_ _c"> </span>a<span class="_ _f"> </span>value<span class="_ _c"> </span>is<span class="_ _f"> </span>an<span class="_ _c"> </span>upp<span class="_ _0"></span>ercase<span class="_ _c"> </span>letter:</div><div class="t m0 xd hd y1e8 ff5 fs7 fc6 sc0 ls0 ws0">uint8_t<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>...</span></div><div class="t m0 xd hd y1e9 ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">(x<span class="_ _9"> </span><span class="fc8">>=<span class="_ _e"> </span><span class="ffe fca">'<span class="ffc">A</span>'<span class="_ _9"> </span></span>&&<span class="_ _9"> </span></span>x<span class="_ _e"> </span><span class="fc8"><=<span class="_ _9"> </span><span class="ffe fca">'<span class="ffc">Z</span>'</span></span>)</span></div><div class="t m0 x33 hd y1ea ffc fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x34 h13 y1eb ff10 fs6 fc0 sc0 ls0 ws0">→</div><div class="t m0 x35 hd y1e8 ff5 fs7 fc6 sc0 ls0 ws0">uint8_t<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>...</span></div><div class="t m0 x35 hd y1e9 ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">(x<span class="_ _9"> </span><span class="fc8">-<span class="_ _e"> </span><span class="ffe fca">'<span class="ffc">A</span>'<span class="_ _9"> </span></span><=<span class="_ _9"> </span><span class="ffe fca">'<span class="ffc">Z</span>'</span></span>)</span></div><div class="t m0 x36 hd y1ea ffc fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x1 hb y1ec ff4 fs6 fc0 sc0 ls0 ws0">A<span class="_ _c"> </span>more<span class="_ _c"> </span>general<span class="_ _c"> </span>case:</div><div class="t m0 xd hd y1ed ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>...</span></div><div class="t m0 xd hd y1ee ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">(x<span class="_ _9"> </span><span class="fc8">>=<span class="_ _e"> </span>-10<span class="_ _9"> </span>&&<span class="_ _9"> </span></span>x<span class="_ _e"> </span><span class="fc8"><=<span class="_ _9"> </span>30</span>)</span></div><div class="t m0 x33 hd y1ef ffc fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 x34 h13 y1f0 ff10 fs6 fc0 sc0 ls0 ws0">→</div><div class="t m0 x35 hd y1ed ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>...</span></div><div class="t m0 x35 hd y1ee ff5 fs7 fc9 sc0 ls0 ws0">if<span class="_ _9"> </span><span class="ffc fc0">((</span><span class="fc6">unsigned<span class="ffc fc0">)<span class="_ _9"> </span>(x<span class="_ _e"> </span><span class="fc8">+<span class="_ _9"> </span>10</span>)<span class="_ _9"> </span><span class="fc8"><=<span class="_ _e"> </span>40</span>)</span></span></div><div class="t m0 x36 hd y1ef ffc fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 xb h10 y1f1 fff fs7 fcc sc0 ls0 ws0">The<span class="_ _d"> </span>compiler<span class="_ _25"> </span>applies<span class="_ _d"> </span>this<span class="_ _d"> </span>optimization<span class="_ _d"> </span>only<span class="_ _d"> </span>in<span class="_ _d"> </span>some<span class="_ _d"> </span>cases</div><div class="t m0 xb h10 y1f2 fff fs7 fcc sc0 ls0 ws0">(tested<span class="_ _d"> </span>with<span class="_ _25"> </span>GCC/Clang<span class="_ _d"> </span>9<span class="_ _d"> </span><span class="ffc">-O3</span>)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">46/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf33" class="pf w0 h0" data-page-no="33"><div class="pc pc33 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIsUlEQVR42u3ZsU0DQRCG0Vt0I6ITNSAiV4AQIiBAcgsE1EMTdEBACQhBQAckdEBkXYCZ5Jy5AGNgDr1Xwerf5NNuOzk97wAAoIz315cDKwAAUI1IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBgq2WmFQAAqCMivKQCAFCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAwF/pTUBli4tLI/yot+dHIwBQUMtMKwAAUEdE+O4HAKAckQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAADwi/oZnXUcRxcGALCbYRhmdFovqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQTAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAADwXS0zrQAAQB0R4SUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAACwV/1cDvq5Xi+vb1wYzMvTw70RANhBy0wrAABQR0T47gcAoByRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAOxVv7o9tgLA7Hxc3RkB+K8WZ8vWjg6n1VfXTdNkEAAAStgAKOco/vV48DwAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _b"></span>okup<span class="_ _17"> </span>T<span class="_ _7"></span>able</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>okup<span class="_ _8"> </span>table<span class="_ _f"> </span>(LUT)<span class="_ _f"> </span><span class="ff4">is<span class="_ _c"> </span>a<span class="_ _f"> </span><span class="ffa">memoization<span class="_ _f"> </span></span>technique<span class="_ _f"> </span>which<span class="_ _c"> </span>allows<span class="_ _c"> </span>replacing<span class="_ _c"> </span><span class="ffa">runtime</span></span></div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">computation<span class="_ _c"> </span>with<span class="_ _c"> </span>precomputed<span class="_ _c"> </span>values</div><div class="t m0 x1 h6 y1f3 ff4 fs4 fc0 sc0 ls0 ws0">Example:<span class="_ _17"> </span>a<span class="_ _c"> </span>function<span class="_ _d"> </span>that<span class="_ _c"> </span>computes<span class="_ _d"> </span>the<span class="_ _c"> </span>loga<span class="_ _3"></span>rithm<span class="_ _c"> </span>base<span class="_ _d"> </span>10<span class="_ _c"> </span>of<span class="_ _d"> </span>a<span class="_ _c"> </span>number<span class="_ _c"> </span>in<span class="_ _d"> </span>the<span class="_ _c"> </span>range<span class="_ _d"> </span>[1-100]</div><div class="t m0 xd hf y1f4 ff5 fs5 fc9 sc0 ls0 ws0">template<span class="ffd fc8"><</span><span class="fc6">int<span class="_ _8"> </span><span class="ffd fc0">SIZE,<span class="_ _17"> </span></span></span>typename<span class="_ _17"> </span><span class="fc7">Lambda<span class="ffd fc8">></span></span></div><div class="t m0 xd hf y1f5 ff5 fs5 fc9 sc0 ls0 ws0">constexpr<span class="_ _8"> </span><span class="ffd fc0">std<span class="fc8">::</span>array<span class="fc8"><</span></span><span class="fc6">float<span class="ffd fc0">,<span class="_ _17"> </span>SIZE<span class="fc8">><span class="_ _17"> </span></span>build(Lambda<span class="_ _8"> </span>lambda)<span class="_ _17"> </span>{</span></span></div><div class="t m0 xf hf y1f6 ffd fs5 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>array<span class="fc8"><<span class="ff5 fc6">float</span></span>,<span class="_ _8"> </span>SIZE<span class="fc8">><span class="_ _17"> </span></span>array{};</div><div class="t m0 xf hf y1f7 ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">i<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>i<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>SIZE;<span class="_ _17"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x15 hf y1f8 ffd fs5 fc0 sc0 ls0 ws0">array[i]<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span></span>lambda(i);</div><div class="t m0 xf hf y1f9 ff5 fs5 fc9 sc0 ls0 ws0">return<span class="_ _8"> </span><span class="ffd fc0">array;</span></div><div class="t m0 xd hf y1fa ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y1fb ff5 fs5 fc6 sc0 ls0 ws0">float<span class="_ _8"> </span><span class="ffd fc0">log10(</span>int<span class="_ _17"> </span><span class="ffd fc0">value)<span class="_ _17"> </span>{</span></div><div class="t m0 xf hf y1fc ff5 fs5 fc9 sc0 ls0 ws0">constexpr<span class="_ _8"> </span>auto<span class="_ _17"> </span><span class="ffd fc0">lamba<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span></span>[](</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">i)<span class="_ _17"> </span>{<span class="_ _8"> </span></span></span>return<span class="_ _17"> </span><span class="ffd fc0">std<span class="fc8">::</span>log10f((</span><span class="fc6">float<span class="ffd fc0">)<span class="_ _17"> </span>i);<span class="_ _8"> </span>};</span></span></div><div class="t m0 xf hf y1fd ff5 fs5 fc9 sc0 ls0 ws0">static<span class="_ _8"> </span>constexpr<span class="_ _17"> </span>auto<span class="_ _17"> </span><span class="ffd fc0">table<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span></span>build<span class="fc8"><100></span>(lambda);</span></div><div class="t m0 xf hf y1fe ff5 fs5 fc9 sc0 ls0 ws0">return<span class="_ _8"> </span><span class="ffd fc0">table[value];</span></div><div class="t m0 xd hf y1ff ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hd y200 ffc fs7 fcc sc0 ls0 ws0">Make<span class="_ _9"> </span>your<span class="_ _9"> </span>lookup<span class="_ _e"> </span>table<span class="_ _9"> </span>do<span class="_ _9"> </span>more</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">47/87</div><a class="l" href="https://commaok.xyz/post/lookup_tables/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:1.409000px;width:143.213000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf34" class="pf w0 h0" data-page-no="34"><div class="pc pc34 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXklEQVR42u3YsQ2CQBiG4TvDhdIZCJUTGENt4mYu4TgUDMEGVpRec3bM8EOeZ4SvevPl8T4lAAAIY13mixUAAIhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAsMu1VisAABBHKcWTCgBAOCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRagIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVBAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAADn0W3vwQoAJ/N9fowAHNft8cr52rftl1JrzSAAAITwB5oeFAQCdEwGAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _3"></span>w-Level<span class="_ _17"> </span>Optimizations</div><div class="t m0 x1 hb y201 ff1 fs6 fc0 sc0 ls0 ws0">Collection<span class="_ _f"> </span>of<span class="_ _8"> </span>low-level<span class="_ _f"> </span>implementations/optimization<span class="_ _8"> </span>of<span class="_ _8"> </span>common<span class="_ _f"> </span>op<span class="_ _0"></span>erations:</div><div class="t m0 xb hb y202 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Bit<span class="_ _8"> </span>T<span class="_ _7"></span>widdling<span class="_ _f"> </span>Hacks</span></div><div class="t m0 x33 h11 y203 ff8 fs6 fc0 sc0 ls0 ws0">graphics.stanford.edu/<span class="ff10">∼</span>seander/bithacks.html</div><div class="t m0 xb hb y204 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">The<span class="_ _8"> </span>Aggregate<span class="_ _f"> </span>Magic<span class="_ _8"> </span>Algorithms</span></div><div class="t m0 x33 h11 y205 ff8 fs6 fc0 sc0 ls0 ws0">aggregate.org/MAGIC</div><div class="t m0 xb hb y206 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Hack<span class="_ _3"></span>ers<span class="_ _8"> </span>Delight<span class="_ _8"> </span>Bo<span class="_ _b"></span>ok</span></div><div class="t m0 x33 h11 y207 ff8 fs6 fc0 sc0 ls0 ws0">www.hackersdelight.org</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">48/87</div><a class="l" href="https://graphics.stanford.edu/~seander/bithacks.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:141.663000px;width:256.750000px;height:11.993000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://aggregate.org/MAGIC/"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:98.545000px;width:110.811000px;height:11.992000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://www.hackersdelight.org/"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:55.427000px;width:127.993000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf35" class="pf w0 h0" data-page-no="35"><div class="pc pc35 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _3"></span>w-Level<span class="_ _17"> </span>Information</div><div class="t m0 x1 hb y208 ff1 fs6 fc0 sc0 ls0 ws0">The<span class="_ _f"> </span>same<span class="_ _8"> </span>instruction/op<span class="_ _b"></span>eration<span class="_ _8"> </span>may<span class="_ _f"> </span>take<span class="_ _c"> </span>different<span class="_ _8"> </span>clo<span class="_ _0"></span>ck-cycles<span class="_ _c"> </span>on<span class="_ _8"> </span>different</div><div class="t m0 x1 hb y209 ff1 fs6 fc0 sc0 ls0 ws0">a<span class="_ _3"></span>rchitectures/CPU<span class="_ _8"> </span>type</div><div class="t m0 xb hb y20a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Agner<span class="_ _8"> </span>F<span class="_ _3"></span>og<span class="_ _8"> </span>-<span class="_ _8"> </span>Instruction<span class="_ _8"> </span>tables<span class="_ _c"> </span><span class="ff4">(latencies,<span class="_ _c"> </span>throughputs)</span></span></div><div class="t m0 x33 h11 y20b ff8 fs6 fc0 sc0 ls0 ws0">www.agner.org/optimize/instruction<span class="_ _8"> </span>tables.pdf</div><div class="t m0 xb hb y20c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Latency<span class="_ _7"></span>,<span class="_ _f"> </span>Throughput,<span class="_ _8"> </span>and<span class="_ _8"> </span>Po<span class="_ _3"></span>rt<span class="_ _f"> </span>Usage<span class="_ _8"> </span>Information</span></div><div class="t m0 x33 h11 y20d ff8 fs6 fc0 sc0 ls0 ws0">uops.info/table.html</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">49/87</div><a class="l" href="http://www.agner.org/optimize/instruction_tables.pdf"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:112.313000px;width:258.116000px;height:11.993000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://uops.info/table.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:69.195000px;width:116.538000px;height:11.993000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf36" class="pf w0 h0" data-page-no="36"><div class="pc pc36 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y14a ff1 fs0 fc0 sc0 ls0 ws0">Control<span class="_ _1"> </span>Flo<span class="_ _7"></span>w</div><a class="l" href="#pf36" data-dest-detail='[54,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:137.252000px;width:148.064000px;height:19.206000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf37" class="pf w0 h0" data-page-no="37"><div class="pc pc37 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIX0lEQVR42u3YsQ3CMBRFURvFSskMUSomQIgaic2yRMZJkSGyAVVK3JgOZQO+0DkjvOrq5fF6TwAAEMa2LicrAAAQjUgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAOAr11qtAABAHKUUTyoAAOGIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARKoJAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVBMAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAA/I9unwYrAHD0esxGAH7ocnvmfO7b/k6ptWYQAABC+AAo6hQE/aFlJQAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Control<span class="_ _17"> </span>Flo<span class="_ _3"></span>w</div><div class="t m0 x37 h8 y20e ff1 fs2 fc3 sc0 ls0 ws0">Computation<span class="_ _6"> </span>is<span class="_ _e"> </span>faster<span class="_ _6"> </span>than<span class="_ _e"> </span>decision</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">50/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf38" class="pf w0 h0" data-page-no="38"><div class="pc pc38 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Branches<span class="_ _51"> </span>1/2</div><div class="t m0 x1 hb y20f ff1 fs6 fc0 sc0 ls0 ws0">Pip<span class="_ _b"></span>elines<span class="_ _c"> </span><span class="ff4">are<span class="_ _c"> </span>an<span class="_ _c"> </span>essential<span class="_ _f"> </span>element<span class="_ _c"> </span>in<span class="_ _f"> </span>mo<span class="_ _b"></span>dern<span class="_ _c"> </span>processors.<span class="_ _9"> </span>Some<span class="_ _c"> </span>processors<span class="_ _c"> </span>have<span class="_ _c"> </span>up<span class="_ _f"> </span>to</span></div><div class="t m0 x1 hb y210 ff4 fs6 fc0 sc0 ls0 ws0">20<span class="_ _c"> </span>pip<span class="_ _b"></span>eline<span class="_ _f"> </span>stages<span class="_ _c"> </span>(14/16<span class="_ _f"> </span>t<span class="_ _3"></span>ypically)</div><div class="t m0 x1 hb y211 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span>downside<span class="_ _c"> </span>to<span class="_ _c"> </span>long<span class="_ _c"> </span>pip<span class="_ _b"></span>elines<span class="_ _f"> </span>includes<span class="_ _c"> </span>the<span class="_ _f"> </span>danger<span class="_ _c"> </span>of<span class="_ _9"> </span><span class="ff1">pip<span class="_ _b"></span>eline<span class="_ _8"> </span>stalls<span class="_ _c"> </span></span>that<span class="_ _f"> </span>w<span class="_ _3"></span>aste<span class="_ _f"> </span>CPU</div><div class="t m0 x1 hb y212 ff4 fs6 fc0 sc0 ls0 ws0">time,<span class="_ _c"> </span>and<span class="_ _c"> </span>the<span class="_ _f"> </span>time<span class="_ _c"> </span>it<span class="_ _f"> </span>takes<span class="_ _c"> </span>to<span class="_ _c"> </span>reload<span class="_ _c"> </span>the<span class="_ _f"> </span>pip<span class="_ _b"></span>eline<span class="_ _c"> </span>on<span class="_ _f"> </span><span class="ff1">conditional<span class="_ _8"> </span>b<span class="_ _3"></span>ranch<span class="_ _f"> </span><span class="ff4">op<span class="_ _b"></span>erations</span></span></div><div class="t m0 x1 hb y158 ff4 fs6 fc0 sc0 ls0 ws0">(<span class="_ _25"> </span><span class="ff8">if<span class="_ _d"> </span></span>,<span class="_ _10"> </span><span class="ff8">while<span class="_ _d"> </span></span>,<span class="_ _10"> </span><span class="ff8">for<span class="_ _25"> </span></span>)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">51/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf39" class="pf w0 h0" data-page-no="39"><div class="pc pc39 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Branches<span class="_ _51"> </span>2/2</div><div class="t m0 xb hb y213 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff5">switch<span class="_ _10"> </span></span>statements<span class="_ _c"> </span>to<span class="_ _c"> </span>multiple<span class="_ _10"> </span><span class="ff5">if</span></span></div><div class="t m0 x38 h6 y214 ff4 fs4 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span>If<span class="_ _d"> </span>the<span class="_ _c"> </span>compiler<span class="_ _d"> </span>do<span class="_ _b"></span>es<span class="_ _c"> </span>not<span class="_ _d"> </span>use<span class="_ _c"> </span>a<span class="_ _d"> </span>jump-table,<span class="_ _c"> </span>the<span class="_ _d"> </span>cases<span class="_ _c"> </span>are<span class="_ _d"> </span>evaluated<span class="_ _d"> </span>in<span class="_ _c"> </span>o<span class="_ _3"></span>rder<span class="_ _c"> </span>of</div><div class="t m0 x1a h6 y215 ff4 fs4 fc0 sc0 ls0 ws0">app<span class="_ _b"></span>ea<span class="_ _3"></span>rance<span class="_ _c"> </span><span class="ff10">→<span class="_ _d"> </span></span>the<span class="_ _c"> </span>most<span class="_ _d"> </span>frequent<span class="_ _c"> </span>cases<span class="_ _d"> </span>should<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _d"> </span>placed<span class="_ _c"> </span>b<span class="_ _b"></span>efo<span class="_ _3"></span>re</div><div class="t m0 x38 h6 y216 ff4 fs4 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span>Some<span class="_ _d"> </span>compilers<span class="_ _d"> </span>(e.g.<span class="_ _17"> </span><span class="ff8">clang</span>)<span class="_ _d"> </span>a<span class="_ _3"></span>re<span class="_ _d"> </span>able<span class="_ _d"> </span>to<span class="_ _d"> </span>translate<span class="_ _d"> </span>a<span class="_ _d"> </span>sequence<span class="_ _d"> </span>of<span class="_ _52"> </span><span class="ff8">if<span class="_ _52"> </span></span>into<span class="_ _d"> </span>a<span class="_ _52"> </span><span class="ff8">switch</span></div><div class="t m0 xb hb y217 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">In<span class="_ _c"> </span>general,<span class="_ _f"> </span>a<span class="_ _c"> </span><span class="ffa">branch<span class="_ _c"> </span></span>has<span class="_ _f"> </span>negligible<span class="_ _c"> </span>effect<span class="_ _c"> </span>on<span class="_ _f"> </span>p<span class="_ _b"></span>erformance<span class="_ _c"> </span>if<span class="_ _c"> </span>it<span class="_ _c"> </span>is<span class="_ _f"> </span>not<span class="_ _c"> </span>taken</span></div><div class="t m0 xb hb y218 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Not<span class="_ _c"> </span>all<span class="_ _f"> </span>control<span class="_ _c"> </span>flow<span class="_ _c"> </span>instructions<span class="_ _c"> </span>(or<span class="_ _c"> </span>b<span class="_ _3"></span>ranches)<span class="_ _c"> </span>are<span class="_ _c"> </span>translated<span class="_ _c"> </span>into<span class="_ _10"> </span><span class="ff8">jump</span></span></div><div class="t m0 x33 hb y219 ff4 fs6 fc0 sc0 ls0 ws0">instructions.<span class="_ _e"> </span>If<span class="_ _c"> </span>the<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>in<span class="_ _f"> </span>the<span class="_ _c"> </span>branch<span class="_ _c"> </span>is<span class="_ _c"> </span>small,<span class="_ _f"> </span>the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>could<span class="_ _c"> </span>optimize<span class="_ _f"> </span>it<span class="_ _c"> </span>in<span class="_ _c"> </span>a</div><div class="t m0 x33 hb y21a ff4 fs6 fc0 sc0 ls0 ws0">conditional<span class="_ _c"> </span>instruction,<span class="_ _c"> </span>e.g.<span class="_ _a"> </span><span class="ff8">ccmovl</span></div><div class="t m0 x33 hb y21b ff4 fs6 fc0 sc0 ls0 ws0">Small<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _f"> </span>section<span class="_ _c"> </span>can<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>optimized<span class="_ _f"> </span>in<span class="_ _c"> </span>different<span class="_ _f"> </span>w<span class="_ _3"></span>ays<span class="_ _c"> </span><span class="ff1c">2<span class="_ _c"> </span></span>(see<span class="_ _f"> </span>next<span class="_ _c"> </span>slides)</div><div class="t m0 xb hd y21c ffc fs7 fcc sc0 ls0 ws0">Branch<span class="_ _9"> </span>predictor:<span class="_ _20"> </span>How<span class="_ _9"> </span>many<span class="_ _9"> </span>‘if’s<span class="_ _e"> </span>are<span class="_ _9"> </span>too<span class="_ _9"> </span>many?</div><div class="t m0 x1 h10 y21d ff1c fs7 fcc sc0 ls0 ws0">2<span class="_ _d"> </span><span class="ffc">Is<span class="_ _9"> </span>this<span class="_ _9"> </span>a<span class="_ _e"> </span>branch?</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">52/87</div><a class="l" href="https://blog.cloudflare.com/branch-predictor/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:13.862000px;width:223.238000px;height:11.656000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://bartwronski.com/2021/01/18/is-this-a-branch/"><div class="d m1" style="border-style:none;position:absolute;left:33.908000px;bottom:-0.529000px;width:82.017000px;height:12.000000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3a" class="pf w0 h0" data-page-no="3a"><div class="pc pc3a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Minimize<span class="_ _17"> </span>Branch<span class="_ _17"> </span>Overhead</div><div class="t m0 xb hb yb5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Branch<span class="_ _8"> </span>p<span class="_ _3"></span>rediction<span class="ff4">:<span class="_ _e"> </span>technique<span class="_ _c"> </span>to<span class="_ _c"> </span>guess<span class="_ _f"> </span>which<span class="_ _c"> </span>wa<span class="_ _3"></span>y<span class="_ _c"> </span>a<span class="_ _f"> </span>branch<span class="_ _c"> </span>tak<span class="_ _3"></span>es.<span class="_ _e"> </span>It<span class="_ _c"> </span>requires</span></span></div><div class="t m0 x33 hb yb6 ff4 fs6 fc0 sc0 ls0 ws0">ha<span class="_ _3"></span>rdwa<span class="_ _3"></span>re<span class="_ _c"> </span>supp<span class="_ _b"></span>ort,<span class="_ _d"> </span>and<span class="_ _f"> </span>it<span class="_ _c"> </span>is<span class="_ _c"> </span>generically<span class="_ _c"> </span>based<span class="_ _c"> </span>on<span class="_ _c"> </span>dynamic<span class="_ _c"> </span>history<span class="_ _c"> </span>of<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>executing</div><div class="t m0 xb hb y21e ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Branch<span class="_ _8"> </span>p<span class="_ _3"></span>redication<span class="ff4">:<span class="_ _e"> </span>a<span class="_ _c"> </span>conditional<span class="_ _c"> </span>branch<span class="_ _c"> </span>is<span class="_ _c"> </span>substituted<span class="_ _f"> </span>b<span class="_ _3"></span>y<span class="_ _f"> </span>a<span class="_ _c"> </span>sequence<span class="_ _f"> </span>of</span></span></div><div class="t m0 x33 hb y21f ff4 fs6 fc0 sc0 ls0 ws0">instructions<span class="_ _c"> </span>from<span class="_ _c"> </span>b<span class="_ _0"></span>oth<span class="_ _c"> </span>paths<span class="_ _c"> </span>of<span class="_ _c"> </span>the<span class="_ _f"> </span>b<span class="_ _3"></span>ranch.<span class="_ _e"> </span>Only<span class="_ _c"> </span>the<span class="_ _f"> </span>instructions<span class="_ _c"> </span>asso<span class="_ _b"></span>ciated<span class="_ _f"> </span>to<span class="_ _c"> </span>a</div><div class="t m0 x33 hb y220 ffa fs6 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>redicate<span class="_ _17"> </span><span class="ff4">(b<span class="_ _b"></span>o<span class="_ _b"></span>olean<span class="_ _c"> </span>value),<span class="_ _f"> </span>that<span class="_ _c"> </span>represents<span class="_ _c"> </span>the<span class="_ _c"> </span>direction<span class="_ _f"> </span>of<span class="_ _c"> </span>the<span class="_ _f"> </span>b<span class="_ _3"></span>ranch,<span class="_ _f"> </span>a<span class="_ _3"></span>re<span class="_ _f"> </span>actually</span></div><div class="t m0 x33 hb y221 ff4 fs6 fc0 sc0 ls0 ws0">executed</div><div class="t m0 xc hf y222 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">x<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>(condition)<span class="_ _8"> </span><span class="fc8">?<span class="_ _17"> </span></span>A[i]<span class="_ _17"> </span><span class="fc8">:<span class="_ _8"> </span></span>B[i];</span></div><div class="t m0 xc hf y223 ffd fs5 fc0 sc0 ls0 ws0">P<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span></span>(condition)<span class="_ _17"> </span><span class="ffb fc5">//<span class="_ _8"> </span>P:<span class="_ _17"> </span>predicate</span></div><div class="t m0 xc hf y224 ffd fs5 fc0 sc0 ls0 ws0">@P<span class="_ _14"> </span>x<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span></span>A[i];</div><div class="t m0 xc hf y225 ffd fs5 fc0 sc0 ls0 ws0">@<span class="fc8">!</span>P<span class="_ _8"> </span>x<span class="_ _17"> </span><span class="fc8">=<span class="_ _17"> </span></span>B[i];</div><div class="t m0 xb hb y226 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Sp<span class="_ _b"></span>eculative<span class="_ _8"> </span>execution<span class="ff4">:<span class="_ _e"> </span>execute<span class="_ _c"> </span>b<span class="_ _b"></span>oth<span class="_ _c"> </span>sides<span class="_ _f"> </span>of<span class="_ _c"> </span>the<span class="_ _f"> </span>conditional<span class="_ _c"> </span>branch<span class="_ _c"> </span>to<span class="_ _c"> </span>b<span class="_ _b"></span>etter</span></span></div><div class="t m0 x33 hb y227 ff4 fs6 fc0 sc0 ls0 ws0">utilize<span class="_ _c"> </span>the<span class="_ _c"> </span>computer<span class="_ _f"> </span>resources<span class="_ _c"> </span>and<span class="_ _f"> </span>commit<span class="_ _c"> </span>the<span class="_ _f"> </span>results<span class="_ _c"> </span>asso<span class="_ _b"></span>ciated<span class="_ _f"> </span>to<span class="_ _c"> </span>the<span class="_ _f"> </span>branch</div><div class="t m0 x33 hb y228 ff4 fs6 fc0 sc0 ls0 ws0">tak<span class="_ _3"></span>en</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">53/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3b" class="pf w0 h0" data-page-no="3b"><div class="pc pc3b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIvElEQVR42u3ZsU0DQRBAUS+6EdGKGhARFSBEjOTOaIJyCCiCDoisjZjkyIjxBfas/V4Fc3MXfM21h6eXHQAAlPH1+XFjCwAAVCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAD40zLTFgAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAR1msoJoxhiWcRe/dl8Clfk4A03FJBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAATqplpi0AAFBHRCy2ABxljHFJj9N7n+6pq838z3kAjuJ3PwAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAA4r5aZtgAAQB0R4ZIKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAMxtmWjWMYYXBgCwTe99omldUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAABbtMy0BQAA6ogIl1QAAMoRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAOC6LRPNOsbwwgAAtum9TzStSyoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBgi5aZtgAAQB0R4ZIKAEA5IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAOInl8HZvCwDU8f36bglw5R6f963d3a6Hn91uXVcLAQCghF98ezT8d6IqcgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Branch<span class="_ _17"> </span>Hints<span class="_ _17"> </span>-<span class="_ _17"> </span><span class="ff5">[[likely]]<span class="_ _11"> </span>/<span class="_ _11"> </span>[[unlikely]]</span></div><div class="t m0 x1 hb y229 ff4 fs6 fcd sc0 ls0 ws0">C++20<span class="_ _10"> </span><span class="ff8 fc7">[[likely]]<span class="_ _10"> </span></span><span class="fc0">and<span class="_ _10"> </span><span class="ff8 fc7">[[unlikely]]<span class="_ _10"> </span></span>p<span class="_ _3"></span>rovide<span class="_ _c"> </span>a<span class="_ _f"> </span>hint<span class="_ _c"> </span>to<span class="_ _f"> </span>the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>to<span class="_ _c"> </span>optimize</span></div><div class="t m0 x1 hb y22a ff4 fs6 fc0 sc0 ls0 ws0">a<span class="_ _c"> </span>conditional<span class="_ _c"> </span>statement,<span class="_ _f"> </span>such<span class="_ _c"> </span>as<span class="_ _10"> </span><span class="ff8">while<span class="_ _d"> </span></span>,<span class="_ _10"> </span><span class="ff8">for<span class="_ _25"> </span></span>,<span class="_ _10"> </span><span class="ff8">if</span></div><div class="t m0 xd hd y22b ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(i<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _9"> </span><span class="fc8"><<span class="_ _e"> </span>300</span>;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></div><div class="t m0 x33 hd y22c ffc fs7 fc0 sc0 ls0 ws0">[[unlikely]]<span class="_ _9"> </span><span class="ff5 fc9">if<span class="_ _9"> </span></span>(rand()<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span>10</span>)</div><div class="t m0 x39 hd y22d ff5 fs7 fc9 sc0 ls0 ws0">return<span class="_ _9"> </span><span class="ffc">false<span class="fc0">;</span></span></div><div class="t m0 xd hd y22e ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hd y22f ff5 fs7 fc9 sc0 ls0 ws0">switch<span class="_ _9"> </span><span class="ffc fc0">(value)<span class="_ _9"> </span>{</span></div><div class="t m0 x3a hd y230 ffc fs7 fc0 sc0 ls0 ws0">[[likely]]<span class="_ _13"> </span><span class="ff5 fc9">case<span class="_ _9"> </span><span class="ffe fca">'<span class="ffc">A</span>'</span></span>:<span class="_ _e"> </span><span class="ff5 fc9">return<span class="_ _9"> </span></span><span class="fc8">2</span>;</div><div class="t m0 x3a hd y231 ffc fs7 fc0 sc0 ls0 ws0">[[unlikely]]<span class="_ _9"> </span><span class="ff5 fc9">case<span class="_ _9"> </span><span class="ffe fca">'<span class="ffc">B</span>'</span></span>:<span class="_ _e"> </span><span class="ff5 fc9">return<span class="_ _9"> </span></span><span class="fc8">4</span>;</div><div class="t m0 xd hd y232 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">54/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3c" class="pf w0 h0" data-page-no="3c"><div class="pc pc3c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAItUlEQVR42u3bMUrEQBiG4Yzkx2rwDGLlCUStBRsLT+UlPIWFJ7AQz+ANrJapHFyy3TZaLKjwJ3meMlXypXmZkHJ2cT0AAEAa768vR1YAACAbkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAwF7pvVsBAIA8IsJJKgAA6YhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAGAdRhMALENrbQ2PWWv1rmENnKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgBAMqMJAPhvX9vt1d399+tvz0/GAX5Ueu9WAFiA1toaHrPW6l3D4kWEz/0AAKQjUgEAEKkAACBSAQAQqQAA8Fv+7gcAIBd/9wMAkJFIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQCAA40mOFxrzQgAwEzVWmd0t05SAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAOCPlN67FQAAyCMinKQCAJCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAZDZuHk6tAMBcfNw8GgEW7/zytpST42nzOQzTNBkEAIAUdsv3K/6ZGCpUAAAAAElFTkSuQmCC"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Signed/Unsigned<span class="_ _17"> </span>Integers</div><div class="t m0 xb hb yb5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _f"> </span><span class="ff1">signed<span class="_ _8"> </span>integer<span class="_ _c"> </span></span>for<span class="_ _c"> </span><span class="ff1">lo<span class="_ _0"></span>op<span class="_ _c"> </span>indexing<span class="_ _b"></span></span>.<span class="_ _9"> </span>The<span class="_ _f"> </span>compiler<span class="_ _c"> </span>optimizes<span class="_ _f"> </span>more</span></div><div class="t m0 x33 hb yb6 ff4 fs6 fc0 sc0 ls0 ws0">aggressively<span class="_ _c"> </span>such<span class="_ _c"> </span>lo<span class="_ _0"></span>ops<span class="_ _c"> </span>because<span class="_ _f"> </span>integer<span class="_ _c"> </span>overflow<span class="_ _c"> </span>is<span class="_ _c"> </span>not<span class="_ _f"> </span>defined.<span class="_ _e"> </span>Unsigned<span class="_ _c"> </span>lo<span class="_ _b"></span>op</div><div class="t m0 x33 hb y14b ff4 fs6 fc0 sc0 ls0 ws0">indexing<span class="_ _c"> </span>generates<span class="_ _c"> </span>complex<span class="_ _f"> </span>intermediate<span class="_ _c"> </span>expressions,<span class="_ _c"> </span>esp<span class="_ _b"></span>ecially<span class="_ _c"> </span>for<span class="_ _c"> </span>nested<span class="_ _c"> </span>lo<span class="_ _b"></span>ops,</div><div class="t m0 x33 hb y233 ff4 fs6 fc0 sc0 ls0 ws0">that<span class="_ _c"> </span>the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>could<span class="_ _c"> </span>not<span class="_ _f"> </span>solve</div><div class="t m0 xb hb y220 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _f"> </span><span class="ff1">32-bit<span class="_ _8"> </span>signed<span class="_ _f"> </span>integer<span class="_ _f"> </span></span>or<span class="_ _c"> </span><span class="ff1">64-bit<span class="_ _8"> </span>integer<span class="_ _f"> </span></span>for<span class="_ _c"> </span><span class="ff1">any<span class="_ _8"> </span>op<span class="_ _b"></span>eration<span class="_ _8"> </span>that<span class="_ _8"> </span>is</span></span></div><div class="t m0 x33 hb y221 ff1 fs6 fc0 sc0 ls0 ws0">translated<span class="_ _f"> </span>to<span class="_ _8"> </span>64-bit<span class="ff4">.<span class="_ _e"> </span>The<span class="_ _c"> </span>most<span class="_ _f"> </span>common<span class="_ _c"> </span>is<span class="_ _f"> </span><span class="ffa">a<span class="_ _3"></span>rray<span class="_ _c"> </span>indexing<span class="ff4">.<span class="_ _9"> </span>The<span class="_ _f"> </span>subscript</span></span></span></div><div class="t m0 x33 hb y234 ff4 fs6 fc0 sc0 ls0 ws0">op<span class="_ _b"></span>erato<span class="_ _3"></span>r<span class="_ _f"> </span>implicitly<span class="_ _c"> </span>defines<span class="_ _f"> </span>its<span class="_ _c"> </span>parameter<span class="_ _c"> </span>as<span class="_ _10"> </span><span class="ff8">size<span class="_ _8"> </span>t<span class="_ _d"> </span></span>.<span class="_ _9"> </span>Any<span class="_ _f"> </span>indexing<span class="_ _c"> </span>op<span class="_ _b"></span>eration<span class="_ _f"> </span>with</div><div class="t m0 x33 hb y235 ff4 fs6 fc0 sc0 ls0 ws0">32-bit<span class="_ _c"> </span>unsigned<span class="_ _c"> </span>integer<span class="_ _f"> </span>requires<span class="_ _c"> </span>the<span class="_ _f"> </span>compiler<span class="_ _c"> </span>to<span class="_ _f"> </span>enforce<span class="_ _c"> </span>wrap-a<span class="_ _3"></span>round<span class="_ _c"> </span>b<span class="_ _b"></span>ehavior,</div><div class="t m0 x33 hb y236 ff4 fs6 fc0 sc0 ls0 ws0">e.g.<span class="_ _e"> </span>b<span class="_ _3"></span>y<span class="_ _c"> </span>moving<span class="_ _f"> </span>the<span class="_ _c"> </span>variable<span class="_ _c"> </span>to<span class="_ _c"> </span>a<span class="_ _c"> </span>32-bit<span class="_ _f"> </span>register</div><div class="t m0 xc hd y237 ff5 fs7 fc6 sc0 ls0 ws0">unsigned<span class="_ _9"> </span><span class="ffc fc0">v<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>...;</span></div><div class="t m0 xc hd y238 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>some<span class="_ _9"> </span>operations<span class="_ _e"> </span>on<span class="_ _9"> </span>v</div><div class="t m0 xc hd y239 ffc fs7 fc0 sc0 ls0 ws0">array[v];</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">55/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3d" class="pf w0 h0" data-page-no="3d"><div class="pc pc3d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAImElEQVR42u3ZsU3DYBCGYf/IJyorMyCqTIBQaqSsQJF5sgQbUDBDJAqGYAOqyEXCNaZLHVFE5+R5FrD1uXl1bo9Pqw4AAMr4/vq8swIAANWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAATlpmWgEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAMAN6U0AFDGO42UeNAyDtQGKc0kFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAADz1jLTCgAA1BERLqkAAJQjUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAAAq6+fyoofjcf268cFgXnYf70YA4B9aZloBAIA6IsLvfgAAyhGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAJyt328frADA1fh5eTMCzN3yed3a4n7a/3bdNE0GAQCghD97pSMAD9AujgAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _b"></span>ops</div><div class="t m0 xb hb y47 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _f"> </span><span class="ff1">squa<span class="_ _3"></span>re<span class="_ _8"> </span>brack<span class="_ _3"></span>ets<span class="_ _c"> </span><span class="ff4">syntax<span class="_ _10"> </span><span class="ff8">[]<span class="_ _10"> </span></span>over<span class="_ _c"> </span>p<span class="_ _b"></span>ointer<span class="_ _f"> </span>a<span class="_ _3"></span>rithmetic<span class="_ _f"> </span>op<span class="_ _b"></span>erations<span class="_ _c"> </span>for<span class="_ _c"> </span>arr<span class="_ _3"></span>ay</span></span></span></div><div class="t m0 x33 hb y23a ff4 fs6 fc0 sc0 ls0 ws0">access<span class="_ _c"> </span>to<span class="_ _c"> </span>facilitate<span class="_ _f"> </span>compiler<span class="_ _c"> </span>lo<span class="_ _0"></span>op<span class="_ _c"> </span>optimizations<span class="_ _c"> </span>(e.g.<span class="_ _e"> </span>polyhedral<span class="_ _f"> </span>lo<span class="_ _b"></span>op</div><div class="t m0 x33 hb y23b ff4 fs6 fc0 sc0 ls0 ws0">transfo<span class="_ _3"></span>rmations)</div><div class="t m0 xb hb y23c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">Range-based<span class="_ _9"> </span><span class="ff4">lo<span class="_ _b"></span>op<span class="_ _c"> </span>could<span class="_ _f"> </span>provide<span class="_ _c"> </span>mino<span class="_ _3"></span>r<span class="_ _c"> </span>p<span class="_ _b"></span>erformance<span class="_ _c"> </span>improvements<span class="_ _c"> </span>fo<span class="_ _3"></span>r<span class="_ _c"> </span>small<span class="_ _f"> </span>lo<span class="_ _b"></span>ops</span></span></div><div class="t m0 x33 hb y23d ff4 fs6 fc0 sc0 ls0 ws0">that<span class="_ _c"> </span>iterate<span class="_ _c"> </span>over<span class="_ _f"> </span>a<span class="_ _c"> </span>container<span class="_ _f"> </span><span class="ff1c">1</span></div><div class="t m0 xb hb y23e ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">On<span class="_ _c"> </span>the<span class="_ _f"> </span>other<span class="_ _c"> </span>hand,<span class="_ _f"> </span><span class="ffa">range-based<span class="_ _c"> </span>lo<span class="_ _b"></span>ops<span class="_ _9"> </span></span>and<span class="_ _c"> </span><span class="ffa">iterators<span class="_ _17"> </span></span>could<span class="_ _c"> </span>inhibit<span class="_ _f"> </span>many</span></div><div class="t m0 x33 hb y23f ff4 fs6 fc0 sc0 ls0 ws0">optimizations<span class="_ _c"> </span>such<span class="_ _c"> </span>as<span class="_ _f"> </span>lo<span class="_ _b"></span>op<span class="_ _f"> </span>unrolling<span class="_ _c"> </span>and<span class="_ _f"> </span>vecto<span class="_ _3"></span>rization</div><div class="t m0 xb h10 y240 ff1c fs7 fcc sc0 ls0 ws0">1<span class="_ _d"> </span><span class="ffc">The<span class="_ _9"> </span>Little<span class="_ _9"> </span>Things:<span class="_ _20"> </span>Everyday<span class="_ _9"> </span>efficiencies</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">56/87</div><a class="l" href="https://codingnest.com/the-little-things-everyday-efficiencies/amp/?__twitter_impression=true"><div class="d m1" style="border-style:none;position:absolute;left:41.339000px;bottom:16.425000px;width:194.993000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3e" class="pf w0 h0" data-page-no="3e"><div class="pc pc3e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _17"> </span>Hoisting</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _8"> </span>Hoisting<span class="ff4">,<span class="_ _c"> </span>also<span class="_ _f"> </span>called<span class="_ _c"> </span><span class="ffa">lo<span class="_ _b"></span>op-invariant<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>motion</span>,<span class="_ _c"> </span>consists<span class="_ _f"> </span>of<span class="_ _c"> </span>moving<span class="_ _f"> </span>statements</span></div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">o<span class="_ _3"></span>r<span class="_ _f"> </span>exp<span class="_ _3"></span>ressions<span class="_ _f"> </span>outside<span class="_ _c"> </span>the<span class="_ _f"> </span>b<span class="_ _b"></span>o<span class="_ _b"></span>dy<span class="_ _c"> </span>of<span class="_ _f"> </span>a<span class="_ _c"> </span>lo<span class="_ _0"></span>op<span class="_ _c"> </span><span class="ffa">without<span class="_ _c"> </span>affecting<span class="_ _c"> </span>the<span class="_ _f"> </span>semantics<span class="_ _17"> </span></span>of<span class="_ _f"> </span>the</div><div class="t m0 x1 hb y116 ff4 fs6 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>rogram</div><div class="t m0 x1 hd y241 ffc fs7 fc0 sc0 ls0 ws0">Base<span class="_ _9"> </span>case:</div><div class="t m0 xd hd y242 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span>100</span>;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x33 hd y243 ffc fs7 fc0 sc0 ls0 ws0">a[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>x<span class="_ _e"> </span><span class="fc8">+<span class="_ _9"> </span></span>y;</div><div class="t m0 x3b hd y244 ffc fs7 fc0 sc0 ls0 ws0">Better:</div><div class="t m0 x3c hd y245 ffc fs7 fc0 sc0 ls0 ws0">v<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>x<span class="_ _e"> </span><span class="fc8">+<span class="_ _9"> </span></span>y;</div><div class="t m0 x3c hd y246 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span>100</span>;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x3d hd y247 ffc fs7 fc0 sc0 ls0 ws0">a[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>v;</div><div class="t m0 x1 hb y248 ff4 fs6 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _c"> </span>hoisting<span class="_ _f"> </span>is<span class="_ _c"> </span>also<span class="_ _f"> </span>imp<span class="_ _b"></span>o<span class="_ _3"></span>rtant<span class="_ _f"> </span>in<span class="_ _c"> </span>the<span class="_ _f"> </span>evaluation<span class="_ _c"> </span>of<span class="_ _f"> </span>lo<span class="_ _b"></span>op<span class="_ _c"> </span>conditions</div><div class="t m0 x1 hd y249 ffc fs7 fc0 sc0 ls0 ws0">Base<span class="_ _9"> </span>case:</div><div class="t m0 xd hd y24a ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>"x"<span class="_ _9"> </span>never<span class="_ _e"> </span>changes</div><div class="t m0 xd hd y24b ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>f(x);<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x3e hd y24c ffc fs7 fc0 sc0 ls0 ws0">a[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>y;</div><div class="t m0 x3b hd y249 ffc fs7 fc0 sc0 ls0 ws0">Better:</div><div class="t m0 x3c hd y24a ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">limit<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>f(x);</span></div><div class="t m0 x3c hd y24b ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>limit;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x3f hd y24c ffc fs7 fc0 sc0 ls0 ws0">a[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>y;</div><div class="t m0 x1 hb y24d ff4 fs6 fc0 sc0 ls0 ws0">In<span class="_ _c"> </span>the<span class="_ _c"> </span>wo<span class="_ _3"></span>rst<span class="_ _c"> </span>case,<span class="_ _10"> </span><span class="ff8">f(x)<span class="_ _10"> </span></span>is<span class="_ _f"> </span>evaluated<span class="_ _c"> </span>at<span class="_ _f"> </span>every<span class="_ _c"> </span>iteration<span class="_ _f"> </span>(esp<span class="_ _b"></span>ecially<span class="_ _c"> </span>when<span class="_ _f"> </span>it<span class="_ _c"> </span>b<span class="_ _b"></span>elongs<span class="_ _f"> </span>to</div><div class="t m0 x1 hb y24e ff4 fs6 fc0 sc0 ls0 ws0">another<span class="_ _c"> </span>translation<span class="_ _c"> </span>unit)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">57/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf3f" class="pf w0 h0" data-page-no="3f"><div class="pc pc3f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _17"> </span>Unrolling<span class="_ _53"> </span>1/2</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _8"> </span>unrolling<span class="_ _f"> </span><span class="ff4">(o<span class="_ _3"></span>r<span class="_ _f"> </span><span class="ff1">unwinding<span class="_ _b"></span></span>)<span class="_ _c"> </span>is<span class="_ _f"> </span>a<span class="_ _c"> </span>lo<span class="_ _b"></span>op<span class="_ _f"> </span>transfo<span class="_ _3"></span>rmation<span class="_ _f"> </span>technique<span class="_ _c"> </span>which<span class="_ _f"> </span>optimizes</span></div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _f"> </span>b<span class="_ _3"></span>y<span class="_ _f"> </span>removing<span class="_ _c"> </span>(or<span class="_ _c"> </span>reducing)<span class="_ _c"> </span>lo<span class="_ _b"></span>op<span class="_ _f"> </span>iterations</div><div class="t m0 x1 hb yf3 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span>optimization<span class="_ _c"> </span>produces<span class="_ _f"> </span>b<span class="_ _b"></span>etter<span class="_ _f"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>at<span class="_ _f"> </span>the<span class="_ _c"> </span>exp<span class="_ _b"></span>ense<span class="_ _f"> </span>of<span class="_ _c"> </span>binary<span class="_ _c"> </span>size</div><div class="t m0 x1 h6 y24f ff4 fs4 fc0 sc0 ls0 ws0">Example:</div><div class="t m0 xd hc y250 ff5 fs4 fc9 sc0 ls0 ws0">for<span class="_ _e"> </span><span class="ff8 fc0">(</span><span class="fc6">int<span class="_ _6"> </span><span class="ff8 fc0">i<span class="_ _6"> </span><span class="fc8">=<span class="_ _e"> </span>0</span>;<span class="_ _6"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _6"> </span></span>N;<span class="_ _e"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x28 hc y251 ff8 fs4 fc0 sc0 ls0 ws0">sum<span class="_ _e"> </span><span class="fc8">+=<span class="_ _6"> </span></span>A[i];</div><div class="t m0 x1 h6 y252 ff4 fs4 fc0 sc0 ls0 ws0">can<span class="_ _d"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>rewritten<span class="_ _d"> </span>as:</div><div class="t m0 xd hf y253 ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span><span class="fc6">int<span class="_ _17"> </span><span class="ffd fc0">i<span class="_ _17"> </span><span class="fc8">=<span class="_ _8"> </span>0</span>;<span class="_ _17"> </span>i<span class="_ _17"> </span><span class="fc8"><<span class="_ _8"> </span></span>N;<span class="_ _17"> </span>i<span class="_ _17"> </span><span class="fc8">+=<span class="_ _8"> </span>8</span>)<span class="_ _17"> </span>{</span></span></div><div class="t m0 xf hf y254 ffd fs5 fc0 sc0 ls0 ws0">sum<span class="_ _8"> </span><span class="fc8">+=<span class="_ _17"> </span></span>A[i];</div><div class="t m0 xf hf y255 ffd fs5 fc0 sc0 ls0 ws0">sum<span class="_ _8"> </span><span class="fc8">+=<span class="_ _17"> </span></span>A[i<span class="_ _17"> </span><span class="fc8">+<span class="_ _8"> </span>1</span>];</div><div class="t m0 xf hf y256 ffd fs5 fc0 sc0 ls0 ws0">sum<span class="_ _8"> </span><span class="fc8">+=<span class="_ _17"> </span></span>A[i<span class="_ _17"> </span><span class="fc8">+<span class="_ _8"> </span>2</span>];</div><div class="t m0 xf hf y257 ffd fs5 fc0 sc0 ls0 ws0">sum<span class="_ _8"> </span><span class="fc8">+=<span class="_ _17"> </span></span>A[i<span class="_ _17"> </span><span class="fc8">+<span class="_ _8"> </span>3</span>];</div><div class="t m0 xf hf y258 ffd fs5 fc0 sc0 ls0 ws0">...</div><div class="t m0 xd hf y259 ffd fs5 fc0 sc0 ls0 ws0">}<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>we<span class="_ _8"> </span>suppose<span class="_ _17"> </span>N<span class="_ _8"> </span>is<span class="_ _17"> </span>a<span class="_ _8"> </span>multiple<span class="_ _17"> </span>of<span class="_ _8"> </span>8</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">58/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf40" class="pf w0 h0" data-page-no="40"><div class="pc pc40 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _17"> </span>Unrolling<span class="_ _53"> </span>2/2</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _8"> </span>unrolling<span class="_ _f"> </span>can<span class="_ _8"> </span>make<span class="_ _f"> </span>your<span class="_ _c"> </span>co<span class="_ _0"></span>de<span class="_ _f"> </span>b<span class="_ _b"></span>etter/faster:</div><div class="t m0 x5 hb y25a ff1 fs6 fc0 sc0 ls0 ws0">+<span class="_ _6"> </span><span class="ff4">Imp<span class="_ _3"></span>rove<span class="_ _f"> </span>instruction-level<span class="_ _c"> </span>parallelism<span class="_ _c"> </span>(ILP)</span></div><div class="t m0 x5 hb y25b ff1 fs6 fc0 sc0 ls0 ws0">+<span class="_ _6"> </span><span class="ff4">Allo<span class="_ _3"></span>w<span class="_ _f"> </span>vector<span class="_ _c"> </span>(SIMD)<span class="_ _c"> </span>instructions</span></div><div class="t m0 x5 hb y25c ff1 fs6 fc0 sc0 ls0 ws0">+<span class="_ _6"> </span><span class="ff4">Reduce<span class="_ _c"> </span>control<span class="_ _f"> </span>instructions<span class="_ _c"> </span>and<span class="_ _f"> </span>b<span class="_ _3"></span>ranches</span></div><div class="t m0 x1 hb y25d ff1 fs6 fc0 sc0 ls0 ws0">Lo<span class="_ _b"></span>op<span class="_ _8"> </span>unrolling<span class="_ _f"> </span>can<span class="_ _8"> </span>make<span class="_ _f"> </span>your<span class="_ _c"> </span>co<span class="_ _0"></span>de<span class="_ _f"> </span>w<span class="_ _3"></span>orse/slo<span class="_ _3"></span>w<span class="_ _3"></span>er:</div><div class="t m0 x3a hb y25e ff1 fs6 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span><span class="ff4">Increase<span class="_ _c"> </span>compile-time/binary<span class="_ _c"> </span>size</span></div><div class="t m0 x3a hb y25f ff1 fs6 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span><span class="ff4">Require<span class="_ _c"> </span>more<span class="_ _c"> </span>instruction<span class="_ _c"> </span>deco<span class="_ _b"></span>ding</span></div><div class="t m0 x3a hb y260 ff1 fs6 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span><span class="ff4">Use<span class="_ _c"> </span>more<span class="_ _c"> </span>memo<span class="_ _3"></span>ry<span class="_ _f"> </span>and<span class="_ _c"> </span>instruction<span class="_ _f"> </span>cache</span></div><div class="t m0 x1 hb y261 ff1 fs6 fc0 sc0 ls0 ws0">Unroll<span class="_ _f"> </span>directive<span class="_ _f"> </span><span class="ff4 fs4">The<span class="_ _c"> </span><span class="ff8">Intel</span>,<span class="_ _d"> </span><span class="ff8">IBM</span>,<span class="_ _c"> </span><span class="ff8">Arm</span>,<span class="_ _d"> </span><span class="ff8">Nvidia</span>,<span class="_ _c"> </span><span class="ff8">clang</span>,<span class="_ _d"> </span>and<span class="_ _c"> </span><span class="ff8">GCC<span class="_ _d"> </span></span>compilers<span class="_ _c"> </span>p<span class="_ _3"></span>rovide<span class="_ _c"> </span>the</span></div><div class="t m0 x1 h6 y262 ff4 fs4 fc0 sc0 ls0 ws0">p<span class="_ _3"></span>reprocessing<span class="_ _c"> </span>directive<span class="_ _11"> </span><span class="ff8">#pragma<span class="_ _6"> </span>unroll<span class="_ _52"> </span></span>(<span class="_ _d"> </span><span class="ff8">#pragma<span class="_ _e"> </span>GCC<span class="_ _6"> </span>unroll<span class="_ _11"> </span></span>for<span class="_ _d"> </span>GCC)<span class="_ _d"> </span>to<span class="_ _c"> </span>insert<span class="_ _d"> </span>ab<span class="_ _b"></span>ove</div><div class="t m0 x1 h6 y263 ff4 fs4 fc0 sc0 ls0 ws0">the<span class="_ _d"> </span>lo<span class="_ _b"></span>op<span class="_ _c"> </span>to<span class="_ _d"> </span>force<span class="_ _d"> </span>lo<span class="_ _b"></span>op<span class="_ _c"> </span>unrolling.<span class="_ _17"> </span>The<span class="_ _d"> </span>compiler<span class="_ _c"> </span>already<span class="_ _d"> </span>applies<span class="_ _c"> </span>the<span class="_ _d"> </span>optimization<span class="_ _c"> </span>in<span class="_ _d"> </span>most<span class="_ _c"> </span>cases</div><div class="t m0 xb hd y264 ffc fs7 fcc sc0 ls0 ws0">Why<span class="_ _9"> </span>are<span class="_ _9"> </span>unrolled<span class="_ _e"> </span>loops<span class="_ _9"> </span>faster?</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">59/87</div><a class="l" href="https://lemire.me/blog/2019/04/12/why-are-unrolled-loops-faster/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:4.714000px;width:143.213000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf41" class="pf w0 h0" data-page-no="41"><div class="pc pc41 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Assertions</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">Some<span class="_ _c"> </span>compilers<span class="_ _c"> </span>(e.g.<span class="_ _e"> </span><span class="ff8">clang</span>)<span class="_ _c"> </span>use<span class="_ _f"> </span>assertions<span class="_ _c"> </span>for<span class="_ _c"> </span>optimization<span class="_ _c"> </span>purp<span class="_ _b"></span>oses:<span class="_ _e"> </span>most<span class="_ _c"> </span>likely</div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">co<span class="_ _b"></span>de<span class="_ _c"> </span>path,<span class="_ _f"> </span>not<span class="_ _c"> </span>p<span class="_ _b"></span>ossible<span class="_ _f"> </span>values,<span class="_ _c"> </span>etc.<span class="_ _e"> </span><span class="ff1c">3</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">60/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf42" class="pf w0 h0" data-page-no="42"><div class="pc pc42 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Compiler<span class="_ _17"> </span>Hints<span class="_ _17"> </span>-<span class="_ _17"> </span><span class="ff5">[[assume]]/std::unreachable()</span></div><div class="t m0 x1 hb y7b ff4 fs6 fcd sc0 ls0 ws0">C++23<span class="_ _c"> </span><span class="fc0">allows<span class="_ _c"> </span>defining<span class="_ _c"> </span>an<span class="_ _c"> </span><span class="ffa">assumption<span class="_ _f"> </span></span>in<span class="_ _f"> </span>the<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _f"> </span>that<span class="_ _c"> </span>is<span class="_ _f"> </span>alwa<span class="_ _3"></span>ys<span class="_ _c"> </span>true</span></div><div class="t m0 xd hd y265 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>...;</span></div><div class="t m0 xd hd y266 ffc fs7 fc0 sc0 ls0 ws0">[[assume(x<span class="_ _9"> </span><span class="fc8">><span class="_ _9"> </span>0</span>)]];<span class="_ _e"> </span><span class="ffb fc5">//<span class="_ _9"> </span>the<span class="_ _9"> </span>compiler<span class="_ _e"> </span>assume<span class="_ _9"> </span>that<span class="_ _9"> </span><span class="ff15">'</span>x<span class="ff15">'<span class="_ _9"> </span></span>is<span class="_ _e"> </span>positive</span></div><div class="t m0 xd hd y267 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">y<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>x<span class="_ _9"> </span><span class="fc8">/<span class="_ _9"> </span>2</span>;<span class="_ _43"> </span><span class="ffb fc5">//<span class="_ _9"> </span>the<span class="_ _e"> </span>operation<span class="_ _9"> </span>is<span class="_ _9"> </span>translated<span class="_ _e"> </span>in<span class="_ _17"> </span>a<span class="_ _e"> </span>single<span class="_ _9"> </span>shift<span class="_ _9"> </span>as<span class="_ _e"> </span>for</span></span></div><div class="t m0 x40 hd y268 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>the<span class="_ _9"> </span>unsigned<span class="_ _e"> </span>case</div><div class="t m0 x1 hb y269 ff4 fs6 fcd sc0 ls0 ws0">C++23<span class="_ _c"> </span><span class="fc0">also<span class="_ _c"> </span>p<span class="_ _3"></span>rovides<span class="_ _10"> </span><span class="ff8">std::unreachable()<span class="_ _10"> </span></span>(<span class="_ _25"> </span><span class="ff1a"><<span class="ff8">utility</span>><span class="_ _d"> </span></span>)<span class="_ _c"> </span>fo<span class="_ _3"></span>r<span class="_ _c"> </span>marking<span class="_ _d"> </span>unreachable</span></div><div class="t m0 x1 hb y26a ff4 fs6 fc0 sc0 ls0 ws0">co<span class="_ _b"></span>de</div><div class="t m0 x1 h10 y26b fff fs7 fc0 sc0 ls0 ws0">Compilers<span class="_ _d"> </span>p<span class="_ _3"></span>rovide<span class="_ _d"> </span>non-p<span class="_ _b"></span>ortable<span class="_ _25"> </span>instructions<span class="_ _d"> </span>for<span class="_ _25"> </span>previous<span class="_ _25"> </span>C++<span class="_ _d"> </span>standards:<span class="_ _54"> </span><span class="ffc">builtin<span class="_ _c"> </span>assume()</span></div><div class="t m0 x1 h10 y26c fff fs7 fc0 sc0 ls0 ws0">(<span class="ffc">clang</span>),<span class="_ _1c"> </span><span class="ffc">builtin<span class="_ _c"> </span>unreachable()<span class="_ _52"> </span></span>(<span class="ffc">gcc</span>),<span class="_ _1c"> </span><span class="ffc">assume()<span class="_ _11"> </span></span>(<span class="ffc">msvc</span>)</div><div class="t m0 x1 hb y26d ff4 fs6 fc0 sc0 ls0 ws0">Note:<span class="_ _e"> </span>sometimes<span class="_ _c"> </span>user-p<span class="_ _3"></span>rovided<span class="_ _f"> </span>info<span class="_ _3"></span>rmation<span class="_ _f"> </span>leads<span class="_ _c"> </span>to<span class="_ _f"> </span>w<span class="_ _3"></span>orse<span class="_ _c"> </span>optimization,<span class="_ _c"> </span>see</div><div class="t m0 x1 hb y26e ff8 fs6 fc0 sc0 ls0 ws0">@llvm.assume<span class="_ _15"> </span>blocks<span class="_ _15"> </span>optimization<span class="_ _25"> </span><span class="ff11 fs8"><span class="_ _f"> </span></span><span class="ff4">and<span class="_ _c"> </span></span>Refined<span class="_ _15"> </span>Input,<span class="_ _15"> </span>Degraded<span class="_ _15"> </span>Output:</div><div class="t m0 x1 h11 y26f ff8 fs6 fc0 sc0 ls0 ws0">The<span class="_ _15"> </span>Counterintuitive<span class="_ _15"> </span>World<span class="_ _15"> </span>of<span class="_ _15"> </span>Compiler<span class="_ _6"> </span>Behavior<span class="_ _d"> </span><span class="ff11 fs8"></span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">61/87</div><a class="l" href="https://discourse.llvm.org/t/llvm-assume-blocks-optimization/71609/8"><div class="d m1" style="border-style:none;position:absolute;left:27.350000px;bottom:19.719000px;width:194.273000px;height:11.992000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://dl.acm.org/doi/pdf/10.1145/3656404"><div class="d m1" style="border-style:none;position:absolute;left:243.418000px;bottom:19.719000px;width:182.775000px;height:11.992000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://dl.acm.org/doi/pdf/10.1145/3656404"><div class="d m1" style="border-style:none;position:absolute;left:27.350000px;bottom:4.137000px;width:280.182000px;height:10.952000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf43" class="pf w0 h0" data-page-no="43"><div class="pc pc43 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIX0lEQVR42u3YsQnCQBiG4TvJkdIZQionELEW3CxLZJwUGSIbWKX0mrMQsoI/8jwjfNXLl8frPQEAQBjbupysAABANCIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAIBDrrVaAQCAOEopnlQAAMIRqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQTAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqSYAAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEA+B/dPg1WAICfez1mI8DX5fbM+dy3/Z1Sa80gAACE8AGG6RQEjSuQ+gAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Recursion<span class="_ _55"> </span>1/2</div><div class="t m0 x1 hb y270 ff1 fs6 fc0 sc0 ls0 ws0">A<span class="_ _3"></span>void<span class="_ _8"> </span>run-time<span class="_ _8"> </span>recursion<span class="_ _c"> </span><span class="ff4">(very<span class="_ _f"> </span>exp<span class="_ _b"></span>ensive).<span class="_ _e"> </span>Prefer<span class="_ _c"> </span><span class="ffa">iterative<span class="_ _8"> </span></span>algorithms<span class="_ _c"> </span>instead</span></div><div class="t m0 x1 hb y271 ff1 fs6 fc0 sc0 ls0 ws0">Recursion<span class="_ _f"> </span>cost:<span class="_ _e"> </span><span class="ff4">The<span class="_ _c"> </span>program<span class="_ _c"> </span>must<span class="_ _c"> </span>store<span class="_ _c"> </span>all<span class="_ _c"> </span>variables<span class="_ _c"> </span>(snapshot)<span class="_ _c"> </span>at<span class="_ _c"> </span>each<span class="_ _f"> </span>recursion</span></div><div class="t m0 x1 hb y272 ff4 fs6 fc0 sc0 ls0 ws0">iteration<span class="_ _c"> </span>on<span class="_ _c"> </span>the<span class="_ _c"> </span>stack,<span class="_ _c"> </span>and<span class="_ _c"> </span>remove<span class="_ _c"> </span>them<span class="_ _c"> </span>when<span class="_ _c"> </span>the<span class="_ _c"> </span>control<span class="_ _c"> </span>return<span class="_ _c"> </span>to<span class="_ _c"> </span>the<span class="_ _c"> </span>caller<span class="_ _c"> </span>instance</div><div class="t m0 x1 hb y273 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span><span class="ff1">tail<span class="_ _f"> </span>recursion<span class="_ _c"> </span></span>optimization<span class="_ _c"> </span>avoids<span class="_ _d"> </span>maintaining<span class="_ _c"> </span>caller<span class="_ _c"> </span>stack<span class="_ _c"> </span>and<span class="_ _c"> </span>pass<span class="_ _c"> </span>the<span class="_ _c"> </span>control<span class="_ _c"> </span>to</div><div class="t m0 x1 hb y274 ff4 fs6 fc0 sc0 ls0 ws0">the<span class="_ _c"> </span>next<span class="_ _c"> </span>iteration.<span class="_ _9"> </span>The<span class="_ _c"> </span>optimization<span class="_ _c"> </span>is<span class="_ _c"> </span>p<span class="_ _b"></span>ossible<span class="_ _c"> </span>only<span class="_ _c"> </span>if<span class="_ _c"> </span>all<span class="_ _c"> </span>computation<span class="_ _c"> </span>can<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>executed</div><div class="t m0 x1 hb y275 ff4 fs6 fc0 sc0 ls0 ws0">b<span class="_ _b"></span>efo<span class="_ _3"></span>re<span class="_ _f"> </span>the<span class="_ _c"> </span>recursive<span class="_ _f"> </span>call</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">62/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf44" class="pf w0 h0" data-page-no="44"><div class="pc pc44 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAgAElEQVR42uzdW5Nc15Un9nXZ+1zyXvcqFFAACfAiqiV1R4djHOFwhOdT2G+eN3+KefejP4LDfvODHxwO2xP2XHpardZlJHZLJEUCIIl7EVWFqsrMysxz2WstP5wsAC2xp7vtiBlxev1CwYAKIFGV5+TZ/7322jvx7j/5L8A555xzzrk/GA9/+mPyV8E555xzzv2h8ZDqnHPOOec8pDrnnHPOOech1TnnnHPOeUh1zjnnnHPOQ6pzzjnnnPOQ6pxzzjnnnIdU55xzzjnnIdU555xzzjkPqc4555xzznlIdc4555xzHlKdc84555zzkOqcc8455zykOuecc8455yHVOeecc855SHXOOeecc85DqnPOOeec85DqnHPOOeech1TnnHPOOec8pDrnnHPOOQ+pzjnnnHPOeUh1zjnnnHMeUp1zzjnnnPOQ6pxzzjnnPKQ655xzzjnnIdU555xzzjkPqc4555xzzkOqc84555xzHlKdc84555yHVOecc8455zykOuecc845D6nOOeecc855SHXOOeeccx5SnXPOOeec85DqnHPOOeech1TnnHPOOech1TnnnHPOOQ+pzjnnnHPOQ6pzzjnnnHMeUp1zzjnnnIdU55xzzjnnPKQ655xzzjnnIdU555xzznlIdc4555xzzkOqc84555zzkOqcc84555yHVOecc8455yHVOeecc845D6nOOeecc85DqnPOOeeccx5SnXPOOeec85DqnHPOOec8pDrnnHPOOech1TnnnHPOeUh1zjnnnHPOQ6pzzjnnnPOQ6pxzzjnnnIdU55xzzjnnXsOmafxVcM4555xzfzhijF5Jdc4555xzf3A8pDrnnHPOOQ+pzjnnnHPOeUh1zjnnnHMeUp1zzjnnnPOQ6pxzzjnn/pMT/CX4TxLjP+DK4u9/ycAIAEENVJWI6Ho6owYtyDeXs08efJ0Phr0iazURhl5erhazLMPDg4NgAqkqi8KI55VezFfcXh0d7CBBEmUMAZmBQODp4yf/w3//z03bi9mcyoGFnERERFUR2cwCGiOsFovUJhM1UEBARMTuu0YiFhERCSGoCQRAM0kpBiyywiAahUax6I9vHh3tj/PJaLQxnvSLcmdnZ3Nv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L76ySC5NNPx1VIwMiyGjELksS2eoleUrKysIUBZFnqTWGOucj7WpvyzLZKxJdS6pfKX3ZN0m1cavdlvZemsTIjQGy9KnacJR0jSPgQ1ZY1ySgBIfSZJYa8typGuySTcTBEO0eO789k1bLiw8X4k+C1A78hDl0vP9bxbjdmnc/9fzumJ55qVXFl97LSNH1oEx7W633WojG/biK68uXahDISMAC8TI3lpTv4A29UW9O0DlK52EMgsaZBZADDHqvWMyaGlcmgoABkQRUry4TdE1itUGXzaSfPkO03qDU2EiuGo1X2nVXXQR7WomjlWkOMHp6tS80+n4GCNHQHDW1MmtaIjIABojaWpcauY3zV131RXPPPlsFVjIGQQERmPHVLE0n4QIxvLNGnkrd2tWKWNpPstF+4oJyE7jQASoxRQgSA3UnkTnYwMTa5g21nYsjjGMdXVwcUuTtm4Z5RYjM2Gctiv/4KN33nrNTNt4J6a7pvONe79y8223LibYio4JkC5qhdW3oQWYGnQLqwEFKICMAoaAMFo7cORTS912e8P6dP06u36ut3FDkmdGwFTx9DNPPfPg17/2h3e/9I0n59dtvPr9d9zygffP7987e+WOMklkuj1KTUwcC6bRIAKSIUASRCAhEKrPIwESrD6+aqxJumBY2wsQ1bsVQQMX9aKNLVRv7K9iNkgnT7/+zDPPLS33z58//+qxl59//rknvvHotx77xpFDB4v+4vzOPW/43r10+FCr1dK00TzPYwhaytDv95MkKcpSUcv4eQyKqkMIg8HAe79mzRrVCK6srExWCmuKpNaZNuS9gs7RaKTOaC1bV0WpcqK68HQ6rBmoNTOhfQFajmotIlZlNSoK5fyV0w0xFkURYzTGIaJzVgMl1OxPRL/wC7+wb98+RcNlUVZlpRXLC0uLBw8e7C8vT09P62d84oknduy48otf/OL8/Pzhw4fn5zf/h//0W7uv2/2Zz/znH//xH19ZXg4h3H333bfccsu3v/3tT33qU5s3bz58+PCDDz744Q9/WLOZQggvvvjizTff/Ed/9EetVuvlV17evGnzyy+91Ot2W3lr7969Dz744J6b92zdujXN0isu23bVzp3f+73fu3nTpgMHDmzfvn3bZZfd8Y47rFFnumXhEMKOHVd2Ot3Z2RmX2KIYMWucMFjrQvBkqChGKgdijogwGPQj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MTHR7XfJ87zdbisl0Mmv5pD7LM3baMBEhnQeqmE/ROpg1XuK6q7IkNIhXTjYpVQBQH9c+6usaoxoIAAAIABJREFUNaVSSXVaGogUvIsgDPeV/9eN16Bw7nndcxtbuQ8sIhBFhpmNIRENttQ8Z6mU46WLF0LgdtvlAV85NPLwL5+wNrrx2rclkRgMBjg2qNkl3YR27x0HV4jwbW++bOnSRQLw+BPrtm7faWKDhlzg2773g1qjff11155y8okxuEKMcQxxpHDbEBjSFnuRODKlUrJyxRl51pYQEIADI6AAG2NJLwOgJQIWJahiouGhQQFmwMl6k8hqR5K2FyVxgShCoQ0bNh549eAZp52aNyaufMNqAN68dfvefQf1FNHNXNRSUABBIhYmgRnTh849f5Wg/OKXT6hL/dg0JX0k628+/vhaELjwwgsKxSgEPnp01HvPneSjTvA4AF93w9UIcvDgoQcffAzQIhEQCk0F9JMJIRDS0fHatu07Lzhv1YzhaQZxZGQUiTrHFRENM83SDAC074DQRETBpfNmDX3kA+8mgS//w62vHBxNPQMCAnIISg8TUJIk3oV2lnmWR594ev0LG17/+nMvW30uScugQezYzqZwswGwIGhREiOXXnzu/lf3GhucyzhwYGHxIThm31XIKTz1U0vkNWCKU+eu12hUBAHwwQthpacHphp39ABnzG/oEFdMqUN2fZbDVATVlFu5rY//PM+ROlEPqp5UJrW3t7evr29gYEC96noynJycDN5L4CSOqz3VOIosmZ5Kj26Pdrutpe0KSvSb6Jyr1Wo6YDXGGDIIGBkb2SiOouCDdy5LU5fnA339ZirkUnlijfpXtK1QKYqtjcj53FrDU61F2rxaq9WyNNXpcGDes2dPb2/fpk2bmeHee3/+wAMP7d23//DhI+VyuVqtPv7448aY+fPn33TTTcaY973vveecc06pVEySaPbsWaOjI8PDQ4cPHdq2ZcvWLZtrExOEmLbbw8PT3/ve9y5fvvyWW941NDT01a9+9YwzzvjMZz5z8sknn3baaW+7+q1z5sweHh7q6Sn19vZ475955pl2u10ul4vF1/CQ1n4qda1Q7OwVKyYmJqdPn37o0IHBwcElSxa//PLLa9asOXz48P5XXomiqFBIent79bzX/U7pBFy1la1WK59aAKBHBVVZEFFheF7f4FBPe//0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+o9AtDJPAUGgaE72CSR3iwHv66Z6E8EKmRSfCk50Qg4fbdMSNNcnoIgMoG2ysMhcLLQ0BQAEKJDROQFY7tzi7IBWiEEzFo0A0ADa1n+E0L4WOiP1jKUvyO0UTQDcFCwnkBdREFrmiVN+WqU7LZ098f/pgw9A6yw12ghEbXRCySfRkvwkrlQq7c68OI6tsb7vGWOVUinPj5unHFqySklr4zBsAIBSgsi6rqe1YcWnUkpK1h3ydxprjZQOotDa5nJ5dsb4vpdKpRApikNjtFIqm822AfHmms0YE8fGWkil0sYYXhc4SiKi73pxFAGRjrTVFgmtIUe5LK985plnjh49Ojw8zFKQVCr1/PPPf/3rX1++fPmOHTv27d9/5PDh1atXh2H47LPPzps3MDAwwIrMoaGh06dPV6vVSy655NChI9bSkiVLhBDLlg1zY9PWrVv37//14sWLr9p6ldXGkaojl097KaN1aWZ627a7fvazp+6//8ebNm2anp5xXW+mNO047qpVq13X/dQnPzk0NPToo48eOHDg+PETfX39rus98cSTuVz+2muv/cUvnr766muMsUo5LHz81re+1d/fO2/eQBxHR44eedV11226/LIL1104vHy577qu47jKieMon83F1k7PTLuu67reffffv2DBgkceeeSuu76/e/eejRsvdRzHGM14i/g6tcZ1Xd/3jbVExGoN13H4poPNZYZg5ajrurz2SAgC13GEEMaabC4nhWQgODsZMCYOoygMG406EugoDhuBNSble6LVtsqYlc1S0EK9yU2Dz0+WijJly//E5C5zwO0OUf6bSqWSBLOwCpa1qlzw67purNnWB7GOm8wFEas+OGArUUUzdeo4Dlkiax2pBKBQgscFRBQGgeelwEmde8T//oDUc+7+383NhBUdlE1Q0UFFhzUBtpDPW7IgEAGVRCnRcVxLZImERCWFkk3yrmn6BQjjMAiDpHvHWKONNtZqY6y1xhpLtuVjwZZ+kV+S2vV2bJwnsk2SjLQlLSRKR6BgrSqDYy6UamajGpOgUkaNoj3lsdUdAK23ZiCDPCgXohmYz0nj7Qv3dhsNT6YZmxpjcFY62ZyVn5GjKZCAWuYSKaUDIMgCAuscgPEH90DygDWK4tbA09o22V+sddzqLpetmz60JLNMVAspOEnKtH7qrFD6BG8hYDLRTvL8E/aU7/tJ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8zNYSrlq1apCoZDJZDo7O4UQlWp1wdD8dCodxxG1utPYz+R5HiLwsHV6ero9hiyhltmSxQxWEvXAn0cKHYVaN9N6yfHcWr3W0dHB4IPVhGyO4cpQRFBKBkEjl8tyczozwSxUIARDFNZqUkptDAKEYXh6fDyVSh07fnzk+PE9L+zOF/La6IOHj/zVu/5q165d7373u//jP/6jWCz+5Cc/Wbx48fyhoScee2zl8hVKyr1796VTqb179sRhlMlm165ZOzBnwFgzODiY8lNr166ph42WKhfaCzM5z5iRMQseXNc9ePDg/Pnzf/SjH1133XXZbLZWrfb09vb2969cvWbnzp3r11908ODBK664YmJ8YsWKFbue27VixfIP3fahXCr74b+9rau768SJE1u3bvU8b3h4mFWSTASyWDMMGuxh4hSqxx9//OGHf2qM+e///kKlUnn44Z9cunHThg0bBgcHR0dHozDkGFGwtl6rd3V2RlHEMWH8asymM+Tt6OjI5XKl6VI6nfFcN451FIWZVFqgIGOlo6TjJjMo3gnj4+O+7/Owno8Or/yJiKMD+I8sMEilUlprtvkz+uTgCMdxisUipz0w3mWqlZcr+Xy+UqkwbGUjHSNO5nq5m7fRaECzhyzmo6CU6unpieOY1QLM7zLjy78vywP4YyeFwO0hg5wBnDw7uJ6NW9f4cji3nQOp57bf8nF/acqi7VJdFMflchkQXM8BRLKAktjYRPyQFrNZPG3j9bamSkBAUMox1rQAqOX7iZQch9/M6pdSstLPtMam3KcKBEIKKYSxFlsYgiFIO3fFs6RkFsxPWR1rItKGM7DwFfNcaLVL4bp1G+69/7kVKy947esuB6jt3P78D+/9Wa2hr7rqanHXE/39c99x841BMLN9++4nn9xx948efdMbrxxcct5z+0YuvuQyV5I12pCRqhBEGQuFp7bvfsMN6zlm03PSq1Zf8vOdoydP1h5//NnXvfp8orBQyC1bukqIk9l8XpuKJPBc58J1F+058KjnFwiq6y648LyVe17afUgbackqaSyIaj3adPmlQoAg4ThuNl+05GdyvSjzY+PT//kfX7rmqqv/8IbXSlkGUUMV9w6kr7xqmatLinypPIdOQXhSUk3ZxkWr5ixdiGEoq2W8//6np2fqloyXSnf3z3/y6T2Xbvj1FRv6EOK8n4rChptqWJom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7NsTRdHlpcs2jgsIn/7Mp6WBVymVRFaZSjR54cIF6fO01p47d+4zn/nMCy+8YEy0vLz8yiuvbNo0L9KCRoEjmk7vvaB2a+3c/HxZFN4555wymoy+UvOR3W5X0q86nc6VK1dkRSGjjDRNh8Oh3C1SHCXj+9hGisFp7bxXRFES565EwlGeoVYeKiunsmY0GqVp2iBOoWPlj8qI3znnnYuNLfI8iqJBv68r2bRq1qjj8VgubhRFV65c0VpL0YBUi7VarRCCK8s0ir3zJrZFWY7H4ziO0zQt8nycF51et3QlKFJay6FJx1WWZU12byP3klWW9z5w8G6dSV1nUte3XwAm9fiP1mryUGbMWZmfXzwfJzEQISogQlJTGza0ux0Tx9OzG+NWKwBneT6JQhqEUSNFiSmqptWSycMMoWITV1N/KtqMfzbRVYf3h8baz4zCOYW6qYVxDRkWKoP8JDW7RjyA2MTF41XgCYAD+zocCcQvEkKAGulhbaRqYjubI0FE9h49y4GbyGprtTXSpuPq9sXJUTUjcIO0GlpUTlV1PSam5Fg51esTXmXRMyMAYW3wkr0jhTWPiIAEpCoLFGGAwMACVuujlP6XiqYVwExrRReTKgEAQCJJw697mQDWtj298Yu1x1593Ygv/6URfHXJK+/86m0zeRqveqDY88UMJBb+idsJJoUTtctuFcNic29KMj9ApUglmAiBvTq9Vf5QZQxsiGNARIg7O666pf+fv//7KsCBFCKVzhlrBVJz7esTLTICK6VJ6UZKAcyRtYRISjnvAQGJkFCRiqQiyHtB24iUJLEiRYjWWKHMncR2IiZJInP/OIoUkSJypWvuHpF3S4F7kiZKUQg+SeIkjvM8T5JYYKWrpxkSDESkZe9FTirpBForpYg5VJH+Aay1eV5452xkx+Ox3HLf//73v//977/00ktbt25dWVm5ePHS7/zOb+/du7fVai0sLMRx3O60H/nRo0ffenRh4fWHH37k1CuvzM3OlkWRJMmNN9xwyy23XH/48Lat23bt2kVyroCFfpudnW23O//v175Wer9z507nvTZGG3P6zJmnjx275557tu/Y8dijj910442XL18+evToww8//LFf+ZWVfv+FF15otVr9fn9udm48GjHzysrK3NxcmqYbZ2eNtZ7ZBd9qtaSWPonjJIqcK+UkDwaDptxVa71r1652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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Recursion<span class="_ _55"> </span>2/2</div><div class="t m0 xb h10 y276 fff fs7 fcc sc0 ls0 ws0">Via<span class="_ _d"> </span><span class="ffc">Twitter<span class="_ _9"> </span>-<span class="_ _9"> </span>Jan<span class="_ _e"> </span>Wildeboer</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">63/87</div><a class="l" href="https://twitter.com/jwildeboer/status/1218865157864067077?s=09"><div class="d m1" style="border-style:none;position:absolute;left:50.580000px;bottom:1.612000px;width:110.261000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf45" class="pf w0 h0" data-page-no="45"><div class="pc pc45 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y14a ff1 fs0 fc0 sc0 ls0 ws0">F<span class="_ _7"></span>unctions</div><a class="l" href="#pf45" data-dest-detail='[69,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:137.252000px;width:110.662000px;height:19.206000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf46" class="pf w0 h0" data-page-no="46"><div class="pc pc46 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIdUlEQVR42u3YoQ0CMRiG4ZbQIBkAiWICQtAkt8IJhmEPNkAwAwmCIdjgFIqjpjgGONWS55mg+X7zpnG93QcAAKjG83GfWQEAgNqIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAfmLO2QoAANQjpeQnFQCA6ohUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEqgkAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUEwAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAAJhs3spD3+PY9UcHg7bcrhcjADBBHE4rKwBA64bD2Qj8jc2ui3G5KK9PCKUUgwAAUIUvY3sZ8XY1qLQAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _17"> </span>Call<span class="_ _17"> </span>Cost</div><div class="t m0 x1 hb y1a8 ff1 fs6 fc0 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _8"> </span>call<span class="_ _8"> </span>metho<span class="_ _b"></span>ds:</div><div class="t m0 x28 hb y277 ff1 fs6 fc0 sc0 ls0 ws0">Direct<span class="_ _6"> </span><span class="ff4">F<span class="_ _3"></span>unction<span class="_ _f"> </span>address<span class="_ _c"> </span>is<span class="_ _f"> </span>known<span class="_ _c"> </span>at<span class="_ _c"> </span>compile-time</span></div><div class="t m0 x10 hb y278 ff1 fs6 fc0 sc0 ls0 ws0">Indirect<span class="_ _6"> </span><span class="ff4">F<span class="_ _3"></span>unction<span class="_ _f"> </span>address<span class="_ _c"> </span>is<span class="_ _f"> </span>known<span class="_ _c"> </span>only<span class="_ _c"> </span>at<span class="_ _c"> </span>run-time</span></div><div class="t m0 x9 hb y279 ff1 fs6 fc0 sc0 ls0 ws0">Inline<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>function<span class="_ _f"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>is<span class="_ _f"> </span>fused<span class="_ _c"> </span>in<span class="_ _f"> </span>the<span class="_ _c"> </span>caller<span class="_ _f"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>(same<span class="_ _f"> </span>translation<span class="_ _c"> </span>unit<span class="_ _f"> </span>o<span class="_ _3"></span>r</span></div><div class="t m0 x41 hb y27a ff4 fs6 fc0 sc0 ls0 ws0">Link-time-optimization)</div><div class="t m0 x1 hb y27b ff1 fs6 fc0 sc0 ls0 ws0">Direct/Indirect<span class="_ _f"> </span>function<span class="_ _8"> </span>call<span class="_ _8"> </span>cost:</div><div class="t m0 xb hb y27c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>caller<span class="_ _f"> </span>pushes<span class="_ _c"> </span>the<span class="_ _f"> </span>a<span class="_ _3"></span>rguments<span class="_ _f"> </span>on<span class="_ _c"> </span>the<span class="_ _f"> </span>stack<span class="_ _c"> </span>in<span class="_ _f"> </span>reverse<span class="_ _c"> </span>order</span></div><div class="t m0 xb hb y27d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Jump<span class="_ _c"> </span>to<span class="_ _f"> </span>function<span class="_ _c"> </span>address</span></div><div class="t m0 xb hb y27e ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>caller<span class="_ _f"> </span>clea<span class="_ _3"></span>rs<span class="_ _f"> </span>(p<span class="_ _b"></span>op)<span class="_ _c"> </span>the<span class="_ _f"> </span>stack</span></div><div class="t m0 xb hb y27f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>function<span class="_ _f"> </span>pushes<span class="_ _c"> </span>the<span class="_ _f"> </span>return<span class="_ _c"> </span>value<span class="_ _c"> </span>on<span class="_ _f"> </span>the<span class="_ _c"> </span>stack</span></div><div class="t m0 xb hb y280 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Jump<span class="_ _c"> </span>to<span class="_ _f"> </span>the<span class="_ _c"> </span>caller<span class="_ _f"> </span>address</span></div><div class="t m0 xb hd y281 ffc fs7 fcc sc0 ls0 ws0"><span class="fce sc0">The</span><span class="_ _9"> </span><span class="fce sc0">True</span><span class="_ _9"> </span><span class="fce sc0">Cost</span><span class="_ _e"> </span><span class="fce sc0">of</span><span class="_ _9"> </span><span class="fce sc0">Calls</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">64/87</div><a class="l" href="https://hbfs.wordpress.com/2008/12/30/the-true-cost-of-calls/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:-14.443000px;width:105.554000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf47" class="pf w0 h0" data-page-no="47"><div class="pc pc47 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Argument<span class="_ _17"> </span>P<span class="_ _3"></span>assing<span class="_ _56"> </span>1/3</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span><span class="ff1">optimal<span class="_ _8"> </span>w<span class="_ _3"></span>ay<span class="_ _c"> </span><span class="ff4">to<span class="_ _c"> </span>pass<span class="_ _f"> </span>and<span class="_ _c"> </span>return<span class="_ _c"> </span>arguments<span class="_ _c"> </span>(<span class="ffa">by-value<span class="_ _b"></span></span>)<span class="_ _c"> </span>to/from<span class="_ _f"> </span>functions<span class="_ _c"> </span>is<span class="_ _f"> </span>in</span></span></div><div class="t m0 x1 hb yf2 ffa fs6 fc0 sc0 ls0 ws0">registers<span class="ff4">.<span class="_ _e"> </span>It<span class="_ _c"> </span>also<span class="_ _c"> </span>avoid<span class="_ _c"> </span>the<span class="_ _f"> </span>p<span class="_ _b"></span>ointer<span class="_ _c"> </span>aliasing<span class="_ _f"> </span>p<span class="_ _b"></span>erformance<span class="_ _c"> </span>issue.<span class="_ _9"> </span>The<span class="_ _f"> </span>following<span class="_ _c"> </span>conditions</span></div><div class="t m0 x1 hb y116 ff4 fs6 fc0 sc0 ls0 ws0">must<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>satisfied:</div><div class="t m0 xb hb y282 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>object<span class="_ _f"> </span>is<span class="_ _c"> </span><span class="ff1">trivially<span class="_ _8"> </span>copy<span class="_ _3"></span>able<span class="ff4">:<span class="_ _9"> </span><span class="fs4">No<span class="_ _c"> </span>user-p<span class="_ _3"></span>rovided<span class="_ _c"> </span>cop<span class="_ _3"></span>y/move/default<span class="_ _c"> </span>constructo<span class="_ _3"></span>rs,</span></span></span></span></div><div class="t m0 x33 h6 y283 ff4 fs4 fc0 sc0 ls0 ws0">destructo<span class="_ _3"></span>r,<span class="_ _c"> </span>and<span class="_ _d"> </span>cop<span class="_ _3"></span>y/move<span class="_ _d"> </span>assignment<span class="_ _d"> </span>op<span class="_ _b"></span>erators,<span class="_ _d"> </span>no<span class="_ _d"> </span>virtual<span class="_ _d"> </span>functions,<span class="_ _d"> </span>apply<span class="_ _c"> </span>recursively<span class="_ _d"> </span>to</div><div class="t m0 x33 h6 y284 ff4 fs4 fc0 sc0 ls0 ws0">base<span class="_ _d"> </span>classes<span class="_ _c"> </span>and<span class="_ _d"> </span>non-static<span class="_ _c"> </span>data<span class="_ _d"> </span>memb<span class="_ _b"></span>ers</div><div class="t m0 xb hb y285 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Linux/Unix<span class="_ _c"> </span>(<span class="ff8">SystemV<span class="_ _15"> </span>x86-64<span class="_ _15"> </span>ABI</span>):<span class="_ _c"> </span>data<span class="_ _f"> </span>types<span class="_ _c"> </span><span class="ff10">≤<span class="_ _f"> </span><span class="ff1">16<span class="_ _8"> </span>b<span class="_ _3"></span>ytes<span class="_ _f"> </span><span class="ff4">(8B<span class="_ _c"> </span><span class="ff10">×<span class="_ _f"> </span></span>2),<span class="_ _c"> </span>max<span class="_ _8"> </span></span>6</span></span></span></div><div class="t m0 x33 hb y286 ff1 fs6 fc0 sc0 ls0 ws0">a<span class="_ _3"></span>rguments</div><div class="t m0 xb hb y287 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Windo<span class="_ _3"></span>ws<span class="_ _f"> </span>(<span class="ff8">x64<span class="_ _15"> </span>ABI</span>):<span class="_ _c"> </span>data<span class="_ _f"> </span>t<span class="_ _3"></span>yp<span class="_ _0"></span>es<span class="_ _c"> </span><span class="ff10">≤<span class="_ _c"> </span><span class="ff1">8<span class="_ _f"> </span>bytes</span></span>,<span class="_ _c"> </span>max<span class="_ _f"> </span><span class="ff1">4<span class="_ _8"> </span>arguments</span></span></div><div class="t m0 x2d h10 y288 ff1d fs7 fcc sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffc">when<span class="_ _9"> </span>are<span class="_ _e"> </span>structs/classes<span class="_ _17"> </span>passed<span class="_ _e"> </span>and<span class="_ _9"> </span>returned<span class="_ _9"> </span>in<span class="_ _e"> </span>registers?</span></div><div class="t m0 x2d h10 y289 ff1d fs7 fcc sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffc">System<span class="_ _9"> </span>V<span class="_ _e"> </span>ABI<span class="_ _17"> </span>-<span class="_ _e"> </span>X86-64<span class="_ _9"> </span>Calling<span class="_ _9"> </span>Convention</span></div><div class="t m0 x2d h10 y28a ff1d fs7 fcc sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffc">x64<span class="_ _9"> </span>calling<span class="_ _e"> </span>convention<span class="_ _17"> </span>-<span class="_ _e"> </span>Parameter<span class="_ _9"> </span>Passing</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">65/87</div><a class="l" href="https://stackoverflow.com/questions/42411819/c-on-x86-64-when-are-structs-classes-passed-and-returned-in-registers"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:23.780000px;width:275.019000px;height:10.211000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://wiki.osdev.org/System_V_ABI#x86-64"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:13.170000px;width:190.286000px;height:9.365000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#parameter-passing"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:2.559000px;width:199.701000px;height:9.366000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf48" class="pf w0 h0" data-page-no="48"><div class="pc pc48 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Argument<span class="_ _17"> </span>P<span class="_ _3"></span>assing<span class="_ _17"> </span>-<span class="_ _9"> </span>A<span class="_ _3"></span>ctive<span class="_ _17"> </span>Objects<span class="_ _57"> </span>2/3</div><div class="t m0 xb hb y47 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">If<span class="_ _c"> </span>the<span class="_ _f"> </span>p<span class="_ _3"></span>revious<span class="_ _f"> </span>conditions<span class="_ _c"> </span>are<span class="_ _c"> </span>not<span class="_ _c"> </span>satisfied,<span class="_ _c"> </span>the<span class="_ _f"> </span>object<span class="_ _c"> </span>is<span class="_ _f"> </span>passed<span class="_ _c"> </span><span class="ff1">by-reference</span>.<span class="_ _9"> </span>In</span></div><div class="t m0 x33 hb y23a ff4 fs6 fc0 sc0 ls0 ws0">addition,<span class="_ _c"> </span>objects<span class="_ _c"> </span>that<span class="_ _f"> </span>are<span class="_ _c"> </span>not<span class="_ _c"> </span><span class="ffa">trivially-cop<span class="_ _3"></span>yable<span class="_ _8"> </span><span class="ff4">could<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>exp<span class="_ _b"></span>ensive<span class="_ _f"> </span>to<span class="_ _c"> </span>pass</span></span></div><div class="t m0 x33 hb y23b ffa fs6 fc0 sc0 ls0 ws0">b<span class="_ _3"></span>y-value<span class="_ _17"> </span><span class="ff4">(copied).</span></div><div class="t m0 xb hb y23c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">P<span class="_ _3"></span>ass<span class="_ _f"> </span><span class="ff1">by-reference<span class="_ _c"> </span></span>and<span class="_ _c"> </span><span class="ff1">b<span class="_ _3"></span>y-p<span class="_ _b"></span>ointer<span class="_ _f"> </span><span class="ff4">intro<span class="_ _0"></span>duce<span class="_ _c"> </span>one<span class="_ _c"> </span>level<span class="_ _c"> </span>of<span class="_ _c"> </span>indirection</span></span></span></div><div class="t m0 xb hb y28b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">P<span class="_ _3"></span>ass<span class="_ _f"> </span><span class="ff1">by-reference<span class="_ _c"> </span></span>is<span class="_ _c"> </span>mo<span class="_ _3"></span>re<span class="_ _f"> </span>efficient<span class="_ _c"> </span>than<span class="_ _f"> </span>pass<span class="_ _c"> </span><span class="ff1">by-pointer<span class="_ _f"> </span></span>b<span class="_ _0"></span>ecause<span class="_ _c"> </span>it<span class="_ _c"> </span>facilitates</span></div><div class="t m0 x33 hb y23e ff4 fs6 fc0 sc0 ls0 ws0">va<span class="_ _3"></span>riable<span class="_ _f"> </span>elimination<span class="_ _c"> </span>by<span class="_ _c"> </span>the<span class="_ _c"> </span>compiler,<span class="_ _c"> </span>and<span class="_ _f"> </span>the<span class="_ _c"> </span>function<span class="_ _f"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>do<span class="_ _0"></span>es<span class="_ _c"> </span>not<span class="_ _c"> </span>require</div><div class="t m0 x33 hb y23f ff4 fs6 fc0 sc0 ls0 ws0">checking<span class="_ _c"> </span>for<span class="_ _11"> </span><span class="ff8">NULL<span class="_ _10"> </span></span>p<span class="_ _b"></span>ointer</div><div class="t m0 xb hd y28c ffc fs7 fcc sc0 ls0 ws0">Three<span class="_ _9"> </span>reasons<span class="_ _9"> </span>to<span class="_ _e"> </span>pass<span class="_ _9"> </span>std::string<span class="_ _c"> </span>view<span class="_ _9"> </span>by<span class="_ _9"> </span>value</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">66/87</div><a class="l" href="https://quuxplusone.github.io/blog/2021/11/09/pass-string-view-by-value/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:1.610000px;width:221.920000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf49" class="pf w0 h0" data-page-no="49"><div class="pc pc49 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Argument<span class="_ _17"> </span>P<span class="_ _3"></span>assing<span class="_ _17"> </span>-<span class="_ _9"> </span><span class="ff5">const<span class="_ _17"> </span></span>P<span class="_ _3"></span>arameters<span class="_ _58"> </span>3/3</div><div class="t m0 xd hb y28d ff5 fs6 fc0 sc0 ls0 ws0">const<span class="_ _10"> </span><span class="ff4">mo<span class="_ _b"></span>difier<span class="_ _c"> </span>applied<span class="_ _c"> </span>to<span class="_ _f"> </span>values,<span class="_ _c"> </span>p<span class="_ _0"></span>ointers,<span class="_ _c"> </span>references<span class="_ _c"> </span><span class="ffa">do<span class="_ _b"></span>es<span class="_ _c"> </span>not<span class="_ _f"> </span>p<span class="_ _3"></span>ro<span class="_ _b"></span>duce<span class="_ _f"> </span>b<span class="_ _b"></span>etter<span class="_ _c"> </span>co<span class="_ _0"></span>de</span></span></div><div class="t m0 x1 hb y28e ff4 fs6 fc0 sc0 ls0 ws0">in<span class="_ _c"> </span>most<span class="_ _c"> </span>cases,<span class="_ _f"> </span>but<span class="_ _c"> </span>it<span class="_ _f"> </span>is<span class="_ _c"> </span>useful<span class="_ _f"> </span>for<span class="_ _c"> </span>ensuring<span class="_ _c"> </span>read-only<span class="_ _c"> </span>accesses</div><div class="t m0 x1 hb y28f ff4 fs6 fc0 sc0 ls0 ws0">In<span class="_ _c"> </span>some<span class="_ _c"> </span>cases,<span class="_ _f"> </span>pass<span class="_ _10"> </span><span class="ff5">by-const<span class="_ _10"> </span></span>is<span class="_ _c"> </span>b<span class="_ _b"></span>eneficial<span class="_ _f"> </span>for<span class="_ _c"> </span>performance<span class="_ _c"> </span>b<span class="_ _b"></span>ecause<span class="_ _10"> </span><span class="ff8">const<span class="_ _10"> </span></span>memb<span class="_ _b"></span>er</div><div class="t m0 x1 hb y290 ff4 fs6 fc0 sc0 ls0 ws0">function<span class="_ _c"> </span>overloading<span class="_ _c"> </span>could<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>cheap<span class="_ _b"></span>er<span class="_ _c"> </span>than<span class="_ _f"> </span>their<span class="_ _c"> </span>counterparts</div><div class="t m0 xb hd y291 ffc fs7 fcc sc0 ls0 ws0">GoTW#81:<span class="_ _20"> </span>Constant<span class="_ _17"> </span>Optimization?</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">67/87</div><a class="l" href="http://www.gotw.ca/gotw/081.htm"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:5.272000px;width:152.628000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4a" class="pf w0 h0" data-page-no="4a"><div class="pc pc4a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff5 fs3 fc1 sc0 ls0 ws0">inline<span class="_ _17"> </span><span class="ff1">F<span class="_ _3"></span>unction<span class="_ _17"> </span>Declaration<span class="_ _59"> </span>1/2</span></div><div class="t m0 xd hb y292 ff1 fs6 fc1 sc0 ls0 ws0">inline</div><div class="t m0 x5 hb y293 ff8 fs6 fc7 sc0 ls0 ws0">inline<span class="_ _10"> </span><span class="ff4 fc0">sp<span class="_ _b"></span>ecifier<span class="_ _c"> </span>for<span class="_ _c"> </span>optimization<span class="_ _c"> </span>purp<span class="_ _b"></span>oses<span class="_ _c"> </span>is<span class="_ _f"> </span>just<span class="_ _c"> </span>a<span class="_ _f"> </span>hint<span class="_ _c"> </span>for<span class="_ _c"> </span>the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>that</span></div><div class="t m0 xd hb y294 ff4 fs6 fc0 sc0 ls0 ws0">increases<span class="_ _c"> </span>the<span class="_ _c"> </span>heuristic<span class="_ _f"> </span>threshold<span class="_ _c"> </span>for<span class="_ _c"> </span><span class="ff1">inlining</span>,<span class="_ _f"> </span>namely<span class="_ _c"> </span>copying<span class="_ _c"> </span>the<span class="_ _c"> </span>function<span class="_ _c"> </span>b<span class="_ _0"></span>ody</div><div class="t m0 xd hb y295 ff4 fs6 fc0 sc0 ls0 ws0">where<span class="_ _c"> </span>it<span class="_ _c"> </span>is<span class="_ _f"> </span>called</div><div class="t m0 xd hc y296 ff5 fs4 fc9 sc0 ls0 ws0">inline<span class="_ _e"> </span><span class="fc6">void<span class="_ _6"> </span><span class="ff8 fc7">f<span class="fc0">()<span class="_ _6"> </span>{<span class="_ _e"> </span>...<span class="_ _6"> </span>}</span></span></span></div><div class="t m0 xb hb y297 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>can<span class="_ _c"> </span>ignore<span class="_ _c"> </span>the<span class="_ _c"> </span>hint</span></div><div class="t m0 xb hb y298 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffa">inlined<span class="_ _9"> </span><span class="ff4">functions<span class="_ _c"> </span>increase<span class="_ _f"> </span>the<span class="_ _c"> </span>binary<span class="_ _c"> </span>size<span class="_ _c"> </span>b<span class="_ _b"></span>ecause<span class="_ _f"> </span>they<span class="_ _c"> </span>are<span class="_ _c"> </span>expanded<span class="_ _c"> </span>in-place<span class="_ _c"> </span>for</span></span></div><div class="t m0 x33 hb y299 ff4 fs6 fc0 sc0 ls0 ws0">every<span class="_ _c"> </span>function<span class="_ _c"> </span>call</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">68/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4b" class="pf w0 h0" data-page-no="4b"><div class="pc pc4b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff5 fs3 fc1 sc0 ls0 ws0">inline<span class="_ _17"> </span><span class="ff1">F<span class="_ _3"></span>unction<span class="_ _17"> </span>Declaration<span class="_ _59"> </span>2/2</span></div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Compilers<span class="_ _f"> </span>have<span class="_ _8"> </span>different<span class="_ _8"> </span>heuristics<span class="_ _8"> </span>fo<span class="_ _3"></span>r<span class="_ _8"> </span>function<span class="_ _8"> </span>inlining</div><div class="t m0 xb hb y29a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Numb<span class="_ _b"></span>er<span class="_ _c"> </span>of<span class="_ _f"> </span>lines<span class="_ _c"> </span>(even<span class="_ _f"> </span>comments:<span class="_ _e"> </span><span class="ff8">How<span class="_ _6"> </span>new-lines<span class="_ _15"> </span>affect<span class="_ _15"> </span>the<span class="_ _15"> </span>Linux<span class="_ _15"> </span>kernel</span></span></div><div class="t m0 x33 hb y29b ff8 fs6 fc0 sc0 ls0 ws0">performance<span class="ff4">)</span></div><div class="t m0 xb hb y29c ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Numb<span class="_ _b"></span>er<span class="_ _c"> </span>of<span class="_ _f"> </span>assembly<span class="_ _c"> </span>instructions</span></div><div class="t m0 xb hb y29d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Inlining<span class="_ _c"> </span>depth<span class="_ _f"> </span>(recursive)</span></div><div class="t m0 x1 hb y29e ff4 fs6 fc0 sc0 ls0 ws0">GCC/Clang<span class="_ _c"> </span>extensions<span class="_ _c"> </span>allow<span class="_ _c"> </span>to<span class="_ _c"> </span><span class="ffa">force<span class="_ _8"> </span></span>inline/non-inline<span class="_ _c"> </span>functions:</div><div class="t m0 xd hd y29f ffc fs7 fc0 sc0 ls0 ws0">[[<span class="fc7">gnu::always<span class="_ _c"> </span>inline</span>]]<span class="_ _9"> </span><span class="ff5 fc6">void<span class="_ _9"> </span></span>f()<span class="_ _9"> </span>{<span class="_ _e"> </span>...<span class="_ _9"> </span>}</div><div class="t m0 xd hd y2a0 ffc fs7 fc0 sc0 ls0 ws0">[[<span class="fc7">gnu::noinline</span>]]<span class="_ _36"> </span><span class="ff5 fc6">void<span class="_ _9"> </span></span>f()<span class="_ _9"> </span>{<span class="_ _9"> </span>...<span class="_ _e"> </span>}</div><div class="t m0 xd hd y2a1 ffc fs7 fc0 sc0 ls0 ws0">[[<span class="fc7">msvc::forceinline</span>]]<span class="_ _20"> </span><span class="ff5 fc6">void<span class="_ _17"> </span></span>f()<span class="_ _e"> </span>{<span class="_ _9"> </span>...<span class="_ _9"> </span>}</div><div class="t m0 x2d h10 y2a2 ff1d fs7 fcc sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffc">An<span class="_ _9"> </span>Inline<span class="_ _e"> </span>Function<span class="_ _17"> </span>is<span class="_ _e"> </span>As<span class="_ _9"> </span>Fast<span class="_ _9"> </span>As<span class="_ _e"> </span>a<span class="_ _9"> </span>Macro</span></div><div class="t m0 x2d h10 y2a3 ff1d fs7 fcc sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ffc">Inlining<span class="_ _9"> </span>Decisions<span class="_ _e"> </span>in<span class="_ _17"> </span>Visual<span class="_ _e"> </span>Studio</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">69/87</div><a class="l" href="https://nadav.amit.zone/linux/2018/10/10/newline.html"><div class="d m1" style="border-style:none;position:absolute;left:207.653000px;bottom:181.916000px;width:218.540000px;height:12.902000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://nadav.amit.zone/linux/2018/10/10/newline.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:166.335000px;width:64.993000px;height:12.901000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://gcc.gnu.org/onlinedocs/gcc/Inline.html"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:17.302000px;width:190.286000px;height:7.372000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://devblogs.microsoft.com/cppblog/inlining-decisions-in-visual-studio/"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:0.714000px;width:166.750000px;height:9.365000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4c" class="pf w0 h0" data-page-no="4c"><div class="pc pc4c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Inlining<span class="_ _17"> </span>and<span class="_ _17"> </span>Linkage</div><div class="t m0 x1 hb y2a4 ff4 fs6 fc0 sc0 ls0 ws0">The<span class="_ _c"> </span>compiler<span class="_ _c"> </span>can<span class="_ _f"> </span><span class="ffa">inline<span class="_ _17"> </span></span>a<span class="_ _c"> </span>function<span class="_ _f"> </span>only<span class="_ _c"> </span>if<span class="_ _c"> </span>it<span class="_ _f"> </span>is<span class="_ _c"> </span>indep<span class="_ _0"></span>endent<span class="_ _c"> </span>from<span class="_ _c"> </span>external<span class="_ _c"> </span>references</div><div class="t m0 xb hb y2a5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">A<span class="_ _c"> </span>function<span class="_ _f"> </span>with<span class="_ _c"> </span><span class="ffa">internal<span class="_ _f"> </span>linkage<span class="_ _8"> </span></span>is<span class="_ _f"> </span>not<span class="_ _c"> </span>visible<span class="_ _f"> </span>outside<span class="_ _c"> </span>the<span class="_ _f"> </span>current<span class="_ _c"> </span>translation<span class="_ _f"> </span>unit,</span></div><div class="t m0 x33 hb y2a6 ff4 fs6 fc0 sc0 ls0 ws0">so<span class="_ _c"> </span>it<span class="_ _c"> </span>can<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span>aggressively<span class="_ _c"> </span><span class="ffa">inlined</span></div><div class="t m0 xb hb y2a7 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">On<span class="_ _c"> </span>the<span class="_ _f"> </span>other<span class="_ _c"> </span>hand,<span class="_ _f"> </span><span class="ffa">external<span class="_ _c"> </span>linkage<span class="_ _17"> </span></span>do<span class="_ _b"></span>esn’t<span class="_ _c"> </span>prevent<span class="_ _c"> </span>function<span class="_ _c"> </span>inlining<span class="_ _c"> </span>if<span class="_ _f"> </span>the</span></div><div class="t m0 x33 hb y2a8 ff4 fs6 fc0 sc0 ls0 ws0">function<span class="_ _c"> </span>b<span class="_ _b"></span>o<span class="_ _b"></span>dy<span class="_ _f"> </span>is<span class="_ _c"> </span>visible<span class="_ _f"> </span>in<span class="_ _c"> </span>a<span class="_ _f"> </span>translation<span class="_ _c"> </span>unit.<span class="_ _e"> </span>In<span class="_ _c"> </span>this<span class="_ _c"> </span>situation,<span class="_ _f"> </span>the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>can</div><div class="t m0 x33 hb y2a9 ff4 fs6 fc0 sc0 ls0 ws0">duplicate<span class="_ _c"> </span>the<span class="_ _c"> </span>function<span class="_ _f"> </span>co<span class="_ _b"></span>de<span class="_ _f"> </span>if<span class="_ _c"> </span>it<span class="_ _c"> </span>determines<span class="_ _f"> </span>that<span class="_ _c"> </span>there<span class="_ _f"> </span>are<span class="_ _c"> </span>no<span class="_ _c"> </span>external<span class="_ _c"> </span>references</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">70/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4d" class="pf w0 h0" data-page-no="4d"><div class="pc pc4d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Symb<span class="_ _b"></span>ol<span class="_ _17"> </span>Visibility</div><div class="t m0 x1 hb y1e7 ff4 fs6 fc0 sc0 ls0 ws0">All<span class="_ _c"> </span>compilers,<span class="_ _c"> </span>except<span class="_ _d"> </span>MSVC,<span class="_ _d"> </span>exp<span class="_ _0"></span>o<span class="_ _3"></span>rt<span class="_ _c"> </span>all<span class="_ _d"> </span>function<span class="_ _c"> </span>symb<span class="_ _b"></span>ols<span class="_ _c"> </span><span class="ff10">→<span class="_ _c"> </span></span>the<span class="_ _c"> </span>symb<span class="_ _b"></span>ols<span class="_ _c"> </span>can<span class="_ _c"> </span>be<span class="_ _c"> </span>used<span class="_ _c"> </span>in</div><div class="t m0 x1 hb y2aa ff4 fs6 fc0 sc0 ls0 ws0">other<span class="_ _c"> </span>translation<span class="_ _c"> </span>units<span class="_ _f"> </span>and<span class="_ _c"> </span>this<span class="_ _f"> </span>can<span class="_ _c"> </span>prevent<span class="_ _c"> </span>inlining</div><div class="t m0 x1 hb y2ab ff4 fs6 fc0 sc0 ls0 ws0">Alternatives:</div><div class="t m0 xb hb y2ac ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _10"> </span><span class="ff8">static<span class="_ _10"> </span></span>functions</span></div><div class="t m0 xb hb y2ad ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _10"> </span><span class="ff8">anonymous<span class="_ _15"> </span>namespace<span class="_ _10"> </span></span>(functions<span class="_ _c"> </span>and<span class="_ _c"> </span>classes)</span></div><div class="t m0 xb hb y2ae ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _c"> </span>GNU<span class="_ _f"> </span>extension<span class="_ _c"> </span>(also<span class="_ _f"> </span><span class="ff8">clang</span>)<span class="_ _4c"> </span><span class="ff8">attribute<span class="_ _a"> </span>((visibility("hidden")))</span></span></div><div class="t m0 xb hd y2af ffc fs7 fcc sc0 ls0 ws0">gcc.gnu.org/wiki/Visibility</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">71/87</div><a class="l" href="https://gcc.gnu.org/wiki/Visibility"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:3.462000px;width:129.091000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4e" class="pf w0 h0" data-page-no="4e"><div class="pc pc4e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _17"> </span>Attributes</div><div class="t m0 x1 hb y7b ff4 fs6 fc0 sc0 ls0 ws0">Some<span class="_ _c"> </span>compilers,<span class="_ _c"> </span>including<span class="_ _f"> </span>Clang,<span class="_ _c"> </span>GCC,<span class="_ _f"> </span>provide<span class="_ _c"> </span>additional<span class="_ _c"> </span>attributes<span class="_ _c"> </span>to<span class="_ _f"> </span>optimize</div><div class="t m0 x1 hb yf2 ff4 fs6 fc0 sc0 ls0 ws0">function<span class="_ _c"> </span>calls:</div><div class="t m0 xb hb y29b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _5a"> </span><span class="ff8">attribute<span class="_ _a"> </span>((pure))<span class="_ _d"> </span><span class="ff4">/<span class="_ _25"> </span></span>[[gnu::pure]]<span class="_ _10"> </span><span class="ffa">no<span class="_ _f"> </span>side<span class="_ _c"> </span>effects<span class="_ _9"> </span><span class="ff4">on<span class="_ _c"> </span>its<span class="_ _f"> </span>parameters</span></span></span></div><div class="t m0 x33 hb y282 ff4 fs6 fc0 sc0 ls0 ws0">and<span class="_ _c"> </span>no<span class="_ _c"> </span>external<span class="_ _f"> </span>global<span class="_ _c"> </span>references<span class="_ _f"> </span>(program<span class="_ _c"> </span>state)</div><div class="t m0 x33 h6 y283 ff10 fs4 fc0 sc0 ls0 ws0">→<span class="_ _d"> </span><span class="ff4">subject<span class="_ _c"> </span>to<span class="_ _d"> </span>data<span class="_ _c"> </span>flo<span class="_ _3"></span>w<span class="_ _c"> </span>analysis<span class="_ _d"> </span>and<span class="_ _c"> </span>might<span class="_ _d"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>eliminated</span></div><div class="t m0 xb hb y2b0 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _5a"> </span><span class="ff8">attribute<span class="_ _a"> </span>((const))<span class="_ _d"> </span><span class="ff4">/<span class="_ _25"> </span></span>[[gnu::const]]<span class="_ _10"> </span><span class="ffa">dep<span class="_ _b"></span>ends<span class="_ _f"> </span>only<span class="_ _e"> </span><span class="ff4">on<span class="_ _c"> </span>its<span class="_ _c"> </span>parameters,</span></span></span></div><div class="t m0 x33 hb y2b1 ff4 fs6 fc0 sc0 ls0 ws0">no<span class="_ _c"> </span>read<span class="_ _c"> </span>from<span class="_ _f"> </span>global<span class="_ _c"> </span>references</div><div class="t m0 x33 h6 y2b2 ff10 fs4 fc0 sc0 ls0 ws0">→<span class="_ _d"> </span><span class="ff4">subject<span class="_ _c"> </span>to<span class="_ _d"> </span>common<span class="_ _c"> </span>sub-exp<span class="_ _3"></span>ression<span class="_ _c"> </span>elimination<span class="_ _d"> </span>and<span class="_ _c"> </span>lo<span class="_ _b"></span>op<span class="_ _d"> </span>optimizations</span></div><div class="t m0 x1 h6 y2b3 ffa fs4 fc0 sc0 ls0 ws0">note:<span class="_ _9"> </span><span class="ff4">the<span class="_ _c"> </span>compiler<span class="_ _d"> </span>is<span class="_ _c"> </span>able<span class="_ _d"> </span>to<span class="_ _c"> </span>deduce<span class="_ _d"> </span>such<span class="_ _c"> </span>p<span class="_ _3"></span>rop<span class="_ _b"></span>erties<span class="_ _c"> </span>in<span class="_ _d"> </span>most<span class="_ _c"> </span>cases</span></div><div class="t m0 xb hd y2b4 ffc fs7 fcc sc0 ls0 ws0">Implications<span class="_ _9"> </span>of<span class="_ _9"> </span>pure<span class="_ _e"> </span>and<span class="_ _9"> </span>constant<span class="_ _9"> </span>functions</div><div class="t m0 x3e hd y2b5 ffc fs7 fcc sc0 ls0 ws0">attribute<span class="_ _10"> </span>((pure))<span class="_ _4"> </span>function<span class="_ _9"> </span>attribute</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">72/87</div><a class="l" href="https://lwn.net/Articles/285332/"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:18.169000px;width:204.409000px;height:11.656000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491c/Cacgigch.html"><div class="d m1" style="border-style:none;position:absolute;left:34.324000px;bottom:2.577000px;width:190.991000px;height:16.190000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf4f" class="pf w0 h0" data-page-no="4f"><div class="pc pc4f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">P<span class="_ _3"></span>ointers<span class="_ _17"> </span>Aliasing<span class="_ _5b"> </span>1/4</div><div class="t m0 x1 hb y2b6 ff4 fs6 fc0 sc0 ls0 ws0">Consider<span class="_ _c"> </span>the<span class="_ _c"> </span>following<span class="_ _c"> </span>example:</div><div class="t m0 xd hd y2b7 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>suppose<span class="_ _9"> </span>f()<span class="_ _e"> </span>is<span class="_ _9"> </span>not<span class="_ _9"> </span>inline</div><div class="t m0 xd hd y2b8 ff5 fs7 fc6 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc7">f<span class="fc0">(</span></span>int<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">input,<span class="_ _e"> </span></span></span>int<span class="_ _9"> </span><span class="ffc fc0">size,<span class="_ _9"> </span></span>int<span class="ffc fc8">*<span class="_ _e"> </span><span class="fc0">output)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x33 hd y2b9 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>size;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x16 hd y2ba ffc fs7 fc0 sc0 ls0 ws0">output[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>input[i];</div><div class="t m0 xd hd y2bb ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hb y2bc ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>compiler<span class="_ _f"> </span>cannot<span class="_ _c"> </span><span class="ffa">unroll<span class="_ _9"> </span></span>the<span class="_ _f"> </span>lo<span class="_ _b"></span>op<span class="_ _c"> </span>(sequential<span class="_ _f"> </span>execution,<span class="_ _c"> </span>no<span class="_ _f"> </span>ILP)<span class="_ _c"> </span>b<span class="_ _b"></span>ecause</span></div><div class="t m0 xc hb y2bd ff8 fs6 fc0 sc0 ls0 ws0">output<span class="_ _10"> </span><span class="ff4">and<span class="_ _10"> </span></span>input<span class="_ _10"> </span><span class="ff4">pointers<span class="_ _f"> </span>can<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _f"> </span><span class="ff1">aliased</span>,<span class="_ _c"> </span>e.g.<span class="_ _4"> </span></span>output<span class="_ _15"> </span>=<span class="_ _15"> </span>input<span class="_ _15"> </span>+<span class="_ _15"> </span>1</div><div class="t m0 xb hb y2be ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">The<span class="_ _c"> </span>aliasing<span class="_ _c"> </span>problem<span class="_ _c"> </span>is<span class="_ _c"> </span>even<span class="_ _c"> </span>wo<span class="_ _3"></span>rse<span class="_ _c"> </span>for<span class="_ _d"> </span>more<span class="_ _c"> </span>complex<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _c"> </span>and<span class="_ _c"> </span><span class="ffa">inhibits<span class="_ _f"> </span>all<span class="_ _c"> </span>kinds<span class="_ _c"> </span>of</span></span></div><div class="t m0 x33 hb y2bf ffa fs6 fc0 sc0 ls0 ws0">optimization<span class="_ _f"> </span><span class="ff4">including<span class="_ _c"> </span>co<span class="_ _b"></span>de<span class="_ _f"> </span>re-ordering,<span class="_ _c"> </span>vecto<span class="_ _3"></span>rization,<span class="_ _c"> </span>common<span class="_ _f"> </span>sub-exp<span class="_ _3"></span>ression</span></div><div class="t m0 x33 hb y2c0 ff4 fs6 fc0 sc0 ls0 ws0">elimination,<span class="_ _c"> </span>etc.</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">73/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf50" class="pf w0 h0" data-page-no="50"><div class="pc pc50 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIw0lEQVR42u3bMUrEQBSA4YxksBoWttluQaw8gSzWgjfzEh7HwkN4A8nCMmzhsBC7LdZOJbzE7ytDisybFD8Tkm7vHzoAAAjj/e31yhQAAIhGpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAcJZaa6YAAEAcOWcnqQAAhCNSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAA46xewhlqrjZxAKcUQAIBpOEkFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQCAYPqlLux47Lbb9cXFYdifTt1ms/5+/zDsvQ0AAEGk1trc11BrtZETKKUYAgAwgZyzz/0AAIQjUgEAEKkAACBSAQAQqQAA8FtL+LsfAIAl8Xc/AAARiVQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAAPhj/YyetdZqwwAAfqaUMqOndZIKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBINQIAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAsXGqtmQIAAHHknJ2kAgAQjkgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkGgEAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAgNnqD883pgAA/Fsfjy+GEM3d7iml1fV4+Oy6cRwNBACAEL4Ajb8v/iveeRgAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">P<span class="_ _3"></span>ointers<span class="_ _17"> </span>Aliasing<span class="_ _5b"> </span>2/4</div><div class="t m0 x1 hb y1a8 ff4 fs6 fc0 sc0 ls0 ws0">Most<span class="_ _c"> </span>compilers<span class="_ _c"> </span>(included<span class="_ _f"> </span><span class="ff8">GCC/Clang/MSVC</span>)<span class="_ _c"> </span>provide<span class="_ _c"> </span><span class="ff1">restricted<span class="_ _8"> </span>p<span class="_ _b"></span>ointers</span></div><div class="t m0 x1 hb y1a9 ff4 fs6 fc0 sc0 ls0 ws0">(<span class="_ _4f"> </span><span class="ff8 fc7">restrict<span class="_ _25"> </span></span>)<span class="_ _f"> </span>so<span class="_ _c"> </span>that<span class="_ _f"> </span>the<span class="_ _c"> </span>programmer<span class="_ _c"> </span>asserts<span class="_ _c"> </span>that<span class="_ _f"> </span>the<span class="_ _c"> </span>p<span class="_ _b"></span>ointers<span class="_ _f"> </span>a<span class="_ _3"></span>re<span class="_ _f"> </span>not<span class="_ _c"> </span>aliased</div><div class="t m0 xd hd y2c1 ff5 fs7 fc6 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc7">f<span class="fc0">(</span></span>int<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">__restrict<span class="_ _e"> </span>input,</span></span></div><div class="t m0 x15 hd y2c2 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _5c"> </span><span class="ffc fc0">size,</span></div><div class="t m0 x15 hd y2c3 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">__restrict<span class="_ _9"> </span>output)<span class="_ _e"> </span>{</span></span></div><div class="t m0 x33 hd y2c4 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>size;<span class="_ _9"> </span>i<span class="fc8">++</span>)</span></span></div><div class="t m0 x16 hd y2c5 ffc fs7 fc0 sc0 ls0 ws0">output[i]<span class="_ _9"> </span><span class="fc8">=<span class="_ _9"> </span></span>input[i];</div><div class="t m0 xd hd y2c6 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 hb y2c7 ff4 fs6 fc0 sc0 ls0 ws0">P<span class="_ _3"></span>otential<span class="_ _f"> </span>b<span class="_ _b"></span>enefits:</div><div class="t m0 xb hb y2c8 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Instruction-level<span class="_ _c"> </span>parallelism</span></div><div class="t m0 xb hb y2c9 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Less<span class="_ _c"> </span>instructions<span class="_ _f"> </span>executed</span></div><div class="t m0 xb hb y2ca ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Merge<span class="_ _c"> </span>common<span class="_ _f"> </span>sub-exp<span class="_ _3"></span>ressions</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">74/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf51" class="pf w0 h0" data-page-no="51"><div class="pc pc51 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">P<span class="_ _3"></span>ointers<span class="_ _17"> </span>Aliasing<span class="_ _5b"> </span>3/4</div><div class="t m0 x1 hb ye3 ff1 fs6 fc0 sc0 ls0 ws0">Benchma<span class="_ _3"></span>rking<span class="_ _8"> </span>matrix<span class="_ _8"> </span>multiplication</div><div class="t m0 xd hd y2cb ff5 fs7 fc6 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc7">matrix_mul_v1<span class="fc0">(</span></span><span class="fc9">const<span class="_ _9"> </span></span>int<span class="ffc fc8">*<span class="_ _e"> </span><span class="fc0">A,</span></span></div><div class="t m0 x40 hd y2cc ff5 fs7 fc9 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="fc6">int<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">B,</span></span></span></div><div class="t m0 x40 hd y2cd ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _2c"> </span><span class="ffc fc0">N,</span></div><div class="t m0 x40 hd y2ce ff5 fs7 fc6 sc0 ls0 ws0">int<span class="ffc fc8">*<span class="_ _5d"> </span><span class="fc0">C)<span class="_ _9"> </span>{</span></span></div><div class="t m0 xd hd y2cf ff5 fs7 fc6 sc0 ls0 ws0">void<span class="_ _9"> </span><span class="ffc fc7">matrix_mul_v2<span class="fc0">(</span></span><span class="fc9">const<span class="_ _9"> </span></span>int<span class="ffc fc8">*<span class="_ _e"> </span><span class="fc0">__restrict<span class="_ _9"> </span>A,</span></span></div><div class="t m0 x40 hd y2d0 ff5 fs7 fc9 sc0 ls0 ws0">const<span class="_ _9"> </span><span class="fc6">int<span class="ffc fc8">*<span class="_ _9"> </span><span class="fc0">__restrict<span class="_ _e"> </span>B,</span></span></span></div><div class="t m0 x40 hd y2d1 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _5e"> </span><span class="ffc fc0">N,</span></div><div class="t m0 x40 hd y2d2 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="ffc fc8">*<span class="_ _5d"> </span><span class="fc0">__restrict<span class="_ _9"> </span>C)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x42 hd y2d3 ff5 fs7 fc0 sc0 ls0 ws0">Optimization<span class="_ _2c"> </span><span class="ffc">-O1<span class="_ _48"> </span>-O2<span class="_ _48"> </span>-O3</span></div><div class="t m0 x42 h10 y2d4 ffc fs7 fc0 sc0 ls0 ws0">v1<span class="_ _5f"> </span><span class="fff">1,030<span class="_ _d"> </span>ms<span class="_ _1a"> </span>777<span class="_ _d"> </span>ms<span class="_ _1a"> </span>777<span class="_ _d"> </span>ms</span></div><div class="t m0 x42 h10 y2d5 ffc fs7 fc0 sc0 ls0 ws0">v2<span class="_ _60"> </span><span class="fff">513<span class="_ _d"> </span>ms<span class="_ _1a"> </span>510<span class="_ _d"> </span>ms<span class="_ _1a"> </span>761<span class="_ _d"> </span>ms</span></div><div class="t m0 x42 h10 y2d6 ffc fs7 fc0 sc0 ls0 ws0">Speedup<span class="_ _61"> </span><span class="fff">2.0x<span class="_ _62"> </span>1.5x<span class="_ _26"> </span>1.02x</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">75/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf52" class="pf w0 h0" data-page-no="52"><div class="pc pc52 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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/M8vm79g2LBho0aN2r9/X2vWlNSytkEDv/u9v9++Y4czu/D8C9573Xue/d2zmzZu2rply1e+8pXHH3ssb+RPPfXUh//gD5p89v3vfW9dx7bxEyZ99U8+/8Wvf23iqDF/+uWvbNjavmdXx913/eZrX/vai1u2NIr877//PSvDN7/x57/61a+2bd/+qU99atfujo3tmxbedVdoFJ/+9B+Vobzt9ts/+7nPbdq0adKkSbfccsuB/fuvufJKdW7btm1nnnVmkqaXXXbZv/pXf7Flzy7+mgBAf8bhfpyaVLXRaNxwww0LFixYsmRJnucjR46cMmXKOeecU6/Xy7J817vetXjx4hUrVixYsOD6669/5pln9uzZM3Xq1Llz577wwguvHEw9IcOrhx/h3+PUqft9d6umrhHC/kZ9T6O+s35wZ/3gzkbP7rx+IG+YukGDBr3/hhs+9L4bhw0afOXbL7/huuuuf/d1GuI7r7xyUGvrxLHjzp8922JUpybmvbv0krkXzppVE50wbMQNV17zketvnD/nwg+8890feOe7k3oxafioD77/xivfcYVXN3PGzIkTJohIS2vLPb/5zS9++tP9e/ZeNm/+6RMm/q+/+etF99135eXvmHXOuX9w001OJIby4YcW3fbLfxg2dMiKp5+eNG783/7N/3jkwUULLrnUi6jJ6ZMnP/jAA7/8+c+fXPLEmFGn7di69Y5f/nLhnXfMn3vJb371q3sX3nX9dddNnjjh5o99LPVeYzxzypR1q1bd8u3vXHzBBdPPmLJzy9YffPfvpp9+xoghQ+fPvWTooEESY1tLyw9+8P2f3nrrJRddrGW48LzzZp59dub8wNbWRfff/7Of3NrVeWDa1ClttabLLr3Umz37zNM/u/UnavHee+7euWPHa/gRcodnPtAPX+V4EkCkAm8xVfmNGTOmubm5vb39rLPO2rt374svvvjYY4/deeedIYTW1lYR6e7u3rlz5/Dhw0XEOffMM89MnTpVRGq1WldX15F/VZw7Af8kvJSk2hR/T/44qx5PTV1QV6or1RfqG94VzgXnYrTPf/ZzL25qf3r58skTxn/kgx/auGZdTd0ffuCDVyy4rDWrTZs0efaMGc5rCKXzWhT59i1bnn/6mSvmXzZpzLjrrn7nY4se+uRHPrrm2efPOn3KdVdd88V/9pkH7rtv8ICB73n3u59/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kZFRXV19+PDhJUuWbNu2LR6Pr1692rKs/v5+anhaaWlpuffee996663KykrLsgKBQFNTU3p6ek1NTXp6ektLi8fjOXr06MmTJ0+dOvXII48kEomenp60tDRjTFZWVk9Pz3333edOp6SkvPvuu9XV1cYYnuAFTNmDW67uBzCOHMd57733HnroIaoCNygajTY0NKxZs+bbh2BywTswJXm9XkIqgPHU29ublZVl2za5ATeos7MzEAgIRp0ChFQAACYbrbX7KA0A0y2k8skHAExeJFRg+n78qQIAAAAQUgEAAABCKgAAAAipAAAAACEVAAAAhFQAAACAkAoAAABCKgAAAEBIBYDr9e0PzLzxx2nyQE4AIKQCwNgYY4wxl08MDQ0JIZqamqLRqPv6FfPv3bvXcZyBgYH6+vrt27c3NjY6jnPs2LG6urq6urqdO3eGQqHm5mattRDi0KFDvb29o28PhUJa63379o2u9L+WcNeuXe6iQqHQxo0bHccxxrz77rvJZHJMf2kikUgmk01NTWfOnLlaVYxOHzhwgOddAyCkAsD/QCQSaWlpOXHiRCgU2rNnz8GDB/v6+pqamv70pz81Njb6/X43Gh4+fPj9998fTYQnT57s6upSSj355JOlpaU//OEP6+vr+/r62traksnk3XffrZT64IMPmpub3czX3Nzc1tYmhNBa7969+29/+9vJkyfT0tISiUR7e/vp06dbWloGBwfdeWKx2P79+7/66qvLk2VPT4/7VM9IJNLc3Lx58+Z4PH7gwIFkMvnll18eP358aGjIGOM4zqFDhz7//HOtdTQa7erqOnz48NGjR8VIV+5f/vKXjz/+uKioKC0traurq7u7202iTU1N7e3t7vIbGhqampqEEJZlbdu2jUYCgJAKAN+1UCj04osvnj17NhwOz549OxQKvfLKK5ZlCSFmzJjxwQcfxGKxbdu21dbWpqWlvfXWW+67jhw5UlxcPDAwYIwpKiqSUv7617/Oz8+3bfvLL788cODA0aNHMzIyRk/xK6XcsKuUOnPmjJRSSrlly5aBgYFnnnnm2LFj//jHP1599dXt27fH4/FnnnkmGo3u3r370KFD7tt7enoCgcBomSsrK7u7u0+dOqWUampq2rZtW29v7xNPPDE8PPz3v/+9p6fn3Llzzz//fCQSefLJJ4eHhzdt2tTQ0DDaa5uTk7N3796urq6DBw++/vrrLS0tf/jDH7q6up577rmBgYGnnnoqHA7X1tZ2dnbecsstV+twBQBCKgBMoJSUlJKSktWrV2dkZJw8eVIIkUgkSkpK0tLSKioqvF7v+fPne3p6HnvssbVr1w4MDLjv6uvr83q9Pp/PPXsuhOju7jbGJBIJy7JycnLuueee+++/XwgxerpcjqioqMjPz58zZ44bYW3bXrNmTWFh4aOPPlpeXh4MBs+ePbt169ajR4+eOnXKfW9TU9PSpUtHy+z1en/xi19s2bIlFotdvHjx5z//+apVq4qKio4cOdLX1/fAAw/cfffdbi9pWVnZ7bffvnr16s7OTve9+fn5CxYs0FoPDQ05jrNixYoHHniguLj4wQcfnDFjxuDg4NmzZ99+++3Ozs7W1tZkMhkMBmkkAG52HqoAwE1Ha+33+6WUdXV1J0+eLCsrU0qlp6fH4/Fjx44lk8n8/PySkpLNmzcvX748MzPTfVdubm4ymUxJSamsrHzxxRerq6v/+c9//u53v/N6veXl5eXl5W4ALSws3L17t8fjOXr06AMPPCCEMMbk5eV9+umnHR0dlmW5Q2CllI7jKKUcx0lPTy8sLFy8eHFKSsqiRYvc1fX29mZkZIyGXa31zJkz58yZc/78+by8vNdee23NmjVnzpypqqqqr6+vra09c+ZMSUlJbm7uiRMn9u3b98UXXzz88MPu230+3/79+901er1ex3G01kopd7F+vz8vL++OO+7w+XwLFy6MRCKpqanuSq9l4CwATE7WH//4R2oBwE0nOzt71qxZbjytqKgoKSkpKCgoLy+Px+NLlizx+/2LFy+eMWOGEGLdunXuSADbto8cOVJdXV1TU5OSkqK1Xr9+fSAQyM7OLikpcYOdEGLOnDlDQ0O2bT/00EM5OTnui1lZWcXFxV6vd/bs2aWlpdnZ2cXFxR6Pp6ioqKSkJCMjY9myZVprKaV7it8Yk56enpub677dPV+fk5NTWVk5f/78efPmVVRUhEKhn/zkJ2lpacuWLVNKzZ07d/369efOnbtw4cKKFSuWLl1aVlbmvr2oqCgSicydO9ftzc3Nzc3Nzc3Ly8vJySkrK8vJyVm+fPnFixdTU1Nnz54dDAZjsdj8+fNpJABu4oRqWZKLQAFMAV/vNfz6K1rrZ5999pe//KXH819OIrkdpde4IpfjOJZlub+9li7My+e5fHUXL17cuHHjb3/7229Z1+WvXzGPMeaVV17ZsGHDaOYGgJuR1+slpALARDHGKKW+Mba65+upIgC4WkhlFwkAV3XtDwu4Ynp03OrVbqrKYwIA4NsRUgFMUx9++OGuXbu+fZ4rzqRfETHdV15++eVvnPP111//zW9+Ew6HhRDurayuyKZnz55lKwDA1XB1PwAI98J59wFUy5cvP336dCAQ+Oqrr4qLixOJRDwetywrGAympqYWFxc3NDQUFxeHQqEFCxZIKdetWyeE+OSTT1JSUhYsWOBe0d/X19fa2nrPPff4/f729nZjTGlpqcfj+fTTTz0ez4IFC954442hoaFf/epX/f390Wg0KysrNze3qanJ4/HMmjWroKCAjQJgmqMnFcD0Daaj08aYv/71ry0tLRcvXtyzZ88rr7zS3d396quvfvjhh8ePH9+7d+/TTz/d2tr68ssv9/f3NzQ0bN261bZt9411dXXt7e319fVCiNE7m/p8PqVUbm5uMBjs6+vbs2fP5s2bz58//8knn+Tk5AwODkoplVK9vb3PP/+8lPK55567cOHCpk2bDh8+7N5diw0EgJAKANM0pI5mQcdxgsHgT3/60zVr1vT09CxatOijjz4qKirq6Oioq6srKCjo6+vbtWvXuXPnLl686DjOY489VlFRMbqosrKylStXbtq0afQu+hkZGSkpKfPmzQuHw+Fw2L2fQHp6+p133vnUU08Fg8GysrKKigrHcUKh0J///Ofu7m73WQOPPPJIZmYm9zcFAE73A5imHMdpbW0tLS2VUubk5GRmZr722mtFRUXl5eVz58594oknHn/88d27dw8ODtbU1Hz00Uf33Xef1joQCHi93kgkcnnYDYfDM2bMePTRR995553vfe97bierm4Bra2ullAMDA1lZWYlEIhqNbtiwobGxsbS09MiRI1VVVZmZmT/72c+EEO6NV933AgC4BRWAaer06dORSKS/v98Ys2TJEqVUY2OjMea2224zxjQ1NS1YsGBgYCASiQQCgd7e3hMnTuTk5FRUVJw6daqoqMh9QIAQoqOjo6ysrKurq6urq6ysrLi42H395MmTJSUlsVisubl5zpw5yWQyEAg0Nzf7/f6CggK/33/o0KH58+drrRsaGpYtW+aOSa2qqhpdMgBMW9wnFQAAAJMxpDImFQAAAJMOIRUAAACEVAAAAICQCgAAAEIqAAAAQEgFAAAAIRUAAAAgpAIAAICQCgAAABBSAQAAAEIqAAAACKkAAAAAIRUAAACEVAAAAICQCgAAgKnOc7MUNBKN3vvoT9lgwM3l/23/J5UAALgOMh6PUwsAAACYPLxeL6f7AQAAMOkQUgEAAEBIBQAAAAipAAAAIKQCAAAAhFQAAAAQUgEAAABCKgAAAAipAAAAACEVAAAAIKQCAACAkAoAAAAQUgEAAEBIBQAAAAipAAAAIKQCAAAAhFQAAAAQUgEAAABCKgAAAEBIBQAAACEVAAAAIKQCAACAkAoAAAAQUgEAAEBIBQAAAAipAAAAACEVAAAAhFQAAACAkAoAAICbmyf0f8qoBQAAgOvQu/5FKmEizF91r5SZPhOKCWGMoUIAAAAwKfx/F3p5LXgJ03EAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">P<span class="_ _3"></span>ointers<span class="_ _17"> </span>Aliasing<span class="_ _5b"> </span>4/4</div><div class="t m0 xd hf y2d7 ff5 fs5 fc6 sc0 ls0 ws0">void<span class="_ _8"> </span><span class="ffd fc7">foo<span class="fc0">(std<span class="fc8">::</span>vector<span class="fc8"><</span></span></span>double<span class="ffd fc8">>&<span class="_ _17"> </span><span class="fc0">v,<span class="_ _17"> </span></span></span><span class="fc9">const<span class="_ _8"> </span></span>double<span class="ffd fc8">&<span class="_ _17"> </span><span class="fc0">coeff)<span class="_ _17"> </span>{</span></span></div><div class="t m0 xf hf y2d8 ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span>auto<span class="ffd fc8">&<span class="_ _17"> </span><span class="fc0">item<span class="_ _17"> </span></span>:<span class="_ _8"> </span><span class="fc0">v)<span class="_ _17"> </span>item<span class="_ _17"> </span></span>*=<span class="_ _8"> </span><span class="fc0">std</span>::<span class="fc0">sinh(coeff);</span></span></div><div class="t m0 xd hf y2d9 ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 x1 ha y2da ff6 fs5 fc0 sc0 ls0 ws0">vs.</div><div class="t m0 xd hf y2db ff5 fs5 fc6 sc0 ls0 ws0">void<span class="_ _8"> </span><span class="ffd fc7">foo<span class="fc0">(std<span class="fc8">::</span>vector<span class="fc8"><</span></span></span>double<span class="ffd fc8">>&<span class="_ _17"> </span><span class="fc0">v,<span class="_ _17"> </span></span></span>double<span class="_ _8"> </span><span class="ffd fc0">coeff)<span class="_ _17"> </span>{</span></div><div class="t m0 xf hf y2dc ff5 fs5 fc9 sc0 ls0 ws0">for<span class="_ _8"> </span><span class="ffd fc0">(</span>auto<span class="ffd fc8">&<span class="_ _17"> </span><span class="fc0">item<span class="_ _17"> </span></span>:<span class="_ _8"> </span><span class="fc0">v)<span class="_ _17"> </span>item<span class="_ _17"> </span></span>*=<span class="_ _8"> </span><span class="fc0">std</span>::<span class="fc0">sinh(coeff);</span></span></div><div class="t m0 xd hf y2dd ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hd y2de ffc fs7 fcc sc0 ls0 ws0">Argument<span class="_ _9"> </span>Passing,<span class="_ _9"> </span>Core<span class="_ _e"> </span>Guidelines<span class="_ _9"> </span>and<span class="_ _9"> </span>Aliasing</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">76/87</div><a class="l" href="https://www.youtube.com/watch?v=uylFACqcWYI"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:0.842000px;width:218.531000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf53" class="pf w0 h0" data-page-no="53"><div class="pc pc53 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIXUlEQVR42u3ZsQ3CMBCGURtxomQGJEbIBhGzsUQ2TJWSa5wqM+SI3pvA+q/5JPfMbAAAUEZE3KwAAEA1IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJFqAgAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAMCF3E3AubbvywjAta2f5R+f/Z5mt+NEPTOtAABAHRHhux8AgHJEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAItUEAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAcen8+xvZrbYxhDQAAStgBqAkT9WYbGmkAAAAASUVORK5CYII="/><div class="t m0 x8 h2 yad ff1 fs0 fc0 sc0 ls0 ws0">Object-Oriented</div><div class="t m0 x8 h2 yae ff1 fs0 fc0 sc0 ls0 ws0">Programming</div><a class="l" href="#pf53" data-dest-detail='[83,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:149.618000px;width:241.993000px;height:24.025000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf53" data-dest-detail='[83,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:115.247000px;width:154.986000px;height:24.025000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf54" class="pf w0 h0" data-page-no="54"><div class="pc pc54 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIlklEQVR42u3YsWkDQRCG0Vtzg6JFNRhHrsAYxQZ1piZcjgMX4Q4ciY08ySlTbGwkDbr3Gjjuh4WPaU8vuwkAAMr4+vx4sAIAANWIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAzlpmWgEAgDoiwiUVAIByRCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACLVBAAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQCAwmYTVDbGMAIU13v3eOFuHi91uKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAAPBvLTOtAABAHRHhkgoAQDkiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAFZmNgHASowxrvOh3vsK//pqSs0Ll+OSCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABuq2WmFQAAqCMiXFIBAChHpAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAC/Mh8Pj1YAALiE77d3I/zB8+u+te1mOf5M07IsBgEAoIQTRVEmAMmH5dEAAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">V<span class="_ _3"></span>a<span class="_ _3"></span>riable/Object<span class="_ _9"> </span>Scop<span class="_ _b"></span>e</div><div class="t m0 x1 hb y7b ff1 fs6 fc0 sc0 ls0 ws0">Decla<span class="_ _3"></span>re<span class="_ _8"> </span>lo<span class="_ _b"></span>cal<span class="_ _8"> </span>variable<span class="_ _f"> </span>in<span class="_ _f"> </span>the<span class="_ _8"> </span>innermost<span class="_ _8"> </span>scop<span class="_ _b"></span>e</div><div class="t m0 xb hb y2df ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">the<span class="_ _c"> </span>compiler<span class="_ _f"> </span>can<span class="_ _c"> </span>more<span class="_ _c"> </span>lik<span class="_ _3"></span>ely<span class="_ _f"> </span>fit<span class="_ _c"> </span>them<span class="_ _c"> </span>into<span class="_ _f"> </span>registers<span class="_ _c"> </span>instead<span class="_ _f"> </span>of<span class="_ _c"> </span>stack</span></div><div class="t m0 xb hb y2e0 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">it<span class="_ _c"> </span>improves<span class="_ _c"> </span>readabilit<span class="_ _3"></span>y</span></div><div class="t m0 x16 h10 y2e1 ff1 fs7 fc0 sc0 ls0 ws0">W<span class="_ _3"></span>rong:</div><div class="t m0 x1a hd y2e2 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">i,<span class="_ _9"> </span>x;</span></div><div class="t m0 x1a hd y2e3 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(i<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _9"> </span><span class="fc8"><<span class="_ _e"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></div><div class="t m0 x43 hd y2e4 ffc fs7 fc0 sc0 ls0 ws0">x<span class="_ _41"> </span><span class="fc8">=<span class="_ _17"> </span></span>value<span class="_ _e"> </span><span class="fc8">*<span class="_ _9"> </span>5</span>;</div><div class="t m0 x43 hd y2e5 ffc fs7 fc0 sc0 ls0 ws0">sum<span class="_ _9"> </span><span class="fc8">+=<span class="_ _9"> </span></span>x;</div><div class="t m0 x1a hd y2e6 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x44 h10 y2e7 ff1 fs7 fc0 sc0 ls0 ws0">Co<span class="_ _3"></span>rrect:</div><div class="t m0 x45 hd y2e8 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x46 hd y2e9 ff5 fs7 fc6 sc0 ls0 ws0">int<span class="_ _9"> </span><span class="ffc fc0">x<span class="_ _20"> </span><span class="fc8">=<span class="_ _9"> </span></span>value<span class="_ _9"> </span><span class="fc8">*<span class="_ _e"> </span>5</span>;</span></div><div class="t m0 x46 hd y2ea ffc fs7 fc0 sc0 ls0 ws0">sum<span class="_ _13"> </span><span class="fc8">+=<span class="_ _9"> </span></span>x;</div><div class="t m0 x45 hd y2eb ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 xb hb y2ec ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4 fcd">C++17<span class="_ _c"> </span><span class="fc0">allows<span class="_ _c"> </span>lo<span class="_ _b"></span>cal<span class="_ _c"> </span>variable<span class="_ _c"> </span>initialization<span class="_ _c"> </span>in<span class="_ _10"> </span><span class="ff8">if<span class="_ _10"> </span></span>and<span class="_ _10"> </span><span class="ff8">while<span class="_ _10"> </span></span>statements,<span class="_ _c"> </span>while</span></span></div><div class="t m0 x33 hb y2ed ff4 fs6 fcd sc0 ls0 ws0">C++20<span class="_ _c"> </span><span class="fc0">intro<span class="_ _b"></span>duces<span class="_ _f"> </span>them<span class="_ _c"> </span>for<span class="_ _c"> </span>in<span class="_ _c"> </span><span class="ffa">range-based<span class="_ _c"> </span>lo<span class="_ _b"></span>ops</span></span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">77/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf55" class="pf w0 h0" data-page-no="55"><div class="pc pc55 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">V<span class="_ _3"></span>a<span class="_ _3"></span>riable/Object<span class="_ _9"> </span>Scop<span class="_ _b"></span>e</div><div class="t m0 x1 hb y2ee ff1 fs6 fc0 sc0 ls0 ws0">Exception!<span class="_ _e"> </span><span class="ff4">Built-in<span class="_ _c"> </span>t<span class="_ _3"></span>yp<span class="_ _b"></span>e<span class="_ _f"> </span>va<span class="_ _3"></span>riables<span class="_ _f"> </span>and<span class="_ _c"> </span>passive<span class="_ _f"> </span>structures<span class="_ _c"> </span>should<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>placed<span class="_ _f"> </span>in<span class="_ _c"> </span>the</span></div><div class="t m0 x1 hb y2ef ff4 fs6 fc0 sc0 ls0 ws0">innermost<span class="_ _c"> </span>lo<span class="_ _b"></span>op,<span class="_ _f"> </span>while<span class="_ _c"> </span>objects<span class="_ _f"> </span>with<span class="_ _c"> </span>constructors<span class="_ _c"> </span>should<span class="_ _c"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>placed<span class="_ _f"> </span>outside<span class="_ _c"> </span>lo<span class="_ _b"></span>ops</div><div class="t m0 x2a hd y2f0 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x47 hd y2f1 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>string<span class="_ _9"> </span>str(<span class="fca">"prefix_"</span>);</div><div class="t m0 x47 hd y2f2 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>cout<span class="_ _9"> </span><span class="fc8"><<<span class="_ _9"> </span></span>str<span class="_ _e"> </span><span class="fc8">+<span class="_ _9"> </span></span>value[i];</div><div class="t m0 x2a hd y2f3 ffc fs7 fc0 sc0 ls0 ws0">}<span class="_ _9"> </span><span class="ffb fc5">//<span class="_ _9"> </span>str<span class="_ _e"> </span>call<span class="_ _9"> </span>CTOR/DTOR<span class="_ _9"> </span>N<span class="_ _e"> </span>times</span></div><div class="t m0 x45 hd y2f0 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>string<span class="_ _9"> </span>str(<span class="fca">"prefix_"</span>);</div><div class="t m0 x45 hd y2f1 ff5 fs7 fc9 sc0 ls0 ws0">for<span class="_ _9"> </span><span class="ffc fc0">(</span><span class="fc6">int<span class="_ _9"> </span><span class="ffc fc0">i<span class="_ _e"> </span><span class="fc8">=<span class="_ _9"> </span>0</span>;<span class="_ _9"> </span>i<span class="_ _e"> </span><span class="fc8"><<span class="_ _9"> </span></span>N;<span class="_ _9"> </span>i<span class="fc8">++</span>)<span class="_ _9"> </span>{</span></span></div><div class="t m0 x46 hd y2f2 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>cout<span class="_ _9"> </span><span class="fc8"><<<span class="_ _9"> </span></span>str<span class="_ _e"> </span><span class="fc8">+<span class="_ _9"> </span></span>value[i];</div><div class="t m0 x45 hd y2f3 ffc fs7 fc0 sc0 ls0 ws0">}</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">78/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf56" class="pf w0 h0" data-page-no="56"><div class="pc pc56 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Object<span class="_ _17"> </span>Optimizations</div><div class="t m0 xb hb y9b ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _f"> </span><span class="ff1">direct<span class="_ _8"> </span>initialization<span class="_ _c"> </span></span>and<span class="_ _c"> </span><span class="ffa">full<span class="_ _f"> </span>object<span class="_ _c"> </span>constructor<span class="_ _9"> </span></span>instead<span class="_ _f"> </span>of<span class="_ _c"> </span>tw<span class="_ _3"></span>o-step</span></div><div class="t m0 x33 hb y2f4 ff4 fs6 fc0 sc0 ls0 ws0">initialization<span class="_ _c"> </span>(also<span class="_ _c"> </span>for<span class="_ _c"> </span>variables)</div><div class="t m0 xb hb y2f5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _f"> </span><span class="ff1">move<span class="_ _8"> </span>semantic<span class="_ _c"> </span></span>instead<span class="_ _c"> </span>of<span class="_ _f"> </span><span class="ffa">copy<span class="_ _c"> </span>constructo<span class="_ _3"></span>r<span class="ff4">.<span class="_ _e"> </span>Ma<span class="_ _3"></span>rk<span class="_ _c"> </span><span class="ffa">copy<span class="_ _c"> </span>constructo<span class="_ _3"></span>r<span class="_ _e"> </span><span class="ff4">as</span></span></span></span></span></div><div class="t m0 xc hb y2f6 ff8 fs6 fc0 sc0 ls0 ws0">=delete<span class="_ _10"> </span><span class="ff4">(sometimes<span class="_ _c"> </span>it<span class="_ _c"> </span>is<span class="_ _f"> </span>hard<span class="_ _c"> </span>to<span class="_ _c"> </span>see,<span class="_ _c"> </span>e.g.<span class="_ _e"> </span>implicit)</span></div><div class="t m0 xb hb y2f7 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _10"> </span><span class="ff5">static<span class="_ _10"> </span></span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>all<span class="_ _c"> </span>memb<span class="_ _b"></span>ers<span class="_ _f"> </span>that<span class="_ _c"> </span>do<span class="_ _f"> </span>not<span class="_ _c"> </span>use<span class="_ _f"> </span>instance<span class="_ _c"> </span>memb<span class="_ _b"></span>er<span class="_ _f"> </span>(avoid<span class="_ _c"> </span>passing</span></div><div class="t m0 xc hb y2f8 ff8 fs6 fc0 sc0 ls0 ws0">this<span class="_ _10"> </span><span class="ff4">p<span class="_ _b"></span>ointer)</span></div><div class="t m0 xb hb y2f9 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">If<span class="_ _c"> </span>the<span class="_ _f"> </span>object<span class="_ _c"> </span>semantic<span class="_ _f"> </span>is<span class="_ _c"> </span><span class="ffa">trivially<span class="_ _c"> </span>copy<span class="_ _3"></span>able<span class="ff4">,<span class="_ _c"> </span>ensure<span class="_ _f"> </span><span class="ff1">defaulted<span class="_ _10"> </span><span class="ff8">=<span class="_ _15"> </span>default</span></span></span></span></span></div><div class="t m0 x33 hb y2fa ffa fs6 fc0 sc0 ls0 ws0">default/cop<span class="_ _3"></span>y<span class="_ _f"> </span>constructo<span class="_ _3"></span>rs<span class="_ _9"> </span><span class="ff4">and<span class="_ _c"> </span></span>assignment<span class="_ _f"> </span>op<span class="_ _b"></span>erators<span class="_ _17"> </span><span class="ff4">to<span class="_ _c"> </span>enable<span class="_ _f"> </span>vecto<span class="_ _3"></span>rization</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">79/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf57" class="pf w0 h0" data-page-no="57"><div class="pc pc57 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAI1UlEQVR42u3dIU7EQBiG4Q7pBDXhDATFCQigSdYgkAjOwyW4AYIEgSdBEM7ADVCbESwTNsUhFkc22b/t88iq9qt5MxVNRyfnHQAAhPH++rJnBQAAohGpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAD8Sq01KwAAEEfO2UkqAADhiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAESqCQAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAwU70JJqbWOqXHKaXYbQ77A8AGJ6kAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAYLdSa80KAADEkXN2kgoAQDgiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAsEu9CYBQaq1GGKNSihGALXKSCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAAMH0JgCI5nu9Pru8+nv97enROMBMpNaaFYA4aq1GGKNSihGAbck5+9wPAEA4IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAANvgtKgAAsfgtKgAAEYlUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAAAmox/LjX6uVovrGy8MxuX54d4IAPxDaq1ZAQCAOHLOPvcDABCOSAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAMF798vbQCgAAo/NxcTfVRzs+XaR0sD8sv7puGAbvGgCAEH4A3Io3/CXF6u0AAAAASUVORK5CYII="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Object<span class="_ _17"> </span>Dynamic<span class="_ _17"> </span>Behavior<span class="_ _8"> </span>Optimizations</div><div class="t m0 xb hb y47 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff1">Virtual<span class="_ _8"> </span>calls<span class="_ _c"> </span><span class="ff4">are<span class="_ _c"> </span>slo<span class="_ _3"></span>wer<span class="_ _c"> </span>than<span class="_ _c"> </span>standard<span class="_ _c"> </span>functions</span></span></div><div class="t m0 x38 hb y23a ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span>Virtual<span class="_ _c"> </span>calls<span class="_ _f"> </span>p<span class="_ _3"></span>revent<span class="_ _f"> </span>any<span class="_ _c"> </span>kind<span class="_ _f"> </span>of<span class="_ _c"> </span>optimizations<span class="_ _f"> </span>as<span class="_ _c"> </span>function<span class="_ _f"> </span>lo<span class="_ _b"></span>okup<span class="_ _c"> </span>is<span class="_ _f"> </span>at</div><div class="t m0 x1a hb y23b ff4 fs6 fc0 sc0 ls0 ws0">runtime<span class="_ _c"> </span>(lo<span class="_ _b"></span>op<span class="_ _f"> </span>transfo<span class="_ _3"></span>rmation,<span class="_ _f"> </span>vectorization,<span class="_ _c"> </span>etc.)</div><div class="t m0 x38 hb y2fb ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span>Virtual<span class="_ _c"> </span>call<span class="_ _f"> </span>overhead<span class="_ _c"> </span>is<span class="_ _f"> </span>up<span class="_ _c"> </span>to<span class="_ _f"> </span>20%-50%<span class="_ _c"> </span>for<span class="_ _c"> </span>function<span class="_ _c"> </span>that<span class="_ _c"> </span>can<span class="_ _f"> </span>b<span class="_ _b"></span>e<span class="_ _c"> </span>inlined</div><div class="t m0 xb hb y2fc ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Ma<span class="_ _3"></span>rk<span class="_ _10"> </span><span class="ff8">final<span class="_ _10"> </span></span>all<span class="_ _10"> </span><span class="ff8">virtual<span class="_ _10"> </span></span>functions<span class="_ _c"> </span>that<span class="_ _f"> </span>are<span class="_ _c"> </span>not<span class="_ _c"> </span>overridden</span></div><div class="t m0 xb hb y2fd ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">A<span class="_ _3"></span>void<span class="_ _f"> </span>dynamic<span class="_ _c"> </span>op<span class="_ _b"></span>erations,<span class="_ _f"> </span>e.g.<span class="_ _4"> </span><span class="ff8">dynamic<span class="_ _8"> </span>cast</span></span></div><div class="t m0 x3a h10 y2fe fff fs7 fcc sc0 ls0 ws0">-<span class="_ _6"> </span><span class="ffc">The<span class="_ _9"> </span>Hidden<span class="_ _e"> </span>Performance<span class="_ _17"> </span>Price<span class="_ _e"> </span>of<span class="_ _9"> </span>Virtual<span class="_ _9"> </span>Functions</span></div><div class="t m0 x3a h10 y2ff fff fs7 fcc sc0 ls0 ws0">-<span class="_ _6"> </span><span class="ffc">Investigating<span class="_ _9"> </span>the<span class="_ _e"> </span>Performance<span class="_ _17"> </span>Overhead<span class="_ _e"> </span>of<span class="_ _9"> </span>C++<span class="_ _9"> </span>Exceptions</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">80/87</div><a class="l" href="https://raw.githubusercontent.com/CppCon/CppCon2022/main/Presentations/CppCon-The-Hidden-Performance-Price-of-Virtual-Functions.pdf"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:19.893000px;width:232.653000px;height:7.373000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://pspdfkit.com/blog/2020/performance-overhead-of-exceptions-in-cpp/"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:3.306000px;width:265.604000px;height:9.365000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf58" class="pf w0 h0" data-page-no="58"><div class="pc pc58 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Object<span class="_ _17"> </span>Op<span class="_ _b"></span>eration<span class="_ _17"> </span>Optimizations</div><div class="t m0 xb hb y300 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Minimize<span class="_ _c"> </span>multiple<span class="_ _10"> </span><span class="ff5">+<span class="_ _10"> </span></span>op<span class="_ _b"></span>erations<span class="_ _c"> </span>b<span class="_ _0"></span>et<span class="_ _3"></span>w<span class="_ _3"></span>een<span class="_ _c"> </span>objects<span class="_ _f"> </span>to<span class="_ _c"> </span>avoid<span class="_ _f"> </span>temp<span class="_ _b"></span>ora<span class="_ _3"></span>ry<span class="_ _c"> </span>storage</span></div><div class="t m0 xb hb y301 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff5">x<span class="_ _15"> </span>+=<span class="_ _15"> </span>obj<span class="_ _25"> </span></span>,<span class="_ _f"> </span>instead<span class="_ _c"> </span>of<span class="_ _10"> </span><span class="ff8">x<span class="_ _15"> </span>=<span class="_ _15"> </span>x<span class="_ _15"> </span>+<span class="_ _15"> </span>obj<span class="_ _10"> </span><span class="ff10">→<span class="_ _c"> </span></span></span>avoid<span class="_ _f"> </span>object<span class="_ _c"> </span>copy<span class="_ _c"> </span>and<span class="_ _c"> </span>temp<span class="_ _b"></span>ora<span class="_ _3"></span>ry</span></div><div class="t m0 x33 hb y302 ff4 fs6 fc0 sc0 ls0 ws0">sto<span class="_ _3"></span>rage</div><div class="t m0 xb hb y303 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff5">++obj<span class="_ _25"> </span></span>/<span class="_ _d"> </span><span class="ff5">--obj<span class="_ _10"> </span></span>(return<span class="_ _10"> </span><span class="ff8">&obj<span class="_ _25"> </span></span>),<span class="_ _f"> </span>instead<span class="_ _c"> </span>of<span class="_ _10"> </span><span class="ff8">obj++<span class="_ _d"> </span></span>,<span class="_ _d"> </span><span class="ff8">obj--<span class="_ _10"> </span></span>(cop<span class="_ _3"></span>y<span class="_ _c"> </span>and</span></div><div class="t m0 x33 hb y304 ff4 fs6 fc0 sc0 ls0 ws0">return<span class="_ _c"> </span>old<span class="_ _10"> </span><span class="ff8">obj<span class="_ _d"> </span></span>)</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">81/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf59" class="pf w0 h0" data-page-no="59"><div class="pc pc59 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAId0lEQVR42u3YsQlCMRSG0Rd5wSo4g1g5gYi14GYu4TgWDuEGVo9UpomdvYJwH54zweVP85G02R0GAAAI4367LqwAAEA0IhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAgLfUWrMCAABx5Jz9pAIAEI5IBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAgA+NM7q11urBAAC+U0qZ0bV+UgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAAB+KrXWrAAAQBw5Zz+pAACEI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQAgmHE6r60AAPBvHsdL2Nu2+1NKq2WfnsPQe/dYAACE8ALfhBoCAZPwOQAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Object<span class="_ _17"> </span>Implicit<span class="_ _17"> </span>Conversion</div><div class="t m0 xd hf y305 ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">A<span class="_ _17"> </span><span class="ffd fc0">{<span class="_ _1c"> </span><span class="ffb fc5">//<span class="_ _8"> </span>big<span class="_ _17"> </span>object</span></span></span></div><div class="t m0 xf hf y306 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">array[<span class="fc8">10000</span>];</span></div><div class="t m0 xd hf y307 ffd fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf y308 ff5 fs5 fc9 sc0 ls0 ws0">struct<span class="_ _8"> </span><span class="fc7">B<span class="_ _17"> </span><span class="ffd fc0">{</span></span></div><div class="t m0 xf hf y309 ff5 fs5 fc6 sc0 ls0 ws0">int<span class="_ _8"> </span><span class="ffd fc0">array[<span class="fc8">10000</span>];</span></div><div class="t m0 xf hf y30a ffd fs5 fc0 sc0 ls0 ws0">B()<span class="_ _8"> </span><span class="fc8">=<span class="_ _17"> </span><span class="ff5 fc9">default</span></span>;</div><div class="t m0 xf hf y30b ffd fs5 fc0 sc0 ls0 ws0">B(<span class="ff5 fc9">const<span class="_ _8"> </span></span>A<span class="fc8">&<span class="_ _17"> </span></span>a)<span class="_ _17"> </span>{<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>user-defined<span class="_ _8"> </span>constructor</span></div><div class="t m0 x15 hf y30c ffd fs5 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>copy(a.array,<span class="_ _8"> </span>a.array<span class="_ _17"> </span><span class="fc8">+<span class="_ _17"> </span>10000</span>,<span class="_ _8"> </span>array);</div><div class="t m0 xf hf y30d ffd fs5 fc0 sc0 ls0 ws0">}</div><div class="t m0 xd hf y30e ffd fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd hf y30f ffb fs5 fc5 sc0 ls0 ws0">//----------------------------------------------------------------------</div><div class="t m0 xd hf y310 ff5 fs5 fc6 sc0 ls0 ws0">void<span class="_ _8"> </span><span class="ffd fc7">f<span class="fc0">(</span></span><span class="fc9">const<span class="_ _17"> </span><span class="ffd fc0">B<span class="fc8">&<span class="_ _17"> </span></span>b)<span class="_ _8"> </span>{}</span></span></div><div class="t m0 xd hf y311 ffd fs5 fc0 sc0 ls0 ws0">A<span class="_ _8"> </span>a;</div><div class="t m0 xd hf y312 ffd fs5 fc0 sc0 ls0 ws0">B<span class="_ _8"> </span>b;</div><div class="t m0 xd hf y313 ffd fs5 fc0 sc0 ls0 ws0">f(b);<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span>no<span class="_ _8"> </span>cost</span></div><div class="t m0 xd hf y314 ffd fs5 fc0 sc0 ls0 ws0">f(a);<span class="_ _8"> </span><span class="ffb fc5">//<span class="_ _17"> </span><span class="fc3">very<span class="_ _8"> </span>costly!!<span class="_ _17"> </span></span>implicit<span class="_ _8"> </span>conversion</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">82/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5a" class="pf w0 h0" data-page-no="5a"><div class="pc pc5a w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x8 h2 y315 ff5 fs0 fc0 sc0 ls0 ws0">Std<span class="_ _1"> </span><span class="ff1">Lib<span class="_ _7"></span>ra<span class="_ _3"></span>ry<span class="_ _1"> </span>and</span></div><div class="t m0 x8 h2 y14a ff1 fs0 fc0 sc0 ls0 ws0">Other<span class="_ _1"> </span>Language</div><div class="t m0 x8 h2 y316 ff1 fs0 fc0 sc0 ls0 ws0">Asp<span class="_ _0"></span>ects</div><a class="l" href="#pf5a" data-dest-detail='[90,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:166.803000px;width:241.993000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf5a" data-dest-detail='[90,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:132.432000px;width:241.993000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="#pf5a" data-dest-detail='[90,"XYZ",27.346,256.118,null]'><div class="d m1" style="border-style:none;position:absolute;left:105.775000px;bottom:98.061000px;width:90.543000px;height:24.026000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5b" class="pf w0 h0" data-page-no="5b"><div class="pc pc5b w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _3"></span>rom<span class="_ _17"> </span>C<span class="_ _17"> </span>to<span class="_ _9"> </span>C++</div><div class="t m0 xb hb y317 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">A<span class="_ _3"></span>void<span class="_ _f"> </span>old<span class="_ _c"> </span><span class="ff8">C<span class="_ _f"> </span></span>libra<span class="_ _3"></span>ry<span class="_ _c"> </span>routines<span class="_ _c"> </span>such<span class="_ _f"> </span>as<span class="_ _10"> </span><span class="ff8">qsort<span class="_ _25"> </span></span>,<span class="_ _10"> </span><span class="ff8">bsearch<span class="_ _d"> </span></span>,<span class="_ _c"> </span>etc.<span class="_ _e"> </span>Prefer<span class="_ _10"> </span><span class="ff5">std::sort<span class="_ _25"> </span></span>,</span></div><div class="t m0 xc hb y318 ff5 fs6 fc0 sc0 ls0 ws0">std::binary<span class="_ _8"> </span>search<span class="_ _10"> </span><span class="ff4">instead</span></div><div class="t m0 x38 hb y319 ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_ _14"> </span><span class="ff8">std::sort<span class="_ _10"> </span></span>is<span class="_ _c"> </span>based<span class="_ _c"> </span>on<span class="_ _f"> </span>a<span class="_ _c"> </span>hybrid<span class="_ _c"> </span>so<span class="_ _3"></span>rting<span class="_ _f"> </span>algorithm.<span class="_ _9"> </span>Quick-so<span class="_ _3"></span>rt<span class="_ _f"> </span>/<span class="_ _c"> </span>head-sort</div><div class="t m0 x1a hb y31a ff4 fs6 fc0 sc0 ls0 ws0">(introso<span class="_ _3"></span>rt),<span class="_ _c"> </span>merge-sort<span class="_ _d"> </span>/<span class="_ _c"> </span>insertion,<span class="_ _c"> </span>etc.<span class="_ _9"> </span>dep<span class="_ _b"></span>ending<span class="_ _c"> </span>on<span class="_ _c"> </span>the<span class="_ _d"> </span><span class="ff8">std<span class="_ _c"> </span></span>implementation</div><div class="t m0 x38 hb y31b ff4 fs6 fc0 sc0 ls0 ws0">-<span class="_ _6"> </span>Prefer<span class="_ _10"> </span><span class="ff8">std::find()<span class="_ _10"> </span></span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>small<span class="_ _c"> </span>arra<span class="_ _3"></span>y<span class="_ _7"></span>,<span class="_ _10"> </span><span class="ff8 fs4">std::lower<span class="_ _f"> </span>bound<span class="_ _25"> </span><span class="ff4">,</span></span></div><div class="t m0 x19 hb y31c ff8 fs4 fc0 sc0 ls0 ws0">std::upper<span class="_ _f"> </span>bound<span class="_ _25"> </span><span class="ff4">,<span class="_ _10"> </span></span>std::binary<span class="_ _c"> </span>search<span class="_ _10"> </span><span class="ff4 fs6">for<span class="_ _c"> </span>la<span class="_ _3"></span>rge<span class="_ _c"> </span>sorted<span class="_ _c"> </span>a<span class="_ _3"></span>rray</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">83/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5c" class="pf w0 h0" data-page-no="5c"><div class="pc pc5c w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">F<span class="_ _3"></span>unction<span class="_ _17"> </span>Optimizations</div><div class="t m0 xb hb y213 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _14"> </span><span class="ff5">std::fill<span class="_ _10"> </span><span class="ff4">applies<span class="_ _10"> </span><span class="ff8">memset<span class="_ _10"> </span></span>and<span class="_ _10"> </span></span>std::copy<span class="_ _11"> </span><span class="ff4">applies<span class="_ _10"> </span><span class="ff8">memcpy<span class="_ _10"> </span></span>if<span class="_ _f"> </span>the</span></span></div><div class="t m0 x33 hb y31d ff4 fs6 fc0 sc0 ls0 ws0">input/output<span class="_ _c"> </span>are<span class="_ _c"> </span>continuous<span class="_ _c"> </span>in<span class="_ _c"> </span>memory</div><div class="t m0 xb hb y31e ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _c"> </span>the<span class="_ _f"> </span>same<span class="_ _c"> </span>type<span class="_ _f"> </span>fo<span class="_ _3"></span>r<span class="_ _f"> </span>initialization<span class="_ _c"> </span>in<span class="_ _f"> </span>functions<span class="_ _c"> </span>like<span class="_ _11"> </span><span class="ff8">std::accumulate()<span class="_ _d"> </span></span>,</span></div><div class="t m0 xc h11 y31f ff8 fs6 fc0 sc0 ls0 ws0">std::fill</div><div class="t m0 xc hd y320 ff5 fs7 fc9 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">array<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span></span>new<span class="_ _9"> </span><span class="fc6">int<span class="ffc fc0">[size];</span></span></div><div class="t m0 xc hd y321 ffc fs7 fc0 sc0 ls0 ws0">...</div><div class="t m0 xc hd y322 ff5 fs7 fc9 sc0 ls0 ws0">auto<span class="_ _9"> </span><span class="ffc fc0">sum<span class="_ _9"> </span><span class="fc8">=<span class="_ _e"> </span></span>std<span class="fc8">::</span>accumulate(array,<span class="_ _9"> </span>array<span class="_ _9"> </span><span class="fc8">+<span class="_ _e"> </span></span>size,<span class="_ _9"> </span><span class="fc8">0u</span>);</span></div><div class="t m0 xc hd y323 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>0u<span class="_ _9"> </span>!=<span class="_ _e"> </span>0<span class="_ _9"> </span><span class="ff18">→<span class="_ _9"> </span></span>conversion<span class="_ _e"> </span>at<span class="_ _9"> </span>each<span class="_ _9"> </span>step</div><div class="t m0 xc hd y324 ffc fs7 fc0 sc0 ls0 ws0">std<span class="fc8">::</span>fill(array,<span class="_ _9"> </span>array<span class="_ _9"> </span><span class="fc8">+<span class="_ _e"> </span></span>size,<span class="_ _9"> </span><span class="fc8">0u</span>);</div><div class="t m0 xc hd y325 ffb fs7 fc5 sc0 ls0 ws0">//<span class="_ _9"> </span>it<span class="_ _9"> </span>is<span class="_ _e"> </span>not<span class="_ _9"> </span>translated<span class="_ _9"> </span>into<span class="_ _e"> </span><span class="ff16">memset</span></div><div class="t m0 xb hd y326 ffc fs7 fcc sc0 ls0 ws0">The<span class="_ _9"> </span>Hunt<span class="_ _9"> </span>for<span class="_ _e"> </span>the<span class="_ _9"> </span>Fastest<span class="_ _9"> </span>Zero</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">84/87</div><a class="l" href="https://travisdowns.github.io/blog/2020/01/20/zero.html"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:5.435000px;width:138.506000px;height:13.445000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5d" class="pf w0 h0" data-page-no="5d"><div class="pc pc5d w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Containers</div><div class="t m0 xb hb yb5 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _10"> </span><span class="ff5">std<span class="_ _10"> </span></span>container<span class="_ _c"> </span>memb<span class="_ _b"></span>er<span class="_ _c"> </span>functions<span class="_ _f"> </span>(e.g.<span class="_ _4"> </span><span class="ff8">obj.find()<span class="_ _d"> </span></span>)<span class="_ _c"> </span>instead<span class="_ _c"> </span>of<span class="_ _f"> </span>external</span></div><div class="t m0 x33 hb y327 ff4 fs6 fc0 sc0 ls0 ws0">ones<span class="_ _c"> </span>(e.g.<span class="_ _4"> </span><span class="ff8">std::find()<span class="_ _d"> </span></span>).<span class="_ _e"> </span><span class="fs4">Example:<span class="_ _4e"> </span><span class="ff8">std::set<span class="_ _52"> </span><span class="ffa">O<span class="_ _0"></span></span></span>(<span class="ffa">log<span class="_ _0"></span></span>(<span class="ffa">n<span class="_ _b"></span></span>))<span class="_ _d"> </span>vs.<span class="_ _9"> </span><span class="ffa">O<span class="_ _0"></span></span>(<span class="ffa">n</span>)</span></div><div class="t m0 xb hb y328 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Be<span class="_ _c"> </span>aw<span class="_ _3"></span>a<span class="_ _3"></span>re<span class="_ _f"> </span>of<span class="_ _c"> </span>container<span class="_ _f"> </span>p<span class="_ _3"></span>rop<span class="_ _0"></span>erties,<span class="_ _c"> </span>e.g.<span class="_ _4"> </span><span class="ff8 fs4">vector.push<span class="_ _c"> </span>vector(v)<span class="_ _d"> </span></span>,<span class="_ _c"> </span>instead<span class="_ _f"> </span>of</span></div><div class="t m0 xc hb y329 ff8 fs4 fc0 sc0 ls0 ws0">vector.insert(vector.begin(),<span class="_ _e"> </span>value)<span class="_ _10"> </span><span class="ff10 fs6">→<span class="_ _f"> </span><span class="ff4">entire<span class="_ _c"> </span>copy<span class="_ _c"> </span>of<span class="_ _c"> </span>all<span class="_ _c"> </span>vector<span class="_ _c"> </span>elements</span></span></div><div class="t m0 xb hb y32a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Set<span class="_ _10"> </span><span class="ff5">std::vector<span class="_ _10"> </span></span>size<span class="_ _c"> </span>during<span class="_ _c"> </span>the<span class="_ _f"> </span>object<span class="_ _c"> </span>construction<span class="_ _f"> </span>(or<span class="_ _c"> </span>use<span class="_ _c"> </span>the<span class="_ _10"> </span><span class="ff8">reserve()</span></span></div><div class="t m0 x33 hb y32b ff4 fs6 fc0 sc0 ls0 ws0">metho<span class="_ _b"></span>d)<span class="_ _c"> </span>if<span class="_ _c"> </span>the<span class="_ _c"> </span>numb<span class="_ _0"></span>er<span class="_ _d"> </span>of<span class="_ _f"> </span>elements<span class="_ _c"> </span>to<span class="_ _c"> </span>insert<span class="_ _c"> </span>is<span class="_ _f"> </span>known<span class="_ _d"> </span>in<span class="_ _f"> </span>advance<span class="_ _c"> </span><span class="ff10">→<span class="_ _c"> </span></span>every<span class="_ _c"> </span>implicit</div><div class="t m0 x33 hb y32c ff4 fs6 fc0 sc0 ls0 ws0">resize<span class="_ _c"> </span>is<span class="_ _c"> </span>equivalent<span class="_ _f"> </span>to<span class="_ _c"> </span>a<span class="_ _f"> </span>copy<span class="_ _c"> </span>of<span class="_ _c"> </span>all<span class="_ _c"> </span>vector<span class="_ _c"> </span>elements</div><div class="t m0 xb hb y32d ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Consider<span class="_ _c"> </span><span class="ffa">unordered<span class="_ _17"> </span></span>containers<span class="_ _f"> </span>instead<span class="_ _c"> </span>of<span class="_ _f"> </span>the<span class="_ _c"> </span>standard<span class="_ _c"> </span>one,<span class="_ _c"> </span>e.g.<span class="_ _4"> </span><span class="ff8">unorder<span class="_ _8"> </span>map</span></span></div><div class="t m0 x33 hb y32e ff4 fs6 fc0 sc0 ls0 ws0">vs.<span class="_ _4"> </span><span class="ff8">map</span></div><div class="t m0 xb hb y32f ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff5">std::array<span class="_ _10"> </span></span>instead<span class="_ _c"> </span>of<span class="_ _c"> </span>dynamic<span class="_ _f"> </span>heap<span class="_ _c"> </span>allo<span class="_ _b"></span>cation</span></div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">85/87</div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5e" class="pf w0 h0" data-page-no="5e"><div class="pc pc5e w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAH/CAIAAACTgcSzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAIgElEQVR42u3ZoQ0CMQCG0ZZcg2QGgmICQtAktwKCeViCDRDMQIJgCDZAneKoKQ6JgIT0yHv2TPOf+dLG2WIVAACgGtfLeWQFAABqI1IBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAHiJOWcrAABQj5SSm1QAAKojUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkmAABApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUgEAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAARCoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQBApAIAgEgFAECkAgCASAUAAJEKAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAABEKgAAIhUAAEQqAAAiFQAARCoAACIVAABEKgAAiFQAAEQqAACIVAAARCoAAIhUAABEKgAAiFQAAEQqAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAACIVAAAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAIFIBAECkAgAgUk0AAIBIBQAAkQoAgEgFAACRCgCASAUAAJEKAIBIBQAAkQoAACIVAACRCgAAIhUAAJEKAAAiFQAAkQoAACIVAACRCgAAIhUAAEQqAAAiFQAAvtIM5aD3vm83Wz8MhuV0PBgBgA/EnLMVAACoR0rJcz8AANURqQAAiFQAABCpAACIVAAAEKkAAIhUAAAQqQAAiFQAABCpAAAgUgEAEKkAACBSAQAQqQAAIFIBABCpAAAgUgEAEKkAACBSAQBApAIAIFIBAECkAgAgUgEAQKQCACBSAQBApAIAgEgFAECkAgCASAUAQKQCAIBIBQDgvzXdbmoFAAB+6bbev/k6X7YxTsale4RQSjEXAABVeALbvR0CM0yoIwAAAABJRU5ErkJggg=="/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Critics<span class="_ _17"> </span>to<span class="_ _17"> </span>Standard<span class="_ _8"> </span>T<span class="_ _7"></span>emplate<span class="_ _17"> </span>Lib<span class="_ _3"></span>rary<span class="_ _8"> </span>(STL)</div><div class="t m0 xb hb y213 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Platfo<span class="_ _3"></span>rm/Compiler-dep<span class="_ _b"></span>endent<span class="_ _f"> </span>implementation</span></div><div class="t m0 xb hb y23a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Execution<span class="_ _c"> </span>order<span class="_ _c"> </span>and<span class="_ _c"> </span>results<span class="_ _c"> </span>across<span class="_ _f"> </span>platforms</span></div><div class="t m0 xb hb y330 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Debugging<span class="_ _c"> </span>is<span class="_ _f"> </span>ha<span class="_ _3"></span>rd</span></div><div class="t m0 xb hb y331 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Complex<span class="_ _c"> </span>interaction<span class="_ _f"> </span>with<span class="_ _c"> </span>custom<span class="_ _f"> </span>memo<span class="_ _3"></span>ry<span class="_ _f"> </span>allo<span class="_ _b"></span>cators</span></div><div class="t m0 xb hb y332 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Erro<span class="_ _3"></span>r<span class="_ _f"> </span>handling<span class="_ _c"> </span>based<span class="_ _f"> </span>on<span class="_ _c"> </span>exceptions<span class="_ _f"> </span>is<span class="_ _c"> </span>non-transparent</span></div><div class="t m0 xb hb y333 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Bina<span class="_ _3"></span>ry<span class="_ _f"> </span>bloat</span></div><div class="t m0 xb hb y334 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Compile<span class="_ _c"> </span>time<span class="_ _f"> </span>(see<span class="_ _c"> </span><span class="ff8">C++<span class="_ _15"> </span>Compile<span class="_ _15"> </span>Health<span class="_ _15"> </span>Watchdog</span>,<span class="_ _c"> </span>and<span class="_ _f"> </span><span class="ff8">STL<span class="_ _15"> </span>Explorer</span>)</span></div><div class="t m0 xb hd y335 ffc fs7 fcc sc0 ls0 ws0">STL<span class="_ _9"> </span>isn’t<span class="_ _9"> </span>for<span class="_ _e"> </span>*anyone*</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">86/87</div><a class="l" href="https://artificial-mind.net/projects/compile-health/"><div class="d m1" style="border-style:none;position:absolute;left:135.048000px;bottom:39.725000px;width:156.628000px;height:12.901000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://s9w.github.io/stl_explorer/explorer.html"><div class="d m1" style="border-style:none;position:absolute;left:316.502000px;bottom:39.725000px;width:70.720000px;height:12.901000px;background-color:rgba(255,255,255,0.000001);"></div></a><a class="l" href="https://twitter.com/m_ninepoints/status/1497768472184430600"><div class="d m1" style="border-style:none;position:absolute;left:34.722000px;bottom:1.872000px;width:105.554000px;height:13.444000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
<div id="pf5f" class="pf w0 h0" data-page-no="5f"><div class="pc pc5f w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="data:image/png;base64,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"/><div class="t m0 x4 h7 y7 ff1 fs3 fc1 sc0 ls0 ws0">Other<span class="_ _17"> </span>Language<span class="_ _17"> </span>Asp<span class="_ _b"></span>ects</div><div class="t m0 xb hb y336 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Prefer<span class="_ _10"> </span><span class="ff5">lambda<span class="_ _10"> </span></span>exp<span class="_ _3"></span>ression<span class="_ _f"> </span>(o<span class="_ _3"></span>r<span class="_ _10"> </span><span class="ff8">function<span class="_ _15"> </span>object<span class="_ _d"> </span></span>)<span class="_ _c"> </span>instead<span class="_ _c"> </span>of<span class="_ _10"> </span><span class="ff8">std::function</span></span></div><div class="t m0 x33 hb y337 ff4 fs6 fc0 sc0 ls0 ws0">o<span class="_ _3"></span>r<span class="_ _f"> </span>function<span class="_ _c"> </span>p<span class="_ _b"></span>ointers</div><div class="t m0 xb hb y338 ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">A<span class="_ _3"></span>void<span class="_ _f"> </span>dynamic<span class="_ _c"> </span>op<span class="_ _b"></span>erations:<span class="_ _e"> </span><span class="ff1">exceptions<span class="_ _c"> </span></span>(and<span class="_ _f"> </span>use<span class="_ _10"> </span><span class="ff8">noexcept<span class="_ _d"> </span></span>),<span class="_ _c"> </span><span class="ff1">sma<span class="_ _3"></span>rt<span class="_ _8"> </span>p<span class="_ _b"></span>ointer</span></span></div><div class="t m0 x33 hb y339 ff4 fs6 fc0 sc0 ls0 ws0">(e.g.<span class="_ _4"> </span><span class="ff8">std::unique<span class="_ _8"> </span>ptr<span class="_ _d"> </span></span>)</div><div class="t m0 xb hb y33a ff7 fs6 fc0 sc0 ls0 ws0">•<span class="_ _6"> </span><span class="ff4">Use<span class="_ _10"> </span><span class="ff5">noexcept<span class="_ _10"> </span></span>deco<span class="_ _3"></span>rator<span class="_ _c"> </span><span class="ff10">→<span class="_ _c"> </span></span>program<span class="_ _c"> </span>is<span class="_ _c"> </span>ab<span class="_ _b"></span>orted<span class="_ _c"> </span>if<span class="_ _c"> </span>an<span class="_ _c"> </span>error<span class="_ _c"> </span>occurred<span class="_ _f"> </span>instead<span class="_ _c"> </span>of</span></div><div class="t m0 x33 hb y33b ff4 fs6 fc0 sc0 ls0 ws0">raising<span class="_ _c"> </span>an<span class="_ _c"> </span>exception.<span class="_ _e"> </span>see</div><div class="t m0 x33 hc y33c ff8 fs4 fc0 sc0 ls0 ws0">Bitcoin:<span class="_ _2"> </span>9%<span class="_ _6"> </span>less<span class="_ _6"> </span>memory:<span class="_ _2"> </span>make<span class="_ _6"> </span>SaltedOutpointHasher<span class="_ _e"> </span>noexcept</div><div class="t m0 x13 ha y12 ff6 fs5 fc0 sc0 ls0 ws0">87/87</div><a class="l" href="https://github.com/bitcoin/bitcoin/pull/16957"><div class="d m1" style="border-style:none;position:absolute;left:49.168000px;bottom:48.297000px;width:321.046000px;height:11.125000px;background-color:rgba(255,255,255,0.000001);"></div></a></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
|
||
</div>
|
||
<div class="loading-indicator">
|
||
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAwAACAEBDAIDFgQFHwUIKggLMggPOgsQ/w1x/Q5v/w5w9w9ryhBT+xBsWhAbuhFKUhEXUhEXrhJEuxJKwBJN1xJY8hJn/xJsyhNRoxM+shNF8BNkZxMfXBMZ2xRZlxQ34BRb8BRk3hVarBVA7RZh8RZi4RZa/xZqkRcw9Rdjihgsqxg99BhibBkc5hla9xli9BlgaRoapho55xpZ/hpm8xpfchsd+Rtibxsc9htgexwichwdehwh/hxk9Rxedx0fhh4igB4idx4eeR4fhR8kfR8g/h9h9R9bdSAb9iBb7yFX/yJfpCMwgyQf8iVW/iVd+iVZ9iVWoCYsmycjhice/ihb/Sla+ylX/SpYmisl/StYjisfkiwg/ixX7CxN9yxS/S1W/i1W6y1M9y1Q7S5M6S5K+i5S6C9I/i9U+jBQ7jFK/jFStTIo+DJO9zNM7TRH+DRM/jRQ8jVJ/jZO8DhF9DhH9jlH+TlI/jpL8jpE8zpF8jtD9DxE7zw9/z1I9j1A9D5C+D5D4D8ywD8nwD8n90A/8kA8/0BGxEApv0El7kM5+ENA+UNAykMp7kQ1+0RB+EQ+7EQ2/0VCxUUl6kU0zkUp9UY8/kZByUkj1Eoo6Usw9Uw3300p500t3U8p91Ez11Ij4VIo81Mv+FMz+VM0/FM19FQw/lQ19VYv/lU1/1cz7Fgo/1gy8Fkp9lor4loi/1sw8l0o9l4o/l4t6l8i8mAl+WEn8mEk52Id9WMk9GMk/mMp+GUj72Qg8mQh92Uj/mUn+GYi7WYd+GYj6mYc62cb92ch8Gce7mcd6Wcb6mcb+mgi/mgl/Gsg+2sg+Wog/moj/msi/mwh/m0g/m8f/nEd/3Ic/3Mb/3Qb/3Ua/3Ya/3YZ/3cZ/3cY/3gY/0VC/0NE/0JE/w5wl4XsJQAAAPx0Uk5TAAAAAAAAAAAAAAAAAAAAAAABCQsNDxMWGRwhJioyOkBLT1VTUP77/vK99zRpPkVmsbbB7f5nYabkJy5kX8HeXaG/11H+W89Xn8JqTMuQcplC/op1x2GZhV2I/IV+HFRXgVSN+4N7n0T5m5RC+KN/mBaX9/qp+pv7mZr83EX8/N9+5Nip1fyt5f0RQ3rQr/zo/cq3sXr9xrzB6hf+De13DLi8RBT+wLM+7fTIDfh5Hf6yJMx0/bDPOXI1K85xrs5q8fT47f3q/v7L/uhkrP3lYf2ryZ9eit2o/aOUmKf92ILHfXNfYmZ3a9L9ycvG/f38+vr5+vz8/Pv7+ff36M+a+AAAAAFiS0dEQP7ZXNgAAAj0SURBVFjDnZf/W1J5Fsf9D3guiYYwKqglg1hqplKjpdSojYizbD05iz5kTlqjqYwW2tPkt83M1DIm5UuomZmkW3bVrmupiCY1mCNKrpvYM7VlTyjlZuM2Y+7nXsBK0XX28xM8957X53zO55z3OdcGt/zi7Azbhftfy2b5R+IwFms7z/RbGvI15w8DdkVHsVi+EGa/ZZ1bYMDqAIe+TRabNv02OiqK5b8Z/em7zs3NbQO0GoD0+0wB94Ac/DqQEI0SdobIOV98Pg8AfmtWAxBnZWYK0vYfkh7ixsVhhMDdgZs2zc/Pu9HsVwc4DgiCNG5WQoJ/sLeXF8070IeFEdzpJh+l0pUB+YBwRJDttS3cheJKp9MZDMZmD5r7+vl1HiAI0qDtgRG8lQAlBfnH0/Miqa47kvcnccEK2/1NCIdJ96Ctc/fwjfAGwXDbugKgsLggPy+csiOZmyb4LiEOjQMIhH/YFg4TINxMKxxaCmi8eLFaLJVeyi3N2eu8OTctMzM9O2fjtsjIbX5ewf4gIQK/5gR4uGP27i5LAdKyGons7IVzRaVV1Jjc/PzjP4TucHEirbUjEOyITvQNNH+A2MLj0NYDAM1x6RGk5e9raiQSkSzR+XRRcUFOoguJ8NE2kN2XfoEgsUN46DFoDlZi0DA3Bwiyg9TzpaUnE6kk/OL7xgdE+KBOgKSkrbUCuHJ1bu697KDrGZEoL5yMt5YyPN9glo9viu96GtEKQFEO/34tg1omEVVRidBy5bUdJXi7R4SIxWJzPi1cYwMMV1HO10gqnQnLFygPEDxSaPPuYPlEiD8B3IIrqDevvq9ytl1JPjhhrMBdIe7zaHG5oZn5sQf7YirgJqrV/aWHLPnPCQYis2U9RthjawHIFa0NnZcpZbCMTbRmnszN3mz5EwREJmX7JrQ6nU0eyFvbtX2dyi42/yqcQf40fnIsUsfSBIJIixhId7OCA7aA8nR3sTfF4EHn3d5elaoeONBEXXR/hWdzgZvHMrMjXWwtVczxZ3nwdm76fBvJfAvtajUgKPfxO1VHHRY5f6PkJBCBwrQcSor8WFIQFgl5RFQw/RuWjwveDGjr16jVvT3UBmXPYgdw0jPFOyCgEem5fw06BMqTu/+AGMeJjtrA8aGRFhJpqEejvlvl2qeqJC2J3+nSRHwhWlyZXvTkrLSEhAQuRxoW5RXA9aZ/yESUkMrv7IpffIWXbhSW5jkVlhQUpHuxHdbQt0b6ZcWF4vdHB9MjWNs5cgsAatd0szvu9rguSmFxWUVZSUmM9ERocbarPfoQ4nETNtofiIvzDIpCFUJqzgPFYI+rVt3k9MH2ys0bOFw1qG+R6DDelnmuYAcGF38vyHKxE++M28BBu47PbrE5kR62UB6qzSFQyBtvVZfDdVdwF2tO7jsrugCK93Rxoi1mf+QHtgNOyo3bxgsEis9i+a3BAA8GWlwHNRlYmTdqkQ64DobhHwNuzl0mVctKGKhS5jGBfW5mdjgJAs0nbiP9KyCVUSyaAwAoHvSPXGYMDgjRGCq0qgykE64/WAffrP5bPVl6ToJeZFFJDMCkp+/BUjUpwYvORdXWi2IL8uDR2NjIdaYJAOy7UpnlqlqHW3A5v66CgbsoQb3PLT2MB1mR+BkWiqTvACAuOnivEwFn82TixYuxsWYTQN6u7hI6Qg3KWvtLZ6/xy2E+rrqmCHhfiIZCznMyZVqSAAV4u4Dj4GwmpiYBoYXxeKSWgLvfpRaCl6qV4EbK4MMNcKVt9TVZjCWnIcjcgAV+9K+yXLCY2TwyTk1OvrjD0I4027f2DAgdwSaNPZ0xQGFq+SAQDXPvMe/zPBeyRFokiPwyLdRUODZtozpA6GeMj9xxbB24l4Eo5Di5VtUMdajqHYHOwbK5SrAVz/mDUoqzj+wJSfsiwJzKvJhh3aQxdmjsnqdicGCgu097X3G/t7tDq2wiN5bD1zIOL1aZY8fTXZMFAtPwguYBHvl5Soj0j8VDSEb9vQGN5hbS06tUqapIuBuHDzoTCItS/ER+DiUpU5C964Ootk3cZj58cdsOhycz4pvvXGf23W3q7I4HkoMnLOkR0qKCUDo6h2TtWgAoXvYz/jXZH4O1MQIzltiuro0N/8x6fygsLmYHoVOEIItnATyZNg636V8Mm3eDcK2avzMh6/bSM6V5lNwCjLAVMlfjozevB5mjk7qF0aNR1x27TGsoLC3dx88uwOYQIGsY4PmvM2+mnyO6qVGL9sq1GqF1By6dE+VRThQX54RG7qESTUdAfns7M/PGwHs29WrI8t6DO6lWW4z8vES0l1+St5dCsl9j6Uzjs7OzMzP/fnbKYNQjlhcZ1lt0dYWkinJG9JeFtLIAAEGPIHqjoW3F0fpKRU0e9aJI9Cfo4/beNmwwGPTv3hhSnk4bf16JcOXH3yvY/CIJ0LlP5gO8A5nsHDs8PZryy7TRgCxnLq+ug2V7PS+AWeiCvZUx75RhZjzl+bRxYkhuPf4NmH3Z3PsaSQXfCkBhePuf8ZSneuOrfyBLEYrqchXcxPYEkwwg1Cyc4RPA7Oyvo6cQw2ujbhRRLDLXdimVVVQgUjBGqFy7FND2G7iMtwaE90xvnHr18BekUSHHhoe21vY+Za+yZZ9zR13d5crKs7JrslTiUsATFDD79t2zU8xhvRHIlP7xI61W+3CwX6NRd7WkUmK0SuVBMpHo5PnncCcrR3g+a1rTL5+mMJ/f1r1C1XZkZASITEttPCWmoUel6ja1PwiCrATxKfDgXfNR9lH9zMtxJIAZe7QZrOu1wng2hTGk7UHnkI/b39IgDv8kdCXb4aFnoDKmDaNPEITJZDKY/KEObR84BTqH1JNX+mLBOxCxk7W9ezvz5vVr4yvdxMvHj/X94BT11+8BxN3eJvJqPvvAfaKE6fpa3eQkFohaJyJzGJ1D6kmr+m78J7iMGV28oz0ygRHuUG1R6e3TqIXEVQHQ+9Cz0cYFRAYQzMMXLz6Vgl8VoO0lsMeMoPGpqUmdZfiCbPGr/PRF4i0je6PBaBSS/vjHN35hK+QnoTP+//t6Ny+Cw5qVHv8XF+mWyZITVTkAAAAASUVORK5CYII="/>
|
||
</div>
|
||
</body>
|
||
</html>
|