Opened 14 years ago
Last modified 13 years ago
#2692 assigned Feature Requests
No concepts supporting the idea of dense
Reported by: | Owned by: | Gunter | |
---|---|---|---|
Milestone: | To Be Determined | Component: | uBLAS |
Version: | Boost 1.37.0 | Severity: | Optimization |
Keywords: | Cc: |
Description
data() returns a reference to a Storage. However, nowhere in the concepts is a statement saying that &m.data()[0] must to be the address of the first element of the linearly stored data in the Storage. The adjective "dense" is used all over, but nowhere is this term given any operational guarantees. Without such guarantees, all the interfaces in, say, the numerics::binding libraries are being built on sand. Related to this is that nothing requires unbounded_array<T>::value_type to be T. The problem boils down to the ublas concepts documentation borrowing from the stl vector concepts which are general enough to support vector<bool>. The basic (and inadequate) change is the sprinkling around of the word dense and the phrase "strict linear order". Instead you need to explicitly says things like value_type is T and &v[i+j] == &v[i]+j (for reasonable i+j).
Change History (4)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
Component: | Documentation → uBLAS |
---|---|
Owner: | changed from | to
comment:3 by , 14 years ago
Status: | new → assigned |
---|
I agree that the term "dense" is not defined. However, I 'd like to go throug all classes before I add a definition to the docs.
comment:4 by , 13 years ago
Milestone: | Boost 1.38.0 → To Be Determined |
---|---|
Severity: | Problem → Optimization |
Type: | Bugs → Feature Requests |
Moved to list of feature requests because the fix requires a whole new concept. Currently all classes which use "dense" storage follow the wide known dense concept without explicitly stating it.
The above all refers to: http://www.boost.org/doc/libs/1_37_0/libs/numeric/ublas/doc