VM/VM_Math.h File Reference

#include "VM_API.h"
#include <SYS/SYS_Math.h>
#include <SYS/SYS_Floor.h>
#include <string.h>
#include "VM_SIMD.h"

Go to the source code of this file.

Classes

class  VM_Math

Defines

#define VM_SIV   static inline void
#define VM_SIMDFUNC(signature)   signature {}
#define VM_SIMDFUNCR(signature)   signature { return 0; }
#define VM_DECL_vFvFvF(name, expr)
#define VM_DECL_vFvFuF(name, expr)
#define VM_DECL_vFuFvF(name, expr)
#define VM_DECL_vFuFuF(name, expr)
#define VM_DECL_vFvF(name, expr)
#define VM_DECL_vFuF(name, expr)
#define VM_DECL_vIvF(name, expr)
#define VM_DECL_vIvF_nonconst(name, expr)
#define VM_DECL_vIvFvF(name, expr)
#define VM_DECL_vIvVFvF(name, expr)
#define VM_DECL_vIvFuF(name, expr)
#define VM_DECL_WP(type, name, expr)
#define VM_DECL_IWP(type, name, expr)
#define VM_DECL_vIvIvI(name, expr)
#define VM_DECL_vIvIuI(name, expr)
#define VM_DECL_uIvI(name, expr)
#define VM_DECL_CMP(name, op)


Define Documentation

#define VM_DECL_CMP ( name,
op   ) 

Value:

VM_DECL_vIvFvF(name, d[n] = a[n] op b[n]) \
    VM_DECL_vIvFuF(name, d[n] = a[n] op b) \
    VM_DECL_vIvFvF(fast##name, d[n] = a[n] op b[n]) \
    VM_DECL_vIvFuF(fast##name, d[n] = a[n] op b) \
    VM_DECL_vIvIvI(name, d[n] = a[n] op b[n]) \
    VM_DECL_vIvIuI(name, d[n] = a[n] op b) \
    VM_DECL_vIvIvI(fast##name, d[n] = a[n] op b[n]) \
    VM_DECL_vIvIuI(fast##name, d[n] = a[n] op b)

Definition at line 169 of file VM_Math.h.

#define VM_DECL_IWP ( type,
name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, const type *a, fpreal32 b, \
                                     type e, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, e, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, const type *a, fpreal32 b, type e, int num))

Definition at line 131 of file VM_Math.h.

#define VM_DECL_uIvI ( name,
expr   ) 

Value:

static inline int32 name##SISD(const int32 *a, int num) { \
                            int32       d = 0; \
                            for (int n=0; n < num; n++) expr; \
                            return d; \
                        } \
    VM_SIMDFUNCR(static int32   name##SIMD(const int32 *a, int num)) \
    static inline int32 name(const int32 *a, int num) { \
                            return theSIMD ? name##SIMD(a, num) : \
                                             name##SISD(a, num); \
                        } \

Definition at line 153 of file VM_Math.h.

#define VM_DECL_vFuF ( name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, fpreal32 a, int num) { \
        if (theSIMD)    name##SIMD(d, a, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, fpreal32 a, int num))

Definition at line 81 of file VM_Math.h.

#define VM_DECL_vFuFuF ( name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, fpreal32 a, \
                                fpreal32 b, int num) { \
        if (theSIMD)    name##SIMD(d, a, b, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, fpreal32 a, fpreal32 b, int num))

Definition at line 66 of file VM_Math.h.

#define VM_DECL_vFuFvF ( name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, fpreal32 a, \
                                const fpreal32 *b, int num) { \
        if (theSIMD)    name##SIMD(d, a, b, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, fpreal32 a, const fpreal32 *b, int num))

Definition at line 58 of file VM_Math.h.

#define VM_DECL_vFvF ( name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, const fpreal32 *a, int num) { \
        if (theSIMD)    name##SIMD(d, a, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, const fpreal32 *a, int num))

Definition at line 74 of file VM_Math.h.

#define VM_DECL_vFvFuF ( name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, const fpreal32 *a, \
                                fpreal32 b, int num) { \
        if (theSIMD)    name##SIMD(d, a, b, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, const fpreal32 *a, fpreal32 b, int num))

Definition at line 50 of file VM_Math.h.

#define VM_DECL_vFvFvF ( name,
expr   ) 

Value:

VM_SIV      name(fpreal32 *d, const fpreal32 *a, \
                                const fpreal32 *b, int num) { \
        if (theSIMD)    name##SIMD(d, a, b, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(fpreal32 *d, const fpreal32 *a, const fpreal32 *b, int num))

Definition at line 42 of file VM_Math.h.

#define VM_DECL_vIvF ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, const fpreal32 *a, int num) { \
        if (theSIMD)    name##SIMD(d, a, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, const fpreal32 *a, int num))

Definition at line 88 of file VM_Math.h.

#define VM_DECL_vIvF_nonconst ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, fpreal32 *a, int num) { \
        if (theSIMD)    name##SIMD(d, a, num); \
        else            for (int n=0; n<num; n++) expr; \
    } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, fpreal32 *a, int num))

Definition at line 95 of file VM_Math.h.

#define VM_DECL_vIvFuF ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, const fpreal32 *a, fpreal32 b, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, const fpreal32 *a, fpreal32 b, int num))

Definition at line 116 of file VM_Math.h.

#define VM_DECL_vIvFvF ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, const fpreal32 *a, const fpreal32 *b, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, const fpreal32 *a, const fpreal32 *b, int num))

Definition at line 102 of file VM_Math.h.

#define VM_DECL_vIvIuI ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, const int32 *a, int32 b, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, const int32 *a, int32 b, int num))

Definition at line 146 of file VM_Math.h.

#define VM_DECL_vIvIvI ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, const int32 *a, const int32 *b, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, const int32 *a, const int32 *b, int num))

Definition at line 139 of file VM_Math.h.

#define VM_DECL_vIvVFvF ( name,
expr   ) 

Value:

VM_SIV      name(int32 *d, fpreal32 *a, const fpreal32 *b, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(int32 *d, fpreal32 *a, const fpreal32 *b, int num))

Definition at line 109 of file VM_Math.h.

#define VM_DECL_WP ( type,
name,
expr   ) 

Value:

VM_SIV      name(type *d, const fpreal32 *a, fpreal32 b, \
                                     fpreal32 c, fpreal32 e, int num) { \
                    if (theSIMD) name##SIMD(d, a, b, c, e, num); \
                    else        for (int n=0; n<num; n++) expr; \
                } \
    VM_SIMDFUNC(static void     name##SIMD(type *d, const fpreal32 *a, fpreal32 b, fpreal32 c, fpreal32 e, int num))

Definition at line 123 of file VM_Math.h.

#define VM_SIMDFUNC ( signature   )     signature {}

Definition at line 38 of file VM_Math.h.

#define VM_SIMDFUNCR ( signature   )     signature { return 0; }

Definition at line 39 of file VM_Math.h.

#define VM_SIV   static inline void

Definition at line 29 of file VM_Math.h.


Generated on Thu May 24 00:09:05 2012 for HDK by  doxygen 1.5.9