message: Move inline function implementation to the end of the header
  This improves header readability.
diff: # define MESHOPTIMIZER_API
  #endif
  +// Interface
  namespace meshopt
  {
  @@ -106,6 +107,26 @@ MESHOPTIMIZER_API VertexFetchStatistics analyzeVertexFetch(const unsigned int* i
  // Quantize a float in [0..1] range into an N-bit fixed point unorm value
  // Assumes reconstruction function (q / (2^N-1)), which is the case for fixed-function normalized fixed point conversion
  // Maximum reconstruction error: 1/2^(N+1)
  +template <int N> inline int quantizeUnorm(float v);
  +
  +// Quantize a float in [-1..1] range into an N-bit fixed point snorm value
  +// Assumes reconstruction function (q / (2^(N-1)-1)), which is the case for fixed-function normalized fixed point conversion (except OpenGL)
  +// Maximum reconstruction error: 1/2^N
  +// Warning: OpenGL fixed function reconstruction function can't represent 0 exactly; when using OpenGL, use this function and have the shader reconstruct by dividing by 2^(N-1)-1.
  +template <int N> inline int quantizeSnorm(float v);
  +
  +// Quantize a float into half-precision floating point value
  +// Generates +-inf for overflow, preserves NaN, flushes denormals to zero, rounds to nearest
  +// Representable magnitude range: [6e-5; 65504]
  +// Maximum relative reconstruction error: 5e-4
  +inline unsigned short quantizeHalf(float v);
  +
  +} // namespace meshopt
  +
  +// Inline implementation
  +namespace meshopt
  +{
  +
  template <int N> inline int quantizeUnorm(float v)
  {
  const float scale = float((1 << N) - 1);
  @@ -116,10 +137,6 @@ template <int N> inline int quantizeUnorm(float v)
  return int(v * scale + 0.5f);
  }
  -// Quantize a float in [-1..1] range into an N-bit fixed point snorm value
  -// Assumes reconstruction function (q / (2^(N-1)-1)), which is the case for fixed-function normalized fixed point conversion (except OpenGL)
  -// Maximum reconstruction error: 1/2^N
  -// Warning: OpenGL fixed function reconstruction function can't represent 0 exactly; when using OpenGL, use this function and have the shader reconstruct by dividing by 2^(N-1)-1.
  template <int N> inline int quantizeSnorm(float v)
  {
  const float scale = float((1 << (N - 1)) - 1);
  @@ -132,10 +149,6 @@ template <int N> inline int quantizeSnorm(float v)
  return int(v * scale + round);
  }
  -// Quantize a float into half-precision floating point value
  -// Generates +-inf for overflow, preserves NaN, flushes denormals to zero, rounds to nearest
  -// Representable magnitude range: [6e-5; 65504]
  -// Maximum relative reconstruction error: 5e-4
  inline unsigned short quantizeHalf(float v)
  {
  union { float f; unsigned int ui; } u = {v};
  