OpenVDB  12.0.0
Classes | Namespaces | Macros | Typedefs | Functions
Half.h File Reference
#include <openvdb/Platform.h>
#include <openvdb/version.h>
#include <iostream>
#include <stdint.h>
#include <stdio.h>
#include <limits>

Go to the source code of this file.

Classes

union  imath_half_uif
 a type for both C-only programs and C++ to use the same utilities More...
 
class  half
 
class  numeric_limits< openvdb::math::internal::half >
 

Namespaces

 openvdb
 
 openvdb::v12_0
 
 openvdb::v12_0::math
 
 openvdb::v12_0::math::internal
 
 std
 

Macros

#define IMATH_HALF_NO_LOOKUP_TABLE
 
#define VDBB_HALF_DENORM_MIN   5.96046448e-08
 Smallest positive denormalized half. More...
 
#define VDB_HALF_NRM_MIN   6.10351562e-05
 Smallest positive normalized half. More...
 
#define VDB_HALF_MIN   6.10351562e-05f
 Smallest positive normalized half. More...
 
#define VDB_HALF_MAX   65504.0
 Largest positive half. More...
 
#define VDB_HALF_EPSILON   0.00097656
 Smallest positive e for which half(1.0 + e) != half(1.0) More...
 
#define VDB_HALF_MANT_DIG   11
 Number of digits in mantissa (significand + hidden leading 1) More...
 
#define VDB_HALF_DIG   3
 
#define VDB_HALF_DECIMAL_DIG   5
 
#define VDB_HALF_RADIX   2
 Base of the exponent. More...
 
#define VDBB_HALF_DENORM_MIN_EXP   -13
 
#define VDB_HALF_MAX_EXP   16
 
#define VDBB_HALF_DENORM_MIN_10_EXP   -4
 
#define VDB_HALF_MAX_10_EXP   4
 

Typedefs

typedef union openvdb::v12_0::math::internal::imath_half_uif imath_half_uif_t
 a type for both C-only programs and C++ to use the same utilities More...
 
typedef uint16_t imath_half_bits_t
 a type for both C-only programs and C++ to use the same utilities More...
 
typedef imath_half_bits_t half
 if we're in a C-only context, alias the half bits type to half More...
 

Functions

static float imath_half_to_float (imath_half_bits_t h)
 
static imath_half_bits_t imath_float_to_half (float f)
 
OPENVDB_API void printBits (std::ostream &os, half h)
 
OPENVDB_API void printBits (std::ostream &os, float f)
 
OPENVDB_API void printBits (char c[19], half h)
 
OPENVDB_API void printBits (char c[35], float f)
 
OPENVDB_API std::ostream & operator<< (std::ostream &os, half h)
 Output h to os, formatted as a float. More...
 
OPENVDB_API std::istream & operator>> (std::istream &is, half &h)
 Input h from is. More...
 

Macro Definition Documentation

#define IMATH_HALF_NO_LOOKUP_TABLE
#define VDB_HALF_DECIMAL_DIG   5

Number of base-10 digits that are necessary to uniquely represent all distinct values:

ceil(HALF_MANT_DIG * log10(2) + 1) => 4.31... -> 5

#define VDB_HALF_DIG   3

Number of base 10 digits that can be represented without change:

floor( (HALF_MANT_DIG - 1) * log10(2) ) => 3.01... -> 3

#define VDB_HALF_EPSILON   0.00097656

Smallest positive e for which half(1.0 + e) != half(1.0)

#define VDB_HALF_MANT_DIG   11

Number of digits in mantissa (significand + hidden leading 1)

#define VDB_HALF_MAX   65504.0

Largest positive half.

#define VDB_HALF_MAX_10_EXP   4

Maximum positive integer such that 10 raised to that power is a normalized half

#define VDB_HALF_MAX_EXP   16

Maximum positive integer such that HALF_RADIX raised to the power of one less than that integer is a normalized half

#define VDB_HALF_MIN   6.10351562e-05f

Smallest positive normalized half.

#define VDB_HALF_NRM_MIN   6.10351562e-05

Smallest positive normalized half.

#define VDB_HALF_RADIX   2

Base of the exponent.

#define VDBB_HALF_DENORM_MIN   5.96046448e-08

Smallest positive denormalized half.

#define VDBB_HALF_DENORM_MIN_10_EXP   -4

Minimum positive integer such that 10 raised to that power is a normalized half

#define VDBB_HALF_DENORM_MIN_EXP   -13

Minimum negative integer such that HALF_RADIX raised to the power of one less than that integer is a normalized half