<div dir="auto"><div dir="auto"><br></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><ol><li>using a different branch, improve code quality using c++20 contracts and attributes for tensor, using (expects,ensure,assert) <a href="https://www.modernescpp.com/index.php/c-core-guidelines-a-detour-to-contracts" target="_blank" rel="noreferrer">contra</a></li></ol></div></div></blockquote></div><div dir="auto"><div dir="auto" style="font-family:sans-serif">Hey Cem,</div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">Are you sure to add contracts in uBLAS. Contracts was proposed for C++17 and did not made it up to C++20 and I have no idea when it will come to but there are some implementation of contracts TS draft by some third party compiler hackers who implement things, So I will have to compile the compiler with contract support and then test it during development. I have no problems doing it, I can see all the great places it will be used.</div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">Will it be worth doing something that can&#39;t be directly used by other?</div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">In addition to the above, I was thinking of also having complete compile time tensor. c++20 has new and delete marked constexpr, so we can use std::vector container which is now compile-time and modify current to have a complete compile time tensor class. With examples and how to use it, this will be easy, if I use Amit&#39;s static extents. This is I believe an extension to the list of ideas you presented above.</div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">I still need your view on if I should go ahead with the contracts? Concepts are okay and So is constexpr thing! Also I believe eventually if I follow up your list of ideas tensor&lt;2, rank&gt; can be matrix and tensor&lt;1, rank&gt; can become a vector and in a long run it can replace the specially designed matrix and vector of ublas. (backward compatibility could be provided thought). We will have one expression template (YAP), C++17 or 20 everywhere, it will also make maintaining the library easy because currently tensor is a separate things and matrix and vector of ublas are separator thing. </div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">This will also eventually give us many performance boost that David was talking about from modern paradigms of C++.</div><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">Regards</div><div dir="auto" style="font-family:sans-serif">Ashar</div></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div>