code: public static void __gmpz_import(mpz_t rop, int count, int order, int size, int endian, int nails,
        Pointer buffer) {
      if (SIZE_T_CLASS == SizeT4.class) {
        SizeT4.__gmpz_import(rop, count, order, size, endian, nails, buffer);
      } else {
        SizeT8.__gmpz_import(rop, count, order, size, endian, nails, buffer);
      }
    }
docs: Set rop from an array of word data at op.
  
  The parameters specify the format of the data. count many words are read, each size bytes.
  order can be 1 for most significant word first or -1 for least significant first. Within each
  word endian can be 1 for most significant byte first, -1 for least significant first, or 0 for
  the native endianness of the host CPU. The most significant nails bits of each word are
  skipped, this can be 0 to use the full words.
  
  There is no sign taken from the data, rop will simply be a positive integer. An application can
  handle any sign itself, and apply it for instance with mpz_neg.
  
  There are no data alignment restrictions on op, any address is allowed.
  
  Here's an example converting an array of unsigned long data, most significant element first,
  and host byte order within each value.
  
  <pre>{@code
  unsigned long  a[20];
  // Initialize z and a
  mpzImport (z, 20, 1, sizeof(a[0]), 0, 0, a);
  }</pre>
  
  This example assumes the full sizeof bytes are used for data in the given type, which is
  usually true, and certainly true for unsigned long everywhere we know of. However on Cray
  vector systems it may be noted that short and int are always stored in 8 bytes (and with sizeof
  indicating that) but use only 32 or 46 bits. The nails feature can account for this, by passing
  for instance 8*sizeof(int)-INT_BIT.