
OK, I tried looking into the code...
On 5/23/07, Michael Tegtmeyer <tegtmeye@eecis.udel.edu> wrote:
received some emails stating that there was interest. The implementation has been in the sandbox for some time now. I'd like to guage interest again to determine if it is worth working to add to boost.
Are you speaking figuratively here? I couldn't find it in the boost sandbox. I found a version in the vault, .1.1, dated 06.07.2006. Is this the latest?
Yes that is the latest, it has been feature complete and in active use here for some time. As far as I know, there are no bugs so v.1.1 is current.
The implementation is complete without any known bugs. There is only one header but you can go though the normal ./configure, make, make install to put it somewhere. Tests can be run using 'make check' and documentation is in the doc directory.
I tried using the .h file as-is in msvc 8.0 but got a bunch of compile errors on the test code provided in your e-mail. Maybe it doesn't make sense to do that, sorry I'm not too familiar with configure/make. I downsized the test code to where it did something pretty simple (declared a cvalarray using the default consructor and printed its values). Anything beyond that and errors come up.
We are heavily invested in the autotool/gcc toolchain so that is what it has been extensivly tested on. I know that cross-tool conformance is stressed as part of boost so since there has been some interest, it needs to be looked at with other compilers. However, a standards complient compiler is a must and there are no known non-standard features used. I'm not sure of the current state of MS compiler products but I know that have had some problems in the past. I'm digging up a copy as I write this to do some testing. There are lots of tests in the tests directory where all of the functionality is tested against the installed std::valarray for correctness. Some examples of its use can be found there. In addition there is a pdf in the docs directory explaining the interface.
If anyone has any interest, I'll put together some docs and throw it in the sandbox.
I am really interested, and would definitelly use this class if it was made available in a boost-friendly way. Actually, I've been looking for something like this for quite a while :-) Your class seems to provide a pretty complete set of features (if I could get past the compile errors :-)), at least as far as what I'm interested is concerned.
The only thing I would see as a convenient addition would be constructors and setter functions of the form
cvalarray<float,4> v1(1, 2, 3, 4); // v1 = {1, 2, 3, 4} v1.set(4, 3, 2, 1); // v1 = {4, 3, 2, 1}
defined for sufficiently small array sizes (say smaller than UNROLL_LIMIT).
As a design decision, I opted to keep the interface as close to std::valarray as possible. I'm not against additions if they prove popular but the initial goal was to behave in such a way that one could move from std::valarray to cvalarray easily. I'll report back with what I find with MSVC. Mike