On 2018-09-13 03:44 PM, Cem Bassoy via ublas wrote:



Am Do., 13. Sep. 2018 um 20:35 Uhr schrieb Stefan Seefeld via ublas <ublas@lists.boost.org>:


Of course, if we need to port code over, it's a sign that the old and new types aren't API-compatible, so this becomes a bigger question (as it also affects users). Again, my assumption was that we could come up with a new API that was backward-compatible.

Hmmm, backward compatibility could be a bit more difficult in this case. There are so many iterators inside those classes. We do not need them. At least only, not on this level I think. So if we agree on tensor class template with a static rank using alias templates for matrix and vector, means that we would provide a new api with the same functionality but better usability?

Yeah. 
 

Alternatively, if you keep the rank a runtime parameter, you are basically proposing an entirely new API, which means that Boost.uBLAS users will have to decide whether to use the old or the new API, which I'm afraid will result in a fragmentation of the community. Likewise, many existing operations only support existing vector and matrix types, so maintainers will have more work to do to support both APIs.

That, to me as library maintainer, is a very high cost, so I'm reluctant to such a change, even if the proposed API with runtime ranks is otherwise sound.

Yes agree with you on that point.

Glad to hear that  ! :-)

So I will wait for more opinions before continuing to adjust the tensor class template.

OK. Not sure how many people pay attention to this discussion, though. If you don't hear anything within a few days (a week at most, I'd say), I'd just move forward.


Stefan
--

      ...ich hab' noch einen Koffer in Berlin...