Definition componentTypeIsFloatingPoint(t : componentTypeT): bool :=
  match t with
  | INTEGER_SIGNED_8 => false
  | INTEGER_SIGNED_8_VEC2 => false
  | INTEGER_SIGNED_8_VEC3 => false
  | INTEGER_SIGNED_8_VEC4 => false

  | INTEGER_UNSIGNED_8 => false
  | INTEGER_UNSIGNED_8_VEC2 => false
  | INTEGER_UNSIGNED_8_VEC3 => false
  | INTEGER_UNSIGNED_8_VEC4 => false

  | INTEGER_SIGNED_16 => false
  | INTEGER_SIGNED_16_VEC2 => false
  | INTEGER_SIGNED_16_VEC3 => false
  | INTEGER_SIGNED_16_VEC4 => false

  | INTEGER_UNSIGNED_16 => false
  | INTEGER_UNSIGNED_16_VEC2 => false
  | INTEGER_UNSIGNED_16_VEC3 => false
  | INTEGER_UNSIGNED_16_VEC4 => false

  | INTEGER_SIGNED_32 => false
  | INTEGER_SIGNED_32_VEC2 => false
  | INTEGER_SIGNED_32_VEC3 => false
  | INTEGER_SIGNED_32_VEC4 => false

  | INTEGER_UNSIGNED_32 => false
  | INTEGER_UNSIGNED_32_VEC2 => false
  | INTEGER_UNSIGNED_32_VEC3 => false
  | INTEGER_UNSIGNED_32_VEC4 => false

  | INTEGER_SIGNED_64 => false
  | INTEGER_SIGNED_64_VEC2 => false
  | INTEGER_SIGNED_64_VEC3 => false
  | INTEGER_SIGNED_64_VEC4 => false

  | INTEGER_UNSIGNED_64 => false
  | INTEGER_UNSIGNED_64_VEC2 => false
  | INTEGER_UNSIGNED_64_VEC3 => false
  | INTEGER_UNSIGNED_64_VEC4 => false

  | FLOAT_16 => true
  | FLOAT_16_VEC2 => true
  | FLOAT_16_VEC3 => true
  | FLOAT_16_VEC4 => true

  | FLOAT_32 => true
  | FLOAT_32_VEC2 => true
  | FLOAT_32_VEC3 => true
  | FLOAT_32_VEC4 => true

  | FLOAT_64 => true
  | FLOAT_64_VEC2 => true
  | FLOAT_64_VEC3 => true
  | FLOAT_64_VEC4 => true
  end.
