{"id":40,"date":"2009-08-06T11:57:12","date_gmt":"2009-08-06T16:57:12","guid":{"rendered":"http:\/\/www.essentialmath.com\/blog\/?p=40"},"modified":"2009-10-25T21:24:45","modified_gmt":"2009-10-26T02:24:45","slug":"mike-acton-takes-on-c-math-libraries","status":"publish","type":"post","link":"https:\/\/www.essentialmath.com\/blog\/?p=40","title":{"rendered":"Mike Acton Takes on C++ Math Libraries"},"content":{"rendered":"<p>A couple weeks ago, Mike Acton, head of Core Technologies at Insomniac (where I&#8217;m now working, btw) posted <a href=\"http:\/\/macton.smugmug.com\/gallery\/8936708_T6zQX\">this reaming of some standard C++ math code<\/a>. I think it&#8217;s an excellent read if you&#8217;re interested in deeply optimizing your math code, in particular for consoles, and in particular for the PS3.<\/p>\n<p>Of course, posting this at all is a bit uncomfortable from where I&#8217;m sitting.\u00a0 I think it&#8217;s safe to say that if you were to compare our library code to what he is, er, analyzing, you&#8217;d find some significant similarities. However, our libraries were mainly designed to teach <em>mathematical<\/em> concepts rather than optimization concepts. As such, you end up with classes that represent mathematical entities, e.g. Planes, Spheres, Lines, etc. and simple code that emphasizes clarity. That said &#8212; as Mike&#8217;s slides aptly demonstrate &#8212; if you&#8217;re trying to squeeze every cycle out of the machine there are other ways to organize your data and code, and in fairness we didn&#8217;t address that much at all.\u00a0 In retrospect this was an unfortunate oversight. I&#8217;d say more emphasis on optimization would be a good addition to the Third Edition, but I&#8217;m not sure what my family would think of another book&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple weeks ago, Mike Acton, head of Core Technologies at Insomniac (where I&#8217;m now working, btw) posted <a href=\"http:\/\/macton.smugmug.com\/gallery\/8936708_T6zQX\">this reaming of some standard C++ math code<\/a>. I think it&#8217;s an excellent read if you&#8217;re interested in deeply optimizing your math code, in particular for consoles, and in particular for the PS3.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,3],"tags":[],"class_list":["post-40","post","type-post","status-publish","format-standard","hentry","category-general","category-mathematical"],"_links":{"self":[{"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/40","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=40"}],"version-history":[{"count":3,"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/40\/revisions"}],"predecessor-version":[{"id":44,"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/40\/revisions\/44"}],"wp:attachment":[{"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=40"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=40"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.essentialmath.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=40"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}