Boost logo

Ublas :

From: Cem Bassoy (cem.bassoy_at_[hidden])
Date: 2020-03-20 11:08:36


Am Do., 19. März 2020 um 18:36 Uhr schrieb Ashar via ublas <
ublas_at_[hidden]>:

>
>
>> 1. (not part as gsoc) make a final decision about yapp
>>
>> 2. stablilize and improve the code from the previous gsoc
>> implementation (static rank and extents, subtensor)
>> 3. improve code quality using advanced and modern toolchains like
>> cmake, clang-static-analyzer, clang-tidy, etc.
>> 4. improve code quality by enhancing the code-covarge percentage for
>> tensor only
>> 5. improve the constexpr-ness of tensor and subtensor (finalization
>> with C++17)
>> 6. prepare a matrix and vector data structures as an instance of
>> tensor<T,rank=2> and tensor<T,rank=1>
>>
>> 7. using a different branch, improve code quality using c++20
>> contracts and attributes for tensor, using (expects,ensure,assert)
>> contract
>> <https://www.modernescpp.com/index.php/c-core-guidelines-a-detour-to-contracts>
>> 8. prepare for concepts
>>
>> Hey Cem,
>
> 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.
>
> Will it be worth doing something that can't be directly used by other?
>

you are right about contracts.

>
> 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's static extents. This is I believe an
> extension to the list of ideas you presented above.
>

yes. doumenting and stablizing the software and preparing it for matrix and
vector templates would be the number one priority.

>
> I still need your view on if I should go ahead with the contracts?
> Concepts are okay and So is constexpr thing!
>

for now, I would like to put concepts at the very end of the

> Also I believe eventually if I follow up your list of ideas tensor<2,
> rank> can be matrix and tensor<1, rank> 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).
>

yes. according to the list that is the way we should go.

> 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.
>

agree.

> This will also eventually give us many performance boost that David was
> talking about from modern paradigms of C++.
>
> Regards
> Ashar
>
>> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/ublas
> Sent to: cem.bassoy_at_[hidden]
>