Support for Streaming SIMD Extensions to speed up vector arithmetic. More...
#include <vcl_compiler.h>
#include <vxl_config.h>
#include <vcl_cfloat.h>
#include <vnl/vnl_config.h>
#include <vnl/vnl_alloc.h>
Go to the source code of this file.
Classes | |
class | vnl_sse< T > |
Bog standard (no sse) implementation for non sse enabled hardware and any type which doesn't have a template specialisation. More... | |
Defines | |
#define | VNL_SSE_FORCE_INLINE inline |
#define | VNL_SSE_STACK_ALIGNED(x) |
#define | VNL_SSE_STACK_STORE(pf) _mm_storeu_##pf |
#define | VNL_SSE_HEAP_STORE(pf) _mm_storeu_##pf |
#define | VNL_SSE_HEAP_LOAD(pf) _mm_loadu_##pf |
#define | VNL_SSE_ALLOC(n, s, a) vnl_alloc::allocate((n == 0) ? 8 : (n * s)); |
#define | VNL_SSE_FREE(v, n, s) if (v) vnl_alloc::deallocate(v, (n == 0) ? 8 : (n * s)); |
#define | VNL_SSE_FORCE_INLINE |
Functions | |
VNL_SSE_FORCE_INLINE void * | vnl_sse_alloc (vcl_size_t n, unsigned size) |
Custom memory allocation function to force 16 byte alignment of data. | |
VNL_SSE_FORCE_INLINE void | vnl_sse_dealloc (void *mem, vcl_size_t n, unsigned size) |
Custom memory deallocation function to free 16 byte aligned of data. |
Support for Streaming SIMD Extensions to speed up vector arithmetic.
Modifications 2009-03-30 Peter Vanroose - Added arg_min() & arg_max() and reimplemented min() & max()
Definition in file vnl_sse.h.
#define VNL_SSE_ALLOC | ( | n, | |
s, | |||
a | |||
) | vnl_alloc::allocate((n == 0) ? 8 : (n * s)); |
#define VNL_SSE_FREE | ( | v, | |
n, | |||
s | |||
) | if (v) vnl_alloc::deallocate(v, (n == 0) ? 8 : (n * s)); |
VNL_SSE_FORCE_INLINE void* vnl_sse_alloc | ( | vcl_size_t | n, |
unsigned | size | ||
) |