void encode_negative_integer_64()

in src/detail/encode_integer.cpp [75:102]


void encode_negative_integer_64(encode_context &context, int64_t value) {
  #define ENCODE(bits, digits) do { \
    using type = int_fast ## bits ## _t; \
    return negative<type, digits>::encode(context, type(value)); \
  } while (false)
  #define CUTOFF(bits, digits, cutoff) if (value > cutoff ## LL) ENCODE(bits, digits);
  CUTOFF(32,  1, -10);
  CUTOFF(32,  2, -100);
  CUTOFF(32,  3, -1000);
  CUTOFF(32,  4, -10000);
  CUTOFF(32,  5, -100000);
  CUTOFF(32,  6, -1000000);
  CUTOFF(32,  7, -10000000);
  CUTOFF(32,  8, -100000000);
  CUTOFF(32,  9, -1000000000);
  CUTOFF(64, 10, -10000000000);
  CUTOFF(64, 11, -100000000000);
  CUTOFF(64, 12, -1000000000000);
  CUTOFF(64, 13, -10000000000000);
  CUTOFF(64, 14, -100000000000000);
  CUTOFF(64, 15, -1000000000000000);
  CUTOFF(64, 16, -10000000000000000);
  CUTOFF(64, 17, -100000000000000000);
  CUTOFF(64, 18, -1000000000000000000);
  ENCODE(64, 19);
  #undef CUTOFF
  #undef ENCODE
}