<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Eigen on Eigen: A C&#43;&#43; template library for linear algebra</title>
    <link>https://libeigen.gitlab.io/</link>
    <description>Recent content in Eigen on Eigen: A C&#43;&#43; template library for linear algebra</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Tue, 30 Sep 2025 22:36:27 +0000</lastBuildDate>
    <atom:link href="https://libeigen.gitlab.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Development Branch</title>
      <link>https://libeigen.gitlab.io/documentation/eigen_master/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/documentation/eigen_master/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly&#34;&gt;https://libeigen.gitlab.io/eigen/docs-nightly&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 5.0</title>
      <link>https://libeigen.gitlab.io/documentation/eigen_5.0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/documentation/eigen_5.0/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-5.0&#34;&gt;https://libeigen.gitlab.io/eigen/docs-5.0&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.4</title>
      <link>https://libeigen.gitlab.io/documentation/eigen_3.4/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/documentation/eigen_3.4/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.4&#34;&gt;https://libeigen.gitlab.io/eigen/docs-3.4&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3</title>
      <link>https://libeigen.gitlab.io/documentation/eigen_3.3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/documentation/eigen_3.3/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3&#34;&gt;https://libeigen.gitlab.io/eigen/docs-3.3&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Issues &amp; Feature Requests</title>
      <link>https://libeigen.gitlab.io/gitlab_issues/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/gitlab_issues/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/issues&#34;&gt;https://gitlab.com/libeigen/eigen/issues&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contributing</title>
      <link>https://libeigen.gitlab.io/contributing/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/contributing/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/pages/contributing_to_eigen/&#34;&gt;contributing&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>FAQ</title>
      <link>https://libeigen.gitlab.io/faq/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/faq/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/pages/faq/&#34;&gt;FAQ&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Publications</title>
      <link>https://libeigen.gitlab.io/publications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/publications/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/pages/publications/&#34;&gt;publications&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>stackoverflow</title>
      <link>https://libeigen.gitlab.io/stackoverflow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/stackoverflow/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://stackoverflow.com/questions/tagged/eigen&#34;&gt;https://stackoverflow.com/questions/tagged/eigen&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 5.0.0 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_5.0.0_released/</link>
      <pubDate>Tue, 30 Sep 2025 22:36:27 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_5.0.0_released/</guid>
      <description>&lt;p&gt;Eigen 5.0.0 has been released on September 30, 2025.&lt;/p&gt;&#xA;&lt;p&gt;Please check the &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/5.0.0&#34;&gt;release page&lt;/a&gt; for source archives and release notes.&lt;/p&gt;&#xA;&lt;p&gt;Note we have switched to &lt;a href=&#34;https://semver.org&#34;&gt;semantic versioning&lt;/a&gt;, so have dropped the &amp;ldquo;World&amp;rdquo; version 3 from the version number.  Previously, Eigen used a &lt;code&gt;WORLD.MAJOR.MINOR&lt;/code&gt; scheme. From now on, version numbers will follow the &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt; format, indicating breaking changes, new features, and bug fixes, respectively. The &lt;code&gt;WORLD&lt;/code&gt; version will remain 3 for this and subsequent releases for posterity.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.4.1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.4.1_released/</link>
      <pubDate>Tue, 30 Sep 2025 21:36:27 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.4.1_released/</guid>
      <description>&lt;p&gt;Eigen 3.4.1 has been released on September 30, 2025.&lt;/p&gt;&#xA;&lt;p&gt;Please check the &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.4.1&#34;&gt;release page&lt;/a&gt; for source archives and release notes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 5.0</title>
      <link>https://libeigen.gitlab.io/releases/5.0/</link>
      <pubDate>Tue, 30 Sep 2025 15:26:52 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/releases/5.0/</guid>
      <description>&lt;p&gt;Eigen 5.0.0 was released on September 30 2025. It can be downloaded from&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/5.0.0&#34;&gt;Gitlab&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#summary&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Eigen 5.0 provides many new features, performance enhancements, and bugfixes throughout Eigen’s core template expression infrastructure and linear algebra facilities.  The full set of changes and related issues are too large to list here, but can be accessed via the release milestone &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/milestones/10&#34;&gt;%5.0&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is the last major release to support the C++14 language standard. The master branch and subsequent releases will require support for C++17.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Developer&#39;s Corner</title>
      <link>https://libeigen.gitlab.io/pages/developers_corner/</link>
      <pubDate>Mon, 17 Apr 2023 16:21:29 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/developers_corner/</guid>
      <description>&lt;h1 id=&#34;communication-between-developers&#34;&gt;Communication between developers&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#communication-between-developers&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Most discussion happens on &lt;a href=&#34;https://libeigen.gitlab.io/#discord&#34;&gt;Discord&lt;/a&gt; or on specific&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues&#34;&gt;GitLab issues&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;contributors-crediting-and-copyright&#34;&gt;Contributors crediting and copyright&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#contributors-crediting-and-copyright&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Everyone who made even the smallest contibution should add&#xA;himself/herself to the &lt;a href=&#34;https://libeigen.gitlab.io/#credits&#34;&gt;Credits&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Everyone keeps copyright on his contributions. There is no copyright&#xA;assignment.&lt;/p&gt;&#xA;&lt;p&gt;When making a contribution on behalf of your employer, please try making&#xA;it in your own name, not in your employer&amp;rsquo;s name, if possible.&lt;/p&gt;&#xA;&lt;p&gt;When you make large improvements to a source file, it is a good idea to&#xA;add yourself a copyright line in it, although this is by no means&#xA;necessary: you do implictly get copyright on the code you wrote.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FAQ</title>
      <link>https://libeigen.gitlab.io/pages/faq/</link>
      <pubDate>Tue, 04 Oct 2022 17:28:38 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/faq/</guid>
      <description>&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Owl_faq.jpg&#34; title=&#34;Owl_faq.jpg&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h1 id=&#34;licensing&#34;&gt;Licensing&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#licensing&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Since the 3.1.1 release, Eigen is licensed under the&#xA;&lt;a href=&#34;http://www.mozilla.org/MPL/2.0&#34;&gt;MPL2&lt;/a&gt;. We refer to the &lt;a href=&#34;http://www.mozilla.org/MPL/2.0/FAQ.html&#34;&gt;MPL2&#xA;FAQ&lt;/a&gt; for initial questions.&lt;/p&gt;&#xA;&lt;h1 id=&#34;eigen-and-other-libraries&#34;&gt;Eigen and other libraries&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#eigen-and-other-libraries&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;should-i-use-eigen&#34;&gt;Should I use Eigen?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#should-i-use-eigen&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Probably, but check &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/TopicPitfalls.html&#34;&gt;pit falls&lt;/a&gt; first.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-another-matrix-library-what-is-the-need-for-eigen&#34;&gt;Why another matrix library? What is the need for Eigen?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#why-another-matrix-library-what-is-the-need-for-eigen&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;First of all, see the &lt;a href=&#34;https://libeigen.gitlab.io/#overview&#34;&gt;Overview&lt;/a&gt;. No&#xA;other library provides all of the features and benefits listed there.&lt;/p&gt;&#xA;&lt;p&gt;The Eigen project started when some hackers from the large KDE&#xA;meta-project realized the need for a single unified matrix library.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working notes - Tensor module</title>
      <link>https://libeigen.gitlab.io/notes/working_notes_-_tensor_module/</link>
      <pubDate>Fri, 07 Jan 2022 14:20:04 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/notes/working_notes_-_tensor_module/</guid>
      <description>&lt;p&gt;See also: &lt;a href=&#34;https://libeigen.gitlab.io/pages/tensor_support/&#34;&gt;Tensor support&lt;/a&gt; for a general&#xA;introduction&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;IMPORTANT:&lt;/strong&gt; A lot of the stuff on this page is now obsolete, due to&#xA;work by Benoit Steiner. This page will be updated soon.&lt;/p&gt;&#xA;&lt;h2 id=&#34;general-todo-list&#34;&gt;General TODO list&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#general-todo-list&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with a general TODO / wishlist, and some things might be&#xA;very difficult to implement, so the first goal would be to start with&#xA;the lower-hanging fruit on this list.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;test the whole thing with different compilers (MSVC etc.) and fix&#xA;potential compatibility problems in this regard&lt;/li&gt;&#xA;&lt;li&gt;simple expressions such as adding / subtracting two tensors and scalar&#xA;multiplication&lt;/li&gt;&#xA;&lt;li&gt;subtensors / generalized blocks&lt;/li&gt;&#xA;&lt;li&gt;TensorMap analogous to Map&lt;/li&gt;&#xA;&lt;li&gt;Ref&lt;Tensor&gt; or (if that&amp;rsquo;s not possible) TensorRef&lt;Tensor&gt;&lt;/li&gt;&#xA;&lt;li&gt;reshaping (analogous to the to-be-implemented version in matrices)&lt;/li&gt;&#xA;&lt;li&gt;.asMatrix() for tensors (or tensor expressions) with two indices&lt;/li&gt;&#xA;&lt;li&gt;.asVector() for tensors (or tensor expressions) with one index&lt;/li&gt;&#xA;&lt;li&gt;similarly, somehow implement a .asTensor() expression for the standard&#xA;matrices/vectors/array (if we can do that in a way that doesn&amp;rsquo;t force&#xA;people to use a C++11 compiler if they don&amp;rsquo;t want to use tensors&amp;hellip;)&lt;/li&gt;&#xA;&lt;li&gt;tensor &amp;ldquo;arrays&amp;rdquo;, so that element-wise multiplication (or sine or &amp;hellip;)&#xA;is possible&lt;/li&gt;&#xA;&lt;li&gt;efficient full and partial transpositions (full transposition: reverse&#xA;order of all indices, partial: reverse only a few of them)&lt;/li&gt;&#xA;&lt;li&gt;contractions&lt;/li&gt;&#xA;&lt;li&gt;tensor product of two matrices that generates a tensor of rank 4&lt;/li&gt;&#xA;&lt;li&gt;generic expressions with index placeholders, such has&#xA;&lt;code&gt;result(_1, _2, _3) = tensor1(_1, _, _) * tensor2(_, _2, _3)&lt;/code&gt; or&#xA;similar (need to define a nice API for this)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;in that vein, use efficient GEMM kernels for this when possible&#xA;(might actually make sense to first partially transpose, then use&#xA;GEMM kernel and then partially transpose back for some expressions,&#xA;but not for others -&amp;gt; need some way of determining cost of these&#xA;expressions)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;nice user interface to write loops over multiple indices (don&amp;rsquo;t have&#xA;to write 5 for-loops)&lt;/li&gt;&#xA;&lt;li&gt;comma-initializer for tensors? if tensor has 4 indices, how do we&#xA;handle this?&lt;/li&gt;&#xA;&lt;li&gt;fixed-size tensors&lt;/li&gt;&#xA;&lt;li&gt;sparse tensors&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;class-hierarchy&#34;&gt;Class Hierarchy&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#class-hierarchy&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Currently, there is no class hierarchy, and the Tensor class template&#xA;only stores values. Ideally, we want to have a class hierarchy in the&#xA;same way the rest of Eigen does, because people have put in a lot of&#xA;thought into that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contributing to Eigen</title>
      <link>https://libeigen.gitlab.io/pages/contributing_to_eigen/</link>
      <pubDate>Wed, 27 Oct 2021 16:39:45 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/contributing_to_eigen/</guid>
      <description>&lt;p&gt;Eigen is written and maintained by volunteers. If you are willing to&#xA;help, great! Here are some pointers to get you started.&lt;/p&gt;&#xA;&lt;h2 id=&#34;support&#34;&gt;Support&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#support&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Perhaps the easiest way to help is to be willing to support new (and not&#xA;so new) users of Eigen and answer their questions. People ask questions&#xA;on the&#xA;&lt;a href=&#34;https://stackoverflow.com/questions/tagged/eigen&amp;#43;or&amp;#43;eigen3&#34;&gt;StackOverflow&lt;/a&gt;,&#xA;or &lt;a href=&#34;https://libeigen.gitlab.io/#discord_server&#34;&gt;Discord&lt;/a&gt;. You can also improve our&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/pages/faq/&#34;&gt;FAQ&lt;/a&gt; with questions (and answers) that arise&#xA;frequently.&lt;/p&gt;&#xA;&lt;p&gt;Users arrive with different levels of C++ and mathematics knowledge, so&#xA;whatever your level of experience, you can help out with this. Do not be&#xA;too worried about given wrong advice; if you are not sure that your&#xA;answer is correct, just say you are not sure and others will jump in if&#xA;necessary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reforking the GitLab Project</title>
      <link>https://libeigen.gitlab.io/pages/reforking_the_gitlab_project/</link>
      <pubDate>Fri, 15 Oct 2021 16:44:58 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/reforking_the_gitlab_project/</guid>
      <description>&lt;p&gt;Due to an incident that occurred on October 2, 2021, all GitLab fork&#xA;relationships to the main &lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;Eigen&#xA;project&lt;/a&gt; created before that date&#xA;have been severed. This will prevent users from creating new MRs from&#xA;these severed forks, and from reopening old ones.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, there is a way via the GitLab API to re-establish the fork&#xA;connection.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create a personal access token&#xA;(&lt;a href=&#34;https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token&#34;&gt;documentation&lt;/a&gt;)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Navigate to&#xA;&lt;a href=&#34;https://gitlab.com/-/user_settings/personal_access_tokens?name=refork&amp;amp;scopes=api,read_user&#34;&gt;https://gitlab.com/-/user_settings/personal_access_tokens?name=refork&amp;scopes=api,read_user&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Click the button: &lt;em&gt;Create personal access token&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Copy the token at the top of the screen.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Determine your local project&amp;rsquo;s ID.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Navigate to your fork&amp;rsquo;s main page (e.g.&#xA;&lt;a href=&#34;https://gitlab.com/cantonios/eigen&#34;&gt;https://gitlab.com/cantonios/eigen&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Note the project ID number directly under the project name (e.g.&#xA;17989470)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Use the GitLab REST API to delete the existing broken fork&#xA;relationship, and re-add it.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Bash:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.4</title>
      <link>https://libeigen.gitlab.io/releases/3.4/</link>
      <pubDate>Thu, 14 Oct 2021 15:26:52 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/releases/3.4/</guid>
      <description>&lt;p&gt;Eigen 3.4 was released on August 18 2021. It can be downloaded from the&#xA;Download section on the &lt;a href=&#34;https://libeigen.gitlab.io/&#34;&gt;Main&#xA;Page&lt;/a&gt; or from&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.4.0&#34;&gt;Gitlab&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notice:&lt;/strong&gt; that 3.4.x will be the last major release series of Eigen&#xA;that will support c++03. The master branch will drop c++03 support after&#xA;this release.&lt;/p&gt;&#xA;&lt;h2 id=&#34;changes-to-supported-modules&#34;&gt;Changes to supported modules&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#changes-to-supported-modules&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;changes-that-might-break-existing-code&#34;&gt;Changes that might break existing code&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#changes-that-might-break-existing-code&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using float or double for indexing matrices, vectors and arrays will&#xA;now fail to compile, ex.:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixXd &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt; one &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;double&lt;/span&gt; a11 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; A(one,&lt;span style=&#34;color:#ae81ff&#34;&gt;1.&lt;/span&gt;); &lt;span style=&#34;color:#75715e&#34;&gt;// compilation error here&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;new-major-features-in-core&#34;&gt;New Major Features in Core&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-major-features-in-core&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add c++11 &lt;strong&gt;initializer_list constructors&lt;/strong&gt; to Matrix and Array&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.4/group__TutorialMatrixClass.html#title3&#34;&gt;[doc&lt;/a&gt;]:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixXi a {      &lt;span style=&#34;color:#75715e&#34;&gt;// construct a 2x3 matrix&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;      {&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;},    &lt;span style=&#34;color:#75715e&#34;&gt;// first row&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;      {&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt;}     &lt;span style=&#34;color:#75715e&#34;&gt;// second row&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VectorXd v{{&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;}};    &lt;span style=&#34;color:#75715e&#34;&gt;// construct a dynamic-size vector with 5 elements&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;Array&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; a{&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;}; &lt;span style=&#34;color:#75715e&#34;&gt;// initialize a fixed-size 1D array of size 5.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Add STL-compatible &lt;strong&gt;iterators&lt;/strong&gt; for dense expressions&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.4/group__TutorialSTL.html&#34;&gt;[doc&lt;/a&gt;].&#xA;Some examples:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VectorXd v &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ...;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixXd A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ...;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// range for loop over all entries of v then A&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;auto&lt;/span&gt; x : v) { cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;; }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;auto&lt;/span&gt; x : A.reshaped()) { cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;; }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// sort v then each column of A&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;std&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;sort(v.begin(), v.end());&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;auto&lt;/span&gt; c : A.colwise())&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    std&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;sort(c.begin(), c.end());&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;New versatile API for sub-matrices, &lt;strong&gt;slices&lt;/strong&gt;, and &lt;strong&gt;indexed views&lt;/strong&gt;&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.4/group__TutorialSlicingIndexing.html&#34;&gt;[doc&lt;/a&gt;].&#xA;It basically extends &lt;code&gt;A(.,.)&lt;/code&gt; to let it accept anything that&#xA;looks-like a sequence of indices with random access. To make it usable&#xA;this new feature comes with new symbols: &lt;code&gt;Eigen::indexing::all&lt;/code&gt;,&#xA;&lt;code&gt;Eigen::indexing::last&lt;/code&gt;, and functions generating arithmetic&#xA;sequences: &lt;code&gt;Eigen::seq(first,last[,incr])&lt;/code&gt;,&#xA;&lt;code&gt;Eigen::seqN(first,size[,incr])&lt;/code&gt;, &lt;code&gt;Eigen::lastN(size[,incr])&lt;/code&gt;. Here is&#xA;an example picking even rows but the first and last ones, and a subset&#xA;of indexed columns:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixXd A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ...;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;std&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;vector&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; col_ind{&lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixXd B &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; A(seq(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,last&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,fix&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;), col_ind);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Add C++11 &lt;strong&gt;template aliases&lt;/strong&gt; for Matrix, Vector, and Array of common&#xA;sizes, including generic &lt;code&gt;Vector&amp;lt;Type,Size&amp;gt;&lt;/code&gt; and&#xA;&lt;code&gt;RowVector&amp;lt;Type,Size&amp;gt;&lt;/code&gt; aliases&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.4/group__matrixtypedefs.html&#34;&gt;[doc&lt;/a&gt;].&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixX&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;double&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; M;  &lt;span style=&#34;color:#75715e&#34;&gt;// Instead of MatrixXd or Matrix&amp;lt;Dynamic, Dynamic, double&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;Vector4&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;MyType&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; V;  &lt;span style=&#34;color:#75715e&#34;&gt;// Instead of Vector&amp;lt;4, MyType&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;New support for &lt;code&gt;bfloat16&lt;/code&gt;. The 16-bit &lt;a href=&#34;https://en.wikipedia.org/wiki/Bfloat16_floating-point_format&#34;&gt;Brain floating point&#xA;format&lt;/a&gt;&#xA;is now available as &lt;code&gt;Eigen::bfloat16&lt;/code&gt;. The constructor must be called&#xA;explicitly, but it can otherwise be used as any other scalar type. To&#xA;convert back-and-forth between &lt;code&gt;uint16_t&lt;/code&gt; to extract the bit&#xA;representation, use &lt;code&gt;Eigen::numext::bit_cast&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  bfloat16 &lt;span style=&#34;color:#a6e22e&#34;&gt;s&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0.25&lt;/span&gt;);                                 &lt;span style=&#34;color:#75715e&#34;&gt;// explicit construction&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;uint16_t&lt;/span&gt; s_bits &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; numext&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;bit_cast&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;uint16_t&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;(s);  &lt;span style=&#34;color:#75715e&#34;&gt;// bit representation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; MatrixBf16 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Matrix&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;bfloat16, Dynamic, Dynamic&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  MatrixBf16 X &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; s &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; MatrixBf16&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Random(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;new-backends&#34;&gt;New backends&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-backends&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Arm SVE:&lt;/strong&gt; Eigen now supports Arm&amp;rsquo;s &lt;a href=&#34;https://developer.arm.com/documentation/101726/0300/Learn-about-the-Scalable-Vector-Extension--SVE-/What-is-the-Scalable-Vector-Extension-&#34;&gt;Scalable Vector Extension&#xA;(SVE)&lt;/a&gt;.&#xA;Currently only fixed-length SVE vectors for &lt;code&gt;uint32_t&lt;/code&gt; and &lt;code&gt;float&lt;/code&gt; are&#xA;available.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MIPS MSA:&lt;/strong&gt; Eigen now supports the &lt;a href=&#34;https://en.wikipedia.org/wiki/MIPS_architecture#MIPS_SIMD_architecture_%28MSA%29&#34;&gt;MIPS SIMD Architecture&#xA;(MSA)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;AMD ROCm/HIP:&lt;/strong&gt; Eigen now contains a generic GPU backend that&#xA;unifies support for&#xA;&lt;a href=&#34;https://developer.nvidia.com/cuda-toolkit&#34;&gt;NVIDIA/CUDA&lt;/a&gt; and&#xA;&lt;a href=&#34;https://rocmdocs.amd.com/en/latest/&#34;&gt;AMD/HIP&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Power 10 MMA Backend:&lt;/strong&gt; Eigen now has initial support for &lt;a href=&#34;https://arxiv.org/pdf/2104.03142.pdf&#34;&gt;Power 10&#xA;matrix multiplication assist&#xA;instructions&lt;/a&gt; for float32 and&#xA;float64, real and complex.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;improvements-to-eigen-core&#34;&gt;Improvements to Eigen Core&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improvements-to-eigen-core&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Eigen now uses the c++11 &lt;strong&gt;alignas&lt;/strong&gt; keyword for static alignment.&#xA;Users targeting C++17 only and recent compilers (e.g., GCC&amp;gt;=7,&#xA;clang&amp;gt;=5, MSVC&amp;gt;=19.12) will thus be able to completely forget about&#xA;all&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.4/group__TopicUnalignedArrayAssert.html&#34;&gt;issues&lt;/a&gt;&#xA;related to static alignment, including&#xA;&lt;code&gt;EIGEN_MAKE_ALIGNED_OPERATOR_NEW&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Various performance improvements for products and Eigen&amp;rsquo;s GEBP and&#xA;GEMV kernels have been implemented:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;By using half- and quater-packets the performance of matrix&#xA;multiplications of small to medium sized matrices has been improved&lt;/li&gt;&#xA;&lt;li&gt;Eigen&amp;rsquo;s GEMM now falls back to GEMV if it detects that a matrix is a&#xA;run-time vector&lt;/li&gt;&#xA;&lt;li&gt;The performance of matrix products using Arm Neon has been&#xA;drastically improved (up to 20%)&lt;/li&gt;&#xA;&lt;li&gt;Performance of many special cases of matrix products has been&#xA;improved&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Large speed up from blocked algorithm for &lt;code&gt;.transposeInPlace&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Speed up misc. operations by propagating compile-time sizes&#xA;(col/row-wise reverse, PartialPivLU, and others)&lt;/li&gt;&#xA;&lt;li&gt;Faster specialized SIMD kernels for small fixed-size inverse, LU&#xA;decomposition, and determinant.&lt;/li&gt;&#xA;&lt;li&gt;Improved or added vectorization of partial or slice reductions along&#xA;the outer-dimension, for instance: &lt;code&gt;colmajor_mat.rowwise().mean()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;elementwise-math-functions&#34;&gt;Elementwise math functions&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#elementwise-math-functions&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Many functions are now implemented and vectorized in generic&#xA;(backend-agnostic) form.&lt;/li&gt;&#xA;&lt;li&gt;Many improvements to correctness, accuracy, and compatibility with c++&#xA;standard library.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Much improved implementation of &lt;code&gt;ldexp&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Misc. fixes for corner cases, NaN/Inf inputs and singular points of&#xA;many functions.&lt;/li&gt;&#xA;&lt;li&gt;New implementation of the Payne-Hanek for argument reduction&#xA;algorithm for &lt;code&gt;sin&lt;/code&gt; and &lt;code&gt;cos&lt;/code&gt; with huge arguments.&lt;/li&gt;&#xA;&lt;li&gt;New faithfully rounded algorithm for &lt;code&gt;pow(x,y)&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Speedups from (new or improved) vectorized versions of&#xA;&lt;code&gt;pow, log, sin, cos, arg, pow, log2&lt;/code&gt;, complex&#xA;&lt;code&gt;sqrt, erf, expm1, logp1, logistic, rint, gamma&lt;/code&gt; and &lt;code&gt;bessel&lt;/code&gt;&#xA;functions, and more.&lt;/li&gt;&#xA;&lt;li&gt;Improved special function support (Bessel and gamma functions,&#xA;&lt;code&gt;ndtri, erfc&lt;/code&gt;, inverse hyperbolic functions and more)&lt;/li&gt;&#xA;&lt;li&gt;New elementwise functions for &lt;code&gt;absolute_difference&lt;/code&gt;, &lt;code&gt;rint&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;dense-matrix-decompositions-and-solvers&#34;&gt;Dense matrix decompositions and solvers&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dense-matrix-decompositions-and-solvers&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All dense linear solvers (i.e., Cholesky, *LU, *QR,&#xA;CompleteOrthogonalDecomposition, *SVD) now inherit SolverBase and&#xA;thus support &lt;code&gt;.transpose()&lt;/code&gt;, &lt;code&gt;.adjoint()&lt;/code&gt; and &lt;code&gt;.solve()&lt;/code&gt; APIs.&lt;/li&gt;&#xA;&lt;li&gt;SVD implementations now have an &lt;code&gt;info()&lt;/code&gt; method for checking&#xA;convergence.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;Eigen/SVD&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  MatrixXf m &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; MatrixXf&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Random(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  JacobiSVD&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;MatrixXf&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; svd(m, ComputeThinU &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; ComputeThinV);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (svd.info() &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; ComputationInfo&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Success) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// SVD computation was successful.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;    VectorXf x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; svd.solve(b);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Most decompositions now fail quickly when invalid inputs are detected.&lt;/li&gt;&#xA;&lt;li&gt;Optimized the product of a &lt;code&gt;HouseholderSequence&lt;/code&gt; with the identity, as&#xA;well as the evaluation of a &lt;code&gt;HouseholderSequence&lt;/code&gt; to a dense matrix&#xA;using faster blocked product.&lt;/li&gt;&#xA;&lt;li&gt;Fixed aliasing issues with in-place small matrix inversions.&lt;/li&gt;&#xA;&lt;li&gt;Fixed several edge-cases with empty or zero inputs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;sparse-matrix-support-decompositions-and-solvers&#34;&gt;Sparse matrix support, decompositions and solvers&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#sparse-matrix-support-decompositions-and-solvers&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Enabled assignment and addition with diagonal matrix expressions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  SparseMatrix&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; A(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  VectorXf x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; VectorXf&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Random(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; x.asDiagonal();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  A &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; x.asDiagonal();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Support added for SuiteSparse KLU routines via the &lt;code&gt;KLUSupport&lt;/code&gt;&#xA;module. SuiteSparse must be installed to use this module.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;Eigen/KLUSupport&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.makeCompressed();   &lt;span style=&#34;color:#75715e&#34;&gt;// Recommendation is to compress input before calling sparse solvers.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  KLU&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;SparseMatrix&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;T&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; klu(A);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (klu.info() &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; ComputationInfo&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Success) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    VectorXf x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; klu.solve(b);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;SparseCholesky&lt;/code&gt; now works with row-major matrices.&lt;/li&gt;&#xA;&lt;li&gt;Various bug fixes and performance improvements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;type-support&#34;&gt;Type support&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#type-support&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Improved support for &lt;code&gt;half&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Native support added for ARM &lt;code&gt;__fp16&lt;/code&gt;, CUDA/HIP &lt;code&gt;__half&lt;/code&gt;, and &lt;code&gt;F16C&lt;/code&gt;&#xA;conversion intrinsics.&lt;/li&gt;&#xA;&lt;li&gt;Better vectorization support added across all backends.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Improved bool support&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Partial vectorization support added for boolean operations.&lt;/li&gt;&#xA;&lt;li&gt;Significantly improved performance (x25) for logical operations with&#xA;&lt;code&gt;Matrix&lt;/code&gt; or &lt;code&gt;Tensor&lt;/code&gt; of &lt;code&gt;bool&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Improved support for custom types&#xA;&lt;ul&gt;&#xA;&lt;li&gt;More custom types work out-of-the-box (see&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues/2201&#34;&gt;#2201&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;improved-geometry-module&#34;&gt;Improved Geometry Module&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improved-geometry-module&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Behavioral change:&lt;/strong&gt; &lt;code&gt;Transform::computeRotationScaling()&lt;/code&gt; and&#xA;&lt;code&gt;Transform::computeScalingRotation()&lt;/code&gt; are now more continuous across&#xA;degeneracies (see&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/merge_requests/349&#34;&gt;!349&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;New partial vectorization support added for &lt;code&gt;Quaternion&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Generic vectorized 4x4 matrix inversion.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;backend-specific-improvements&#34;&gt;Backend-specific improvements&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#backend-specific-improvements&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Arm NEON&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Now provides vectorization for &lt;code&gt;uint64_t&lt;/code&gt;, &lt;code&gt;int64_t&lt;/code&gt;, &lt;code&gt;uint32_t&lt;/code&gt;,&#xA;&lt;code&gt;int16_t&lt;/code&gt;, &lt;code&gt;uint16_t&lt;/code&gt;, &lt;code&gt;int16_t&lt;/code&gt;, &lt;code&gt;int8_t&lt;/code&gt;, and &lt;code&gt;uint8_t&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Emulates &lt;code&gt;bfloat16&lt;/code&gt; support when using &lt;code&gt;Eigen::bfloat16&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Supports emulated and native &lt;code&gt;float16&lt;/code&gt; when using &lt;code&gt;Eigen::half&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SSE/AVX/AVX512&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;General performance improvements and bugfixes.&lt;/li&gt;&#xA;&lt;li&gt;Enabled AVX512 instructions by default if available.&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;std::complex&lt;/code&gt;, &lt;code&gt;half&lt;/code&gt;, and &lt;code&gt;bfloat16&lt;/code&gt; vectorization support&#xA;added.&lt;/li&gt;&#xA;&lt;li&gt;Many missing packet functions added.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Altivec/Power&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;General performance improvement and bugfixes.&lt;/li&gt;&#xA;&lt;li&gt;Enhanced vectorization of real and complex scalars.&lt;/li&gt;&#xA;&lt;li&gt;Changes to the &lt;code&gt;gebp_kernel&lt;/code&gt; specific to Altivec, using VSX&#xA;implementation of the MMA instructions that gain speed improvements&#xA;up to 4x for matrix-matrix products.&lt;/li&gt;&#xA;&lt;li&gt;Dynamic dispatch for GCC greater than 10 enabling selection of MMA&#xA;or VSX instructions based on &lt;code&gt;__builtin_cpu_supports&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;GPU (CUDA and HIP)&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Several optimized math functions added, better support for&#xA;&lt;code&gt;std::complex&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added option to disable CUDA entirely by defining &lt;code&gt;EIGEN_NO_CUDA&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Many more functions can now be used in device code (e.g.&#xA;comparisons, small matrix inversion).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ZVector&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Vectorized &lt;code&gt;float&lt;/code&gt; and &lt;code&gt;std::complex&lt;/code&gt;&lt;float&gt; support added.&lt;/li&gt;&#xA;&lt;li&gt;Added z14 support.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SYCL&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Redesigned SYCL implementation for use with the&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/unsupported/eigen_tensors.html&#34;&gt;Tensor&lt;/a&gt;&#xA;module, which can be enabled by defining &lt;code&gt;EIGEN_USE_SYCL&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;New generic memory model introduced used by &lt;code&gt;TensorDeviceSycl&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Better integration with OpenCL devices.&lt;/li&gt;&#xA;&lt;li&gt;Added many math function specializations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;miscellaneous-api-changes&#34;&gt;Miscellaneous API Changes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#miscellaneous-api-changes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New &lt;code&gt;setConstant(...)&lt;/code&gt; methods for preserving one dimension of a&#xA;matrix by passing in &lt;code&gt;NoChange&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  MatrixXf &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;);               &lt;span style=&#34;color:#75715e&#34;&gt;// 10x5  matrix.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setConstant(NoChange, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);  &lt;span style=&#34;color:#75715e&#34;&gt;// 10x10 matrix of 2s.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setConstant(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;, NoChange, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;);   &lt;span style=&#34;color:#75715e&#34;&gt;//  5x10 matrix of 3s.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setZero(NoChange, &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;);         &lt;span style=&#34;color:#75715e&#34;&gt;//  5x20 matrix of 0s.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setZero(&lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;, NoChange);         &lt;span style=&#34;color:#75715e&#34;&gt;// 20x20 matrix of 0s.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setOnes(NoChange, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;);          &lt;span style=&#34;color:#75715e&#34;&gt;// 20x5  matrix of 1s.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setOnes(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;, NoChange);          &lt;span style=&#34;color:#75715e&#34;&gt;//  5x5  matrix of 1s.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setRandom(NoChange, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);       &lt;span style=&#34;color:#75715e&#34;&gt;//  5x10 random matrix.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.setRandom(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;, NoChange);       &lt;span style=&#34;color:#75715e&#34;&gt;// 10x10 random matrix.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Added &lt;code&gt;setUnit(Index i)&lt;/code&gt; for vectors that sets the &lt;em&gt;i&lt;/em&gt; th coefficient&#xA;to one and all others to zero.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  VectorXf &lt;span style=&#34;color:#a6e22e&#34;&gt;v&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  v.setUnit(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;);   &lt;span style=&#34;color:#75715e&#34;&gt;// { 0, 0, 0, 1, 0}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Added &lt;code&gt;transpose()&lt;/code&gt;, &lt;code&gt;adjoint()&lt;/code&gt;, &lt;code&gt;conjugate()&lt;/code&gt; methods to&#xA;&lt;code&gt;SelfAdjointView&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;shiftLeft&lt;/code&gt;&lt;N&gt;&lt;code&gt;()&lt;/code&gt; and &lt;code&gt;shiftRight&lt;/code&gt;&lt;N&gt;&lt;code&gt;()&lt;/code&gt; coefficient-wise&#xA;arithmetic shift functions to Arrays.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ArrayXXi A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ArrayXXi&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Random(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ArrayXXi B &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; A.shiftRight&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ArrayXXi C &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; A.shiftLeft&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Enabled adding and subtracting of diagonal expressions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  VectorXf x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; VectorXf&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Random(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  VectorXf y &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; VectorXf&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Random(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  MatrixXf A &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; MatrixXf&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Identity(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  A &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; x.asDiagonal() &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; y.asDiagonal();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Allow user-defined default cache sizes via defining&#xA;&lt;code&gt;EIGEN_DEFAULT_L1_CACHE_SIZE&lt;/code&gt;, &amp;hellip;, &lt;code&gt;EIGEN_DEFAULT_L3_CACHE_SIZE&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;EIGEN_ALIGNOF(X)&lt;/code&gt; macro for determining alignment of a provided&#xA;variable.&lt;/li&gt;&#xA;&lt;li&gt;Allow plugins for &lt;code&gt;VectorwiseOp&lt;/code&gt; by defining a file&#xA;&lt;code&gt;EIGEN_VECTORWISEOP_PLUGIN&lt;/code&gt; (e.g.&#xA;&lt;code&gt;-DEIGEN_VECTORWISEOP_PLUGIN=my_vectorwise_op_plugins.h&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Allow disabling of IO operations by defining &lt;code&gt;EIGEN_NO_IO&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;improvement-to-nan-propagation&#34;&gt;Improvement to NaN propagation&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improvement-to-nan-propagation&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Improvements to NaN correctness for elementwise functions.&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;NaNPropagation&lt;/code&gt; template argument to control whether NaNs are&#xA;propagated or suppressed in elementwise &lt;code&gt;min/max&lt;/code&gt; and corresponding&#xA;reductions on &lt;code&gt;Array&lt;/code&gt;, &lt;code&gt;Matrix&lt;/code&gt;, and &lt;code&gt;Tensor&lt;/code&gt;. Example for max:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// Elementwise maximum&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;MatrixXf left, right, r0, r1, r2;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;r0 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; left.cwiseMax(right); &lt;span style=&#34;color:#75715e&#34;&gt;// Implementation defined behavior.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// Propagate NaN if either argument is NaN.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;r1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; left.&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; cwiseMax&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;PropagateNaN&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;(right);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// Suppress NaN if at least one argument is not a NaN.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;r2 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; left.&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; cwiseMax&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;PropagateNumbers&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;(right);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// Max reductions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;MatrixXf m;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt; nan_or_max &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; m.maxCoeff(); &lt;span style=&#34;color:#75715e&#34;&gt;// Implementation defined behavior.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt; nan_if_any_or_max &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; m.&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; maxCoeff&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;PropagateNaN&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt; nan_if_all_or_max &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; m.&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; maxCoeff&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;PropagateNumbers&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;changes-to-unsupported-modules&#34;&gt;Changes to unsupported modules&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#changes-to-unsupported-modules&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;new-low-latency-non-blocking-threadpool-module&#34;&gt;New low-latency non-blocking ThreadPool module&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-low-latency-non-blocking-threadpool-module&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Originally a part of the Tensor module, &lt;code&gt;Eigen::ThreadPool&lt;/code&gt; is now&#xA;separate and more portable, and forms the basis for multi-threading in&#xA;TensorFlow, for example. Example:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;Eigen/CXX11/ThreadPool&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; num_threads &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;42&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;ThreadPool tp(num_threads);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;auto&lt;/span&gt; do_stuff &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; []() { ... };&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  tp.Schedule(do_stuff);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;changes-to-tensor-module&#34;&gt;Changes to Tensor module&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#changes-to-tensor-module&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support for c++03 was officially dropped in Tensor module, since most&#xA;of the code was written in c++11 anyway. This will prevent building&#xA;the code for CUDA with older version of &lt;code&gt;nvcc&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Performance optimizations of Tensor contraction&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Speed up &amp;ldquo;outer-product-like&amp;rdquo; operations by parallelizing over the&#xA;contraction dimension, using thread_local buffers and recursive work&#xA;splitting.&lt;/li&gt;&#xA;&lt;li&gt;Improved threading heuristics.&lt;/li&gt;&#xA;&lt;li&gt;Support for fusing element-wise operations into contraction during&#xA;evaluation. Example:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// This example applies std::sqrt to all output elements from a tensor contraction. &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// The optional OutputKernel argument to the contraction in this example is a functor over a &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 2-dimensional buffer. The functor is called once for each output block of the contraction &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// result, to perform the elementwise sqrt operation while the block is hot in cache.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;SqrtOutputKernel&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;typename&lt;/span&gt; Index, &lt;span style=&#34;color:#66d9ef&#34;&gt;typename&lt;/span&gt; Scalar&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  EIGEN_ALWAYS_INLINE &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;operator&lt;/span&gt;()(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; internal&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;blas_data_mapper&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;Scalar, Index, ColMajor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;amp;&lt;/span&gt; output_mapper,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; TensorContractionParams&lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;, Index, Index, Index num_rows,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      Index num_cols) &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; num_rows; &lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;i) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; j &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; j &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; num_cols; &lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;j) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        output_mapper(i, j) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; std&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;sqrt(output_mapper(i, j));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Tensor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;, DataLayout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; left(&lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;31&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Tensor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;, DataLayout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; right(&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;31&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Tensor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;, DataLayout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; result(&lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;array&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;DimPair, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; dims({{DimPair(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;), DimPair(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)}});&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; left.contract(right, dims, SqrtOutputKernel());&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Performance optimizations of other Tensor operator&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Speedups from improved vectorization, block evaluation, and&#xA;multi-threading for most operators.&lt;/li&gt;&#xA;&lt;li&gt;Significant speedup to broadcasting.&lt;/li&gt;&#xA;&lt;li&gt;Reduction of index computation overhead, e.g. using fast divisors in&#xA;TensorGenerator, squeezing dimensions in TensorPadding.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Complete rewrite of the block (tiling) evaluation framework for tensor&#xA;expressions lead to significant speedups and reduced number of memory&#xA;allocations.&lt;/li&gt;&#xA;&lt;li&gt;Added new API for asynchronous evaluation of tensor expressions.&#xA;Example:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Tensor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; in1(&lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;70&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Tensor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; in2(&lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;70&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Tensor&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; out(&lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;70&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;ThreadPool tp(internal&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;random&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt;));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;ThreadPoolDevice thread_pool_device(&lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;tp, internal&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;random&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt;));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Eigen&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Barrier b(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;auto&lt;/span&gt; done &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;b]() { b.Notify(); };&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  out.device(thread_pool_device, std&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;move(done)) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; in1 &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; in2 &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3.14f&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  b.Wait();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Misc. minor behavior changes &amp;amp; fixes:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix const correctness for TensorMap.&lt;/li&gt;&#xA;&lt;li&gt;Modify tensor argmin/argmax to always return first occurrence.&lt;/li&gt;&#xA;&lt;li&gt;More numerically stable tree reduction.&lt;/li&gt;&#xA;&lt;li&gt;Improve randomness of the tensor random generator.&lt;/li&gt;&#xA;&lt;li&gt;Update the padding computation for PADDING_SAME to be consistent&#xA;with TensorFlow.&lt;/li&gt;&#xA;&lt;li&gt;Support static dimensions (aka IndexList) in&#xA;resizing/reshape/broadcast.&lt;/li&gt;&#xA;&lt;li&gt;Improved accuracy of Tensor FFT.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;improvements-to-fft-module&#34;&gt;Improvements to FFT module&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improvements-to-fft-module&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Faster and more accurate twiddle factor computation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;improvements-to-eulerangles&#34;&gt;Improvements to EulerAngles&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improvements-to-eulerangles&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;EulerAngles can now be directly constructed from 3D vectors&lt;/li&gt;&#xA;&lt;li&gt;EulerAngles now provide &lt;code&gt;isApprox()&lt;/code&gt; and &lt;code&gt;cast()&lt;/code&gt; functions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;changes-to-sparse-iterative-solvers&#34;&gt;Changes to sparse iterative solvers&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#changes-to-sparse-iterative-solvers&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added new IDRS iterative linear solver.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;unsupported/Eigen/IterativeSolvers&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  A.makeCompressed();   &lt;span style=&#34;color:#75715e&#34;&gt;// Recommendation is to compress input before calling sparse solvers.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  IDRS&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;SparseMatrix&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;, DiagonalPreconditioner&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;float&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; idrs(A);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  VectorXf x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; idrs.solve(b);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; success &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (idrs.info() &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; ComputationInfo&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Success);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;improvements-to-polynomials&#34;&gt;Improvements to Polynomials&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improvements-to-polynomials&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PolynomialSolver can now be used with complex numbers&lt;/li&gt;&#xA;&lt;li&gt;The solver will automatically choose between &lt;code&gt;EigenSolver&lt;/code&gt; and&#xA;&lt;code&gt;ComplexEigenSolver&lt;/code&gt; depending on the scalar type used&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;other-relevant-changes&#34;&gt;Other relevant changes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#other-relevant-changes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Eigen now provides an option to test with an external BLAS library&lt;/li&gt;&#xA;&lt;li&gt;Eigen can now be used with the &lt;a href=&#34;https://en.wikipedia.org/wiki/The_Portland_Group&#34;&gt;PGI&#xA;Compiler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Printing when using GDB has been improved&lt;/li&gt;&#xA;&lt;li&gt;Eigen can now detect if a platform supports &lt;code&gt;int128&lt;/code&gt; intrinsics&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;testing&#34;&gt;Testing&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#testing&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The full Eigen test suite was built and run successfully (in c++03 and&#xA;c++11 mode) with the following compiler/platform/OS combinations:&lt;/p&gt;</description>
    </item>
    <item>
      <title>User:Tellenbach</title>
      <link>https://libeigen.gitlab.io/user/tellenbach/</link>
      <pubDate>Mon, 30 Aug 2021 19:34:58 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/user/tellenbach/</guid>
      <description></description>
    </item>
    <item>
      <title>Eigen 3.4.0 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.4.0_released/</link>
      <pubDate>Wed, 18 Aug 2021 21:36:27 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.4.0_released/</guid>
      <description>&lt;p&gt;Eigen 3.4.0 has been released on August 18, 2021.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Notice:&lt;/strong&gt; that 3.4.x will be the last major release series of Eigen&#xA;that will support c++03. The master branch will drop c++03 support after&#xA;this release.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is available at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.4.0&#34;&gt;https://gitlab.com/libeigen/eigen/-/releases/3.4.0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Please check the &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.4/&#34;&gt;release page&lt;/a&gt; for a list of changes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>User:Everton</title>
      <link>https://libeigen.gitlab.io/user/everton/</link>
      <pubDate>Tue, 17 Aug 2021 22:29:41 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/user/everton/</guid>
      <description>&lt;h4 id=&#34;new-power-10-mma-backend&#34;&gt;New Power 10 MMA Backend&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-power-10-mma-backend&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Initial support for Power 10 matrix multiplication assist instructions&#xA;for float32, float64 real and complex.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;altivecpower-improvements&#34;&gt;Altivec/Power improvements&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#altivecpower-improvements&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;General performance improvement and bugfixes.&lt;/li&gt;&#xA;&lt;li&gt;Enhanced vectorization of current real and complex scalars.&lt;/li&gt;&#xA;&lt;li&gt;Changes to the gebp_kernel specific to Altivec, using VSX&#xA;implementation of the MMA instructions that gain speed improvements up&#xA;to 4x for matrix-matrix products.&lt;/li&gt;&#xA;&lt;li&gt;Dynamic dispatch for GCC greater than 10 enabling selection of MMA or&#xA;VSX instructions based on __builtin_cpu_supports.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Eigen 3.4-rc1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.4-rc1_released/</link>
      <pubDate>Mon, 19 Apr 2021 11:16:50 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.4-rc1_released/</guid>
      <description>&lt;p&gt;Eigen 3.4-rc1 has been released on April 19, 2021.&lt;/p&gt;&#xA;&lt;p&gt;Depending on the amount of reported issues, 3.4 will be released late&#xA;April or early May.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is available at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.4-rc1&#34;&gt;https://gitlab.com/libeigen/eigen/-/releases/3.4-rc1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Please check the &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.4/&#34;&gt;release page&lt;/a&gt; for a list of changes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tests</title>
      <link>https://libeigen.gitlab.io/pages/tests/</link>
      <pubDate>Sun, 18 Apr 2021 16:02:34 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/tests/</guid>
      <description>&lt;h1 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#prerequisites&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;First of all, this page applies to the development branch.&lt;/p&gt;&#xA;&lt;p&gt;You need to know how to use CMake, see &lt;a href=&#34;https://libeigen.gitlab.io/pages/cmake/&#34;&gt;our page on that&#xA;topic&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;From now on, we assume that we are in the build directory and that you&#xA;have already run cmake. There is no need to pass a particular option to&#xA;CMake to enable tests.&lt;/p&gt;&#xA;&lt;h1 id=&#34;building-and-running-unit-tests&#34;&gt;Building and running unit tests&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#building-and-running-unit-tests&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;To build and run all tests using CTest, use the &lt;strong&gt;check&lt;/strong&gt; target. For&#xA;example, if your platform uses make:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Benchmark</title>
      <link>https://libeigen.gitlab.io/benchmarks/benchmark/</link>
      <pubDate>Sun, 04 Apr 2021 17:48:40 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/benchmarks/benchmark/</guid>
      <description>&lt;div style=&#34;border:solid;border-color:red;padding:1em 1em 1em 1em&#34;&gt;&#xA;&lt;p&gt;This page is rather out of date. Please help us to generate and maintain&#xA;up-to-date benchmarks.&lt;/p&gt;&#xA;&lt;p&gt;See also the &lt;a href=&#34;https://libeigen.gitlab.io/pages/performance_monitoring/&#34;&gt;performance monitoring&lt;/a&gt;&#xA;page for benchmark of Eigen along time.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The following benchmark results have been generated using a (heavily)&#xA;modified version of the Benchmark for Templated Libraries&#xA;(&lt;a href=&#34;https://dev.opencascade.org/content/bench-templated-libraries&#34;&gt;BTL&lt;/a&gt;) from Laurent Plagne. Our&#xA;modified version can be found in the git repository under&#xA;bench/btl. We did our best to make the best use of each library,&#xA;however, any hints on making a lib working better are welcome. All libs&#xA;have been configured to use &lt;strong&gt;dynamic-size column-major matrices&lt;/strong&gt; and&#xA;only &lt;strong&gt;one thread&lt;/strong&gt;. &lt;a href=&#34;https://libeigen.gitlab.io/pages/how_to_run_the_benchmark_suite/&#34;&gt;Try it&#xA;yourself&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git</title>
      <link>https://libeigen.gitlab.io/pages/git/</link>
      <pubDate>Sat, 27 Feb 2021 22:59:33 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/git/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://git-scm.com&#34;&gt;Git&lt;/a&gt; is the source-control management (SCM) tool&#xA;that we use for Eigen. This page is not intended to be a Git tutorial&#xA;but a brief wrap-up on how we use Git for Eigen.&lt;/p&gt;&#xA;&lt;h2 id=&#34;gitlab-workflow&#34;&gt;GitLab Workflow&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#gitlab-workflow&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Eigen&amp;rsquo;s sources are hosted on&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;GitLab&lt;/a&gt; where we use a &lt;a href=&#34;https://docs.gitlab.com/user/project/merge_requests/methods/#fast-forward-merge&#34;&gt;fast-forward&#xA;merge&lt;/a&gt;&#xA;and&#xA;&lt;a href=&#34;https://docs.gitlab.com/user/project/merge_requests/methods/#with-squashing&#34;&gt;squash&lt;/a&gt;&#xA;policy.&lt;/p&gt;&#xA;&lt;p&gt;If you plan to contribute a patch to Eigen you have to follow our GitLab&#xA;workflow:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.gitlab.com/ee////user/project/repository/forking_workflow.html#creating-a-fork&#34;&gt;Fork&lt;/a&gt;&#xA;the official Eigen repository.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://git-scm.com/docs/git-clone&#34;&gt;Clone&lt;/a&gt; your fork.&lt;/li&gt;&#xA;&lt;li&gt;Create a new feature branch.&lt;/li&gt;&#xA;&lt;li&gt;Make your changes and commit them.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html&#34;&gt;Create a merge&#xA;request&lt;/a&gt;.&#xA;The title and description of your merge request will be the commit&#xA;message once the request gets merged so make sure to add a&#xA;descriptive and condensed title and an informative and clear&#xA;description. Please make sure to enable the option &lt;a href=&#34;https://docs.gitlab.com/ee/user/project/merge_requests/allow_collaboration.html&#34;&gt;&amp;ldquo;Allow commits&#xA;from members who can merge to the target&#xA;branch.&amp;rdquo;&lt;/a&gt;&#xA;to enable maintainers to rebase your branch.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;keep-your-fork-in-sync&#34;&gt;Keep your fork in sync&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#keep-your-fork-in-sync&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you plan to contribute to Eigen more than once, it&amp;rsquo;s necessary to&#xA;synchronize it with the official Eigen repository. This can be done&#xA;using plain Git by adding the official repository as a second remote.&#xA;You can then rebase to it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.9 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.9_released/</link>
      <pubDate>Fri, 04 Dec 2020 22:09:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.9_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.9 has been released on December 4, 2020.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing minor bugs and compilation issues.&#xA;For more details have a look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#339---2020-12-04&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The sources are available at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.3.9&#34;&gt;https://gitlab.com/libeigen/eigen/-/releases/3.3.9&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen on Discord</title>
      <link>https://libeigen.gitlab.io/news/eigen_on_discord/</link>
      <pubDate>Mon, 16 Nov 2020 17:19:05 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_on_discord/</guid>
      <description>&lt;p&gt;Join our &lt;a href=&#34;https://discord.gg/2SkEJGqZjR&#34;&gt;Discord server&lt;/a&gt; to discuss&#xA;Eigen-related topics with other users and developers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.8 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.8_released/</link>
      <pubDate>Mon, 05 Oct 2020 12:13:08 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.8_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.8 has been released on October 5, 2020.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing minor bugs and compilation issues.&#xA;For more details have a look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#338---2020-10-05&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The sources are available at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.3.8&#34;&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/releases/3.3.8&#34;&gt;https://gitlab.com/libeigen/eigen/-/releases/3.3.8&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen is now on GitLab.com</title>
      <link>https://libeigen.gitlab.io/news/eigen_is_now_on_gitlab.com/</link>
      <pubDate>Thu, 30 Jul 2020 14:47:56 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_is_now_on_gitlab.com/</guid>
      <description>&lt;p&gt;Since the end of 2019, Eigen&amp;rsquo;s repository and bugtracker are now both&#xA;hosted on &lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;GitLab.com&lt;/a&gt;, meaning that&#xA;Eigen is now using git for source code management.&lt;/p&gt;&#xA;&lt;p&gt;The old mercurial repository is still readable on&#xA;bitbucket.org, but it is &lt;strong&gt;not&#xA;synchronized&lt;/strong&gt; with the git repository, meaning that it should be used&#xA;for archive purposes only. The same remark applies for the old &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues&#34;&gt;bugzilla&#xA;instance&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migration to GitLab.com scheduled on the December 4th</title>
      <link>https://libeigen.gitlab.io/news/migration_to_gitlab.com_scheduled_on_the_december_4th/</link>
      <pubDate>Mon, 25 Nov 2019 20:41:17 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/migration_to_gitlab.com_scheduled_on_the_december_4th/</guid>
      <description>&lt;p&gt;Following the decision of&#xA;&lt;a href=&#34;https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket&#34;&gt;Bitbucket.org&lt;/a&gt;&#xA;to delete all mercurial repositories next spring, we decided to migrate&#xA;to a git repository hosted on &lt;a href=&#34;https://gitlab.com&#34;&gt;gitlab.com&lt;/a&gt;. We also&#xA;decided to take this opportunity to migrate our self hosted&#xA;bugzilla instance to gitlab.com. Both&#xA;migrations are scheduled on the 4th of December, starting at 8:00 UTC,&#xA;and the new project:&lt;br&gt;&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;https://gitlab.com/libeigen/eigen&lt;/a&gt;&lt;/a&gt;&lt;br&gt;&#xA;will be made public once the migration is completed.&lt;/p&gt;&#xA;&lt;p&gt;Details on the migration process:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Our bugzilla will be made read only;&#xA;all entries, comments and attachments will be&#xA;transferred to gitlab.com while keeping the same bug IDs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;https://bitbucket.org/eigen/eigen&lt;/code&gt;&#xA;will be unavailable and replaced by an empty project pointing&#xA;to &lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;https://gitlab.com/libeigen/eigen&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;The old mercurial repository will still be readable&#xA;on eigen.tuxfamily.org but with no updates.&lt;/li&gt;&#xA;&lt;li&gt;Existing pull-requests will be archived as static pages hosted on&#xA;eigen.tuxfamily.org&lt;/li&gt;&#xA;&lt;li&gt;The official git mirror&#xA;(&lt;a href=&#34;https://github.com/eigenteam/eigen-git-mirror&#34;&gt;https://github.com/eigenteam/eigen-git-mirror&lt;/a&gt;) will be kept as it is&#xA;for a few months with no updates until we eventually replace it by an&#xA;empty project pointing&#xA;to &lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen&#34;&gt;https://gitlab.com/libeigen/eigen&lt;/a&gt;&lt;/a&gt;.&#xA;(it cannot be synchronised because of hash differences)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Performance monitoring</title>
      <link>https://libeigen.gitlab.io/pages/performance_monitoring/</link>
      <pubDate>Fri, 18 Jan 2019 08:54:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/performance_monitoring/</guid>
      <description>&lt;p&gt;You can follow the performance of Eigen along its development there:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/perf_monitoring/XeonW2155/index.html&#34;&gt;Skylake-AVX512,&#xA;clang7.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/perf_monitoring/ggaelmacbook26/index.html&#34;&gt;Haswell-FMA, Apple&amp;rsquo;s&#xA;clang&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/perf_monitoring/ggaelmacbook26_gcc/index.html&#34;&gt;Haswell-FMA,&#xA;GCC6&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/perf_monitoring/ggaelcactus34/index.html&#34;&gt;SandyBridge-AVX,&#xA;GCC5&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/perf_monitoring/ggaelcactus34_clang38/index.html&#34;&gt;SandBridge-AVX,&#xA;clang3.8&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;run-those-tests-on-your-own-computer&#34;&gt;Run those tests on your own computer&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#run-those-tests-on-your-own-computer&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Generating those graph for your own computer and compiler flags is&#xA;fairly easy. From Eigen&amp;rsquo;s sources, make a copy of&#xA;&lt;code&gt;script/eigen_monitor_perf.sh&lt;/code&gt; to some location, adjust the different&#xA;variables to match your setup, update the &lt;code&gt;rsync&lt;/code&gt; and &lt;code&gt;ssh&lt;/code&gt; lines if you&#xA;want to upload the graph to your own server (or comment them if you&#xA;don&amp;rsquo;t want to share your results), and then run the script. That&amp;rsquo;s all.&#xA;The charts are generated in&#xA;&lt;code&gt;$EIGEN_SOURCE_PATH/bench/perf_monitoring/$PREFIX/&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.7 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.7_released/</link>
      <pubDate>Tue, 11 Dec 2018 19:24:35 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.7_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.7 has been released on December 11, 2018.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing a compilation issue introduced in&#xA;the previous 3.3.6 release. The compilation issue only occurred for some&#xA;versions of GCC with compiler optimization turned off.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.6 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.6_released/</link>
      <pubDate>Mon, 10 Dec 2018 13:50:59 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.6_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.6 has been released on December 10, 2018.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing several minor bugs and compilations&#xA;issues. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#336---2018-12-10&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.6/eigen-3.3.6.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.6/eigen-3.3.6.tar.bz2&lt;/a&gt; .&lt;/p&gt;&#xA;&lt;p&gt;We plan a beta1 release of the next Eigen 3.4 within the next few days,&#xA;stay tuned!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reliability</title>
      <link>https://libeigen.gitlab.io/pages/reliability/</link>
      <pubDate>Mon, 15 Oct 2018 12:49:28 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/reliability/</guid>
      <description>&lt;h1 id=&#34;choice-of-algorithms&#34;&gt;Choice of algorithms&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#choice-of-algorithms&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;em&gt;&amp;ldquo;The Fast drives out the Slow even if the Fast is wrong.&amp;rdquo;&lt;/em&gt; &amp;mdash; W. Kahan&lt;/p&gt;&#xA;&lt;p&gt;Any matrix library has to make trade-offs between speed and reliability.&#xA;Eigen&amp;rsquo;s bias is towards reliability. That may be related to the fact&#xA;that its founder is a former non-applied mathematician.&lt;/p&gt;&#xA;&lt;p&gt;As our &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/group__TutorialLinearAlgebra.html&#34;&gt;table of&#xA;decompositions&lt;/a&gt;&#xA;shows, we have a bias towards safer, pivoting algorithms. Where&#xA;applicable, we tend to provide both a partial-pivoting algorithm that&#xA;offers a quite good speed/reliability trade-off, and a full-pivoting&#xA;algorithm that&amp;rsquo;s entirely uncompromising on reliability. See for example&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/classEigen_1_1FullPivLU.html&#34;&gt;FullPivLU&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.5 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.5_released/</link>
      <pubDate>Mon, 23 Jul 2018 09:36:30 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.5_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.5 has been released on July 23, 2018.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing several minor bugs and compilations&#xA;issues. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#335---2018-07-23&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.5/eigen-3.3.5.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.5/eigen-3.3.5.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen now offers a git mirror on github!</title>
      <link>https://libeigen.gitlab.io/news/eigen_now_offers_a_git_mirror_on_github/</link>
      <pubDate>Fri, 29 Dec 2017 17:27:46 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_now_offers_a_git_mirror_on_github/</guid>
      <description>&lt;p&gt;Git users can now clone Eigen through git or import it as submodule:&#xA;&lt;a href=&#34;https://github.com/eigenteam/eigen-git-mirror&#34;&gt;https://github.com/eigenteam/eigen-git-mirror&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3</title>
      <link>https://libeigen.gitlab.io/releases/3.3/</link>
      <pubDate>Wed, 06 Sep 2017 09:56:42 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/releases/3.3/</guid>
      <description>&lt;p&gt;Eigen 3.3 has been released on November 10, 2016. It can be downloaded&#xA;from the &lt;a href=&#34;https://libeigen.gitlab.io/#download&#34;&gt;Download&lt;/a&gt; section on the &lt;a href=&#34;https://libeigen.gitlab.io/&#34;&gt;Main&#xA;Page&lt;/a&gt;. Since Eigen 3.2, the 3.3 development branch&#xA;received more than 3500 commits [1] representing numerous major&#xA;changes.&lt;/p&gt;&#xA;&lt;p&gt;Release history:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Eigen 3.3 alpha-1 was released on September 4, 2015. It includes about&#xA;1660 commits since 3.2. It includes all bug-fixes and improvements of&#xA;the 3.2 branch up to the 3.2.5 version, as detailed in the respective&#xA;change-logs: &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#321---2014-02-26&#34;&gt;3.2.1&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#322---2014-08-04&#34;&gt;3.2.2&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#323---2014-12-16&#34;&gt;3.2.3&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#324---2015-01-21&#34;&gt;3.2.4&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#325---2015-06-16&#34;&gt;3.2.5&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Eigen 3.3 beta-1 was released on December 16, 2015. It includes about&#xA;350 commits since 3.3 alpha1, as detailed in the respective&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#33-beta1---2015-12-16&#34;&gt;change-log&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Eigen 3.3 beta-2 was released on July 26, 2016. It includes more that&#xA;1000 commits since 3.3 beta1, as detailed in the respective&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#33-beta2---2016-08-26&#34;&gt;change-log&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Eigen 3.3 rc-1 was released on September 22, 2016. It includes more&#xA;that 300 commits since 3.3 beta2, as detailed in the respective&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#33-rc1---2016-09-22&#34;&gt;change-log&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Eigen 3.3 rc-2 was released on November 04, 2016. It includes more&#xA;that 90 commits since 3.3 rc1, as detailed in the respective&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#33-rc2---2016-11-04&#34;&gt;change-log&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The major changes since 3.2 are summarized below.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.4 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.4_released/</link>
      <pubDate>Thu, 15 Jun 2017 07:11:31 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.4_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.4 has been released on June 15, 2017.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing a few regressions and other issues.&#xA;For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/nightly/CHANGELOG.md#334---2017-06-15&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.4/eigen-3.3.4.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.4/eigen-3.3.4.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.3 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.3_released/</link>
      <pubDate>Tue, 21 Feb 2017 13:40:28 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.3_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.3 has been released on February 21, 2017.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release fixing a few regressions and other issues.&#xA;For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#333---2017-02-21&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.3/eigen-3.3.3.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.3/eigen-3.3.3.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.2_released/</link>
      <pubDate>Wed, 18 Jan 2017 14:12:31 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.2_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.2 has been released on January 18, 2017.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few fixes of compilation and&#xA;performance regressions, some doxygen documentation improvements, and&#xA;the addition of transpose, adjoint, conjugate methods to SelfAdjointView&#xA;to ease writing generic code. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#332---2017-01-18&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.2/eigen-3.3.2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.2/eigen-3.3.2.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working notes - Indexing&#43;&#43;</title>
      <link>https://libeigen.gitlab.io/notes/working_notes_-_indexing/</link>
      <pubDate>Sun, 08 Jan 2017 14:00:33 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/notes/working_notes_-_indexing/</guid>
      <description>&lt;p&gt;The goal of this page is to summarize the different ideas and working&#xA;plan to (finally!) provide support for flexible row/column indexing in&#xA;Eigen. See this &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues/329&#34;&gt;bug&#xA;report&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;needs&#34;&gt;Needs&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#needs&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;We aim to support various indexing mechanisms. For each dimension, we&#xA;would like to be able to have any of:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;all&lt;/strong&gt;: as in &lt;code&gt;A(:)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;singleton&lt;/strong&gt;: as in &lt;code&gt;A(3)&lt;/code&gt; (already supported!)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;index-array&lt;/strong&gt;: as in &lt;code&gt;A([3 1 5])&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;range-based&lt;/strong&gt;: as in &lt;code&gt;A(3:9)&lt;/code&gt;, but sometimes it is also convenient&#xA;to specify the &lt;em&gt;start+length&lt;/em&gt; similar to what &lt;code&gt;Eigen::Block&lt;/code&gt; offers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;slicing&lt;/strong&gt;: as in &lt;code&gt;A(3:2:9)&lt;/code&gt;. Same as for range, we sometime also&#xA;want to specify &lt;em&gt;start+length+stride&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;negative indices&lt;/strong&gt;: as in &lt;code&gt;A(end-3)&lt;/code&gt; or &lt;code&gt;A(3:2:end-1)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;boolean masking&lt;/strong&gt;: as in &lt;code&gt;A(A&amp;gt;0)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;All of this with a concise and unambiguous API! We should also be able&#xA;to provide compile-time information such as &lt;em&gt;lengths&lt;/em&gt; and maybe&#xA;&lt;em&gt;strides&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Info about 3.0</title>
      <link>https://libeigen.gitlab.io/pages/info_about_3.0/</link>
      <pubDate>Wed, 21 Dec 2016 13:57:49 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/info_about_3.0/</guid>
      <description>&lt;div style=&#34;border: 2px solid #aa0000; padding: 1em; margin: 2em;&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;This page was written in November 2009 in the run-up to Eigen 3.0 and&#xA;has not been kept up-to-date when Eigen 3.0 was released. It is kept for&#xA;historical reasons.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;what-is-eigen-30&#34;&gt;What is Eigen 3.0?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-is-eigen-30&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/releases/3.0/&#34;&gt;Eigen 3.0&lt;/a&gt; has been released on March 19, 2011. It is&#xA;not API or ABI compatible with Eigen 2.0, whence the version number&#xA;increase to 3.0. However, porting to 3.0 is relatively easy and Eigen&#xA;3.0 is co-installable with Eigen 2.0. We also provide extensive &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/Eigen2ToEigen3.html&#34;&gt;porting&#xA;documentation&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Todo for 3.0</title>
      <link>https://libeigen.gitlab.io/pages/todo_for_3.0/</link>
      <pubDate>Wed, 21 Dec 2016 13:54:41 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/todo_for_3.0/</guid>
      <description>&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_Owl_Todo.jpg&#34; title=&#34;Eigen_Owl_Todo.jpg&#34; /&gt;&#xA;&lt;figcaption&gt;Eigen_Owl_Todo.jpg&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;&lt;strong&gt;This page is deprecated. The new way of tracking the 3.0 release is&#xA;using the &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues/25&#34;&gt;tracking&#xA;bug&lt;/a&gt; on Bugzilla.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This Todo is to keep track of the things that must be done for Eigen&#xA;3.0. There is a separate &lt;a href=&#34;https://libeigen.gitlab.io/pages/todo/&#34;&gt;Todo&lt;/a&gt; for long-term and&#xA;generalist Todo items, not specifically for 3.0. There is also a&#xA;separate page tracking the &lt;a href=&#34;https://libeigen.gitlab.io/pages/status_of_unsupported_modules/&#34;&gt;status of unsupported&#xA;modules&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Note that a ton of stuff has already been done, and isn&amp;rsquo;t mentioned&#xA;here, so this page isn&amp;rsquo;t at all intend to give an idea of all of what&#xA;there will be in 3.0.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Status of unsupported modules</title>
      <link>https://libeigen.gitlab.io/pages/status_of_unsupported_modules/</link>
      <pubDate>Wed, 21 Dec 2016 13:49:52 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/status_of_unsupported_modules/</guid>
      <description>&lt;p&gt;This page gives the status of the modules under &lt;em&gt;unsupported/&lt;/em&gt;. Those&#xA;module are work in progress, they often lack features, tests or&#xA;documentation, and their API can change at any time.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Name&lt;/th&gt;&#xA;          &lt;th&gt;Contact&lt;/th&gt;&#xA;          &lt;th&gt;Code status&lt;/th&gt;&#xA;          &lt;th&gt;Tests status&lt;/th&gt;&#xA;          &lt;th&gt;Documentation status&lt;/th&gt;&#xA;          &lt;th&gt;Date of start&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Adolc forward module&lt;/td&gt;&#xA;          &lt;td&gt;Gael&lt;/td&gt;&#xA;          &lt;td&gt;This module only support the forward mode of adolc. It has now been superseded by our own AutoDiff module.&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;February 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Aligned vector3 module&lt;/td&gt;&#xA;          &lt;td&gt;Gael&lt;/td&gt;&#xA;          &lt;td&gt;Pretty much complete.&lt;/td&gt;&#xA;          &lt;td&gt;Could be improved a bit.&lt;/td&gt;&#xA;          &lt;td&gt;Could be improved a bit.&lt;/td&gt;&#xA;          &lt;td&gt;May 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Auto Diff module&lt;/td&gt;&#xA;          &lt;td&gt;Gael&lt;/td&gt;&#xA;          &lt;td&gt;Need some refactoring.&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;None&lt;/td&gt;&#xA;          &lt;td&gt;April 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;BVH module&lt;/td&gt;&#xA;          &lt;td&gt;Baran?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;March 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Complex module&lt;/td&gt;&#xA;          &lt;td&gt;Mark&lt;/td&gt;&#xA;          &lt;td&gt;proof-of-concept code to verify that it is possible to make the result of operator&amp;amp; be castable to either Eigen::Complex or std::complex&lt;/td&gt;&#xA;          &lt;td&gt;Minimal&lt;/td&gt;&#xA;          &lt;td&gt;No&lt;/td&gt;&#xA;          &lt;td&gt;June 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://libeigen.gitlab.io/pages/eigenfft/&#34;&gt; Fast Fourier Transform module&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Mark&lt;/td&gt;&#xA;          &lt;td&gt;functional for 1-D cases with FFTW or KISSFFT backend.Some of the interface may still change. TODO: 2-D FFTs &amp;amp; Intel MKL backend&lt;/td&gt;&#xA;          &lt;td&gt;Tests exist to test forward,inverse FFTs with sizes with various factors of 2s,3s,and 5s. float, double, long double are tested. FFTW backend is tested.&lt;/td&gt;&#xA;          &lt;td&gt;No&lt;/td&gt;&#xA;          &lt;td&gt;May 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Iterative solvers module&lt;/td&gt;&#xA;          &lt;td&gt;Gael&lt;/td&gt;&#xA;          &lt;td&gt;This module was only for Step. It need to be completely rewritten.&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;Few&lt;/td&gt;&#xA;          &lt;td&gt;February 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Matrix functions module&lt;/td&gt;&#xA;          &lt;td&gt;Jitse Niesen&lt;/td&gt;&#xA;          &lt;td&gt;Contains implementations for matrix exponential and other entire functions. Ready to switch to supported, as far as I (Jitse) am concerned. Matrix logarithm is missing.&lt;/td&gt;&#xA;          &lt;td&gt;OK. One failing test, due to issues in Eigen core with 1×1 matrices (Benoît is working on this).&lt;/td&gt;&#xA;          &lt;td&gt;Usable, but can be improved.&lt;/td&gt;&#xA;          &lt;td&gt;May 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;More vectorization module&lt;/td&gt;&#xA;          &lt;td&gt;Rohit?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;None&lt;/td&gt;&#xA;          &lt;td&gt;April 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Nonlinear optimization module&lt;/td&gt;&#xA;          &lt;td&gt;Thomas Capricelli (orzel)&lt;/td&gt;&#xA;          &lt;td&gt;I think it doesn&amp;rsquo;t work yet with special matrices (Sparse&amp;hellip;), though this is probably possible to achieve. The internal stuff still has and uses its own QR decompositions (both Givens and Householder). I&amp;rsquo;m waiting for the QR API to settle in Eigen (availability of Givens decomposition and stable API). The API should probably be factorized with other parts of Eigen, typically Iterative solvers.&lt;/td&gt;&#xA;          &lt;td&gt;I think there are enough tests.&lt;/td&gt;&#xA;          &lt;td&gt;Minimalist documentation is here.&lt;/td&gt;&#xA;          &lt;td&gt;September 10th, 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Numerical differentiation module&lt;/td&gt;&#xA;          &lt;td&gt;Thomas Capricelli (orzel)&lt;/td&gt;&#xA;          &lt;td&gt;I don&amp;rsquo;t expect to add any more feature or to change the API.&lt;/td&gt;&#xA;          &lt;td&gt;There are few tests, could probably use more.&lt;/td&gt;&#xA;          &lt;td&gt;Minimalist documentation is here, should be enhanced before switching to &lt;strong&gt;supported&lt;/strong&gt; status.&lt;/td&gt;&#xA;          &lt;td&gt;August 10th, 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Skyline module&lt;/td&gt;&#xA;          &lt;td&gt;kayhman?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;?&lt;/td&gt;&#xA;          &lt;td&gt;Some&lt;/td&gt;&#xA;          &lt;td&gt;November 2009&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Visual Studio</title>
      <link>https://libeigen.gitlab.io/pages/visual_studio/</link>
      <pubDate>Wed, 21 Dec 2016 13:37:48 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/visual_studio/</guid>
      <description>&lt;p&gt;Moved to &lt;a href=&#34;https://libeigen.gitlab.io/pages/ides/#visual_studio&#34;&gt;IDE/Visual Studio&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IDEs</title>
      <link>https://libeigen.gitlab.io/pages/ides/</link>
      <pubDate>Wed, 21 Dec 2016 13:36:15 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/ides/</guid>
      <description>&lt;p&gt;Some workarounds and hacks might be useful for IDEs in order to use&#xA;Eigen in an optimal way. This page is meant to collect them, to help&#xA;newcomers.&lt;/p&gt;&#xA;&lt;h1 id=&#34;eclipse-cdt&#34;&gt;Eclipse CDT&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#eclipse-cdt&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;paths&#34;&gt;Paths&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#paths&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Apart from &amp;ldquo;Organize includes&amp;rdquo; (see the section below), everything works&#xA;out of the box. For example, if Eigen is installed in&#xA;&lt;em&gt;/usr/include/eigen3&lt;/em&gt; and this path is added to the &lt;strong&gt;Project Properties&#xA;&amp;gt; C/C++ General &amp;gt; Paths &amp;amp; Symbols &amp;gt; Includes &amp;gt; GNU C++&lt;/strong&gt;, you only&#xA;need to add includes of the form&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3.1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3.1_released/</link>
      <pubDate>Tue, 06 Dec 2016 10:48:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3.1_released/</guid>
      <description>&lt;p&gt;Eigen 3.3.1 has been released on December 06, 2016.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few bug fixes and performance&#xA;regressions since the first release of the 3.3 series. This release also&#xA;includes better cmake support (imported targets, relocatable package).&#xA;For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#331---2016-12-06&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3.1/eigen-3.3.1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3.1/eigen-3.3.1.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3_released/</link>
      <pubDate>Thu, 10 Nov 2016 13:17:36 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3_released/</guid>
      <description>&lt;p&gt;After more than three years of efforts, Eigen 3.3 has been released on&#xA;November 10, 2016.&lt;/p&gt;&#xA;&lt;p&gt;Since Eigen 3.2, the 3.3 version leverage numerous major novel features&#xA;and improvements that are summarized in the &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.3/&#34;&gt;dedicated 3.3 release&#xA;page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Those include, a novel &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.3/#expression_evaluators&#34;&gt;evaluation&#xA;mechanism&lt;/a&gt; of expressions, support&#xA;for AVX, FMA, AVX512, VSX and ZVector vector instructions, unaligned&#xA;vectorization, nvcc/CUDA, &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/TopicMultiThreading.html&#34;&gt;more OpenMP&#xA;parallelism&lt;/a&gt;,&#xA;a fast &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1BDCSVD.html&#34;&gt;divide and conquer&#xA;SVD&lt;/a&gt;&#xA;algorithm, a&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1CompleteOrthogonalDecomposition.html&#34;&gt;CompleteOrthogonalDecomposition&lt;/a&gt;&#xA;class for fast minimal norm solving, a &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1LeastSquaresConjugateGradient.html&#34;&gt;LS-CG&#xA;solver&lt;/a&gt;,&#xA;a fast reciprocal condition number estimators in LU and Cholesky&#xA;factorizations, &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1SolverBase.html&#34;&gt;LU::transpose()/adjoint()&#xA;API&lt;/a&gt;,&#xA;support for &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__InplaceDecomposition.html&#34;&gt;inplace&#xA;decompositions&lt;/a&gt;,&#xA;support for &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__MatrixfreeSolverExample.html&#34;&gt;matrix-free iterative&#xA;solvers&lt;/a&gt;,&#xA;new &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__CoeffwiseMathFunctions.html&#34;&gt;array&#xA;functions&lt;/a&gt;,&#xA;support for any&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/TopicUsingBlasLapack.html&#34;&gt;BLAS/LAPACK&lt;/a&gt;&#xA;libraries as backend, improved support for &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.3/#mixing_scalar_types_.28new_in_beta2.29&#34;&gt;mixing scalar&#xA;types&lt;/a&gt;,&#xA;eigenvectors in GeneralizedEigenSolver, a complete rewrite of&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1DenseBase.html#aaef589c1dbd7fad93f97bd3fa1b1e768&#34;&gt;LinSpaced&lt;/a&gt;,&#xA;a non officially supported but massively used &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/tree/3.3/unsupported/Eigen/CXX11/src/Tensor/README.md&#34;&gt;Tensor&#xA;module&lt;/a&gt;&#xA;with CUDA and OpenCL support, and &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.3/&#34;&gt;more&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3-alpha1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3-alpha1_released/</link>
      <pubDate>Thu, 10 Nov 2016 12:43:20 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3-alpha1_released/</guid>
      <description>&lt;p&gt;Eigen 3.3-alpha1 has been released on September 4, 2015.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3-alpha1/eigen-3.3-alpha1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3-alpha1/eigen-3.3-alpha1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This alpha version introduces a novel evaluation mechanism of&#xA;expressions, as well as numerous exciting features such as fast &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1BDCSVD.html&#34;&gt;divide&#xA;and conquer&#xA;SVD&lt;/a&gt;,&#xA;support for AVX and VSX vector instructions, &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/TopicMultiThreading.html&#34;&gt;more OpenMP&#xA;parallelism&lt;/a&gt;,&#xA;a &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1LeastSquaresConjugateGradient.html&#34;&gt;LS-CG&#xA;solver&lt;/a&gt;,&#xA;and more. Check the page dedicated on the &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.3/&#34;&gt;3.3 release&lt;/a&gt;&#xA;for a comprehensive review of the novelties and improvements.&lt;/p&gt;&#xA;&lt;p&gt;As for any alpha and beta release, everybody is invited to test this&#xA;release on their own basecode and report any compilation issue or&#xA;performance regression on the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues&#34;&gt;bugtracker&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3-rc2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3-rc2_released/</link>
      <pubDate>Fri, 04 Nov 2016 08:13:40 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3-rc2_released/</guid>
      <description>&lt;p&gt;Eigen 3.3-rc2 has been released on November 4, 2016.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3-rc2/eigen-3.3-rc2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3-rc2/eigen-3.3-rc2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since 3.3-rc1, this release introduces support for AVX512 and a complete&#xA;rewrite of&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1DenseBase.html#aaef589c1dbd7fad93f97bd3fa1b1e768&#34;&gt;LinSpaced&lt;/a&gt;&#xA;to leverage more numerical robustness and consistencies for real and&#xA;integer scalar types. It also includes a few regression fixes and&#xA;documentation improvements.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#33-rc2---2016-11-04&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tensor support</title>
      <link>https://libeigen.gitlab.io/pages/tensor_support/</link>
      <pubDate>Mon, 24 Oct 2016 15:49:06 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/tensor_support/</guid>
      <description>&lt;p&gt;&lt;strong&gt;IMPORTANT NOTE: The current developement version of Eigen (post-3.2)&#xA;supports Tensors. This support is experimental and a moving target.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;For a TODO list / discussion on further features, see &lt;a href=&#34;https://libeigen.gitlab.io/notes/working_notes_-_tensor_module/&#34;&gt;Working notes -&#xA;Tensor module&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;requirements&#34;&gt;Requirements&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#requirements&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Since using objects with an (in principle) arbitrary number of indices&#xA;requires variadic templates, Eigen&amp;rsquo;s tensor module requires C++11. The&#xA;initial version of the Tensor module has been tested with g++ from 4.6&#xA;as well as clang 3.2 and 3.3. Intel&amp;rsquo;s 13.1 compiler also works in&#xA;principle (13.0 crashes during compilation), but produces non-optimal&#xA;code. For these compilers, please supply at least &lt;code&gt;-std=c++0x&lt;/code&gt;,&#xA;&lt;code&gt;-std=c++11&lt;/code&gt; or even &lt;code&gt;-std=c++1y&lt;/code&gt; to the compiler as a flag so that they&#xA;switch to C++11/C++14 mode.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.10 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.10_released/</link>
      <pubDate>Tue, 04 Oct 2016 07:27:41 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.10_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.10 has been released on October 4, 2016.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few bug fixes and backports since the&#xA;release of 3.2.9 two months ago. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#3210---2016-10-04&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Eigen 3.3 will be released very soon, and we encourage everybody to&#xA;already move to &lt;a href=&#34;https://libeigen.gitlab.io/news/eigen_3.3-rc1_released/&#34;&gt;3.3-rc1&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.10/eigen-3.2.10.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.10/eigen-3.2.10.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.3-rc1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.3-rc1_released/</link>
      <pubDate>Thu, 22 Sep 2016 20:47:13 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.3-rc1_released/</guid>
      <description>&lt;p&gt;Eigen 3.3-rc1 has been released on September 22, 2016.&lt;/p&gt;&#xA;&lt;p&gt;If everything goes well, this release candidate should be last milestone&#xA;before we release Eigen 3.3 next week.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3-rc1/eigen-3.3-rc1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3-rc1/eigen-3.3-rc1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since 3.3-beta2, this release introduces a few new features including&#xA;eigenvectors in GeneralizedEigenSolver, SparseMatrix::coeffs(), improved&#xA;supports for custom nullary functors and custom complex types. This&#xA;release also contains numerous fixes of all kinds and some documentation&#xA;improvements.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#33-rc1---2016-09-22&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen3.3-beta2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen3.3-beta2_released/</link>
      <pubDate>Tue, 26 Jul 2016 21:59:36 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen3.3-beta2_released/</guid>
      <description>&lt;p&gt;Eigen 3.3-beta2 has been released on July 26, 2016.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3-beta2/eigen-3.3-beta2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3-beta2/eigen-3.3-beta2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since the previous 3.3-beta1 release, this beta version received more&#xA;than 1000 commits including numerous fixes, some performance and&#xA;numerical robustness improvements, as well as some key novel features&#xA;such as the new&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1CompleteOrthogonalDecomposition.html&#34;&gt;CompleteOrthogonalDecomposition&lt;/a&gt;&#xA;class for fast minimal norm solving, fast reciprocal condition number&#xA;estimators in LU and Cholesky factorizations, support for &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__InplaceDecomposition.html&#34;&gt;inplace&#xA;decompositions&lt;/a&gt;,&#xA;unaligned vectorization, support for the new ZVector SIMD engine,&#xA;support for any BLAS/LAPACK libraries as backend, improved support for&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/releases/3.3/#mixing_scalar_types_.28new_in_beta2.29&#34;&gt;mixing scalar&#xA;types&lt;/a&gt;,&#xA;and &lt;a href=&#34;https://libeigen.gitlab.io/pages/changelog#3.3-beta2&#34;&gt;more&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.9 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.9_released/</link>
      <pubDate>Mon, 18 Jul 2016 14:31:13 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.9_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.9 has been released on July 18, 2016.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few bug fixes and backports since the&#xA;release of 3.2.8 five months ago. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#329---2016-08-18&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.9/eigen-3.2.9.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.9/eigen-3.2.9.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.8 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.8_released/</link>
      <pubDate>Tue, 16 Feb 2016 13:33:39 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.8_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.8 has been released on February 16, 2016.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few bug fixes and backports since the&#xA;release of 3.2.7 three months ago. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#328---2016-02-16&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.8/eigen-3.2.8.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.8/eigen-3.2.8.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen3.3-beta1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen3.3-beta1_released/</link>
      <pubDate>Wed, 16 Dec 2015 20:51:42 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen3.3-beta1_released/</guid>
      <description>&lt;p&gt;Eigen 3.3-beta1 has been released on December 16, 2015.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.3-beta1/eigen-3.3-beta1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.3-beta1/eigen-3.3-beta1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since the previous 3.3-alpha1 release, this beta version introduces&#xA;several fixes, as well as some novel features such as new array&#xA;functions (rsqrt, sign, lgamma, erf, erfc), row/column-wise lpNorm,&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1SolverBase.html&#34;&gt;LU::transpose()/adjoint()&#xA;API&lt;/a&gt;,&#xA;support for &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__MatrixfreeSolverExample.html&#34;&gt;matrix-free iterative&#xA;solvers&lt;/a&gt;,&#xA;improved sparse matrix filling and products, and&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/pages/changelog#3.3-beta1&#34;&gt;more&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you missed the major novelties introduced in the 3.3-alpha1 version,&#xA;here is a brief summary of the most exciting ones: novel expression&#xA;template engine, fast &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1BDCSVD.html&#34;&gt;divide and conquer&#xA;SVD&lt;/a&gt;,&#xA;support for AVX and VSX vector instructions, &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/TopicMultiThreading.html&#34;&gt;more OpenMP&#xA;parallelism&lt;/a&gt;,&#xA;a &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/classEigen_1_1LeastSquaresConjugateGradient.html&#34;&gt;LS-CG&#xA;solver&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.7 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.7_released/</link>
      <pubDate>Thu, 05 Nov 2015 14:58:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.7_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.7 has been released on November 5, 2015.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few bug fixes and backports since the&#xA;release of 3.2.6 one months ago. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#327---2015-11-05&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.7/eigen-3.2.7.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.7/eigen-3.2.7.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.6 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.6_released/</link>
      <pubDate>Thu, 01 Oct 2015 07:08:58 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.6_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.6 has been released on October 1, 2015.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with few bug fixes since the release of&#xA;3.2.5 three months ago. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#326---2015-10-01&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.6/eigen-3.2.6.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.6/eigen-3.2.6.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen3 Developer Documentation</title>
      <link>https://libeigen.gitlab.io/pages/eigen3_developer_documentation/</link>
      <pubDate>Wed, 30 Sep 2015 09:01:25 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/eigen3_developer_documentation/</guid>
      <description>&lt;h2 id=&#34;dense-classes&#34;&gt;Dense classes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dense-classes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This section can now be found in the doxygen-generated documentation;&#xA;see&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/TopicClassHierarchy.html&#34;&gt;docs for&#xA;Eigen3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/TopicClassHierarchy.html&#34;&gt;docs for development&#xA;branch&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;nested-expression-templates&#34;&gt;Nested Expression Templates&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#nested-expression-templates&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This section is completely outdated. It needs to be rewritten to match&#xA;with Eigen 3.3 internals.&lt;/p&gt;&#xA;&lt;p&gt;Example:&#xA;&lt;code&gt;MatrixXf A, B, C;&lt;/code&gt;&#xA;&lt;code&gt;C = A.transpose() + B;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;A.transpose()&lt;/code&gt; returns an object of type &lt;code&gt;Transpose&lt;/code&gt;&lt;MatrixXf&gt; where&#xA;the &lt;code&gt;MatrixXf A&lt;/code&gt; is nested into the Transpose expression. The nested&#xA;type tells how to store the nested object. Here &lt;code&gt;MatrixXf::Nested&lt;/code&gt; boils&#xA;down to a &lt;code&gt;MatrixXf&amp;amp;&lt;/code&gt;, and thus &amp;ldquo;A.transpose()&amp;rdquo; stores a reference to A.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working notes - Expression evaluator</title>
      <link>https://libeigen.gitlab.io/notes/working_notes_-_expression_evaluator/</link>
      <pubDate>Wed, 02 Sep 2015 12:54:44 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/notes/working_notes_-_expression_evaluator/</guid>
      <description>&lt;h1 id=&#34;goals&#34;&gt;Goals&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#goals&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;The goal here is to refactor our expression template mechanism so that&#xA;the construction of the expression tree and its evaluation are 100%&#xA;decoupled. Basically, at construction time, we should only assemble&#xA;stupid *Expression* objects that only brings the proper API. Then, at&#xA;evaluation time, via partial specialization, we would recursively create&#xA;*Evaluator* objects reflecting how the considered sub-expressions can&#xA;and have to be evaluated. In between we could then implement&#xA;*TreeOptimizer* objects that would reorganize and optimize the&#xA;expression tree through partial specialization.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.5 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.5_released/</link>
      <pubDate>Tue, 16 Jun 2015 10:59:54 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.5_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.5 has been released on June 16, 2015.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with many bug fixes since the release of&#xA;3.2.4 five months ago. In particular, this release improves support for&#xA;indefinite matrices in SimplicialLDLT, leverage several numerical&#xA;improvements for 2x2 and 3x3 eigenvalue problems, ColPivHouseholderQR ,&#xA;RealSchur, etc. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#325---2015-06-16&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.5/eigen-3.2.5.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.5/eigen-3.2.5.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.4 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.4_released/</link>
      <pubDate>Wed, 21 Jan 2015 22:56:26 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.4_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.4 has been released on January 21st, 2015.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with a few bug fixes since the recent&#xA;release of 3.2.3. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#324---2015-01-21&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.4/eigen-3.2.4.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.4/eigen-3.2.4.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.3 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.3_released/</link>
      <pubDate>Tue, 16 Dec 2014 17:38:11 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.3_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.3 has been released on December 16, 2014.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with many bug fixes since the release of&#xA;3.2.2 five months ago. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#323---2014-12-16&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.3/eigen-3.2.3.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.3/eigen-3.2.3.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.2_released/</link>
      <pubDate>Mon, 04 Aug 2014 13:24:39 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.2_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.2 has been released on August 4, 2014.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with many bug fixes since the release of&#xA;3.2.1 five months ago. In particular, this release includes various&#xA;numerical improvements in JacobiSVD, LDLT, BiCGSTAB, and&#xA;ColPivHouseholderQR. There are also some limited performance&#xA;improvements and added functionality in the 3.2.2 release. For more&#xA;details, look at the &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#322---2014-08-04&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.2/eigen-3.2.2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.2/eigen-3.2.2.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to run the benchmark suite</title>
      <link>https://libeigen.gitlab.io/pages/how_to_run_the_benchmark_suite/</link>
      <pubDate>Fri, 27 Jun 2014 15:08:17 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/how_to_run_the_benchmark_suite/</guid>
      <description>&lt;p&gt;Here are some notes explaining how to configure and run the benchmark&#xA;suite.&lt;/p&gt;&#xA;&lt;h1 id=&#34;quick-start-guide&#34;&gt;Quick start guide&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#quick-start-guide&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# create a working directory&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir build&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd build&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# create the makefiles&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cmake &amp;lt;path_to_eigen_source&amp;gt; -DCMAKE_BUILD_TYPE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;Release -DEIGEN_BUILD_BTL&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;ON -DEIGEN3_INCLUDE_DIR&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;path_to_eigen_source&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# compile the benchmarks&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd bench/btl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ make -j4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# run the benchmark (on a single core)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# VERY IMPORTANT : logout, log into a console (ctrl+shift+F1) and shutdown your X server (e.g.: sudo init 3), and stop as most as services as you can&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ OMP_NUM_THREADS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; ctest -V&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# - go sleep -&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# copy the results into the same directory&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir data/set1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cp libs/*/*.dat data/set1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# build the nice plots&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd data&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ ./go_mean set1/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# the plots (png and pdf files) are in set1/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;tips&#34;&gt;Tips&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#tips&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;btl_config&#34;&gt;BTL_CONFIG&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#btl_config&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;BTL_CONFIG is an environment variable used to control some parameters:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to contribute</title>
      <link>https://libeigen.gitlab.io/pages/how_to_contribute/</link>
      <pubDate>Wed, 11 Jun 2014 16:19:36 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/how_to_contribute/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;REDIRECT &lt;a href=&#34;https://libeigen.gitlab.io/pages/contributing_to_eigen/&#34;&gt;Contributing to Eigen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.1_released/</link>
      <pubDate>Wed, 26 Feb 2014 16:57:25 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.1_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.1 has been released on February 26, 2014.&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with many bug fixes since the release of&#xA;3.2.0 half a year ago. The support for Eigen2 is now marked as&#xA;deprecated and will be removed in the forthcoming 3.3 release. There are&#xA;also some limited performance improvements and added functionality in&#xA;the 3.2.1 release. For more details, look at the&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#321---2014-02-26&#34;&gt;Changelog.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2.1/eigen-3.2.1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2.1/eigen-3.2.1.tar.bz2&lt;/a&gt; .&lt;/p&gt;</description>
    </item>
    <item>
      <title>API Showcase</title>
      <link>https://libeigen.gitlab.io/pages/api_showcase/</link>
      <pubDate>Sat, 10 Aug 2013 08:37:36 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/api_showcase/</guid>
      <description>&lt;p&gt;Here are some examples of Eigen 3&amp;rsquo;s API. Refer to the&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/&#34;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;&#xA;&lt;h2 id=&#34;performing-rowcolumn-operations-on-a-matrix&#34;&gt;Performing row/column operations on a matrix&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#performing-rowcolumn-operations-on-a-matrix&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Let m be a matrix. All the following operations are allowed by Eigen,&#xA;with the self-explanatory effect, and resulting in fully optimized code.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.row(i) &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; alpha &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; m.row(j);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.col(i) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; alpha &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; m.col(j) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; beta &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; m.col(k);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.row(i).swap(m.row(j));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.col(i) &lt;span style=&#34;color:#f92672&#34;&gt;*=&lt;/span&gt; factor;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;operating-on-blocks-inside-a-matrix-or-vector&#34;&gt;Operating on blocks inside a matrix or vector&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#operating-on-blocks-inside-a-matrix-or-vector&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.block(firstRow, firstCol, rows, cols).setZero();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.topLeftCorner(rows, cols) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; some_other_matrix;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m.block&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;(firstRow, firstCol).setIdentity(); &lt;span style=&#34;color:#75715e&#34;&gt;// optimized variant when the # of rows, cols are known at compile-time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There are also vector-specific operations. Let v be a vector.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.4 &amp; 3.0.7 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.4__3.0.7_released/</link>
      <pubDate>Fri, 02 Aug 2013 19:32:31 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.4__3.0.7_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.4 and 3.0.7 have been released on August 2, 2013.&lt;/p&gt;&#xA;&lt;p&gt;The source archives are at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.4/eigen-3.1.4.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.4/eigen-3.1.4.tar.bz2&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.7/eigen-3.0.7.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.7/eigen-3.0.7.tar.bz2&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Those are maintenance releases with various bug and warning fixes.&lt;/p&gt;&#xA;&lt;p&gt;Complete changelogs: &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#314---2013-08-02&#34;&gt;3.1.4&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#307---2013-08-02&#34;&gt;3.0.7&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2_released/</link>
      <pubDate>Wed, 24 Jul 2013 06:45:13 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2_released/</guid>
      <description>&lt;p&gt;Eigen 3.2 has been released on July 24, 2013.&lt;/p&gt;&#xA;&lt;p&gt;Since Eigen 3.1, the key new features of this version are: a built-in&#xA;supernodal &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/group__SparseLU__Module.html&#34;&gt;sparse LU&#xA;solver&lt;/a&gt;&#xA;adapted from SuperLU, a rank-revealing &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/group__SparseQR__Module.html&#34;&gt;sparse&#xA;QR&lt;/a&gt;&#xA;factorization with numerical column pivoting, a&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/classEigen_1_1RealQZ.html&#34;&gt;RealQZ&lt;/a&gt;&#xA;factorization, a&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/classEigen_1_1GeneralizedEigenSolver.html&#34;&gt;GeneralizedEigenSolver&lt;/a&gt;,&#xA;and a&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/classEigen_1_1Ref.html&#34;&gt;Ref&amp;lt;&amp;gt;&lt;/a&gt;&#xA;class allowing to write non templated function taking various kind of&#xA;Eigen dense objects without copies.&lt;/p&gt;&#xA;&lt;p&gt;This release also includes a few new functions for dense and sparse&#xA;matrices, built-in COLAMD ordering, support to SuiteSparse QR and Metis,&#xA;as well as some accuracy and performance improvements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2-rc2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2-rc2_released/</link>
      <pubDate>Fri, 19 Jul 2013 15:03:36 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2-rc2_released/</guid>
      <description>&lt;p&gt;Eigen 3.2-rc2 has been released on July 19, 2013.&lt;/p&gt;&#xA;&lt;p&gt;This second release candidate fixes a naming collision by renaming the&#xA;isFinite() function to allFinite, and an ICE with ICC 11.1.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2-rc2/eigen-3.2-rc2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2-rc2/eigen-3.2-rc2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#32-rc2---2013-07-19&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2-rc1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2-rc1_released/</link>
      <pubDate>Wed, 17 Jul 2013 09:42:34 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2-rc1_released/</guid>
      <description>&lt;p&gt;Eigen 3.2-rc1 has been released on July 17, 2013.&lt;/p&gt;&#xA;&lt;p&gt;This release candidate should be last milestone before we release Eigen&#xA;3.2 next week.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2-rc1/eigen-3.2-rc1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2-rc1/eigen-3.2-rc1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since 3.2-beta1, this release introduces a few new features such: as&#xA;isFinite and hasNaN reductions, vector-wise normalize and normalized&#xA;functions, support for mixed static/dynamic sizes in .block(), sparse&#xA;determinant computation through SparseLU, access to L and U factors in&#xA;SparseLU, access to the Q factor in SparseQR, etc. Major fixes comprise&#xA;significantly improved robustness of BiCGSTAB, and JacobiSVD::solve(),&#xA;as well as many other fixes of all kinds.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen received the SGP software award!</title>
      <link>https://libeigen.gitlab.io/news/eigen_received_the_sgp_software_award/</link>
      <pubDate>Fri, 05 Jul 2013 19:35:51 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_received_the_sgp_software_award/</guid>
      <description>&lt;p&gt;At the &lt;a href=&#34;https://dl.acm.org/doi/proceedings/10.5555/2600289&#34;&gt;Symposium on Geometry Processing&#xA;2013&lt;/a&gt;, Eigen received the &lt;a href=&#34;https://awards.geometryprocessing.org/&#34;&gt;&amp;ldquo;High Quality&#xA;Software in Geometry Processing Award&#xA;2013&amp;rdquo;&lt;/a&gt;. This award is&#xA;sponsored by &lt;a href=&#34;http://geometryfactory.com/&#34;&gt;Geometry Factory&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Publications</title>
      <link>https://libeigen.gitlab.io/pages/publications/</link>
      <pubDate>Thu, 06 Jun 2013 20:55:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/publications/</guid>
      <description>&lt;h2 id=&#34;presentations&#34;&gt;Presentations&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#presentations&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An overview of Eigen. &lt;a href=&#34;https://libeigen.gitlab.io/pages/animation_scientifique_journeessci_2011_05_31/&#34;&gt;&lt;em&gt;First Plafrim scientific&#xA;day&lt;/em&gt;&lt;/a&gt;.&#xA;Bordeaux, May 31st, 2011.&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/papers/eigen_plafrim_may_2011.pdf&#34;&gt;slides&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Eigen: a c++ linear algebra library. &lt;em&gt;Libraries for scientific&#xA;computing&lt;/em&gt;. Ecole Polytechnique, May 15th, 2013.&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/papers/eigen_aristote_may_2013.pdf&#34;&gt;slides&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Eigen tutorial @ Eurographics/CGLibs.&#xA;Pisa, June 3rd, 2013.&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/papers/eigen_CGLibs_Giugno_Pisa_2013.pdf&#34;&gt;slides&lt;/a&gt;,&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen_CGLibs_demos.tgz&#34;&gt;demos.tgz&lt;/a&gt;&lt;br&gt;&#xA;A three hour an half tutorial introducing Eigen in the context of&#xA;computer graphics. Content:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;General introduction of Eigen,&lt;/li&gt;&#xA;&lt;li&gt;Design of Eigen: Expression templates, CRTP, Evaluators, Meta&#xA;unroller, Cost model, SIMD, reductions,&lt;/li&gt;&#xA;&lt;li&gt;Use cases: space transformations, OpenGL, vectorization of 3D&#xA;vectors, radial-basis-functions (dense linear regression),&#xA;(bi-)harmonic interpolation on a 2D triangular mesh embedded in a 3D&#xA;space (sparse matrices and solvers).&lt;/li&gt;&#xA;&lt;li&gt;Work-in-progress features (AVX, CUDA, SparseBlockMatrix).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;publications&#34;&gt;Publications&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#publications&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;blog-entries&#34;&gt;Blog entries&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#blog-entries&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Switch from IT++ to Eigen of &lt;a href=&#34;https://github.com/lqvito/graphlab&#34;&gt;GraphLab&lt;/a&gt; with some&#xA;benchmarks&#xA;&lt;a href=&#34;http://bickson.blogspot.com/2011/10/it-vs-eigen-part-2-performance-results.html&#34;&gt;1&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.3 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.3_released/</link>
      <pubDate>Tue, 16 Apr 2013 07:37:07 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.3_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.3 has been released on April 16, 2013.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.3/eigen-3.1.3.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.3/eigen-3.1.3.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with various bug and warning fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#313---2013-04-16&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen course at CG libs</title>
      <link>https://libeigen.gitlab.io/news/eigen_course_at_cg_libs/</link>
      <pubDate>Tue, 19 Mar 2013 16:35:44 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_course_at_cg_libs/</guid>
      <description>&lt;p&gt;A course on Eigen will be given at CG Libs:&#xA;Smart Libraries for Computer Graphics, held in Pisa, June 3-5.&lt;/p&gt;&#xA;&lt;p&gt;CG Libs is a great initiative organized by the Eurographics Italian&#xA;chapter. Six open source libraries, including Eigen, will be deeply&#xA;presented. Except SpiderGL that is written in javascript, all others use&#xA;or has support for Eigen: &lt;a href=&#34;https://github.com/cnr-isti-vclab/vcglib&#34;&gt;vcglib&lt;/a&gt;, &lt;a href=&#34;http://pointclouds.org/&#34;&gt;Point Cloud&#xA;Library&lt;/a&gt;,&#xA;&lt;a href=&#34;https://viennacl.sourceforge.net/&#34;&gt;ViennaCL&lt;/a&gt;,&#xA;&lt;a href=&#34;http://openslam.org/g2o.html&#34;&gt;g2o&lt;/a&gt;,&#xA;&lt;a href=&#34;https://www.meshlab.net/&#34;&gt;MeshLab&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.2.0-beta1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.2.0-beta1_released/</link>
      <pubDate>Thu, 07 Mar 2013 08:32:16 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.2.0-beta1_released/</guid>
      <description>&lt;p&gt;Eigen 3.2.0-beta1 has been released on March 7, 2013.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.2-beta1/eigen-3.2-beta1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.2-beta1/eigen-3.2-beta1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This beta version introduces built-in&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/group__SparseLU__Module.html&#34;&gt;LU&lt;/a&gt;&#xA;and&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/group__SparseQR__Module.html&#34;&gt;QR&lt;/a&gt;&#xA;factorizations for sparse matrices, a real-QZ factorization and a&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/classEigen_1_1GeneralizedEigenSolver.html&#34;&gt;generalized eigen&#xA;solver&lt;/a&gt;&#xA;for dense matrices, a new&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.2/classEigen_1_1Ref.html&#34;&gt;Ref&amp;lt;&amp;gt;&lt;/a&gt;&#xA;class to ease writing generic but non-template functions taking Eigen&#xA;objects as arguments, wrappers to the&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__MetisSupport__Module.html&#34;&gt;Metis&lt;/a&gt;&#xA;and &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/group__SPQRSupport__Module.html&#34;&gt;SuiteSparse&#xA;QR&lt;/a&gt;&#xA;libraries, as well as a couple of minor enhancements and bug fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#32-beta1---2013-03-07&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0</title>
      <link>https://libeigen.gitlab.io/releases/3.0/</link>
      <pubDate>Fri, 04 Jan 2013 09:45:05 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/releases/3.0/</guid>
      <description>&lt;p&gt;Eigen 3.0 was released on March 19, 2011.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.2_released/</link>
      <pubDate>Mon, 05 Nov 2012 21:25:35 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.2_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.2 has been released on November 5, 2012.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.2/eigen-3.1.2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.2/eigen-3.1.2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with various bug and warning fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#312---2012-11-05&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.1_released/</link>
      <pubDate>Sun, 22 Jul 2012 15:12:40 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.1_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.1 has been released on July 22, 2012.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.1/eigen-3.1.1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.1/eigen-3.1.1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with various bug and warning fixes. It is&#xA;particularly important as the first release under the MPL2 license.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#311---2012-07-22&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Relicensed to MPL2!</title>
      <link>https://libeigen.gitlab.io/news/relicensed_to_mpl2/</link>
      <pubDate>Sun, 15 Jul 2012 15:53:18 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/relicensed_to_mpl2/</guid>
      <description>&lt;p&gt;Eigen has been relicensed to the&#xA;&lt;a href=&#34;http://www.mozilla.org/MPL/2.0/&#34;&gt;MPL2&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;See the &lt;a href=&#34;http://www.mozilla.org/MPL/2.0/FAQ.html&#34;&gt;official FAQ&lt;/a&gt; and the&#xA;COPYING.README file.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re interested in the background and motivation for this change,&#xA;read the recent Eigen mailing list archives.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Licensing FAQ</title>
      <link>https://libeigen.gitlab.io/pages/licensing_faq/</link>
      <pubDate>Sun, 15 Jul 2012 14:46:03 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/licensing_faq/</guid>
      <description>&lt;p&gt;This page used to have a long FAQ that we thought was useful when Eigen&#xA;was LGPL-licensed.&lt;/p&gt;&#xA;&lt;p&gt;Now that Eigen is MPL2-licensed, there is no need anymore for that.&#xA;Common questions about the MPL2 are answered on the &lt;a href=&#34;http://www.mozilla.org/MPL/2.0/FAQ.html&#34;&gt;MPL2&#xA;FAQ&lt;/a&gt;. Do not hesitate ask on&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/#discord&#34;&gt;Discord&lt;/a&gt; if you have further questions, although we&#xA;aren&amp;rsquo;t lawyers and you will be better served by asking directly the MPL2&#xA;specialists (see above MPL2 FAQ link).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.6 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.6_released/</link>
      <pubDate>Mon, 09 Jul 2012 16:38:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.6_released/</guid>
      <description>&lt;p&gt;Eigen 3.0.6 has been released on July 9, 2012.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.6/eigen-3.0.6.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.6/eigen-3.0.6.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with various bug and warning fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#306---2012-07-09&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Relicensing to MPL2!</title>
      <link>https://libeigen.gitlab.io/news/relicensing_to_mpl2/</link>
      <pubDate>Fri, 29 Jun 2012 15:45:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/relicensing_to_mpl2/</guid>
      <description>&lt;p&gt;We are in the process of relicensing to the &lt;a href=&#34;http://www.mozilla.org/MPL/2.0/&#34;&gt;MPL2&#xA;license&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;See the official &lt;a href=&#34;http://www.mozilla.org/MPL/2.0/FAQ.html&#34;&gt;MPL2 FAQ&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Like the LGPL, the MPL2 is a weak-copyleft license. It is however a bit&#xA;more liberal, as the copyleft does not propagate across source files.&#xA;It&amp;rsquo;s a concept known as &amp;ldquo;file-level copyleft&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;The MPL2 is GPL-compatible and LGPL-compatible.&lt;/p&gt;&#xA;&lt;p&gt;The MPL2 is 3x shorter than the LGPL+GPL (note that the LGPL is an&#xA;addendum to the GPL) and is much, much easier to read and understand.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1_released/</link>
      <pubDate>Sun, 24 Jun 2012 21:28:08 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1_released/</guid>
      <description>&lt;p&gt;Eigen 3.1 has been released on June 24, 2012.&lt;/p&gt;&#xA;&lt;p&gt;Since Eigen 3.0, this new version brings to live a set of officially&#xA;supported &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.1/TutorialSparse.html&#34;&gt;sparse&#xA;modules&lt;/a&gt; for&#xA;the representation, assembly, and solving of sparse problems. This&#xA;includes many built-in (Cholesky, CG, BiCGSTAB, ILU), and third-party&#xA;(PaStiX, Cholmod, UmfPack, SuperLU, Pardiso) sparse linear solvers.&lt;/p&gt;&#xA;&lt;p&gt;The second main novelty is the possibility to seamlessly fallback to&#xA;&lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html&#34;&gt;Intel MKL&lt;/a&gt; for&#xA;a couple of operations including matrix products (BLAS L2/L3), dense&#xA;matrix decompositions (LAPACKE), and math array operations (via the&#xA;Intel VML). These completely &lt;strong&gt;optional&lt;/strong&gt; backends can be enabled&#xA;through some compile-time preprocessor directives as explained in the&#xA;respective &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.1/TopicUsingIntelMKL.html&#34;&gt;manual&#xA;page&lt;/a&gt;.&#xA;Recall that &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html&#34;&gt;Intel&#xA;MKL&lt;/a&gt; is&#xA;&lt;strong&gt;proprietary&lt;/strong&gt; software (see this&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.1/TopicUsingIntelMKL.html&#34;&gt;notice&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.0-rc2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.0-rc2_released/</link>
      <pubDate>Thu, 21 Jun 2012 20:08:56 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.0-rc2_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.0-rc2 has been released on June 21, 2012.&lt;/p&gt;&#xA;&lt;p&gt;This second release candidate is due to a few late warning and minor bug&#xA;fixes. The final release is thus delayed by a few days, and is planed&#xA;for this week end.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-rc2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-rc2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#310-rc2---2012-06-21&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.0-rc1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.0-rc1_released/</link>
      <pubDate>Thu, 14 Jun 2012 19:33:18 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.0-rc1_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.0-rc1 has been released on June 14, 2012.&lt;/p&gt;&#xA;&lt;p&gt;This release candidate should be last milestone before we release Eigen&#xA;3.1 next week.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-rc1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-rc1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since 3.1.0-beta1, the major change is the introduction of the&#xA;Eigen::initParallel() function which must be called by multi-threaded&#xA;user code to properly initialize Eigen and thus avoid the risk of a race&#xA;condition.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#310-rc1---2012-06-14&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.0-beta1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.0-beta1_released/</link>
      <pubDate>Wed, 06 Jun 2012 20:47:07 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.0-beta1_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.0-beta1 has been released on June 6, 2012.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-beta1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-beta1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This beta release introduces an incomplete LU preconditioner with dual&#xA;thresholding, and an interface to the parallel&#xA;&lt;a href=&#34;http://pastix.gforge.inria.fr/&#34;&gt;PaStiX&lt;/a&gt; sparse solver (LLT, LDLT, LU).&#xA;This release also includes the renaming of the SimplicialLLt and&#xA;SimplicialLDLt classes to SimplicialLLT and SimplicialLDLT. Sparse-dense&#xA;products have been slightly accelerated, while the support for&#xA;permutation and self-adjoint view with sparse matrices has been&#xA;significantly improved. This release also includes many bug fixes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MKL Tips</title>
      <link>https://libeigen.gitlab.io/pages/mkl_tips/</link>
      <pubDate>Thu, 22 Mar 2012 20:10:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/mkl_tips/</guid>
      <description>&lt;h1 id=&#34;using-mkl-through-environment-module&#34;&gt;Using MKL through environment module&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#using-mkl-through-environment-module&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;A useful tip from rgriffin122 of the forum:&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Using Eigen3.1.0 and MKL 10.3.7, I had to create two modules for proper&#xA;compilation. The first one was an Intel_MKL module, designating the&#xA;proper libraries and paths. The second was the Eigen module, which is&#xA;doing the same thing as the Intel_MKL one, only for Eigen.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;  `Example:`   `-----intel------`   `#%Module 1.0`   `2 #`   `3 # Intel module for use with &#39;environment-modules&#39; package:`   `4 #`   `5 `   `6 ## MKL `   `7 setenv MKLROOT /opt/mkl10.3.7/mkl`   `8 setenv MKL_TARGET_ARCH intel64`   `9 prepend-path LD_LIBRARY_PATH /opt/mkl10.3.7/mkl/lib/intel64`   `10 prepend-path LIBRARY_PATH /opt/mkl10.3.7/mkl/lib/intel64`   `11 prepend-path LD_LIBRARY_PATH /opt/mkl10.3.7/lib/intel64`   `12 prepend-path LIBRARY_PATH /opt/mkl10.3.7/lib/intel64`   `13 prepend-path NLSPATH /opt/mkl10.3.7/mkl/lib/intel64/locale/%l_%t/%N`   `14 prepend-path MANPATH /opt/mkl10.3.7/man/en_US`   `15 prepend-path INCLUDE /opt/mkl10.3.7/mkl/include`   `16 prepend-path CPATH /opt/mkl10.3.7/mkl/include`  &lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;-----Eigen-----&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;1 #%Module 3.2&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;2 #&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;3 # Eigen with Intel MKL Blas and Lapack module&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;4 #&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;5 prereq intel-x86_64&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;6 prepend-path INCLUDE /opt/eigen3.1.0_MKL/include/eigen3&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;7 prepend-path CPATH /opt/eigen3.1.0_MKL/include/eigen3&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;8 prepend-path LD_LIBRARY_PATH /opt/eigen3.1.0_MKL/lib&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;9 prepend-path LIBRARY_PATH /opt/eigen3.1.0_MKL/lib&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;10 setenv EIGEN_ROOT /opt/eigen3.1.0_MKL/&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;11 setenv EIGEN_INFO eigen3.1.0_MKL&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.5 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.5_released/</link>
      <pubDate>Fri, 10 Feb 2012 19:00:28 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.5_released/</guid>
      <description>&lt;p&gt;Eigen 3.0.5 has been released on February 10, 2012.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.5/eigen-3.0.5.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.5/eigen-3.0.5.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is a maintenance release with various bug and warning fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#305---2012-02-10&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.0-alpha2 released with support for Intel MKL!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.0-alpha2_released_with_support_for_intel_mkl/</link>
      <pubDate>Mon, 06 Feb 2012 15:37:53 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.0-alpha2_released_with_support_for_intel_mkl/</guid>
      <description>&lt;p&gt;Eigen 3.1.0-alpha2 has been released on February 6, 2012.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-alpha2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-alpha2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The key novelty of this alpha release is the possibility to fallback to&#xA;&lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html&#34;&gt;Intel MKL&lt;/a&gt; (or&#xA;another external BLAS library) for a couple of operations including&#xA;matrix products (BLAS L2/L3), dense matrix decompositions (LAPACKE), and&#xA;math array operations (via the Intel VML). These completely &lt;strong&gt;optional&lt;/strong&gt;&#xA;backends can be enabled through some compile-time preprocessor&#xA;directives as explained in the respective &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.1/TopicUsingIntelMKL.html&#34;&gt;manual&#xA;page&lt;/a&gt;. In&#xA;the same vein, this version also brings support for the Intel MKL&#xA;PARDISO direct sparse solver. Recall that &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html&#34;&gt;Intel&#xA;MKL&lt;/a&gt; is&#xA;&lt;strong&gt;proprietary&lt;/strong&gt; software (see this&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.1/TopicUsingIntelMKL.html&#34;&gt;notice&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.1.0-alpha1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.1.0-alpha1_released/</link>
      <pubDate>Tue, 06 Dec 2011 15:57:52 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.1.0-alpha1_released/</guid>
      <description>&lt;p&gt;Eigen 3.1.0-alpha1 has been released on December 6, 2011.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-alpha1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.1.0/eigen-3.1.0-alpha1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This alpha version of the future 3.1 finally brings to live a set of&#xA;official sparse modules for the representation, assembly, and solving of&#xA;sparse problems. A quick overview can be found in the&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.1/TutorialSparse.html&#34;&gt;manual&lt;/a&gt; while&#xA;the &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#310-alpha1---2011-12-06&#34;&gt;changelog&lt;/a&gt; contains some&#xA;details on the main differences with the unstable 3.0 sparse modules.&lt;/p&gt;&#xA;&lt;p&gt;This alpha release also features closed-form algorithms for small&#xA;eigenvalue problems, Cholesky updates/downdates, new coefficient-wise&#xA;and vector-wise operators, as well as some performance and memory&#xA;optimizations (for reductions and JacobiSVD respectively).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.4 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.4_released/</link>
      <pubDate>Tue, 06 Dec 2011 14:22:15 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.4_released/</guid>
      <description>&lt;p&gt;Eigen 3.0.4 has been released on December 6, 2011.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.4/eigen-3.0.4.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.4/eigen-3.0.4.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This fixes various compilation issues, alignment-related issues&#xA;(crashes), adds checks for integer overflow when dealing with very large&#xA;matrices, and fixes convergence in SelfAdjointEigenSolver.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#304---2011-12-06&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 2.0.17 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_2.0.17_released/</link>
      <pubDate>Tue, 06 Dec 2011 14:20:29 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_2.0.17_released/</guid>
      <description>&lt;p&gt;Eigen 2.0.17 has been released on December 6, 2011.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/2.0.17/eigen-2.0.17.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/2.0.17/eigen-2.0.17.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This fixes a compilation issue with aligned_allocator, and a typo in the&#xA;ParametrizedLine documentation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#2017---2011-12-06&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.3 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.3_released/</link>
      <pubDate>Thu, 06 Oct 2011 19:48:13 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.3_released/</guid>
      <description>&lt;p&gt;Eigen 3.0.3 has been released on October 6, 2011.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.3/eigen-3.0.3.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.3/eigen-3.0.3.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This release fixes Eigen2 support which was broken by the previous&#xA;release and a potentially serious bug in the evaluation of certain&#xA;product expressions of a rare type. There are also some more minor&#xA;fixes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#303---2011-10-06&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:PCL logo.png</title>
      <link>https://libeigen.gitlab.io/files/pcl_logo.png/</link>
      <pubDate>Mon, 19 Sep 2011 05:32:41 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/pcl_logo.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/PCL_logo.png&#34; alt=&#34;PCL_logo.png&#34;&gt;&#xA;The logo of the Point Cloud Library (PCL) project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Versatility</title>
      <link>https://libeigen.gitlab.io/pages/versatility/</link>
      <pubDate>Thu, 08 Sep 2011 11:55:43 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/versatility/</guid>
      <description>&lt;p&gt;Versatility is a defining trait of Eigen as a matrix library.&lt;/p&gt;&#xA;&lt;h1 id=&#34;eigen-supports-matrices-of-very-different-sizes&#34;&gt;Eigen supports matrices of very different sizes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#eigen-supports-matrices-of-very-different-sizes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Eigen fully supports very small (for example, 3x3) matrices whose size&#xA;is known at compile time. The typical target audience here is games,&#xA;graphics, vision, robotics. In this case, you want to avoid dynamic&#xA;memory allocation and you want loops to be explicitly unrolled. Eigen&#xA;does all of that. We&amp;rsquo;ve always believed that for these use cases, users&#xA;would not tolerate even the slightest overhead, so our design allows to&#xA;guarantee zero abstraction penalty for most operations on such small&#xA;fixed-size objects.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.2 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.2_released/</link>
      <pubDate>Fri, 26 Aug 2011 13:11:37 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.2_released/</guid>
      <description>&lt;p&gt;Eigen 3.0.2 has been released on August 26, 2011.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.2/eigen-3.0.2.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.2/eigen-3.0.2.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Among various minor bug fixes, this release fixes some compilation&#xA;issues with MinGW, improves the compliance to the C++ standard, and, for&#xA;windows.h users, it is not necessary to #undef the min/max macros&#xA;anymore.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#302---2011-08-26&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.1 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.1_released/</link>
      <pubDate>Sun, 05 Jun 2011 21:32:43 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.1_released/</guid>
      <description>&lt;p&gt;Eigen 3.0.1 has been released on May 30, 2011.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/3.0.1/eigen-3.0.1.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/3.0.1/eigen-3.0.1.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In addition to various minor bug fixes, this release brings official&#xA;support for gcc 4.6 and ARM NEON as well as an improved support for&#xA;custom scalar types. The later includes exceptions safety and the&#xA;automatic uses of the math functions declared in the scalar type&amp;rsquo;s&#xA;namespace.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/master/CHANGELOG.md#301---2011-05-30&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 2.0.16 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_2.0.16_released/</link>
      <pubDate>Sat, 28 May 2011 16:06:32 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_2.0.16_released/</guid>
      <description>&lt;p&gt;Eigen 2.0.15 has been released on July 16, 2010.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/2.0.16/eigen-2.0.16.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/2.0.16/eigen-2.0.16.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Changes since 2.0.15:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix bug in 3x3 tridiagonlisation (and consequently in 3x3 selfadjoint&#xA;eigen decomposition).&lt;/li&gt;&#xA;&lt;li&gt;Fix compilation for new gcc 4.6.&lt;/li&gt;&#xA;&lt;li&gt;Fix performance regression since 2.0.12: in some matrix-vector&#xA;product, complex matrix expressions were not pre-evaluated.&lt;/li&gt;&#xA;&lt;li&gt;Fix documentation of Least-Square.&lt;/li&gt;&#xA;&lt;li&gt;New feature: support for part&lt;SelfAdjoint&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Fix bug in SparseLU::setOrderingMethod.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://libeigen.gitlab.io/pages/changelog#2.0.16&#34;&gt;Complete changelog.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 3.0.0 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_3.0.0_released/</link>
      <pubDate>Wed, 30 Mar 2011 14:08:08 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_3.0.0_released/</guid>
      <description>&lt;p&gt;Eigen 3.0 was released on March 19, 2011. See the &lt;a href=&#34;https://libeigen.gitlab.io/releases/3.0/&#34;&gt;detailed&#xA;changelog&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sandbox</title>
      <link>https://libeigen.gitlab.io/pages/sandbox/</link>
      <pubDate>Tue, 29 Mar 2011 13:09:29 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/sandbox/</guid>
      <description>&lt;h2 id=&#34;announcements&#34;&gt;Announcements&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#announcements&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;news rows=&#34;5&#34; title=&#34;Announcements&#34; category=&#34;News&#34;&gt; &lt;/news&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Paris 2011 Meeting</title>
      <link>https://libeigen.gitlab.io/pages/paris_2011_meeting/</link>
      <pubDate>Mon, 21 Mar 2011 10:20:18 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/paris_2011_meeting/</guid>
      <description>&lt;p&gt;This meeting took in Paris, from Friday March 18 to Sunday March 20,&#xA;2011.&lt;/p&gt;&#xA;&lt;p&gt;It was mostly dedicated to planning deep changes for Eigen 3.1: &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues/99&#34;&gt;the&#xA;expression evaluator&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/eigen-meeting-2011.jpg&#34; alt=&#34;Gael, Benoit, Jitse \|Gael, Benoit, Jitse&#34;&gt;&#xA;Gael, Benoit, Jitse&lt;/p&gt;&#xA;&lt;h1 id=&#34;friday&#34;&gt;Friday&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#friday&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Gael, Thomas and Benoit started working on &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues/99&#34;&gt;the expression&#xA;evaluator&lt;/a&gt;. A &lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/issues/99#c21&#34;&gt;work&#xA;plan&lt;/a&gt; was outlined&#xA;on the whiteboard. A repository was created for&#xA;implementing simple cases, while Gael worked on the tricky case of&#xA;matrix products.&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Eigen-meeting-2011-rescaled.jpeg</title>
      <link>https://libeigen.gitlab.io/files/eigen-meeting-2011-rescaled.jpeg/</link>
      <pubDate>Mon, 21 Mar 2011 09:44:07 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/eigen-meeting-2011-rescaled.jpeg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen-meeting-2011-rescaled.jpeg&#34; alt=&#34;Eigen-meeting-2011-rescaled.jpeg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Todo</title>
      <link>https://libeigen.gitlab.io/pages/todo/</link>
      <pubDate>Sun, 20 Mar 2011 06:26:34 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/todo/</guid>
      <description>&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_Owl_Todo.jpg&#34; title=&#34;Eigen_Owl_Todo.jpg&#34; /&gt;&#xA;&lt;figcaption&gt;Eigen_Owl_Todo.jpg&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;This is the general, long-term Todo list, with a special emphasis on&#xA;open jobs for new contributors to tackle. There is also a separate &lt;a href=&#34;https://libeigen.gitlab.io/pages/todo_for_3.0/&#34;&gt;Todo&#xA;for 3.0&lt;/a&gt; aimed specifically at preparing Eigen&#xA;3.0.&lt;/p&gt;&#xA;&lt;h2 id=&#34;notice-to-prospective-contributors&#34;&gt;Notice to prospective contributors&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#notice-to-prospective-contributors&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Before you start spending time on any of these items, contact us about&#xA;it!&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sometimes the Todo is outdated&lt;/li&gt;&#xA;&lt;li&gt;Sometimes some items in the todo haven&amp;rsquo;t been sufficiently discussed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;So by contacting us you can avoid any bad surprise.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Meetings</title>
      <link>https://libeigen.gitlab.io/pages/meetings/</link>
      <pubDate>Sun, 13 Feb 2011 21:08:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/meetings/</guid>
      <description>&lt;h1 id=&#34;begles-2009&#34;&gt;Begles 2009&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#begles-2009&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;See&#xA;&lt;a href=&#34;http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/08/msg00006.html&#34;&gt;http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/08/msg00006.html&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;paris-2010&#34;&gt;Paris 2010&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#paris-2010&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://libeigen.gitlab.io/pages/paris_2010_meeting/&#34;&gt;Paris 2010 Meeting&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;paris-2011&#34;&gt;Paris 2011&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#paris-2011&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://libeigen.gitlab.io/pages/paris_2011_meeting/&#34;&gt;Paris 2011 Meeting&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PythonInterop</title>
      <link>https://libeigen.gitlab.io/pages/pythoninterop/</link>
      <pubDate>Mon, 25 Oct 2010 11:32:29 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/pythoninterop/</guid>
      <description>&lt;p&gt;Python interoperability is still in its infancy.&lt;/p&gt;&#xA;&lt;p&gt;Here is an example of how to write a Boost::Python wrapper around one of&#xA;your Eigen based classes:&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/pages/pythoninteropboost/&#34;&gt;PythonInteropBoost&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://launchpad.net/pyeigen&#34;&gt;PyEigen&lt;/a&gt; is a very much work-in-progress&#xA;set of Python bindings for Eigen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Talk:Benchmark</title>
      <link>https://libeigen.gitlab.io/talk/benchmark/</link>
      <pubDate>Wed, 20 Oct 2010 12:12:45 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/talk/benchmark/</guid>
      <description>&lt;h1 id=&#34;comment-by-tvisitor&#34;&gt;Comment by Tvisitor&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#comment-by-tvisitor&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;A few observations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;some (if not all?) of the benchmark calculations are done in single&#xA;precission, ideally that should be changed to double&lt;/li&gt;&#xA;&lt;li&gt;to calculate flops I would not count + and - operations but only *&#xA;and /&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;so for mat*mat operation we would get n*n*n and not 2*n*n*n as&#xA;used in the source code of the benchmark&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt; double nb_op_base( void ){&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;   return 2.0*_size*_size*_size;&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CMake</title>
      <link>https://libeigen.gitlab.io/pages/cmake/</link>
      <pubDate>Mon, 04 Oct 2010 00:24:53 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/cmake/</guid>
      <description>&lt;p&gt;CMake is a cross-platform tool to generate files for your platform&amp;rsquo;s&#xA;native build system. For example, on Unix it generates Makefiles (so you&#xA;subsequently use &amp;lsquo;make&amp;rsquo;), on Windows/MSVC it generates project files,&#xA;etc.&lt;/p&gt;&#xA;&lt;p&gt;CMake is most probably available for your platform, see &lt;a href=&#34;http://www.cmake.org/&#34;&gt;their&#xA;website&lt;/a&gt;. On Unix systems, it is probably&#xA;available from your package manager.&lt;/p&gt;&#xA;&lt;p&gt;CMake distinguishes between the &lt;em&gt;source directory&lt;/em&gt; and the &lt;em&gt;build&#xA;directory&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;em&gt;source directory&lt;/em&gt; is your checkout of the eigen repository. It&#xA;contains a CMakeLists.txt file.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;em&gt;build directory&lt;/em&gt; is a directory that you create yourself, and&#xA;from which you run cmake. The first time you run cmake, pass it the&#xA;path to the source directory. All CMake-generated files will go there.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The typical startup commands are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>BibTeX</title>
      <link>https://libeigen.gitlab.io/pages/bibtex/</link>
      <pubDate>Sat, 21 Aug 2010 14:35:18 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/bibtex/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s a BibTeX entry for Eigen that you can use to cite Eigen in your&#xA;academic publications:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt; @MISC{eigenweb,&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  author = {Ga\&amp;quot;{e}l Guennebaud and Beno\^{i}t Jacob and others},&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  title = {Eigen},&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  howpublished = {&lt;/code&gt;&lt;a href=&#34;https://libeigen.gitlab.io&#34;&gt;&lt;code&gt;https://libeigen.gitlab.io&lt;/code&gt;&lt;/a&gt;&lt;code&gt;},&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  year = {2010}&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you are using the Natbib package, we recommend using \citet* and&#xA;\citep* instead of \citet and \citep, as the latter commands tend to&#xA;keep only the first-named author and &amp;ldquo;others&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;The choice of the two main authors listed there is reasonable in&#xA;general, but do feel free to use a different &lt;em&gt;author&lt;/em&gt; field, for example&#xA;if you think that in your particular case, you are relying on a feature&#xA;developed by another author.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 2.0.15 released!</title>
      <link>https://libeigen.gitlab.io/news/eigen_2.0.15_released/</link>
      <pubDate>Fri, 16 Jul 2010 14:25:55 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/news/eigen_2.0.15_released/</guid>
      <description>&lt;p&gt;Eigen 2.0.15 has been released on July 16, 2010.&lt;/p&gt;&#xA;&lt;p&gt;The source archive is at:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/2.0.15/eigen-2.0.15.tar.bz2&#34;&gt;https://gitlab.com/libeigen/eigen/-/archive/2.0.15/eigen-2.0.15.tar.bz2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Changes since 2.0.14:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;  * Fix bug: a bad assert was blocking certain cases of matrix-vector product (depending on storage order).&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  * Fix LU and QR solve when rank==0, fix LLT when the matrix is purely 0.&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  * Fix a couple of bugs with QR solving especially with rows&amp;gt;cols.&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  * Fix bug with custom scalar types that have non-trivial destructor.&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  * Fix for ICC in SSE code.&lt;/code&gt;&lt;br&gt;&#xA;&lt;code&gt;  * Fix some C++ issues found by Clang (patch by Nick Lewycky).&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lapack</title>
      <link>https://libeigen.gitlab.io/pages/lapack/</link>
      <pubDate>Tue, 06 Jul 2010 13:43:20 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/lapack/</guid>
      <description>&lt;h2 id=&#34;interfacing-eigen-with-lapack&#34;&gt;Interfacing Eigen with LAPACK&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#interfacing-eigen-with-lapack&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;LAPACK is a large linear algebra library written in FORTRAN. It has&#xA;loads of routines for all kinds of matrix problems so it is useful if&#xA;you need something beyond the standard SVD, LU decomposition and so on.&#xA;I needed to use it to solve the generalised eigen-problem in order to&#xA;implement ellipse fitting. I shall use this as an example.&lt;/p&gt;&#xA;&lt;h3 id=&#34;choose-your-routine&#34;&gt;Choose your routine&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#choose-your-routine&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;All LAPACK functions have stupidly short names. Apparently it is a&#xA;FORTRAN limitation. There is a list of names and what they do at the&#xA;LAPACK page here:&#xA;&lt;a href=&#34;http://www.netlib.org/lapack/individualroutines.html&#34;&gt;1&lt;/a&gt;. The function&#xA;I wanted was &lt;strong&gt;dggev&lt;/strong&gt; which &amp;ldquo;Computes the generalized eigenvalues, and&#xA;left and/or right generalized eigenvectors for a pair of nonsymmetric&#xA;matrices&amp;rdquo;. Open the FORTRAN file for your chosen function and note the&#xA;function parameters and their types. In my case it is:&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Diagonal-matrix-hierarchy.png</title>
      <link>https://libeigen.gitlab.io/files/diagonal-matrix-hierarchy.png/</link>
      <pubDate>Wed, 30 Jun 2010 17:22:16 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/diagonal-matrix-hierarchy.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Diagonal-matrix-hierarchy.png&#34; alt=&#34;Class hierarchy for a non-dense matrix (/expression)&#34;&gt;&#xA;Class hierarchy for a non-dense matrix (expression)&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Array-expression-hierarchy.png</title>
      <link>https://libeigen.gitlab.io/files/array-expression-hierarchy.png/</link>
      <pubDate>Wed, 30 Jun 2010 17:21:48 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/array-expression-hierarchy.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Array-expression-hierarchy.png&#34; alt=&#34;Class hierarchy for a dense array-expression&#34;&gt;&#xA;Class hierarchy for a dense array-expression&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix-expression-hierarchy.png</title>
      <link>https://libeigen.gitlab.io/files/matrix-expression-hierarchy.png/</link>
      <pubDate>Wed, 30 Jun 2010 17:21:25 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix-expression-hierarchy.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix-expression-hierarchy.png&#34; alt=&#34;Class hierarchy for a dense matrix-expression&#34;&gt;&#xA;Class hierarchy for a dense matrix-expression&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Array-hierarchy.png</title>
      <link>https://libeigen.gitlab.io/files/array-hierarchy.png/</link>
      <pubDate>Wed, 30 Jun 2010 17:20:59 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/array-hierarchy.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Array-hierarchy.png&#34; alt=&#34;Class hierarchy for a dense array&#34;&gt;&#xA;Class hierarchy for a dense array&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix-hierarchy.png</title>
      <link>https://libeigen.gitlab.io/files/matrix-hierarchy.png/</link>
      <pubDate>Wed, 30 Jun 2010 17:20:31 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix-hierarchy.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix-hierarchy.png&#34; alt=&#34;Class hierarcy for a dense matrix&#34;&gt;&#xA;Class hierarcy for a dense matrix&lt;/p&gt;</description>
    </item>
    <item>
      <title>EigenInternals</title>
      <link>https://libeigen.gitlab.io/pages/eigeninternals/</link>
      <pubDate>Mon, 21 Jun 2010 14:51:35 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/eigeninternals/</guid>
      <description>&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/owl_internal.jpg&#34; title=&#34;owl_internal.jpg&#34; /&gt;&#xA;&lt;figcaption&gt;owl_internal.jpg&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;cost-model&#34;&gt;Cost Model&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#cost-model&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Eigen internally implements a cost model to control at &lt;strong&gt;compile time&lt;/strong&gt;&#xA;both the evaluation of nested expressions and explicit unrolling. The&#xA;read cost (RC) associated to an expression represents an approximation&#xA;of the effective number of instructions needed to read or evaluate a&#xA;single coefficient of the expression. Given the following notations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SC = NumTraits&lt;Scalar&gt;::ReadCost&lt;/li&gt;&#xA;&lt;li&gt;MC = NumTraits&lt;Scalar&gt;::MulCost&lt;/li&gt;&#xA;&lt;li&gt;AC = NumTraits&lt;Scalar&gt;::AddCost&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;the cost of the expression 2*m1+m2 will be RC = (MC + SC) + AC + SC.&#xA;For native types, we have SC==MC==AC==1, and then, in our example, we&#xA;have RC = 4.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Documentation for Eigen3</title>
      <link>https://libeigen.gitlab.io/pages/documentation_for_eigen3/</link>
      <pubDate>Mon, 14 Jun 2010 18:01:42 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/documentation_for_eigen3/</guid>
      <description>&lt;p&gt;Here is an outline for the documentation for Eigen3. The basics are from&#xA;&lt;a href=&#34;http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2010/06/msg00065.html&#34;&gt;Benoit&amp;rsquo;s&#xA;email&lt;/a&gt;&#xA;and replies.&lt;/p&gt;&#xA;&lt;p&gt;The documentation for Eigen3 consists of the following parts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A super quick 5-minute &amp;ldquo;getting started&amp;rdquo; tutorial, similar to the&#xA;beginning of our existing tutorial.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- --&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A long, detailed 1-hour tutorial, of perhaps 4-8 pages, taking the&#xA;time to explain some basic concepts, with lots of links to the other&#xA;pages:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Simple example with fixed-size matrix, to get started. How to&#xA;&amp;ldquo;install&amp;rdquo; Eigen, how to compile the example.&lt;/li&gt;&#xA;&lt;li&gt;Accessing the entries of a matrix.&lt;/li&gt;&#xA;&lt;li&gt;Initializing the matrix. Special matrices (refer to &amp;ldquo;cheat sheet&amp;rdquo;),&#xA;comma initializer.&lt;/li&gt;&#xA;&lt;li&gt;Dynamic-size matrices. Simple example. How to specify the size&#xA;(constructor, assignment, resize).&lt;/li&gt;&#xA;&lt;li&gt;Matrix operations; some examples with rest in &amp;ldquo;cheat sheet&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Vectors, and where they differ from matrices.&lt;/li&gt;&#xA;&lt;li&gt;The three template parameters of the Matrix templates, and the&#xA;standard typedefs.&lt;/li&gt;&#xA;&lt;li&gt;Arrays, and where they differ from matrices/vectors.&lt;/li&gt;&#xA;&lt;li&gt;Output.&lt;/li&gt;&#xA;&lt;li&gt;Matrix blocks.&lt;/li&gt;&#xA;&lt;li&gt;The Map class. Interfacing with other libraries / code.&lt;/li&gt;&#xA;&lt;li&gt;How to handle matrices of special shape (diagonal, triangular,&#xA;symmetric, band).&lt;/li&gt;&#xA;&lt;li&gt;Organization of header files / modules. Summary of modules provided.&lt;/li&gt;&#xA;&lt;li&gt;Summary of special topic pages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- --&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A set of topical &amp;ldquo;cheat sheets&amp;rdquo;, basically like most of current&#xA;tutorial, just updated, and freed from the requirement of being&#xA;actually a tutorial - this just has to be a reference, since the&#xA;tutorial role is taken over by other pages. Also see ASCII quick&#xA;reference.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;List cheat sheets here&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- --&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Doxygen pages on specific topics, like&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-nightly/TopicLazyEvaluation.html&#34;&gt;https://libeigen.gitlab.io/eigen/docs-nightly/TopicLazyEvaluation.html&lt;/a&gt; . These may&#xA;overlap a bit, the goal is to make info easy to find.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What member data is inside of a Matrix/Array? What&amp;rsquo;s the memory&#xA;layout? Is it heap allocated? People want to know how to interact&#xA;with other libs, and want to know if Eigen incurs any memory&#xA;overhead (esp. in the fixed-size case). Knowing that a Matrix is&#xA;just a dumb array of coeffs, will also help people understand stuff.&lt;/li&gt;&#xA;&lt;li&gt;Storage orders. What&amp;rsquo;s the default? How to use row-major? How to set&#xA;it as the default? When evaluating m.transpose(), what storage order&#xA;is used? What about the special case of Vectors, can a row-vector be&#xA;column-major storage order (hint: no it can&amp;rsquo;t, vectors MUST have the&#xA;&amp;ldquo;right&amp;rdquo; storage order or you get a compilation error).&lt;/li&gt;&#xA;&lt;li&gt;Memory allocation, even if that will overlap with many other pages,&#xA;because many people will be looking for info about that. What causes&#xA;heap allocation? Mention aligned malloc too. That page should&#xA;perhaps be mostly just links to other pages. See&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/talk/faq/&#34;&gt;Talk:FAQ&lt;/a&gt; for a start.&lt;/li&gt;&#xA;&lt;li&gt;Sizes at compile time. The constant Dynamic. The Max-sizes. The link&#xA;between the Max-sizes and memory allocation: the fact that&#xA;Matrix4f().block(&amp;hellip;).eval() doesn&amp;rsquo;t cause a heap allocation.&#xA;Block(&amp;hellip;) is the perfect example for the Max-sizes.&lt;/li&gt;&#xA;&lt;li&gt;Alignment, aligned malloc, alignment qualifiers, the issues that&#xA;that can cause (link to the unaligned assert&amp;rsquo;s pages)&lt;/li&gt;&#xA;&lt;li&gt;Expression templates, lazy evaluation etc.&lt;/li&gt;&#xA;&lt;li&gt;Aliasing, eval(), noalias().&lt;/li&gt;&#xA;&lt;li&gt;Writing one&amp;rsquo;s own expression classes; inheriting from Matrix and&#xA;other Eigen classes.&lt;/li&gt;&#xA;&lt;li&gt;The overall design and class hierarchy, the role of MatrixBase and&#xA;other base classes, the standard typedefs such as PlainMatrixType&#xA;and Scalar&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Writing functions that take matrices as arguments and/or return&#xA;them. What prototype to use? Matrix or MatrixBase? (perhaps combine&#xA;with point above)&lt;/li&gt;&#xA;&lt;li&gt;Compile-time switches (preprocessor symbols like EIGEN_NO_DEBUG etc)&lt;/li&gt;&#xA;&lt;li&gt;Compiler support/options and Vectorization : also see coverage in&#xA;the &lt;a href=&#34;https://libeigen.gitlab.io/pages/faq/&#34;&gt;FAQ&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Thread safety&lt;/li&gt;&#xA;&lt;li&gt;Usage with OpenGL&lt;/li&gt;&#xA;&lt;li&gt;The existing &amp;ldquo;special topics&amp;rdquo; pages need to be updated and/or&#xA;replaced.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicStlContainers.html&#34;&gt;Using STL Containers with&#xA;Eigen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicWrongStackAlignment.html&#34;&gt;Compiler making a wrong assumption on stack&#xA;alignment&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicPassingByValue.html&#34;&gt;Passing Eigen objects by value to&#xA;functions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicStructHavingEigenMembers.html&#34;&gt;Structures Having Eigen&#xA;Members&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicUnalignedArrayAssert.html&#34;&gt;Explanation of the assertion on unaligned&#xA;arrays&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicCustomizingEigen.html&#34;&gt;Customizing/Extending&#xA;Eigen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicLazyEvaluation.html&#34;&gt;Lazy Evaluation and&#xA;Aliasing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicWritingEfficientProductExpression.html&#34;&gt;Using Eigen with high&#xA;performance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicInsideEigenExample.html&#34;&gt;What happens inside Eigen, on a simple&#xA;example&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TopicFixedSizeVectorizable.html&#34;&gt;Fixed-size vectorizable Eigen&#xA;objects&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- --&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each non-Core module needs its own dox page.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cholesky module&lt;/li&gt;&#xA;&lt;li&gt;Eigenvalues module&lt;/li&gt;&#xA;&lt;li&gt;Geometry module; see&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TutorialGeometry.html&#34;&gt;https://libeigen.gitlab.io/eigen/docs-3.0/TutorialGeometry.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Householder module&lt;/li&gt;&#xA;&lt;li&gt;Jacobi module&lt;/li&gt;&#xA;&lt;li&gt;LU module&lt;/li&gt;&#xA;&lt;li&gt;QR module&lt;/li&gt;&#xA;&lt;li&gt;Sparse module; see&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.0/TutorialSparse.html&#34;&gt;https://libeigen.gitlab.io/eigen/docs-3.0/TutorialSparse.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;SVD module&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- --&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The API pages generated by doxygen.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This wiki is used to supplement the documentation. Information available&#xA;here can be converted to the doxygen docs if necessary / required.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Paris 2010 Meeting</title>
      <link>https://libeigen.gitlab.io/pages/paris_2010_meeting/</link>
      <pubDate>Fri, 07 May 2010 13:11:51 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/paris_2010_meeting/</guid>
      <description>&lt;p&gt;The meeting was held in Paris, from Friday, February 19, to Sunday,&#xA;February 21, 2010.&lt;/p&gt;&#xA;&lt;p&gt;This was the first real meeting of the Eigen team (except of course for&#xA;the huge &lt;a href=&#34;http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/08/msg00006.html&#34;&gt;2009 World&#xA;Conference&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Lots of discussion and development happened to prepare the upcoming 3.0&#xA;release, as well as more long-term items such as the beginning of SMP&#xA;support within Eigen.&lt;/p&gt;&#xA;&lt;p&gt;On Friday, we got the visit of Dodji Seketli from Red Hat, who&#xA;introduced us to some GCC internals, and of Joel Falcou from Université&#xA;Paris Sud who presented NT2.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Talk:FAQ</title>
      <link>https://libeigen.gitlab.io/talk/faq/</link>
      <pubDate>Mon, 03 May 2010 04:51:43 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/talk/faq/</guid>
      <description>&lt;h1 id=&#34;warning-the-following-is-a-draft-of-proposed-faq-additions-and-is-still-undergoing-fact-checking&#34;&gt;WARNING!!! THE FOLLOWING IS A DRAFT OF PROPOSED FAQ ADDITIONS AND IS STILL UNDERGOING FACT CHECKING!&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#warning-the-following-is-a-draft-of-proposed-faq-additions-and-is-still-undergoing-fact-checking&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h1 id=&#34;memory-management&#34;&gt;Memory Management&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#memory-management&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;what-actions-trigger-dynamic-memory-allocation&#34;&gt;What actions trigger dynamic memory allocation?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-actions-trigger-dynamic-memory-allocation&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If the size of a MatrixXf isnt known at compile time, the only way to&#xA;create it is on the heap:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MatrixXf x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; MatrixXf&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;Zero(rows, cols);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;x.setZero(int, int) and friends, when the new size is greater or&#xA;smaller than the old size.&lt;/li&gt;&#xA;&lt;li&gt;conservative resize functions, again only when the new size is greater&#xA;or smaller than the old size.&lt;/li&gt;&#xA;&lt;li&gt;Temporary variables in expressions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Dynamic allocation only when their size is not known at compile time and&#xA;not even a reasonable upper bound on their size is known at compile&#xA;time. For example,&lt;/p&gt;</description>
    </item>
    <item>
      <title>PythonInteropBoost</title>
      <link>https://libeigen.gitlab.io/pages/pythoninteropboost/</link>
      <pubDate>Thu, 29 Apr 2010 22:29:37 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/pythoninteropboost/</guid>
      <description>&lt;p&gt;This is an example of one way to wrap an Eigen-based C++ class using&#xA;Boost::Python for use with numpy.&lt;/p&gt;&#xA;&lt;p&gt;Here is an overview of how it works:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;You write a wrapper function for any member functions that take&#xA;Eigen Matrices,Vectors,etc&amp;hellip; This function will:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;take PyObjects (your numpy arrays) as inputs,&lt;/li&gt;&#xA;&lt;li&gt;use a macro to get at the underlying data,&lt;/li&gt;&#xA;&lt;li&gt;use Eigen&amp;rsquo;s Map functionality to &amp;ldquo;turn them into&amp;rdquo; Eigen arrays,&lt;/li&gt;&#xA;&lt;li&gt;and then call the wrapped function using these arrays.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;You write a bit more code to tell Boost about your class and the&#xA;functions you are exposing to python.&lt;/li&gt;&#xA;&lt;li&gt;You build the module as a shared library&lt;/li&gt;&#xA;&lt;li&gt;You can either:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;import this directly in your code (you will crash hard if the&#xA;inputs are incorrect) &lt;del&gt;or&lt;/del&gt;&lt;/li&gt;&#xA;&lt;li&gt;write some Python to do typechecking, bounds checking, etc&amp;hellip; in&#xA;__init__.py, exporting a &amp;ldquo;safe&amp;rdquo; version to the rest of your&#xA;code. (the example does this)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;All in all, this is definitely overkill for the included example, and&#xA;hopefully some day there will be a much cleaner way of doing this, but&#xA;this is a place to start, and may even be satisfactory if you are&#xA;already familiar with Boost::Python.&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Silly professor2.jpg</title>
      <link>https://libeigen.gitlab.io/files/silly_professor2.jpg/</link>
      <pubDate>Wed, 03 Mar 2010 15:58:15 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/silly_professor2.jpg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Silly_professor2.jpg&#34; alt=&#34;Attempt to capture the style of David Benjamin’s Silly Professor with reduced complexity&#34;&gt;&#xA;Attempt to capture the style of David Benjamin&amp;rsquo;s Silly Professor with&#xA;reduced complexity&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working notes - SMP support</title>
      <link>https://libeigen.gitlab.io/notes/working_notes_-_smp_support/</link>
      <pubDate>Tue, 23 Feb 2010 15:30:27 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/notes/working_notes_-_smp_support/</guid>
      <description>&lt;p&gt;Some developments started in a fork using OpenMP.&lt;/p&gt;&#xA;&lt;h2 id=&#34;underlying-threading-model&#34;&gt;Underlying threading model&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#underlying-threading-model&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Possibilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OpenMP&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pro:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;easy to implement&lt;/li&gt;&#xA;&lt;li&gt;easy to enable for the user (compiler flag)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;difficult to control the generated code =&amp;gt; difficult to control&#xA;the overhead&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;pthreads&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pro:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;everything is possible&lt;/li&gt;&#xA;&lt;li&gt;should not be too hard to use for our relatively simple use cases&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a bit more work for us&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Intel&amp;rsquo;s TBB&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I see only cons:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Too high level for our purpose.&lt;/li&gt;&#xA;&lt;li&gt;Not free&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api&#34;&gt;API&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#api&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;We need to figure out how to easily control the parallelization. Goals:&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Meeting-paris-2010-rescaled.jpeg</title>
      <link>https://libeigen.gitlab.io/files/meeting-paris-2010-rescaled.jpeg/</link>
      <pubDate>Mon, 22 Feb 2010 20:10:05 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/meeting-paris-2010-rescaled.jpeg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Meeting-paris-2010-rescaled.jpeg&#34; alt=&#34;Meeting-paris-2010-rescaled.jpeg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eigen 2</title>
      <link>https://libeigen.gitlab.io/releases/2.0/</link>
      <pubDate>Sun, 17 Jan 2010 20:30:36 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/releases/2.0/</guid>
      <description>&lt;p&gt;This page is about the &lt;strong&gt;outdated&lt;/strong&gt; version 2 of Eigen.&lt;/p&gt;&#xA;&lt;p&gt;We highly recommended to port any existing code which is still using&#xA;Eigen 2 to Eigen 3. To this end, follow our &lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-3.3/Eigen2ToEigen3.html&#34;&gt;porting&#xA;guide&lt;/a&gt;. Morover,&#xA;note that the &lt;Eigen2Support&gt; module and compatibility modes will be&#xA;removed in Eigen 3.3.&lt;/p&gt;&#xA;&lt;p&gt;Useful links:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Eigen 2.0.17 downloads:&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/2.0.17/eigen-2.0.17.tar.bz2&#34;&gt;tar.bz2&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/2.0.17/eigen-2.0.17.tar.gz&#34;&gt;tar.gz&lt;/a&gt;,&#xA;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/archive/2.0.17/eigen-2.0.17.zip&#34;&gt;zip&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.com/libeigen/eigen/-/blob/nightly/CHANGELOG.md#2017---2011-12-06&#34;&gt;Eigen 2.0.17 Changelog.&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://libeigen.gitlab.io/eigen/docs-2.0&#34;&gt;Eigen 2 documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Eigen2 benchmark Intel</title>
      <link>https://libeigen.gitlab.io/pages/eigen2_benchmark_intel/</link>
      <pubDate>Mon, 14 Dec 2009 16:07:04 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/eigen2_benchmark_intel/</guid>
      <description>&lt;p&gt;Out of curiosity, I have performed BTL tests with Eigen2 compiled with 4&#xA;different compilers on Intel Pentium D CPU:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GCC 4.3.3: -O3 -march=native -DNDEBUG&lt;/li&gt;&#xA;&lt;li&gt;GCC 4.1.3: -O3 -march=nocona -msse2 -msse3 -DNDEBUG&lt;/li&gt;&#xA;&lt;li&gt;GCC 4.4.0: -O3 -march=native -DNDEBUG&lt;/li&gt;&#xA;&lt;li&gt;Intel(R) C++ 11.0: -O3 -DNDEBUG -no-ipo -xHOST -ip -static&#xA;-no-prec-div&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Although from on my experience the &lt;em&gt;-ipo&lt;/em&gt; option (interprocedural&#xA;optimization) provides good performance benefits, it was explicitly&#xA;disabled for Intel, because it failed to work (numerically).&lt;/p&gt;</description>
    </item>
    <item>
      <title>EigenFFT</title>
      <link>https://libeigen.gitlab.io/pages/eigenfft/</link>
      <pubDate>Wed, 25 Nov 2009 03:44:11 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/eigenfft/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Eigen/FFT is a WORK IN PROGRESS&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;A new effort was started in May 2009 to port/adapt the &lt;a href=&#34;https://github.com/mborgerding/kissfft&#34;&gt;kissfft&#xA;library&lt;/a&gt; to Eigen. The work is&#xA;currently in the unsupported section.&lt;/p&gt;&#xA;&lt;p&gt;Help is welcome. In particular, help is needed in the area of&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;testing and feedback on how to make the interface better&lt;/li&gt;&#xA;&lt;li&gt;creating IMKL backend&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The major development milestones are:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;DONE: one-dimensional FFTs, forward and inverse for float,&#xA;double,long double&lt;/li&gt;&#xA;&lt;li&gt;DONE: real-only optimization&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TODO&lt;/strong&gt;: multi-dimensional FFTs ( more cannibalizing from C&#xA;version)&lt;/li&gt;&#xA;&lt;li&gt;DONE: backend for FFTW ( using this requires GPL-compatible&#xA;application, or the commercial MIT license for FFTW)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TODO&lt;/strong&gt;: backend for intel Math Kernel Library (for closed source&#xA;applications)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;example-usage&#34;&gt;Example usage&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#example-usage&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;#include &lt;/code&gt;&amp;lt;unsupported/Eigen/FFT&amp;gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Eigen debug.jpg</title>
      <link>https://libeigen.gitlab.io/files/eigen_debug.jpg/</link>
      <pubDate>Fri, 16 Oct 2009 15:23:19 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/eigen_debug.jpg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_debug.jpg&#34; alt=&#34;Eigen_debug.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Functors</title>
      <link>https://libeigen.gitlab.io/pages/functors/</link>
      <pubDate>Sat, 26 Sep 2009 19:51:34 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/functors/</guid>
      <description>&lt;p&gt;In pure C, when one wants to pass a function as parameter to another&#xA;function, one passes its address. However, in C++ this technique should&#xA;generally not be used, as one can do much better.&lt;/p&gt;&#xA;&lt;p&gt;__TOC__&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-functors-approach-with-static-polymorphism&#34;&gt;The functors approach with static polymorphism&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#the-functors-approach-with-static-polymorphism&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;One can define a class &amp;ldquo;functor&amp;rdquo; that contains the wanted function as a&#xA;method, and pass an object of class &amp;ldquo;functor&amp;rdquo; instead. If the function&#xA;needed to take arguments, they can be passed to the constructor of&#xA;&amp;ldquo;functor&amp;rdquo; and stored in the functor object. The compiler is typically&#xA;very good at optimizing this away when possible. Here&amp;rsquo;s an example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tuxfamily</title>
      <link>https://libeigen.gitlab.io/pages/tuxfamily/</link>
      <pubDate>Thu, 24 Sep 2009 16:01:31 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/tuxfamily/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://tuxfamily.org/images/logotf.png&#34; alt=&#34;TuxFamily&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-tuxfamily-&#34;&gt;What is Tuxfamily ?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-is-tuxfamily-&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://tuxfamily.org/&#34;&gt;Tuxfamily&lt;/a&gt; is a nonprofit organisation providing&#xA;hosting services to thousands of Free Software projects. For Eigen, it&#xA;provides the web server, the download server (supporting really large&#xA;bandwidth), the MySQL server (for our wiki) and the mailing&#xA;lists.&lt;/p&gt;&#xA;&lt;p&gt;All with an excellent quality of service, without advertising and&#xA;without fees. It is run entirely by a merry group of volunteers in their&#xA;free time, and the software infrastructure which they develop,&#xA;&lt;a href=&#34;http://vhffs.org/wiki/index.php&#34;&gt;VHFFS&lt;/a&gt;, is itself Free Software. So,&#xA;we Eigen developers thought we&amp;rsquo;d just mention it and perhaps encourage&#xA;you to contribute to the Tuxfamily project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SparseMatrix</title>
      <link>https://libeigen.gitlab.io/pages/sparsematrix/</link>
      <pubDate>Wed, 23 Sep 2009 21:13:40 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/sparsematrix/</guid>
      <description>&lt;div class=&#34;left&#34; style=&#34;background-color: #FFD0D0;padding:5pt 5pt 5pt 5em&#34;&gt;&#xA;&lt;div style=&#34;font-size: 14pt&#34;&gt;&#xA;&lt;p&gt;WARNING: this page is mostly out of date.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;preliminaries&#34;&gt;Preliminaries&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#preliminaries&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;CCS&lt;/strong&gt; stands for Compressed Column Storage. It is the most common&#xA;sparse storage scheme (see&#xA;&lt;a href=&#34;http://netlib.org/linalg/html_templates/node90.html&#34;&gt;http://netlib.org/linalg/html_templates/node90.html&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;CRS: Compressed Row Storage, like CCS but row major&lt;/li&gt;&#xA;&lt;li&gt;nnz: number of nonzero entries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;whats-the-plan-&#34;&gt;What&amp;rsquo;s the plan ?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#whats-the-plan-&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Ideally:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;define our own classes for storage and basic algebra (sum, product,&#xA;triangular solver)&lt;/li&gt;&#xA;&lt;li&gt;a good support of CCS/CRS sparse matrix is certainly the priority as&#xA;it is the most common storage format&lt;/li&gt;&#xA;&lt;li&gt;we could probably adapt the linear solver algorithms of GMM++ (or ITL)&#xA;to directly use our matrix classes&#xA;&lt;ul&gt;&#xA;&lt;li&gt;see the licensing issues&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;provide the ability to use more optimized backends like TAUCS or&#xA;SuperLU as well as backends for eigen value solvers via a unified API&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;current-state&#34;&gt;Current state&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#current-state&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;For the first step the goal is to focus on CCS (CRS) sparse matrix. See&#xA;the class SparseMatrix.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Talk:Main Page</title>
      <link>https://libeigen.gitlab.io/talk/main_page/</link>
      <pubDate>Tue, 22 Sep 2009 15:07:48 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/talk/main_page/</guid>
      <description>&lt;p&gt;Wiped. See history.&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Eigen Silly Professor 35x35.png</title>
      <link>https://libeigen.gitlab.io/files/eigen_silly_professor_35x35.png/</link>
      <pubDate>Sat, 16 May 2009 15:57:21 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/eigen_silly_professor_35x35.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_Silly_Professor_35x35.png&#34; alt=&#34;Copyright 2008 by David Benjamin, licensed CC-BY-SA.&#xA;This version was specially resized and edited to look good at size 35x35.&#34;&gt;&#xA;Copyright 2008 by David Benjamin, licensed CC-BY-SA. This version was&#xA;specially resized and edited to look good at size 35x35.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SpecialMatrix</title>
      <link>https://libeigen.gitlab.io/pages/specialmatrix/</link>
      <pubDate>Thu, 30 Apr 2009 13:51:42 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/specialmatrix/</guid>
      <description>&lt;p&gt;Here are some random thoughts about this topic.&lt;/p&gt;&#xA;&lt;h2 id=&#34;overview-of-each-matrix-type&#34;&gt;Overview of each matrix type&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#overview-of-each-matrix-type&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;triangular-matrix-and-selfadjoint-matrix&#34;&gt;Triangular matrix and SelfAdjoint matrix&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#triangular-matrix-and-selfadjoint-matrix&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Currently in core.&lt;/p&gt;&#xA;&lt;p&gt;We have the &amp;ldquo;view as&amp;rdquo; concept (currently implemented in Part) which has&#xA;2 different behaviors:&lt;/p&gt;&#xA;&lt;p&gt;1 - in write mode, it allows to update (resp. evaluate) only one part of&#xA;the lhs matrix (resp. rhs expression). This works quite well (have to&#xA;check vectorization). Ex:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Benchmark AMD Intel compare</title>
      <link>https://libeigen.gitlab.io/benchmarks/benchmark_amd_intel_compare/</link>
      <pubDate>Tue, 17 Mar 2009 07:15:10 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/benchmarks/benchmark_amd_intel_compare/</guid>
      <description>&lt;p&gt;This page presents benchmark results on both Intel and AMD CPUs. See&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/benchmarks/benchmark_intel/&#34;&gt;Benchmark_Intel&lt;/a&gt; and&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/benchmarks/benchmark_amd/&#34;&gt;Benchmark_AMD&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;17-february-2009&#34;&gt;17 February 2009&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#17-february-2009&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Configuration:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Compiler:&lt;/strong&gt; gcc version 4.3.3 [gcc-4_3-branch revision 143673]&#xA;(OpenSUSE 11.1 64-bit)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Libraries:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;eigen2:&lt;/strong&gt; Revision: 939062. SSE2, SSE3 enabled&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ACML&lt;/strong&gt;: version 4.2.0 compiled with gfortran&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MKL&lt;/strong&gt;: version 10.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Goto BLAS&lt;/strong&gt;: version 1.26&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ATLAS&lt;/strong&gt;: version 3.8.3&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;&lt;p&gt;Intel(R) Pentium(R) D CPU 3.00GHz (model name: Prescott)&lt;/p&gt;&lt;/th&gt;&#xA;&lt;th&gt;&lt;p&gt;AMD Athlon(tm) 64 X2 Dual Core Processor 5000+&lt;/p&gt;&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpy_intel.png&#34; title=&#34;Axpy_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Axpy_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpy_amd.png&#34; title=&#34;Axpy_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Axpy_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpby_intel.png&#34; title=&#34;Axpby_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Axpby_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpby_amd.png&#34; title=&#34;Axpby_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Axpby_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Atv_intel.png&#34; title=&#34;Atv_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Atv_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Atv_amd.png&#34; title=&#34;Atv_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Atv_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_vector_intel.png&#34; title=&#34;Matrix_vector_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Matrix_vector_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_vector_amd.png&#34; title=&#34;Matrix_vector_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Matrix_vector_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_matrix_intel.png&#34; title=&#34;Matrix_matrix_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Matrix_matrix_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_matrix_amd.png&#34; title=&#34;Matrix_matrix_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Matrix_matrix_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Symv_intel.png&#34; title=&#34;Symv_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Symv_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Symv_amd.png&#34; title=&#34;Symv_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Symv_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Syr2_intel.png&#34; title=&#34;Syr2_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Syr2_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Syr2_amd.png&#34; title=&#34;Syr2_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Syr2_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Aat_intel.png&#34; title=&#34;Aat_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Aat_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Aat_amd.png&#34; title=&#34;Aat_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Aat_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Ata_intel.png&#34; title=&#34;Ata_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Ata_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Ata_amd.png&#34; title=&#34;Ata_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Ata_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Trisolve_intel.png&#34; title=&#34;Trisolve_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Trisolve_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Trisolve_amd.png&#34; title=&#34;Trisolve_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Trisolve_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Cholesky_intel.png&#34; title=&#34;Cholesky_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Cholesky_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Cholesky_amd.png&#34; title=&#34;Cholesky_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Cholesky_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Hessenberg_intel.png&#34; title=&#34;Hessenberg_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Hessenberg_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Hessenberg_amd.png&#34; title=&#34;Hessenberg_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Hessenberg_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Tridiagonalization_intel.png&#34;&#xA;title=&#34;Tridiagonalization_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Tridiagonalization_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Tridiagonalization_amd.png&#34;&#xA;title=&#34;Tridiagonalization_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Tridiagonalization_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Lu_decomp_intel.png&#34; title=&#34;Lu_decomp_intel.png&#34; /&gt;&#xA;&lt;figcaption&gt;Lu_decomp_intel.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;figure&gt;&#xA;&lt;img src=&#34;https://libeigen.gitlab.io/images/Lu_decomp_amd.png&#34; title=&#34;Lu_decomp_amd.png&#34; /&gt;&#xA;&lt;figcaption&gt;Lu_decomp_amd.png&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Benchmark AMD</title>
      <link>https://libeigen.gitlab.io/benchmarks/benchmark_amd/</link>
      <pubDate>Tue, 17 Mar 2009 06:48:35 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/benchmarks/benchmark_amd/</guid>
      <description>&lt;p&gt;The purpose of this page is to show the comparison of the best&#xA;performing BLAS/LAPACK implementations and Eigen2 on an AMD Athlon(tm)&#xA;64 X2 CPU. By &lt;em&gt;best performing&lt;/em&gt; I mean Intel MKL, GotoBLAS, ATLAS, and&#xA;&lt;a href=&#34;http://developer.amd.com/cpu/Libraries/acml/downloads/pages/default.aspx&#34;&gt;ACML&lt;/a&gt;&#xA;(by AMD). Other implementations of BLAS/LAPACK are notably slower (see&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/benchmarks/benchmark/&#34;&gt;benchmark&lt;/a&gt;) and therefore not worth testing (and&#xA;using). ACML was not included in the original&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/benchmarks/benchmark/&#34;&gt;benchmark&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;13-february-2009&#34;&gt;13 February 2009&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#13-february-2009&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Configuration:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;CPU:&lt;/strong&gt; AMD Athlon(tm) 64 X2 Dual Core Processor 5000+&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Compiler:&lt;/strong&gt; gcc version 4.3.3 [gcc-4_3-branch revision 143673]&#xA;(OpenSUSE 11.1 64-bit)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Libraries:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Trisolve amd.png</title>
      <link>https://libeigen.gitlab.io/files/trisolve_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:45:17 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/trisolve_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Trisolve_amd.png&#34; alt=&#34;Trisolve_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Tridiagonalization amd.png</title>
      <link>https://libeigen.gitlab.io/files/tridiagonalization_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:44:59 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/tridiagonalization_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Tridiagonalization_amd.png&#34; alt=&#34;Tridiagonalization_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Syr2 amd.png</title>
      <link>https://libeigen.gitlab.io/files/syr2_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:44:41 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/syr2_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Syr2_amd.png&#34; alt=&#34;Syr2_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Symv amd.png</title>
      <link>https://libeigen.gitlab.io/files/symv_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:44:24 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/symv_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Symv_amd.png&#34; alt=&#34;Symv_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix vector amd.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_vector_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:43:51 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_vector_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_vector_amd.png&#34; alt=&#34;Matrix_vector_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix matrix amd.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_matrix_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:42:57 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_matrix_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_matrix_amd.png&#34; alt=&#34;Matrix_matrix_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Lu decomp amd.png</title>
      <link>https://libeigen.gitlab.io/files/lu_decomp_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:42:30 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/lu_decomp_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Lu_decomp_amd.png&#34; alt=&#34;Lu_decomp_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Hessenberg amd.png</title>
      <link>https://libeigen.gitlab.io/files/hessenberg_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:42:08 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/hessenberg_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Hessenberg_amd.png&#34; alt=&#34;Hessenberg_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Cholesky amd.png</title>
      <link>https://libeigen.gitlab.io/files/cholesky_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:41:46 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/cholesky_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Cholesky_amd.png&#34; alt=&#34;Cholesky_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpy amd.png</title>
      <link>https://libeigen.gitlab.io/files/axpy_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:41:11 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpy_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpy_amd.png&#34; alt=&#34;Axpy_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpby amd.png</title>
      <link>https://libeigen.gitlab.io/files/axpby_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:40:51 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpby_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpby_amd.png&#34; alt=&#34;Axpby_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Atv amd.png</title>
      <link>https://libeigen.gitlab.io/files/atv_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:40:28 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/atv_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Atv_amd.png&#34; alt=&#34;Atv_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Ata amd.png</title>
      <link>https://libeigen.gitlab.io/files/ata_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:40:09 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/ata_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Ata_amd.png&#34; alt=&#34;Ata_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Aat amd.png</title>
      <link>https://libeigen.gitlab.io/files/aat_amd.png/</link>
      <pubDate>Tue, 17 Mar 2009 06:39:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/aat_amd.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Aat_amd.png&#34; alt=&#34;Aat_amd.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Trisolve compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/trisolve_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:27:45 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/trisolve_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Trisolve_compare_intel.png&#34; alt=&#34;Trisolve_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Tridiagonalization compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/tridiagonalization_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:27:27 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/tridiagonalization_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Tridiagonalization_compare_intel.png&#34; alt=&#34;Tridiagonalization_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Syr2 compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/syr2_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:26:58 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/syr2_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Syr2_compare_intel.png&#34; alt=&#34;Syr2_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Symv compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/symv_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:26:41 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/symv_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Symv_compare_intel.png&#34; alt=&#34;Symv_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix vector compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_vector_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:26:16 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_vector_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_vector_compare_intel.png&#34; alt=&#34;Matrix_vector_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix trisolve compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_trisolve_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:25:40 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_trisolve_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_trisolve_compare_intel.png&#34; alt=&#34;Matrix_trisolve_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix matrix compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_matrix_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:22:52 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_matrix_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_matrix_compare_intel.png&#34; alt=&#34;Matrix_matrix_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Lu decomp compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/lu_decomp_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:22:28 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/lu_decomp_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Lu_decomp_compare_intel.png&#34; alt=&#34;Lu_decomp_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Hessenberg compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/hessenberg_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:22:08 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/hessenberg_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Hessenberg_compare_intel.png&#34; alt=&#34;Hessenberg_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Cholesky compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/cholesky_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:21:26 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/cholesky_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Cholesky_compare_intel.png&#34; alt=&#34;Cholesky_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpy compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/axpy_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:20:30 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpy_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpy_compare_intel.png&#34; alt=&#34;Axpy_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpby compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/axpby_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:19:46 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpby_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpby_compare_intel.png&#34; alt=&#34;Axpby_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Atv compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/atv_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:19:25 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/atv_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Atv_compare_intel.png&#34; alt=&#34;Atv_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Ata compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/ata_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:18:45 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/ata_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Ata_compare_intel.png&#34; alt=&#34;Ata_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Aat compare intel.png</title>
      <link>https://libeigen.gitlab.io/files/aat_compare_intel.png/</link>
      <pubDate>Tue, 17 Mar 2009 02:15:48 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/aat_compare_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Aat_compare_intel.png&#34; alt=&#34;Aat_compare_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Benchmark Intel</title>
      <link>https://libeigen.gitlab.io/benchmarks/benchmark_intel/</link>
      <pubDate>Sun, 15 Mar 2009 03:28:39 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/benchmarks/benchmark_intel/</guid>
      <description>&lt;p&gt;The purpose of this page is to show the comparison of the best&#xA;performing BLAS/LAPACK implementations and Eigen2 on an Intel(R)&#xA;Pentium(R) D CPU. By &lt;em&gt;best performing&lt;/em&gt; I mean Intel MKL, GotoBLAS,&#xA;ATLAS, and&#xA;&lt;a href=&#34;http://developer.amd.com/cpu/Libraries/acml/downloads/pages/default.aspx&#34;&gt;ACML&lt;/a&gt;&#xA;(by AMD). Other implementations of BLAS/LAPACK are notably slower (see&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/benchmarks/benchmark/&#34;&gt;benchmark&lt;/a&gt;) and therefore not worth testing (and&#xA;using). ACML was not included in the original&#xA;&lt;a href=&#34;https://libeigen.gitlab.io/benchmarks/benchmark/&#34;&gt;benchmark&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;13-february-2009&#34;&gt;13 February 2009&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#13-february-2009&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Configuration:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;CPU:&lt;/strong&gt; Intel(R) Pentium(R) D CPU 3.00GHz (model name: Prescott)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Compiler:&lt;/strong&gt; gcc version 4.3.3 [gcc-4_3-branch revision 143673]&#xA;(OpenSUSE 11.1 64-bit)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Libraries:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Trisolve intel.png</title>
      <link>https://libeigen.gitlab.io/files/trisolve_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:36:50 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/trisolve_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Trisolve_intel.png&#34; alt=&#34;Trisolve_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Tridiagonalization intel.png</title>
      <link>https://libeigen.gitlab.io/files/tridiagonalization_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:36:23 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/tridiagonalization_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Tridiagonalization_intel.png&#34; alt=&#34;Tridiagonalization_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Syr2 intel.png</title>
      <link>https://libeigen.gitlab.io/files/syr2_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:35:59 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/syr2_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Syr2_intel.png&#34; alt=&#34;Syr2_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Symv intel.png</title>
      <link>https://libeigen.gitlab.io/files/symv_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:34:51 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/symv_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Symv_intel.png&#34; alt=&#34;Symv_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix vector intel.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_vector_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:34:11 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_vector_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_vector_intel.png&#34; alt=&#34;Matrix_vector_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix matrix intel.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_matrix_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:33:32 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_matrix_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_matrix_intel.png&#34; alt=&#34;Matrix_matrix_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Lu decomp intel.png</title>
      <link>https://libeigen.gitlab.io/files/lu_decomp_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:26:43 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/lu_decomp_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Lu_decomp_intel.png&#34; alt=&#34;Lu_decomp_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Hessenberg intel.png</title>
      <link>https://libeigen.gitlab.io/files/hessenberg_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:26:01 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/hessenberg_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Hessenberg_intel.png&#34; alt=&#34;Hessenberg_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Cholesky intel.png</title>
      <link>https://libeigen.gitlab.io/files/cholesky_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:25:17 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/cholesky_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Cholesky_intel.png&#34; alt=&#34;Cholesky_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpy intel.png</title>
      <link>https://libeigen.gitlab.io/files/axpy_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:23:14 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpy_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpy_intel.png&#34; alt=&#34;Axpy_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpby intel.png</title>
      <link>https://libeigen.gitlab.io/files/axpby_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:21:34 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpby_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpby_intel.png&#34; alt=&#34;Axpby_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Atv intel.png</title>
      <link>https://libeigen.gitlab.io/files/atv_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:20:01 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/atv_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Atv_intel.png&#34; alt=&#34;Atv_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Ata intel.png</title>
      <link>https://libeigen.gitlab.io/files/ata_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:18:24 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/ata_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Ata_intel.png&#34; alt=&#34;Ata_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Aat intel.png</title>
      <link>https://libeigen.gitlab.io/files/aat_intel.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:17:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/aat_intel.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Aat_intel.png&#34; alt=&#34;Aat_intel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Aat.png</title>
      <link>https://libeigen.gitlab.io/files/aat.png/</link>
      <pubDate>Sat, 14 Mar 2009 05:15:46 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/aat.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Aat.png&#34; alt=&#34;Aat.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>UsingVector4fForVector3fOperations</title>
      <link>https://libeigen.gitlab.io/pages/usingvector4fforvector3foperations/</link>
      <pubDate>Thu, 12 Mar 2009 13:01:47 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/usingvector4fforvector3foperations/</guid>
      <description>&lt;p&gt;In many cases, one needs to use the Vector3f class (in 3D codes, for&#xA;instance). However, since it is not a multiple of 16 bytes, you do not&#xA;get the benefit of vectorization. However, in certain instances, you may&#xA;be able to simply use a Vector4f class with the last component set to&#xA;zero to use vectorization. For component wise operations such as add,&#xA;subtract and multiply, you can of course blissfully ignore the last&#xA;component. However, for dot and cross products and normalization&#xA;operations, you will need to have the w component set to 0.&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Owl internal.jpg</title>
      <link>https://libeigen.gitlab.io/files/owl_internal.jpg/</link>
      <pubDate>Thu, 18 Dec 2008 14:17:39 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/owl_internal.jpg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Owl_internal.jpg&#34; alt=&#34;(C) David Benjamin 2008, licensed CC-BY-SA&#34;&gt;&#xA;(C) David Benjamin 2008, licensed CC-BY-SA&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Owl faq.jpg</title>
      <link>https://libeigen.gitlab.io/files/owl_faq.jpg/</link>
      <pubDate>Thu, 18 Dec 2008 14:17:06 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/owl_faq.jpg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Owl_faq.jpg&#34; alt=&#34;(c) David Benjamin 2008, licensed CC-BY-SA&#34;&gt;&#xA;(c) David Benjamin 2008, licensed CC-BY-SA&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Axpy.png</title>
      <link>https://libeigen.gitlab.io/files/axpy.png/</link>
      <pubDate>Sat, 12 Jul 2008 13:39:32 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/axpy.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Axpy.png&#34; alt=&#34;bench results for Y &amp;#43;= A * X&#34;&gt;&#xA;bench results for Y += A * X&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Matrix vector.png</title>
      <link>https://libeigen.gitlab.io/files/matrix_vector.png/</link>
      <pubDate>Sat, 12 Jul 2008 13:29:42 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/matrix_vector.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Matrix_vector.png&#34; alt=&#34;bench result of matrix vector product.&#34;&gt;&#xA;bench result of matrix vector product.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Expression templates</title>
      <link>https://libeigen.gitlab.io/pages/expression_templates/</link>
      <pubDate>Fri, 11 Jul 2008 17:25:05 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/expression_templates/</guid>
      <description>&lt;p&gt;&lt;em&gt;Expression templates&lt;/em&gt; refers to a c++ coding technique that was&#xA;discovered in the 90&amp;rsquo;s, which can greatly improve the performance and&#xA;the API cleanness and expressiveness of certain kinds of c++ template&#xA;libraries, and is especially useful for a vector/matrix library such as&#xA;Eigen. First, some links:&#xA;&lt;a href=&#34;http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Expression-template&#34;&gt;wikibooks&lt;/a&gt;&#xA;and &lt;a href=&#34;http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Expression-template#References&#34;&gt;the links given&#xA;there&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;motivation--better-performance-through-lazy-evaluation&#34;&gt;Motivation : better performance through lazy evaluation&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#motivation--better-performance-through-lazy-evaluation&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Suppose that we want to write a 3D Vector class. The standard approach&#xA;is:&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Eigen Silly Professor 135x135.png</title>
      <link>https://libeigen.gitlab.io/files/eigen_silly_professor_135x135.png/</link>
      <pubDate>Thu, 29 May 2008 03:51:26 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/eigen_silly_professor_135x135.png/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_Silly_Professor_135x135.png&#34; alt=&#34;(/Copyright 2008 David Benjamin Licensed under Creative Commons CC-BY-SA)&#34;&gt;&#xA;Our mascot!&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Eigen Silly Professor 135x135.jpg</title>
      <link>https://libeigen.gitlab.io/files/eigen_silly_professor_135x135.jpg/</link>
      <pubDate>Wed, 16 Apr 2008 17:34:02 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/eigen_silly_professor_135x135.jpg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_Silly_Professor_135x135.jpg&#34; alt=&#34;Copyright 2008 David Benjamin&#xA;Licensed under Creative Commons CC-BY-SA&#34;&gt;&#xA;Copyright 2008 David Benjamin, licensed under Creative Commons CC-BY-SA&lt;/p&gt;</description>
    </item>
    <item>
      <title>File:Eigen Owl Todo.jpg</title>
      <link>https://libeigen.gitlab.io/files/eigen_owl_todo.jpg/</link>
      <pubDate>Wed, 16 Apr 2008 17:33:15 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/files/eigen_owl_todo.jpg/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://libeigen.gitlab.io/images/Eigen_Owl_Todo.jpg&#34; alt=&#34;Author: David Benjamin&#xA;License: CC-BY-SA&#34;&gt;&#xA;Copyright 2008 David Benjamin, licensed under Creative Commons CC-BY-SA&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://libeigen.gitlab.io/notes/working_notes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/notes/working_notes/</guid>
      <description></description>
    </item>
    <item>
      <title></title>
      <link>https://libeigen.gitlab.io/pages/animation_scientifique_journeessci_2011_05_31/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://libeigen.gitlab.io/pages/animation_scientifique_journeessci_2011_05_31/</guid>
      <description>&lt;p&gt;====== Première journée scientifique ======&lt;/p&gt;&#xA;&lt;p&gt;{{:animation_scientifique:journeessci:2011-emailing_journee_plafrim.jpg?600}}&lt;/p&gt;&#xA;&lt;html&gt;&lt;center&gt;31 mai 2011 - Amphi du LaBRI - Bât A30&lt;/center&gt;&lt;/html&gt;&#xA;&lt;p&gt;Déjà un an que PlaFRIM, la plateforme d’expérimentation autour de la modélisation et du calcul à hautes performances est opérationnelle. Celle-ci regroupe des compétences variées autour des mathématiques appliquées et de l’informatique. Nous vous proposons de participer à la première journée scientifique qui lui est dédiée le &amp;lt;fc #FF0000&amp;gt;&lt;strong&gt;mardi 31 mai 2011&lt;/strong&gt;&lt;/fc&gt;, afin de faire le point sur les travaux réalisés sur la plateforme et d’avoir un retour d’expérience.&#xA;===== Programme =====&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
