OpenVDB 12.1.1
Loading...
Searching...
No Matches
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

namespace  openvdb
namespace  openvdb::v12_1
namespace  openvdb::v12_1::math
namespace  openvdb::v12_1::math::internal
namespace  std

Macros

#define IMATH_HALF_NO_LOOKUP_TABLE
#define VDBB_HALF_DENORM_MIN   5.96046448e-08
 Smallest positive denormalized half.
#define VDB_HALF_NRM_MIN   6.10351562e-05
 Smallest positive normalized half.
#define VDB_HALF_MIN   6.10351562e-05f
 Smallest positive normalized half.
#define VDB_HALF_MAX   65504.0
 Largest positive half.
#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_DIG   3
#define VDB_HALF_DECIMAL_DIG   5
#define VDB_HALF_RADIX   2
 Base of the exponent.
#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_1::math::internal::imath_half_uif imath_half_uif_t
 a type for both C-only programs and C++ to use the same utilities
typedef uint16_t imath_half_bits_t
 a type for both C-only programs and C++ to use the same utilities
typedef imath_half_bits_t half
 if we're in a C-only context, alias the half bits type to half

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.
OPENVDB_API std::istream & operator>> (std::istream &is, half &h)
 Input h from is.

Macro Definition Documentation

◆ IMATH_HALF_NO_LOOKUP_TABLE

#define IMATH_HALF_NO_LOOKUP_TABLE

◆ VDB_HALF_DECIMAL_DIG

#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

◆ VDB_HALF_DIG

#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

◆ VDB_HALF_EPSILON

#define VDB_HALF_EPSILON   0.00097656

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

◆ VDB_HALF_MANT_DIG

#define VDB_HALF_MANT_DIG   11

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

◆ VDB_HALF_MAX

#define VDB_HALF_MAX   65504.0

Largest positive half.

◆ VDB_HALF_MAX_10_EXP

#define VDB_HALF_MAX_10_EXP   4

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

◆ VDB_HALF_MAX_EXP

#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

◆ VDB_HALF_MIN

#define VDB_HALF_MIN   6.10351562e-05f

Smallest positive normalized half.

◆ VDB_HALF_NRM_MIN

#define VDB_HALF_NRM_MIN   6.10351562e-05

Smallest positive normalized half.

◆ VDB_HALF_RADIX

#define VDB_HALF_RADIX   2

Base of the exponent.

◆ VDBB_HALF_DENORM_MIN

#define VDBB_HALF_DENORM_MIN   5.96046448e-08

Smallest positive denormalized half.

◆ VDBB_HALF_DENORM_MIN_10_EXP

#define VDBB_HALF_DENORM_MIN_10_EXP   -4

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

◆ VDBB_HALF_DENORM_MIN_EXP

#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