cvalarray Code
Brought to you by:
mtegtmeyer
File | Date | Author | Commit |
---|---|---|---|
docs | 2008-11-14 |
![]() |
[d25e2b] Removed generated files |
tests | 2008-11-14 |
![]() |
[d25e2b] Removed generated files |
.gitignore | 2009-03-02 |
![]() |
[c46f4f] Added missing const in cslice operator. Bumped ... |
AUTHORS | 2006-08-15 |
![]() |
[c9a2a9] Initial revision |
COPYING | 2007-05-30 |
![]() |
[7888cb] added second parameter for T * and T & cvalarra... |
ChangeLog | 2009-03-02 |
![]() |
[c46f4f] Added missing const in cslice operator. Bumped ... |
INSTALL | 2006-08-15 |
![]() |
[c9a2a9] Initial revision |
Makefile.am | 2006-08-15 |
![]() |
[c9a2a9] Initial revision |
NEWS | 2009-03-02 |
![]() |
[708907] Appended news for release 0.2.2 |
README | 2007-10-01 |
![]() |
[c6c17c] brought cvs tree in line with distributed changes |
configure.ac | 2009-03-02 |
![]() |
[c46f4f] Added missing const in cslice operator. Bumped ... |
cvalarray.h | 2009-03-02 |
![]() |
[c46f4f] Added missing const in cslice operator. Bumped ... |
cvalarray is a c++ template class designed for numeric processing in a manner mirroring the STL class valarray with the exception that it is statically sized. The purpose of the cvalarray class is to address shortcomings in specific use-cases where valarray's dynamic-sized nature imposes too great of performance limitation. This is achieved primarily by moving function arguments that specify size and slices to template arguments. This has the added benefit of moving many errors that would normally occur at runtime to compile time. In addition, the implementation takes advantage ofthe static-sized nature and unrolls all operations <= the preprocessor UNROLL_LIMIT (default 10) Mail any bugs or suggestions to tegtmeye at eecis dot udel dot edu See the NEWS file for changes made to a particular version noteworthy things: The performance comparisons against std::valarray are meaningless as it is fairly hard to obtain timing measurements for such things as most compilers tend to optimize most of the code that you want to time away. The compound math check can take a VERY long time to compile as it is testing every permutation of the math operators This implementation does not use any extensions to the c++ language but requires a modern, ISO complient c++ compiler. It is known to compile on the following compilers: - GCC 4.* - GCC 3.4.5 - MSVC 8.0 SP1 * Copyright (c) 2006,2007 Mike Tegtmeyer * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the author nor the names of its contributors may * be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.