{"id":601,"date":"2014-12-29T14:45:45","date_gmt":"2014-12-29T13:45:45","guid":{"rendered":"http:\/\/numbercrunch.de\/blog\/?p=601"},"modified":"2023-01-10T12:34:16","modified_gmt":"2023-01-10T11:34:16","slug":"c1114-for-scientific-computing-iii","status":"publish","type":"post","link":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/","title":{"rendered":"C++11\/14 for scientific computing III"},"content":{"rendered":"<h2>Mathematical functions<\/h2>\n<p style=\"text-align: justify;\">C++11\/14 introduces several new mathematical functions, which are all overloaded for the types <code>float<\/code>, <code>double<\/code> and <code>long double<\/code> and that are defined in the header file <code>cmath<\/code>. The following table summerizes the new functions.<\/p>\n<table>\n<tbody>\n<tr>\n<td colspan=\"2\"><strong>Basic operations<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/remainder\">remainder<\/a><\/td>\n<td>signed remainder of the division operation<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/remquo\">remquo<\/a><\/td>\n<td>signed remainder as well as the three last bits of the division operation<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/fma\">fma<\/a><\/td>\n<td>fused multiply-add operation<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/fmax\">fmax<\/a><\/td>\n<td>larger of two floating point values<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/fmin\">fmin<\/a><\/td>\n<td>smaller of two floating point values<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/fdim\">fdim<\/a><\/td>\n<td>positive difference of two floating point values ($\\max(0, x-y)$)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/nan\">nan, nanf, nanl<\/a><\/td>\n<td>not-a-number (NaN)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5>Exponential functions<\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/exp2\">exp2<\/a><\/td>\n<td>returns $2$ raised to the given power ($2^x$)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/expm1\">expm1<\/a><\/td>\n<td>returns <i>e<\/i> raised to the given power, minus one ($\\exp x -1$)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/log2\">log2<\/a><\/td>\n<td>base 2 logarithm of the given number ($\\log_2x$)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/log1p\">log1p<\/a><\/td>\n<td>natural logarithm of 1 plus the given number ($\\ln(1+x)$)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5>Power functions<\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/cbrt\">cbrt<\/a><\/td>\n<td>computes cubic root ($\\sqrt[3]{x}$)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/hypot\">hypot<\/a><\/td>\n<td>computes square root of the sum of the squares of two given numbers ($\\sqrt{x^2+y^2}$)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5>Hyperbolic functions<\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/asinh\">asinh<\/a><\/td>\n<td>computes the inverse hyperbolic sine<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/acosh\">acosh<\/a><\/td>\n<td>computes the inverse hyperbolic cosine<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/atanh\">atanh<\/a><\/td>\n<td>computes the inverse hyperbolic tangent<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5>Error and gamma functions<\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/erf\">erf<\/a><\/td>\n<td>error function<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/erfc\">erfc<\/a><\/td>\n<td>complementary error function<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/tgamma\">tgamma<\/a><\/td>\n<td>gamma function<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/lgamma\">lgamma<\/a><\/td>\n<td>natural logarithm of the gamma function<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5>Nearest integer floating point operations<\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/trunc\">trunc<\/a><\/td>\n<td>nearest integer not greater in magnitude than the given value<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/round\">round, lround, llround<\/a><\/td>\n<td>nearest integer, rounding away from zero in halfway cases<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/nearbyint\">nearbyint<\/a><\/td>\n<td>nearest integer using current rounding mode<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/rint\">rint, lrint, llrint<\/a><\/td>\n<td>nearest integer using current rounding mode with exception if the result differs<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5>Floating point manipulation functions<\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/scalbn\">scalbn, scalbln<\/a><\/td>\n<td>multiplies a number by <a href=\"http:\/\/en.cppreference.com\/w\/cpp\/types\/climits\">FLT_RADIX<\/a> raised to a power<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/ilogb\">ilogb<\/a><\/td>\n<td>extracts exponent of the number<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/logb\">logb<\/a><\/td>\n<td>extracts exponent of the number<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/nextafter\">nextafter, nexttoward<\/a><\/td>\n<td>next representable floating point value towards the given value<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/copysign\">copysign<\/a><\/td>\n<td>copies the sign of a floating point value<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">\n<h5><span id=\"Classification_and_comparison\" class=\"mw-headline\"> Classification and comparison <\/span><\/h5>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/fpclassify\">fpclassify<\/a><\/td>\n<td>categorizes the given floating point value<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isfinite\">isfinite<\/a><\/td>\n<td>checks if the given number has finite value<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isinf\">isinf<\/a><\/td>\n<td>checks if the given number is infinite<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isnan\">isnan<\/a><\/td>\n<td>checks if the given number is NaN<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isnormal\">isnormal<\/a><\/td>\n<td>checks if the given number is normal<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/signbit\">signbit<\/a><\/td>\n<td>checks if the given number is negative<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isgreater\">isgreater<\/a><\/td>\n<td>checks if the first floating-point argument is greater than the second<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isgreaterequal\">isgreaterequal<\/a><\/td>\n<td>checks if the first floating-point argument is greater or equal than the second<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isless\">isless<\/a><\/td>\n<td>checks if the first floating-point argument is less than the second<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/islessequal\">islessequal<\/a><\/td>\n<td>checks if the first floating-point argument is less or equal than the second<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/islessgreater\">islessgreater<\/a><\/td>\n<td>checks if the first floating-point argument is less or greater than the second<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/isunordered\">isunordered<\/a><\/td>\n<td>checks if two floating-point values are unordered<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Minimum maximum functions<\/h2>\n<p style=\"text-align: justify;\">The header file <a href=\"http:\/\/en.cppreference.com\/w\/cpp\/algorithm\"><code>algorithm<\/code><\/a> defines template functions for determining the minimum or the maximum of two comparable objects of the same type, e.g., numbers. In C++11 overloaded versions of these functions have been introduced that allow to determine the minimum or the maximum of an arbitrary number of objects, which are passed via an <a href=\"http:\/\/en.cppreference.com\/w\/cpp\/utility\/initializer_list\">initializer list<\/a>. Furthermore, <code><code><\/code><\/code><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/algorithm\/minmax\">minmax<\/a> determines both the minimum and the maximum in a single scan. The following code gives an illustrative example.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">#include &lt;iostream&gt;\n#include &lt;algorithm&gt;\n\nint main() {\n  int i0(0), i1(1), i2(2), i3(3), i4(4);\n  \/\/ determine minimum and maximum seperately\n  std::cout &lt;&lt; \"min : \" &lt;&lt; std::min({i3, i1, i2, i0, i4}) &lt;&lt; '\\n'\n        &lt;&lt; \"max : \" &lt;&lt; std::max({i3, i1, i2, i0, i4}) &lt;&lt; '\\n';\n  \/\/ determine minimum and maximum in a single scan\n  auto min_max=std::minmax({i3, i1, i2, i0, i4});\n  std::cout &lt;&lt; \"min : \" &lt;&lt; min_max.first &lt;&lt; '\\n'\n        &lt;&lt; \"max : \" &lt;&lt; min_max.second &lt;&lt; '\\n';\n}\n\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Mathematical functions C++11\/14 introduces several new mathematical functions, which are all overloaded for the types float, double and long double and that are defined in the header file cmath. The following table summerizes the new functions. Basic operations remainder signed remainder of the division operation remquo signed remainder as well as the three last bits&hellip; <a href=\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">C++11\/14 for scientific computing III<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-601","post","type-post","status-publish","format-standard","hentry","category-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++11\/14 for scientific computing III - Number Crunch<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++11\/14 for scientific computing III - Number Crunch\" \/>\n<meta property=\"og:description\" content=\"Mathematical functions C++11\/14 introduces several new mathematical functions, which are all overloaded for the types float, double and long double and that are defined in the header file cmath. The following table summerizes the new functions. Basic operations remainder signed remainder of the division operation remquo signed remainder as well as the three last bits&hellip; Continue reading C++11\/14 for scientific computing III\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\" \/>\n<meta property=\"og:site_name\" content=\"Number Crunch\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-29T13:45:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-10T11:34:16+00:00\" \/>\n<meta name=\"author\" content=\"Heiko Bauke\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Heiko Bauke\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\"},\"author\":{\"name\":\"Heiko Bauke\",\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413\"},\"headline\":\"C++11\/14 for scientific computing III\",\"datePublished\":\"2014-12-29T13:45:45+00:00\",\"dateModified\":\"2023-01-10T11:34:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\"},\"wordCount\":503,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413\"},\"articleSection\":[\"C++\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\",\"url\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\",\"name\":\"C++11\/14 for scientific computing III - Number Crunch\",\"isPartOf\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#website\"},\"datePublished\":\"2014-12-29T13:45:45+00:00\",\"dateModified\":\"2023-01-10T11:34:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.numbercrunch.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++11\/14 for scientific computing III\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#website\",\"url\":\"https:\/\/www.numbercrunch.de\/blog\/\",\"name\":\"Number Crunch\",\"description\":\"A computational science blog.\",\"publisher\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.numbercrunch.de\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413\",\"name\":\"Heiko Bauke\",\"logo\":{\"@id\":\"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C++11\/14 for scientific computing III - Number Crunch","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/","og_locale":"en_US","og_type":"article","og_title":"C++11\/14 for scientific computing III - Number Crunch","og_description":"Mathematical functions C++11\/14 introduces several new mathematical functions, which are all overloaded for the types float, double and long double and that are defined in the header file cmath. The following table summerizes the new functions. Basic operations remainder signed remainder of the division operation remquo signed remainder as well as the three last bits&hellip; Continue reading C++11\/14 for scientific computing III","og_url":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/","og_site_name":"Number Crunch","article_published_time":"2014-12-29T13:45:45+00:00","article_modified_time":"2023-01-10T11:34:16+00:00","author":"Heiko Bauke","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Heiko Bauke","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#article","isPartOf":{"@id":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/"},"author":{"name":"Heiko Bauke","@id":"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413"},"headline":"C++11\/14 for scientific computing III","datePublished":"2014-12-29T13:45:45+00:00","dateModified":"2023-01-10T11:34:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/"},"wordCount":503,"commentCount":0,"publisher":{"@id":"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413"},"articleSection":["C++"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/","url":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/","name":"C++11\/14 for scientific computing III - Number Crunch","isPartOf":{"@id":"https:\/\/www.numbercrunch.de\/blog\/#website"},"datePublished":"2014-12-29T13:45:45+00:00","dateModified":"2023-01-10T11:34:16+00:00","breadcrumb":{"@id":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.numbercrunch.de\/blog\/2014\/12\/c1114-for-scientific-computing-iii\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.numbercrunch.de\/blog\/"},{"@type":"ListItem","position":2,"name":"C++11\/14 for scientific computing III"}]},{"@type":"WebSite","@id":"https:\/\/www.numbercrunch.de\/blog\/#website","url":"https:\/\/www.numbercrunch.de\/blog\/","name":"Number Crunch","description":"A computational science blog.","publisher":{"@id":"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.numbercrunch.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/e73eab65b1721dd0c3d408edb887e413","name":"Heiko Bauke","logo":{"@id":"https:\/\/www.numbercrunch.de\/blog\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/posts\/601"}],"collection":[{"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/comments?post=601"}],"version-history":[{"count":24,"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/posts\/601\/revisions"}],"predecessor-version":[{"id":969,"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/posts\/601\/revisions\/969"}],"wp:attachment":[{"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/media?parent=601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/categories?post=601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.numbercrunch.de\/blog\/wp-json\/wp\/v2\/tags?post=601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}