{"id":374,"date":"2023-04-25T12:49:19","date_gmt":"2023-04-25T12:49:19","guid":{"rendered":"https:\/\/nag.com\/?page_id=374"},"modified":"2025-08-18T13:01:50","modified_gmt":"2025-08-18T13:01:50","slug":"automatic-differentiation","status":"publish","type":"page","link":"https:\/\/nag.com\/automatic-differentiation\/","title":{"rendered":"Automatic Differentiation"},"content":{"rendered":"\n<div class=\"gbc-banner--gradient df align-items--center-lg align-items--end\" style='background-color: #2d2321ff; '>\n\n    <img loading=\"lazy\" decoding=\"async\" width=\"1485\" height=\"760\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/Automation-Header.jpg\" class=\"bg-media half half-right\" alt=\"\" autoplay=\"1\" muted=\"1\" playsinline=\"1\" loop=\"1\" style=\"object-position: % %;\" \/>\n    <div class=\"fake-gradient vertical dn db-lg\" style=\"background: linear-gradient(90deg, #2d2321ff, transparent);\"><\/div>\n\n    <div class=\"fake-gradient horizontal db dn-lg\" style=\"background: linear-gradient(0deg,  #2d2321ff, transparent);\"><\/div>\n\n\n\n    <div class=\"container pb-2 pb-lg-0\">\n        <div class=\"row\">\n            <div class=\"col-12 col-lg-6\" style=\"color: #fff;\">\n                <div class=\"mb-2\"><h1><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Automatic Differentiation dco\/c++<\/h1>\n<\/div>\n                <div class=\"mb-3\"><p class=\"para-lg\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG continues to innovate in Automatic Differentiation with our pioneering solution for numerical sensitivity analysis.<\/p>\n<\/div>\n\n                <a href='https:\/\/nag.com\/contact-us\/' style='background-color: #e3b0a6ff; color: #000000ff; border-radius: 30px; font-weight: 600; ' class='btn mr-1  ' >Contact our experts <i class='fas fa-angle-right'><\/i><\/a>\n            <\/div>\n            <div class=\"col-12 col-lg-6\">\n\n                            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div class=\"gbc-title-banner tac ta-lg ta-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-4 \" style=\"0pxbackground-color: \">\n                                <div class=\"col-12 col-md-10 col-lg-8 col-xl-6  banner-content\"  >\n    \n                                             <h2 class=\"p1\">Enhanced Intelligence, Expert Support<\/h2>\n                    \n                    <div class=\"mt-1 mb-1 content\"><p class=\"p1\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG dco\/c++ calculates mathematical derivatives with machine accuracy, up to 36,000x faster than alternative methods. Built to vastly enhance decision-making by improving computational runtime and memory use for numerical sensitivity analysis.<\/p>\n<p class=\"p1\">Commercially supported and continuously updated by <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG experts, dco\/c++ delivers enhanced data and opportunity across engineering, science, and banking.<\/p>\n<\/div>\n\n                    \n                    <a href='https:\/\/nag.com\/buy-now\/' style='background-color: #00000000; border: 2px solid #b68d85ff; border-radius: 30px; font-weight: 600; ' class='btn mr-1 outline ' >Buy now <i class='fas fa-angle-right'><\/i><\/a>                <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<div class=\"content-image-split pv-4  ph-1 \" style=\"background-color: ;\" >\n    <div class=\"container\">\n        <div class=\"row ph-1\">\n            <div class=\"col-12  card-rounded\" >\n\n                <div class=\"row fdir-cr fdir-r-lg \">\n                    <div class=\"content-side df pv-3 ph-1 ph-lg-5 ph-xl-8 c-primary--white col-12 col-lg-6\" style=\"\n                    background-color: ;\n                    color: #000000;\n                    align-items: center; \">\n\n                        <div>\n                                                        <p class=\"para-lg\"><span style=\"color: #b68d85;\"><strong><span class=\"semibold\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Automatic Differentiation dco\/c++<\/span><\/strong><\/span><\/p>\n<h2><span style=\"color: #000000;\">Feature Rich, <br \/>Highly Efficient<br \/><\/span><\/h2>\n<p>\u00a0<\/p>\n<p class=\"p1\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG dco\/c++ is the most powerful and widely used Automatic Differentiation technology for C++ on the market. It is a library of advanced mathematical and computer science algorithms built for calculating directional and adjoint derivatives of differentiable programs.<\/p>\n<p>\u00a0<\/p>\n<p class=\"p1\">dco\/c++ has been specifically designed and developed for continuous computational models. <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG dco\/c++ is the most feature-rich and efficient automatic differentiation solution available.<\/p>\n                                                    <\/div>\n\n                    <\/div>\n                    <div class=\"img-side small-image-holder col-12 col-lg-6 ph-0 df\" style=\"align-items: center; background-color: ;  color: #000000; \">\n                        <img loading=\"lazy\" decoding=\"async\" width=\"1110\" height=\"1320\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/04\/Nag-Salomon-Image.jpg\" class=\"card-rounded bg-media contain-lg\" alt=\"\" style=\"object-position: % %;\" \/>\n                        <div class=\"wrap \">\n                                                    <\/div>\n\n                    <\/div>\n                <\/div>\n\n\n            <\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-6 pt-xl-6\" ><\/div>\n\n\n<div class=\"gbc-title-banner ta ta-lg ta-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-0 \" style=\"0px\">\n                                <div class=\"col-12 col-md-12 col-lg-12 col-xl-12  banner-content\"  >\n    \n                                             <p class=\"para-lg\"><span style=\"color: #b68d85;\"><strong><span class=\"semibold\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Automatic Differentiation dco\/c++<\/span><\/strong><\/span><\/p>\n<h2><span style=\"color: #000000;\">Case Studies<\/span><\/h2>\n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n \n<div class=\"slider slider-general oh pv-2\" >\n    <div class=\"container\">\n        <div class=\"row\">\n            <div class=\"col-12\">\n                <!-- Slider main container -->\n                <div class=\"swiper\" style=\"overflow: visible;\"  data-swiper='{\"slidesPerView\": 1.5, \"centeredSlides\": false, \"speed\": 1000, \"spaceBetween\": 30,   \"navigation\": { \"nextEl\": \".swiper-button-next\", \"prevEl\": \".swiper-button-prev\" },\n   \"pagination\": {\"el\": \".swiper-pagination\", \"clickable\": true},  \"breakpoints\": {\n    \"576\": {\n      \"slidesPerView\": 1.5    },\n    \"850\": {\n        \"slidesPerView\": 2.5    },\n    \"1140\": {\n      \"slidesPerView\": 4.5    }\n  } }'>\n\n    \n                <div class=\"swiper-wrapper\">\n                                                <div class=\"swiper-slide card-rounded--half\" style='background-color: #f9efedff; color: #082d48ff; '>\n                                                                    <a href=\"https:\/\/nag.com\/case-studies\/dekabank-improves-modelling-accuracy-and-risk-management-with-nag-dco-c\/\">\n                                    \n                                <div class=\"small-image-holder aspect\">\n                                                                            <img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"532\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/06\/Placement-Area.jpg\" class=\"bg-media\" alt=\"\" style=\"object-position: % %;\" \/>                                    \n                                <\/div>\n\n                                <div class=\"swiper-slide__content ph-1 pv-1 slider-bg\">\n                                                                            <div class=\"mb-1\"><h4><span style=\"color: #082d48;\">DekaBank Improves Modelling Accuracy<\/span><\/h4>\n<\/div>\n                                    \n                                                                            <div class=\"mt-1\"><p>DekaBank wanted better risk management, more accurate pricing and to support the bank\u2019s<\/p>\n<\/div>\n                                    \n\n\n                                <\/div>\n\n    \n                                                                    <\/a>\n                                                            <\/div>\n                                                    <div class=\"swiper-slide card-rounded--half\" style='background-color: #f9efedff; color: #082d48ff; '>\n                                                                    <a href=\"https:\/\/nag.com\/case-studies\/team-sonnenwagen-optimize-solar-racing-car-aerodynamics-using-nag-algorithmic-differentiation-software-tool-dco-c\/\">\n                                    \n                                <div class=\"small-image-holder aspect\">\n                                                                            <img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"421\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/06\/team_sonnenwagen-1.jpeg\" class=\"bg-media\" alt=\"Team Sonnewagen\" style=\"object-position: % %;\" \/>                                    \n                                <\/div>\n\n                                <div class=\"swiper-slide__content ph-1 pv-1 slider-bg\">\n                                                                            <div class=\"mb-1\"><h4><span style=\"color: #082d48;\">Team Sonnenwagen Optimize Solar Racing Car<\/span><\/h4>\n<\/div>\n                                    \n                                                                            <div class=\"mt-1\"><p>Team Sonnenwagen is a group of students from the Aachen Universities. They participated<\/p>\n<\/div>\n                                    \n\n\n                                <\/div>\n\n    \n                                                                    <\/a>\n                                                            <\/div>\n                                                    <div class=\"swiper-slide card-rounded--half\" style='background-color: #f9efedff; color: #082d48ff; '>\n                                                                    <a href=\"https:\/\/nag.com\/case-studies\/reverse-mode-ad-faster-risk-management-better-pricing-and-cheaper-compute\/\">\n                                    \n                                <div class=\"small-image-holder aspect\">\n                                                                            <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/06\/bank-2-1024x720.jpg\" class=\"bg-media\" alt=\"\" \/>                                    \n                                <\/div>\n\n                                <div class=\"swiper-slide__content ph-1 pv-1 slider-bg\">\n                                                                            <div class=\"mb-1\"><h4><span style=\"color: #082d48;\">Reverse Mode AD = Faster Risk Management, Better Pricing, and Cheaper Computer<\/span><\/h4>\n<\/div>\n                                    \n                                                                            <div class=\"mt-1\"><p>How can banks best manage CVA risk to protect revenue,<br \/>remain agile under pressure<\/p>\n<\/div>\n                                    \n\n\n                                <\/div>\n\n    \n                                                                    <\/a>\n                                                            <\/div>\n                            \n    \n                <\/div>\n    \n    \n                  <!-- If we need navigation buttons -->\n                  <div class=\"swiper-button-prev\">\n                    <i class=\"fa-solid fa-angle-left\" style=\"font-size: 30px;color: #d3d3d3;\"><\/i>\n                  <\/div>\n                  <div class=\"swiper-button-next\">\n                        <i class=\"fa-solid fa-angle-right\" style=\"font-size: 30px;color: #d3d3d3;\"><\/i>\n                  <\/div>\n    \n\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n\n\nvar sliderSelector = '.swiper',\n        defaultOptions = {\n          breakpointsInverse: true,\n          observer: true\n        };\n\n\n    var nSlider = document.querySelectorAll(sliderSelector);\n\n    [].forEach.call(nSlider, function( slider, index, arr )\n\t{\n\t\tvar data = slider.getAttribute('data-swiper') || {};\n\n\t\tif (data)\n\t\t{\n\t\t\tvar dataOptions = JSON.parse(data);\n\t\t}\n\n        console.log(dataOptions)\n\n\t\tslider.options = Object.assign({}, defaultOptions, dataOptions);\n\n\t\tvar swiper = new Swiper(slider, slider.options);\n\n\t\tconsole.log(slider.options.autoplay)\n\n\t\t\/* stop on hover *\/\n\t\tif ( typeof slider.options.autoplay !== 'undefined' && slider.options.autoplay !== false )\n\t\t{\n\t\t\tslider.addEventListener('mouseenter', function(e) {\n\t\t\t\tswiper.autoplay.stop();\n\t\t\t\tconsole.log('stop')\n\t\t\t});\n\n\t\t\tslider.addEventListener('mouseleave', function(e) {\n\t\t\t\tswiper.autoplay.start();\n\t\t\t\tconsole.log('start')\n\t\t\t});\n\t\t}\n\t});\n\n\n<\/script>\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-6 pt-xl-6\" ><\/div>\n\n\n<div class=\"content-image-split  pv-2\" >\n    <div class=\"container\">\n\n        <div class=\"row mh-0 card-rounded\" style=\"background-color: ; background: linear-gradient(45deg, #e3b0a6ff, #2d2321ff);\">\n        <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"190\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/04\/Group-22006-1024x190.jpg\" class=\"bg-media\" alt=\"\" \/>\n                <div class=\"col-12 col-xl-6 order-2 order-xl-1 offset-xl-6 bg-secondary content-secondary para content-area-default\" >\n            \n            <div class=\"wrap pv-2 ph-1 ph-lg-4\">\n                <h2><span style=\"color: #ffffff;\">Want to Learn More About <span style=\"white-space: nowrap;\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG dco\/c++?<\/span><\/span><\/h2>\n                                <div class=\"mt-half\"><\/div><a href='https:\/\/nag.com\/contact-us\/' style='background-color: #e3b0a6ff; color: #000000; border-radius: 30px; font-weight: 600; ' class='btn mr-1  ' >Ask us anything <i class='fas fa-angle-right'><\/i><\/a>            <\/div>\n\n\n        <\/div>\n\n             \n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n\n<div class=\"gbc-title-banner ta ta-lg ta-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-2 \" style=\"0pxbackground-color: \">\n                                <div class=\"col-12 col-md-12 col-lg-12 col-xl-12  banner-content\"  >\n    \n                                             <p class=\"para-lg\"><span style=\"color: #b68d85;\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Automatic Differentiation dco\/c++<\/span><\/p>\n<h2><span style=\"color: #2d2321;\">Why Choose <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG dco\/c++?<\/span><\/h2>\n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n\n\n    <div class=\"bento-accordion pv-0\" >\n        <div class=\"container\" >\n\n            <div class=\"ph-1\">\n                <div class=\"row card-rounded\" style='background-color: #2d2321ff; color: #ffffffff; '>\n                    <div class=\"dn db-md col-12 col-md-6 image-or-video small-image-holder aspect\">\n                        <img loading=\"lazy\" decoding=\"async\" width=\"1140\" height=\"1096\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/04\/alexandr-bormotin-IC-rT20S_F8-unsplash.jpg\" class=\"bg-media scrollPlay\" alt=\"\" style=\"object-position: % %;\" \/>                    <\/div>\n                    <div class=\"col-12 col-md-6\">\n                \n                    <div class=\"fake-gradient vertical dn db-lg\" style=\"background: linear-gradient(270deg, #2d2321ff, transparent); width: 20%; height: 100%; left: -20%;\"><\/div>\n                        <div class=\"row justify-content--center wrap ml-0 mr-0\">\n                            <div class=\"col-12 col-md-10 df align-items--center pv-2\">\n                                <div style=\"display: contents;\">\n                                                                        <div class=\"accordion card-rounded\" style='background-color: #e3b0a6ff; '>\n                                                                                    <div class=\"accordion-item active\" style=\"border-bottom: 3px solid #2d2321ff;\">\n                                                <div class=\"accordion-header ph-2 pv-1 title pr-4\">\n                                                    <div class=\" ph-md-0\"><h3><span style=\"color: #ffffff;\">Derivatives Up To 36,000x Faster<\/span><\/h3><\/div>\n                                                    <img decoding=\"async\" src=\"https:\/\/nag.com\/wp-content\/themes\/nag\/assets\/images\/accord-arrow.png\" alt=\"\">\n                                                <\/div>\n                                                <div class=\"accordion-content pr-md-2\">\n                                                    <div class=\"ph-2\">\n                \n                                                        <img loading=\"lazy\" decoding=\"async\" width=\"1140\" height=\"1096\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/04\/alexandr-bormotin-IC-rT20S_F8-unsplash.jpg\" class=\"db dn-md card-rounded mb-1 scrollPlay\" alt=\"\" style=\"object-position: % %;\" \/>                                                        <div class=\"mb-2\"><p>dco\/c++ provides low cost accurate first and higher-order tangent\/directional and adjoint derivatives faster than alternative methods. In our studies we have seen examples of 36,000x speed-up.<\/p>\n<\/div>\n                                                    <\/div>\n                                                <\/div>\n                                            <\/div>\n                                                                                    <div class=\"accordion-item \" style=\"border-bottom: 3px solid #2d2321ff;\">\n                                                <div class=\"accordion-header ph-2 pv-1 title pr-4\">\n                                                    <div class=\" ph-md-0\"><h3><span style=\"color: #ffffff;\">Robustness<\/span><\/h3><\/div>\n                                                    <img decoding=\"async\" src=\"https:\/\/nag.com\/wp-content\/themes\/nag\/assets\/images\/accord-arrow.png\" alt=\"\">\n                                                <\/div>\n                                                <div class=\"accordion-content pr-md-2\">\n                                                    <div class=\"ph-2\">\n                \n                                                        <img loading=\"lazy\" decoding=\"async\" width=\"5120\" height=\"2880\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/05\/robust_dco.jpg\" class=\"db dn-md card-rounded mb-1 scrollPlay\" alt=\"\" style=\"object-position: % %;\" \/>                                                        <div class=\"mb-2\"><p>dco\/c++ is stringently tested and backed by over 50 years of experience and expertise. \u200bdco\/c++ is a<span class=\"TextRun SCXW144196083 BCX0\" lang=\"EN-GB\" xml:lang=\"EN-GB\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\">\u00a0robust,<\/span> <span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\">commercially<\/span><span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\"> backed product, <\/span><span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\">continuously <\/span><span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\">maintained<\/span><span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\"> and updated<\/span><span class=\"NormalTextRun SCXW144196083 BCX0\" data-ccp-parastyle=\"Default\">. <\/span><\/span>We deliver a robustness \u200bothers can not, which can be the difference between success \u200band failure.\u200b<\/p>\n<\/div>\n                                                    <\/div>\n                                                <\/div>\n                                            <\/div>\n                                                                                    <div class=\"accordion-item \" style=\"border-bottom: 3px solid #2d2321ff;\">\n                                                <div class=\"accordion-header ph-2 pv-1 title pr-4\">\n                                                    <div class=\" ph-md-0\"><h3><span style=\"color: #ffffff;\">Enhanced Intelligence<\/span><\/h3><\/div>\n                                                    <img decoding=\"async\" src=\"https:\/\/nag.com\/wp-content\/themes\/nag\/assets\/images\/accord-arrow.png\" alt=\"\">\n                                                <\/div>\n                                                <div class=\"accordion-content pr-md-2\">\n                                                    <div class=\"ph-2\">\n                \n                                                        <img loading=\"lazy\" decoding=\"async\" width=\"5120\" height=\"2880\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/05\/enhanced_intelligence.jpg\" class=\"db dn-md card-rounded mb-1 scrollPlay\" alt=\"\" style=\"object-position: % %;\" \/>                                                        <div class=\"mb-2\"><p><span class=\"TextRun SCXW96317966 BCX0\" lang=\"EN-GB\" xml:lang=\"EN-GB\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\" data-ccp-charstyle-defn=\"{&quot;ObjectId&quot;:&quot;f9ae1244-364b-4453-a49e-ac757b9aa736|69&quot;,&quot;ClassId&quot;:1073872969,&quot;Properties&quot;:[469775450,&quot;A4&quot;,201340122,&quot;1&quot;,134233614,&quot;true&quot;,469778129,&quot;A4&quot;,335572020,&quot;99&quot;,201342446,&quot;1&quot;,201342448,&quot;1&quot;,201342449,&quot;1&quot;,469777841,&quot;Calibri&quot;,469777842,&quot;Nunito&quot;,469777843,&quot;Calibri&quot;,469777844,&quot;Calibri&quot;,201341986,&quot;1&quot;,469769226,&quot;Calibri,Nunito&quot;,335551500,&quot;16777215&quot;,268442635,&quot;26&quot;]}\">d<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">co<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">\/<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">c++<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">\u00a0 provides<\/span> <\/span>enhanced intelligence<span class=\"TextRun SCXW96317966 BCX0\" lang=\"EN-GB\" xml:lang=\"EN-GB\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\"> that e<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">nabl<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">e<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">s<\/span> <span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">faster, better, more informed<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\"> decisions<\/span><span class=\"NormalTextRun SCXW96317966 BCX0\" data-ccp-charstyle=\"A4\">.<\/span><\/span><span class=\"EOP SCXW96317966 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<\/div>\n                                                    <\/div>\n                                                <\/div>\n                                            <\/div>\n                                                                                    <div class=\"accordion-item \" style=\"\">\n                                                <div class=\"accordion-header ph-2 pv-1 title pr-4\">\n                                                    <div class=\" ph-md-0\"><h3><span style=\"color: #ffffff;\">Backed by Science<\/span><\/h3><\/div>\n                                                    <img decoding=\"async\" src=\"https:\/\/nag.com\/wp-content\/themes\/nag\/assets\/images\/accord-arrow.png\" alt=\"\">\n                                                <\/div>\n                                                <div class=\"accordion-content pr-md-2\">\n                                                    <div class=\"ph-2\">\n                \n                                                        <img loading=\"lazy\" decoding=\"async\" width=\"5120\" height=\"2880\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/05\/Science_dco.jpg\" class=\"db dn-md card-rounded mb-1 scrollPlay\" alt=\"\" style=\"object-position: % %;\" \/>                                                        <div class=\"mb-2\"><p><span class=\"TextRun SCXW138207735 BCX0\" lang=\"EN-GB\" xml:lang=\"EN-GB\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\" data-ccp-charstyle-defn=\"{&quot;ObjectId&quot;:&quot;f9ae1244-364b-4453-a49e-ac757b9aa736|69&quot;,&quot;ClassId&quot;:1073872969,&quot;Properties&quot;:[469775450,&quot;A4&quot;,201340122,&quot;1&quot;,134233614,&quot;true&quot;,469778129,&quot;A4&quot;,335572020,&quot;99&quot;,201342446,&quot;1&quot;,201342448,&quot;1&quot;,201342449,&quot;1&quot;,469777841,&quot;Calibri&quot;,469777842,&quot;Nunito&quot;,469777843,&quot;Calibri&quot;,469777844,&quot;Calibri&quot;,201341986,&quot;1&quot;,469769226,&quot;Calibri,Nunito&quot;,335551500,&quot;16777215&quot;,268442635,&quot;26&quot;]}\">dco<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">\/<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">c++<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\"> is <\/span><\/span>backed by science<span class=\"TextRun SCXW138207735 BCX0\" lang=\"EN-GB\" xml:lang=\"EN-GB\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">.<\/span> <span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG ensures that o<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">ur product and your investment<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">s<\/span> <span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">are<\/span> <span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">future-proofed<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\"> through collaboration<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">, <\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\">innovation,<\/span><span class=\"NormalTextRun SCXW138207735 BCX0\" data-ccp-charstyle=\"A4\"> and investment.<\/span><\/span><span class=\"EOP SCXW138207735 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<\/div>\n                                                    <\/div>\n                                                <\/div>\n                                            <\/div>\n                                                                            <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                        <\/div>\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n\n<script>\n    const accordionItems = document.querySelectorAll('.accordion-item');\n    const imageOrVideo = document.querySelector('.image-or-video');\n\n    let isAnimating = false;\n\n    accordionItems.forEach(item => {\n        const header = item.querySelector('.accordion-header');\n        const content = item.querySelector('.accordion-content');\n\n        header.addEventListener('click', () => {\n            if (item.classList.contains('active')) return;\n            if (isAnimating) return;\n\n            isAnimating = true;\n\n            \/\/ Remove active class from all accordion items\n            accordionItems.forEach(item => {\n                item.classList.remove('active');\n                item.querySelector('.accordion-content').style.maxHeight = 0;\n            });\n\n            \/\/ Add active class to clicked item\n            item.classList.add('active');\n\n            content.style.maxHeight = content.scrollHeight + 'px';\n\n            \/\/ Fade out the image or video\n            imageOrVideo.style.opacity = 0;\n\n            \/\/ Change image or video based on accordion item content\n            let newMedia = '';\n            if (content.querySelector('img')) {\n                newMedia = `<img decoding=\"async\" src=\"${content.querySelector('img').src}\" class=\"bg-media\">`;\n            } else if (content.querySelector('video')) {\n                newMedia = `<video src=\"${content.querySelector('video').src}\" class=\"bg-media\"><\/video>`;\n            }\n\n            \/\/ Wait for the fade-out animation to complete before changing the media\n            setTimeout(() => {\n                imageOrVideo.innerHTML = newMedia;\n\n                \/\/ Fade in the new image or video\n                imageOrVideo.style.opacity = 1;\n\n                isAnimating = false;\n            }, 500);\n        });\n    });\n<\/script>\n\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-6 pt-xl-6\" ><\/div>\n\n\n<div class=\"gbc-title-banner ta ta-lg ta-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-1 \" style=\"0pxbackground-color: \">\n                                <div class=\"col-12 col-md-12 col-lg-12 col-xl-12  banner-content\"  >\n    \n                                             <p class=\"para-lg\"><span style=\"color: #b68d85;\"><strong><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Automatic Differentiation dco\/c++<\/strong><\/span><\/p>\n<h2><span style=\"color: #000000;\">How Can We Help You?<\/span><\/h2>\n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n\n<div class=\"tabs-bento\">\n    <div class=\"container\">\n\n        <div class=\"pv-2 card-rounded ph-1\" style='background-color: #f9efedff; color: #2d2321ff; '>\n            <div class=\"row\">\n                <div class=\"col-12 offset-lg-1\">\n                                    <button class=\"tabs-bento__btn btn mb-1 mb-lg-0 card-rounded--half active\">\n                        dco\/c++                    <\/button>\n                                        <button class=\"tabs-bento__btn btn mb-1 mb-lg-0 card-rounded--half \">\n                        Proof of Concept                    <\/button>\n                                        <button class=\"tabs-bento__btn btn mb-1 mb-lg-0 card-rounded--half \">\n                        Support                    <\/button>\n                                        <button class=\"tabs-bento__btn btn mb-1 mb-lg-0 card-rounded--half \">\n                        Training                    <\/button>\n                                    <\/div>\n            \n            <\/div>\n            <div class=\"row\">\n                <div class=\"offset-lg-1 col-12 col-lg-10\">\n                <div class=\"underline dn db-lg mt-1\">\n                    <div class=\"underline__line\"><\/div>\n                <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"row pt-2\">\n                                        <div class=\"tabs-bento__tab mb-2 mb-lg-0 col-12 col-lg-4  active offset-lg-1\">\n                            <h3 class=\"LC20lb MBeuO DKV0Md\"><span style=\"color: #000000;\">Derivative Code by Overloading Software<br \/><\/span><\/h3>\n<p>\u00a0<\/p>\n<p><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG dco\/c++ is a feature-rich library of advanced mathematical and computer science algorithms. It is built to vastly improve numerical sensitivity analysis and decision-making through enhanced intelligence.<\/p>\n<p>\u00a0<\/p>\n<p>dco\/c++ calculates first and higher-order tangent and adjoint derivatives up to 36,000x faster than alternative methods, and with machine accuracy. It is a robust, commercially backed, supported, continuously maintained and updated product. Ultimately, dco\/c++ delivers confidence, peace of mind and a competitive edge to any business using continuous computational models.\u00a0<\/p>\n                            <div class=\"mv-1\"><\/div>\n                                                    <\/div>\n                                                    <div class=\"tabs-bento__image offset-lg-1 col-12 col-lg-5  active\">\n                                <img loading=\"lazy\" decoding=\"async\" width=\"1689\" height=\"1000\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/08\/iStock-1450058573.jpg\" class=\"card-rounded\" alt=\"\" style=\"object-position: % %;\" \/>                            <\/div>\n                                                                    <div class=\"tabs-bento__tab mb-2 mb-lg-0 col-12 col-lg-4  dn offset-lg-1\">\n                            <h3><span style=\"color: #000000;\">Proof of Concept<\/span><\/h3>\n<p>\u00a0<\/p>\n<p><span class=\"ui-provider gl b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">An expert assessment of the impact that AD would bring to your modeling, and business function, giving you the confidence to move forward with an AD investment strategy.<\/span><\/p>\n<p><span class=\"ui-provider gl b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG AD experts collaborate with you to integrate an AD solution into your models. We provide assistance in evaluating the effectiveness of the solution, supporting you in demonstrating the impact of your investment.<\/span><\/p>\n<p>During implementation, <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG\u2019s AD Consultant Developers will work with you on: \u200b<\/p>\n<ul>\n<li>Success metrics \u200b<\/li>\n<li>Design support\u200b<\/li>\n<li>Debugging\u200b<\/li>\n<li>Performance tuning\u200b<\/li>\n<li>Handling library dependencies \u200b<\/li>\n<li>Selecting features\u200b<\/li>\n<\/ul>\n                            <div class=\"mv-1\"><\/div>\n                                                    <\/div>\n                                                    <div class=\"tabs-bento__image offset-lg-1 col-12 col-lg-5  dn\">\n                                <img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"800\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/AD_ProofOfConcept.png\" class=\"card-rounded\" alt=\"\" style=\"object-position: % %;\" \/>                            <\/div>\n                                                                    <div class=\"tabs-bento__tab mb-2 mb-lg-0 col-12 col-lg-4  dn offset-lg-1\">\n                            <h3><span style=\"color: #000000;\">Support<\/span><\/h3>\n<p>\u00a0<\/p>\n<p>With <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG there are no delays to projects and you can have maximum confidence in your operations. Our experts are always on hand to make sure you are safe in the knowledge that there will always be someone ready to help you.\u200b<\/p>\n<p>\u00a0<\/p>\n<p><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG will provide troubleshooting telephone, email, or video call support on API and features, triaging bugs and fixing them, and \u201cgeneral advice\u201d on AD to a level which ensures the customer gets the best out of the dco\/c++.\u200b<\/p>\n                            <div class=\"mv-1\"><\/div>\n                                                    <\/div>\n                                                    <div class=\"tabs-bento__image offset-lg-1 col-12 col-lg-5  dn\">\n                                <img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"800\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/AD_Support.png\" class=\"card-rounded\" alt=\"\" style=\"object-position: % %;\" \/>                            <\/div>\n                                                                    <div class=\"tabs-bento__tab mb-2 mb-lg-0 col-12 col-lg-4  dn offset-lg-1\">\n                            <h3><span style=\"color: #000000;\">Training<\/span><\/h3>\n<p>\u00a0<\/p>\n<p>Take advantage of the <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG world-class developers and their expert knowledge to train your teams to work with dco\/c++ in the most effective way for your business. Our comprehensive training ensures best practices are used and dco\/c++ is implemented in the most efficient way and is designed with your specific needs in mind.<\/p>\n                            <div class=\"mv-1\"><\/div>\n                                                    <\/div>\n                                                    <div class=\"tabs-bento__image offset-lg-1 col-12 col-lg-5  dn\">\n                                <img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"800\" src=\"https:\/\/nag.com\/wp-content\/uploads\/2023\/07\/AD_Training.png\" class=\"card-rounded\" alt=\"\" style=\"object-position: % %;\" \/>                            <\/div>\n                                                        <\/div>\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<script>\n\n    \/\/ doc ready\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\n\n    var tabsBentoContainers = document.querySelectorAll('.tabs-bento');\n\n    for (let index = 0; index < tabsBentoContainers.length; index++) {\n        const tabBento = tabsBentoContainers[index];\n\n\n        \/\/ get the width of the first .tabs-bento__btn and make .underline__line the same width\n        var firstTabBentoBtn = tabBento.querySelector('.tabs-bento__btn');\n        var underlineLine = tabBento.querySelector('.underline__line');\n        underlineLine.style.width = firstTabBentoBtn.offsetWidth + 'px';\n\n\n        tabBento.querySelectorAll('.tabs-bento__btn').forEach(tabBentoTab => {\n            tabBentoTab.addEventListener('click', function(){\n\n                tabBento.querySelectorAll('.tabs-bento__btn').forEach(tabBentoTab => {\n                    if (tabBentoTab.classList.contains('active')) {\n                        tabBentoTab.classList.remove('active');\n                    }\n                });\n                tabBentoTab.classList.add('active');\n\n                \/\/ get index of clicked element\n                var index = Array.prototype.indexOf.call(tabBentoTab.parentNode.children, tabBentoTab);\n\n\n                \/\/ Add .active class to .tabs-bento__tab\n                tabBento.querySelectorAll('.tabs-bento__tab').forEach(tabBentoTab => {\n                    if (tabBentoTab.classList.contains('active')) {\n                        tabBentoTab.classList.remove('active');\n                        \n                        if (tabBentoTab.nextElementSibling && tabBentoTab.nextElementSibling.classList.contains('tabs-bento__image')) {\n                            tabBentoTab.nextElementSibling.classList.remove('active');\n                        }\n                    }\n                });\n\n                tabBento.querySelectorAll('.tabs-bento__tab')[index].classList.add('active');\n\n                console.log(tabBentoTab.nextElementSibling)\n\n\n                if (tabBento.querySelectorAll('.tabs-bento__tab')[index].nextElementSibling && tabBento.querySelectorAll('.tabs-bento__tab')[index].nextElementSibling.classList.contains('tabs-bento__image')) {\n                    tabBento.querySelectorAll('.tabs-bento__tab')[index].nextElementSibling.classList.add('active');\n                }\n\n                \/\/ set the width of .underline__line to the clicked element including padding\n                var underlineLine = tabBento.querySelector('.underline__line');\n                underlineLine.style.width = tabBentoTab.offsetWidth + 'px';\n                underlineLine.style.left = (tabBentoTab.offsetLeft - 15) + 'px';\n        \n            });\n        }); \n        \n    }\n});\n<\/script>\n\n\n\n\n\n<div class=\"gbc-title-banner tac tac-lg tac-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-4 \" style=\"0pxbackground-color: \">\n                                <div class=\"col-12 col-md-12 col-lg-12 col-xl-12  banner-content\"  >\n    \n                                             <h1 style=\"text-align: center;\"><span style=\"color: #000000;\">Talk to One of <br \/>Our Experts<\/span><\/h1>\n<p id=\"features\">\u00a0<\/p>\n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                    <a href='https:\/\/nag.com\/contact-us\/' style='background-color: #e3b0a6ff; color: #252a2fff; border-radius: 30px; font-weight: 600; ' class='btn mr-1  ' >Talk to us <i class='fas fa-angle-right'><\/i><\/a>                <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<div class=\"gbc-title-banner ta ta-lg ta-xl\" style='border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" >\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-2 \" style=\"0px\">\n                                <div class=\"col-12 col-md-12 col-lg-12 col-xl-12  banner-content\"  >\n    \n                                             <p class=\"para-lg\"><span style=\"color: #b68d85;\"><strong><span class=\"semibold\"><span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Automatic Differentiation dco\/c++<\/span><\/strong><\/span><\/p>\n<h2><span style=\"color: #000000;\">Key Content<\/span><\/h2>\n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n\n<div class=\"tabs-bento\">\n    <div class=\"container\">\n\n        <div class=\"pv-2 card-rounded ph-1\" style='background-color: #f9efedff; '>\n            <div class=\"row\">\n                <div class=\"col-12 offset-lg-1\">\n                                    <button class=\"tabs-bento__btn btn mb-1 mb-lg-0 card-rounded--half active\">\n                        Key Features                    <\/button>\n                                        <button class=\"tabs-bento__btn btn mb-1 mb-lg-0 card-rounded--half \">\n                        Latest Functionality                    <\/button>\n                                    <\/div>\n            \n            <\/div>\n            <div class=\"row\">\n                <div class=\"offset-lg-1 col-12 col-lg-10\">\n                <div class=\"underline dn db-lg mt-1\">\n                    <div class=\"underline__line\"><\/div>\n                <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"row pt-2\">\n                                        <div class=\"tabs-bento__tab mb-2 mb-lg-0 col-12 col-lg-10  active offset-lg-1\">\n                            <ul>\n<li>\n<h5><span style=\"color: #000000;\">Header-only Library<\/span><\/h5>\n<p>Easy integration and high performance.<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Vectorized tangents and adjoints<\/span><\/h5>\n<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Support for parallelism in shared and distributed memory environments<\/span><\/h5>\n<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Dynamic code generation<\/span><\/h5>\n<p>A hybrid technology that combines the efficiency of source transformation with the flexibility and ease of use of an operator overloading tool.<\/li>\n<li>\n<h5><span style=\"color: #000000;\">User-defined tape callbacks<\/span><\/h5>\n<p>Combine dco\/c++ with hand-written adjoints, symbolic adjoints (e.g., implicit function theorem), or any other way of computing sensitivities of embedded algorithms.<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Sparsity pattern detection<\/span><\/h5>\n<p>Cheaply detect zero entries in your derivative tensor.<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Tape compression<\/span><\/h5>\n<p>Preaccumulating local Jacobians reduces tape size and tape interpretation time.<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Support for the C++ standard Library<\/span><\/h5>\n<p>STL, BLAS, Boost, Eigen, &#8230;. and more.<\/li>\n<li>\n<h5><span style=\"color: #000000;\">Support for the <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG AD Library<\/span><\/h5>\n<\/li>\n<\/ul>\n                            <div class=\"mv-1\"><\/div>\n                                                    <\/div>\n                                                                    <div class=\"tabs-bento__tab mb-2 mb-lg-0 col-12 col-lg-10  dn offset-lg-1\">\n                            <h5><span style=\"color: #000000;\">What\u2019s new in dco\/c++ 5.1<\/span><\/h5>\n<ul>\n<li>New tangent vector mode with dynamic size cap.\u00a0<\/li>\n<li>Performance improvement for vector modes with large vector sizes.<\/li>\n<li>Improved resilience of vector modes when vector size is not provided.\u00a0\u00a0<\/li>\n<\/ul>\n<h5><span style=\"color: #000000;\">What\u2019s new in dco\/c++ 5.0<\/span><\/h5>\n<ul>\n<li>TensorAD: dco\/c++ tensor mode combines the efficiency of vectorization with AD, allowing for improved performance when computing derivatives of vectorized functions. The tensor feature supports primal evaluation as well as reverse mode AD calculations.<\/li>\n<\/ul>\n<h5><span style=\"color: #000000;\">What\u2019s new in dco\/c++ 4.4<\/span><\/h5>\n<ul>\n<li>Enhancement of the codegen feature by introduction of for-loop support with type-generic active integers. This enables index-dependent array access within loop body.<\/li>\n<li>Enhanced usability through increased cmath coverage: std::trunc<\/li>\n<\/ul>\n<h5><span style=\"color: #000000;\">What\u2019s new in dco\/c++ 4.3<\/span><\/h5>\n<ul>\n<li>Enhancement of the codegen feature by introduction of active integers with support for conditions.<\/li>\n<li>Compile time of generated codes improved by better supporting loops.<\/li>\n<li>Implementation of experimental debugging feature to detect control flow divergence for finite difference computations.<\/li>\n<\/ul>\n<h5><span style=\"color: #000000;\">What&#8217;s new in dco\/c++ 4.2<\/span>\u00a0<\/h5>\n<ul>\n<li>Enhanced usability through increased cmath function coverage: std::cbrt, std::copysign, std::exp2, std::log2, std::scalbn, std::scalbln, std::fpclassify, std::isgreater, std::isgreaterequal, std::isless, std::islessequal, std::islessgreater, std::isunordered, std::lrint, std::llrint, std::llround, std::nearbyint, std::rint, std::signbit.<\/li>\n<li>Requirements on codegen loosened: registration of inputs now possible anywhere in the code.<\/li>\n<li>Enhanced usability through type trait for retrieving the vector length from a dco\/c++ type.<\/li>\n<\/ul>\n<h5><span style=\"color: #000000;\">What&#8217;s new in dco\/c++ 4.1<\/span><\/h5>\n<ul>\n<li>New data type &#8216;dco::multi_mode&#8217;: This release brings a new data type that can combine arbitrary dco\/c++ functionality in one go. It is intended to reduce the number of required instantiations of the underlying code. This reduces the complexity of the build system and leads to an expected reduction in compilation times. With this type, you can, e.g., record a tape and, at the same time, propagate vector tangents.<\/li>\n<li>API update for Jacobian preaccumulator and the local gradient functionality (factory methods).<\/li>\n<li>More precise information on memory consumption enabled by new enum (`dco::size_of_e`).<\/li>\n<li>Enhanced debugging capabilities: Beside writing the tape in csv- or dot-format, we now enable to print the tape to a stream in a human-readable format.<\/li>\n<\/ul>\n<h5><span style=\"color: #000000;\">What&#8217;s new in dco\/c++ 4.0<\/span><\/h5>\n<ul>\n<li>Code generation: A hybrid technology that combines the efficiency of source transformation with the flexibility and ease of use of an operator overloading tool, with support for primal, tangent and adjoint code. This supports all combinations of scalar and vector modes for computing first and higher derivatives.<\/li>\n<li>The use of source transformation gives two advantages: in the transformation step and in the compilation step. In the transformation step, they can implement optimisations based on properties of the underlying differentiation rules. In addition, in the compilation step, the built-in optimisation passes of steadily advancing compilers are simply inherited. Showstoppers usually: Applicability and maintainability.\u00a0<\/li>\n<li>dco\/c++ 4.0 uses overloading techniques to generate a representation of the program in memory, and unparse the various modes (primal, tangent, adjoint) into a C++ file. The dynamic nature of this approach (building the representation at run time) introduces an important constraint on the code to be differentiated &#8211; the control flow is not allowed to depend on input data. We overcome this constraint for branches with smart use of modern C++ features such as lambda expressions, in combination with classical elements from the preprocessor.<\/li>\n<li>Support for std::ldexp and std::frexp.<\/li>\n<li>Aligned memory allocation by default. In some circumstances, this leads to more efficient memory access for vectorized operations.<\/li>\n<li>Requires C++17 now.<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n                            <div class=\"mv-1\"><\/div>\n                                                    <\/div>\n                                                        <\/div>\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<script>\n\n    \/\/ doc ready\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\n\n    var tabsBentoContainers = document.querySelectorAll('.tabs-bento');\n\n    for (let index = 0; index < tabsBentoContainers.length; index++) {\n        const tabBento = tabsBentoContainers[index];\n\n\n        \/\/ get the width of the first .tabs-bento__btn and make .underline__line the same width\n        var firstTabBentoBtn = tabBento.querySelector('.tabs-bento__btn');\n        var underlineLine = tabBento.querySelector('.underline__line');\n        underlineLine.style.width = firstTabBentoBtn.offsetWidth + 'px';\n\n\n        tabBento.querySelectorAll('.tabs-bento__btn').forEach(tabBentoTab => {\n            tabBentoTab.addEventListener('click', function(){\n\n                tabBento.querySelectorAll('.tabs-bento__btn').forEach(tabBentoTab => {\n                    if (tabBentoTab.classList.contains('active')) {\n                        tabBentoTab.classList.remove('active');\n                    }\n                });\n                tabBentoTab.classList.add('active');\n\n                \/\/ get index of clicked element\n                var index = Array.prototype.indexOf.call(tabBentoTab.parentNode.children, tabBentoTab);\n\n\n                \/\/ Add .active class to .tabs-bento__tab\n                tabBento.querySelectorAll('.tabs-bento__tab').forEach(tabBentoTab => {\n                    if (tabBentoTab.classList.contains('active')) {\n                        tabBentoTab.classList.remove('active');\n                        \n                        if (tabBentoTab.nextElementSibling && tabBentoTab.nextElementSibling.classList.contains('tabs-bento__image')) {\n                            tabBentoTab.nextElementSibling.classList.remove('active');\n                        }\n                    }\n                });\n\n                tabBento.querySelectorAll('.tabs-bento__tab')[index].classList.add('active');\n\n                console.log(tabBentoTab.nextElementSibling)\n\n\n                if (tabBento.querySelectorAll('.tabs-bento__tab')[index].nextElementSibling && tabBento.querySelectorAll('.tabs-bento__tab')[index].nextElementSibling.classList.contains('tabs-bento__image')) {\n                    tabBento.querySelectorAll('.tabs-bento__tab')[index].nextElementSibling.classList.add('active');\n                }\n\n                \/\/ set the width of .underline__line to the clicked element including padding\n                var underlineLine = tabBento.querySelector('.underline__line');\n                underlineLine.style.width = tabBentoTab.offsetWidth + 'px';\n                underlineLine.style.left = (tabBentoTab.offsetLeft - 15) + 'px';\n        \n            });\n        }); \n        \n    }\n});\n<\/script>\n\n\n\n\n<!-- Spacer -->\n<div class=\"pt-3 pt-lg- pt-xl-\" ><\/div>\n\n<div class=\"container\">\n\n    <div class=\"pt-3 card-rounded ph-1\" style='background-color: #f9efedff; '>\n        <div class=\"row\">\n                                <div class=\"col-12 col-md-12 col-lg-1 mb-3\">\n                        <div><\/div>\n                                            <\/div>\n                                        <div class=\"col-12 col-md-6 col-lg-3 mb-3\">\n                        <div><h3><span style=\"color: #2d2321;\">Learn More<\/span><\/h3>\n<p>\u00a0<\/p>\n<p>Our expert consultants are on <br \/>hand to answer any questions <br \/>you may have.<\/p>\n<\/div>\n                                                <div class=\"mt-2\"><a href='https:\/\/nag.com\/contact-us\/' style='background-color: #00000000; font-weight: 600; padding: 0px!important; ' class='btn mr-1  ' >Ask a question <i class='fas fa-angle-right'><\/i><\/a><\/div>\n                                            <\/div>\n                                        <div class=\"col-12 col-md-6 col-lg-3 mb-3\">\n                        <div><h3><span style=\"color: #2d2321;\">More Insights<\/span><\/h3>\n<p>\u00a0<\/p>\n<p>To learn more about what <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG can help you with, visit our insights page.<\/p>\n<\/div>\n                                                <div class=\"mt-2\"><a href='https:\/\/nag.com\/insights\/' style='background-color: #00000000; font-weight: 600; padding: 0px!important; ' class='btn mr-1  ' >Explore <i class='fas fa-angle-right'><\/i><\/a><\/div>\n                                            <\/div>\n                            <\/div>\n    <\/div>\n\n<\/div>\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-6 pt-xl-6\" ><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","footnotes":""},"class_list":["post-374","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Automatic Differentiation - nAG<\/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:\/\/nag.com\/automatic-differentiation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatic Differentiation - nAG\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nag.com\/automatic-differentiation\/\" \/>\n<meta property=\"og:site_name\" content=\"nAG\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-18T13:01:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nag.com\/wp-content\/uploads\/2024\/02\/NAG-Logo-White-On-Blue.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"12770\" \/>\n\t<meta property=\"og:image:height\" content=\"4353\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@NAGTalk\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nag.com\/automatic-differentiation\/\",\"url\":\"https:\/\/nag.com\/automatic-differentiation\/\",\"name\":\"Automatic Differentiation - nAG\",\"isPartOf\":{\"@id\":\"https:\/\/nag.com\/#website\"},\"datePublished\":\"2023-04-25T12:49:19+00:00\",\"dateModified\":\"2025-08-18T13:01:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/nag.com\/automatic-differentiation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nag.com\/automatic-differentiation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nag.com\/automatic-differentiation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automatic Differentiation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nag.com\/#website\",\"url\":\"https:\/\/nag.com\/\",\"name\":\"NAG\",\"description\":\"Robust, trusted numerical software and computational expertise.\",\"publisher\":{\"@id\":\"https:\/\/nag.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nag.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nag.com\/#organization\",\"name\":\"Numerical Algorithms Group\",\"alternateName\":\"NAG\",\"url\":\"https:\/\/nag.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nag.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png\",\"contentUrl\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png\",\"width\":1244,\"height\":397,\"caption\":\"Numerical Algorithms Group\"},\"image\":{\"@id\":\"https:\/\/nag.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NAGTalk\",\"https:\/\/www.linkedin.com\/company\/nag\/\",\"https:\/\/www.youtube.com\/user\/NumericalAlgorithms\",\"https:\/\/github.com\/numericalalgorithmsgroup\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automatic Differentiation - nAG","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:\/\/nag.com\/automatic-differentiation\/","og_locale":"en_US","og_type":"article","og_title":"Automatic Differentiation - nAG","og_url":"https:\/\/nag.com\/automatic-differentiation\/","og_site_name":"nAG","article_modified_time":"2025-08-18T13:01:50+00:00","og_image":[{"width":12770,"height":4353,"url":"https:\/\/nag.com\/wp-content\/uploads\/2024\/02\/NAG-Logo-White-On-Blue.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@NAGTalk","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nag.com\/automatic-differentiation\/","url":"https:\/\/nag.com\/automatic-differentiation\/","name":"Automatic Differentiation - nAG","isPartOf":{"@id":"https:\/\/nag.com\/#website"},"datePublished":"2023-04-25T12:49:19+00:00","dateModified":"2025-08-18T13:01:50+00:00","breadcrumb":{"@id":"https:\/\/nag.com\/automatic-differentiation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nag.com\/automatic-differentiation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nag.com\/automatic-differentiation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nag.com\/"},{"@type":"ListItem","position":2,"name":"Automatic Differentiation"}]},{"@type":"WebSite","@id":"https:\/\/nag.com\/#website","url":"https:\/\/nag.com\/","name":"NAG","description":"Robust, trusted numerical software and computational expertise.","publisher":{"@id":"https:\/\/nag.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nag.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nag.com\/#organization","name":"Numerical Algorithms Group","alternateName":"NAG","url":"https:\/\/nag.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nag.com\/#\/schema\/logo\/image\/","url":"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png","contentUrl":"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png","width":1244,"height":397,"caption":"Numerical Algorithms Group"},"image":{"@id":"https:\/\/nag.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NAGTalk","https:\/\/www.linkedin.com\/company\/nag\/","https:\/\/www.youtube.com\/user\/NumericalAlgorithms","https:\/\/github.com\/numericalalgorithmsgroup"]}]}},"_links":{"self":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages\/374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/comments?post=374"}],"version-history":[{"count":122,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages\/374\/revisions"}],"predecessor-version":[{"id":68857,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages\/374\/revisions\/68857"}],"wp:attachment":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/media?parent=374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}