macstl 0.3.1 review
Downloadmacstl is a C++ header library designed to bring the world of generic programming to the Macintosh, and deliver the surprising speed
|
|
macstl is a C++ header library designed to bring the world of generic programming to the Macintosh, and deliver the surprising speed of SIMD in an intuitive cross-platform package. For example, a simple loop calculating a trigonometric function over an array can be speeded up 450 times.
Generic programming is the art - some say, the black art - of making software components super-reusable and yet ultra-efficient. Our tool is the C++ template, and our result is code nearly as fast as hand-coded machine language.
macstl was inspired by the premier generic library, the Standard Template Library (now part of the C++ Standard Library), but with a distinct Macintosh flavor. Many components let you use low-level Mac OS X functionality like SIMD acceleration and memory copy-on-write easily and intuitively.
Although macstl started on the Mac, it now has a cross-platform look. Over 14,000 source lines of code compile cleanly on different C++ compilers. The SIMD classes work seamlessly on PowerPC's running Mac OS X and Pentium's running Windows XP.
macstl provides these sets of classes:
valarray - numeric arrays highly optimized for SIMD architectures like Altivec and MMX/SSE/SSE2/SSE3.
vec - a portable, extensible SIMD toolkit with intuitive, fast functions; some of the trig functions can't be beat so far…
mach - allocator and partially specialized vector for fast OS-level copy-on-write.
core - adapting Core Foundation and Foundation classes for STL.
com - interface pointer and a fast, lightweight server implementation for Microsoft COM and Apple CFPlugIns.
mmapping - treating files as STL containers.
macstlizer - scripts to convert Altivec C source code into macstl C++ source code, headers to map Altivec to SSE intrinsics.
… and more.
What's 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
macstl 0.3.1 keywords