macstl is a portable SIMD (single instruction multiple data) toolkit that massively accelerates array-based code. It features fast transcendental and integer division functions, complex number arithmetic and cross-platform programming, all in an easy-to-use syntax.
The cornerstone is a fast valarray optimized for SIMD: it runs 3.6x to 16.2x faster than hand-coded scalar loops on hardware from PowerPC G5 to Pentium 4. Developers unfamiliar with SIMD can write to a portable, intuitive and standard component.
The Mach copy-on-write vector is a partial specialization of std::vector for the Mach allocator. It neatly uses the OS vm_copy facility to "get around" thread safety issues when doing copy-on-write and reference counting. As a result, std::vector can be copied, passed back by value and enlarged without the same overheads.
macstl also has adapters for Core Foundation classes to STL containers -- use your favorite STL algorithm on a CF class or store a C++ object in a CF array.
What is new in this release:
- Fixed class scope vector typedefs, missing PowerPC intrinsics header, vector initializer syntax for FSF 3.4 [ILi*].
- Added complex conj function for vec and valarray [ILi*].
- Improved valarray expression performance: v1 [slice].
- Improved valarray code generation: CSE, inlining limits, literal terms, array term elements, statarray construction, compiling -faltivec without -maltivec for Apple gcc 4.0.
- Added refarray class [PBa].
- Fixed buffer overflow in integral valarrays for SSE2; added optimizations for valarray expressions: v1 >> k and v1 << k for SSE2 [MSh].
- Fixed accumulate array dispatch, integer constant overflow, literal benchmark test for SSE2; fixed chunking iterator pessimization for gcc 3.3/4 [ILi, RBe].
- Added makefile for Linux x86 [ILi*].
- Added support for FSF gcc 3.4 on Cygwin 1.5.
- Added differently typed valarray construct and assign from terms, valarrays of sized booleans, select with sized booleans [ILi].
- Fixed unix makefile directory.
- Added macstlizer conversions: abs, abss, cmpeq, max, min.
- Improved readme file.
Requirements:
Comments not found