Classes | Defines | Functions
core/vnl/vnl_sse.h File Reference

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.

Detailed Description

Support for Streaming SIMD Extensions to speed up vector arithmetic.

Author:
Kieran O'Mahony
Date:
Sep 2007
    Modifications
     2009-03-30 Peter Vanroose - Added arg_min() & arg_max() and reimplemented min() & max()
   

Definition in file vnl_sse.h.


Define Documentation

#define VNL_SSE_ALLOC (   n,
  s,
 
)    vnl_alloc::allocate((n == 0) ? 8 : (n * s));

Definition at line 82 of file vnl_sse.h.

#define VNL_SSE_FORCE_INLINE   inline

Definition at line 114 of file vnl_sse.h.

#define VNL_SSE_FORCE_INLINE

Definition at line 114 of file vnl_sse.h.

#define VNL_SSE_FREE (   v,
  n,
 
)    if (v) vnl_alloc::deallocate(v, (n == 0) ? 8 : (n * s));

Definition at line 83 of file vnl_sse.h.

#define VNL_SSE_HEAP_LOAD (   pf)    _mm_loadu_##pf

Definition at line 77 of file vnl_sse.h.

#define VNL_SSE_HEAP_STORE (   pf)    _mm_storeu_##pf

Definition at line 76 of file vnl_sse.h.

#define VNL_SSE_STACK_ALIGNED (   x)

Definition at line 53 of file vnl_sse.h.

#define VNL_SSE_STACK_STORE (   pf)    _mm_storeu_##pf

Definition at line 54 of file vnl_sse.h.


Function Documentation

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.

Definition at line 100 of file vnl_sse.h.

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.

Definition at line 106 of file vnl_sse.h.