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)