8 Nov
2013
8 Nov
'13
1:59 p.m.
Is there a nicer way to pass python long ints (bigint) into C efficiently? I'm currently cutting the value up into 64 bit chunks in python and passing in as an unsigned long*: cdef("int bigInt(int n, unsigned long* x);") x = sum(1 << i for i in [100,200,123]) xs = [] while x > 0: xs.append(x & ((1 << 64) - 1)) x >>= 64 print lib.bigInt(len(xs), xs) but this is quite slow, and it seems like this data must already be lurking somewhere in exactly the right form. njh