BigIntegerAggregation
Usage
use CommAggregation.BigIntegerAggregation;
or
import CommAggregation.BigIntegerAggregation;
- proc bigint.serializedSize()
- proc bigint.serializeInto(x: c_ptr(uint(8)))
- proc ref bigint.deserializeFrom(x: c_ptr(uint(8)))
- record DstAggregatorBigint
- type aggType = uint(8)
- const bufferSize = dstBuffSize * (c_sizeof(c_ptr(bigint)) + c_sizeof(mp_size_t) + c_sizeof(mp_limb_t)): int
- const myLocaleSpace = 0..<numLocales
- var lastLocale : int
- var opsUntilYield = yieldFrequency
- var lBuffers : c_ptr(c_ptr(aggType))
- var rBuffers : [myLocaleSpace] remoteBuffer(aggType)
- var bufferIdxs : c_ptr(int)
- proc ref postinit()
- proc ref deinit()
- proc ref flush()
- proc ref copy(ref dst: bigint, const ref src: bigint)
- proc ref flushBuffer(loc: int, ref bufferIdx, freeData)
- record SrcAggregatorBigint
- type aggType = c_ptr(bigint)
- const bufferSize = srcBuffSize
- const uintBufferSize = srcBuffSize * (c_sizeof(mp_size_t) + c_sizeof(mp_limb_t)): int
- const myLocaleSpace = 0..<numLocales
- var lastLocale : int
- var opsUntilYield = yieldFrequency
- var dstAddrs : c_ptr(c_ptr(aggType))
- var lSrcAddrs : c_ptr(c_ptr(aggType))
- var lSrcVals : [myLocaleSpace] [0..#uintBufferSize] uint(8)
- var rSrcAddrs : [myLocaleSpace] remoteBuffer(aggType)
- var rSrcVals : [myLocaleSpace] remoteBuffer(uint(8))
- var bufferIdxs : c_ptr(int)
- proc ref postinit()
- proc ref deinit()
- proc ref flush()
- proc ref copy(ref dst: bigint, const ref src: bigint)
- proc ref flushBuffer(loc: int, ref bufferIdx, freeData)