Mercurial > audlegacy-plugins
view src/madplug/SFMT-sse2.h @ 922:7e14701aef54 trunk
[svn] - replace random number generator in dithering code with SIMD-oriented Fast Mersenne Twister (SFMT). it reduces CPU load on SSE2 or AltiVec capable platform.
author | yaz |
---|---|
date | Sun, 08 Apr 2007 21:30:22 -0700 |
parents | |
children | b8dd67ad7b86 |
line wrap: on
line source
/** * @file SFMT-sse2.h * * @brief SIMD oriented Fast Mersenne Twister(SFMT) * pseudorandom number generator * * @author Mutsuo Saito (Hiroshima University) * @author Makoto Matsumoto (Hiroshima University) * * Copyright (C) 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima * University. All rights reserved. * * The new BSD License is applied to this software. * see LICENSE.txt */ #ifndef SFMT_SSE2_H #define SFMT_SSE2_H #include <emmintrin.h> union W128_T { __m128i si; uint32_t u[4]; }; typedef union W128_T w128_t; #ifdef __GNUC__ inline static __m128i mm_recursion(__m128i *a, __m128i *b, __m128i c, __m128i d, __m128i mask) __attribute__((always_inline)); #else inline static __m128i mm_recursion(__m128i *a, __m128i *b, __m128i c, __m128i d, __m128i mask); #endif #endif