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)