mxnet
Namespaces | Macros | Functions
half.h File Reference

definition of half (float16) type. More...

#include "./base.h"
#include <x86intrin.h>
Include dependency graph for half.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 mshadow
 overloaded + operator between half_t and bf16_t
 
 mshadow::half
 

Macros

#define MSHADOW_CUDA_HALF   0
 
#define MSHADOW_HALF_OPERATOR(RTYPE, OP)
 
#define MSHADOW_HALF_ASSIGNOP(AOP, OP)
 
#define MSHADOW_HALF_CONVERSIONOP(T)
 
#define MSHADOW_HALF_MIN   mshadow::half::half_t::Binary(0xFBFF);
 overloaded + operator for half_t More...
 
#define MSHADOW_HALF_MAX   mshadow::half::half_t::Binary(0x7BFF);
 
#define MSHADOW_HALF_SIGN_BIT   0x8000
 
#define MSHADOW_HALF_EXPONENT_BITS   0x7c00
 

Functions

class mshadow::half::MSHADOW_ALIGNED (2) half_t
 

Detailed Description

definition of half (float16) type.

Copyright (c) 2015 by Contributors

Author
Junyuan Xie

Macro Definition Documentation

#define MSHADOW_CUDA_HALF   0
#define MSHADOW_HALF_ASSIGNOP (   AOP,
  OP 
)
Value:
template<typename T> \
MSHADOW_XINLINE half_t operator AOP (const T& a) { \
return *this = half_t(float(*this) OP float(a)); /* NOLINT(*)*/ \
} \
template<typename T> \
MSHADOW_XINLINE half_t operator AOP (const volatile T& a) volatile { \
return *this = half_t(float(*this) OP float(a)); /* NOLINT(*)*/ \
}
#define MSHADOW_XINLINE
Definition: base.h:223
#define MSHADOW_HALF_CONVERSIONOP (   T)
Value:
MSHADOW_XINLINE operator T() const { \
return T(_cvtsh_ss(half_)); /* NOLINT(*)*/ \
} \
MSHADOW_XINLINE operator T() const volatile { \
return T(_cvtsh_ss(half_)); /* NOLINT(*)*/ \
}
#define MSHADOW_XINLINE
Definition: base.h:223
#define MSHADOW_HALF_EXPONENT_BITS   0x7c00
#define MSHADOW_HALF_MAX   mshadow::half::half_t::Binary(0x7BFF);
#define MSHADOW_HALF_MIN   mshadow::half::half_t::Binary(0xFBFF);

overloaded + operator for half_t

overloaded - operator for half_t

overloaded * operator for half_t

overloaded / operator for half_t

overloaded > operator for half_t

overloaded < operator for half_t

overloaded >= operator for half_t

overloaded <= operator for half_t

#define MSHADOW_HALF_OPERATOR (   RTYPE,
  OP 
)
Value:
MSHADOW_XINLINE RTYPE operator OP (half_t a, half_t b) { \
return RTYPE(float(a) OP float(b)); /* NOLINT(*) */ \
} \
template<typename T> \
MSHADOW_XINLINE RTYPE operator OP (half_t a, T b) { \
return RTYPE(float(a) OP float(b)); /* NOLINT(*) */ \
} \
template<typename T> \
MSHADOW_XINLINE RTYPE operator OP (T a, half_t b) { \
return RTYPE(float(a) OP float(b)); /* NOLINT(*) */ \
}
#define MSHADOW_XINLINE
Definition: base.h:223
#define MSHADOW_HALF_SIGN_BIT   0x8000