public unsafe override uint DivMod(
uint[] digits1,
uint[] digitsBuffer1,
ref uint length1,
uint[] digits2,
uint[] digitsBuffer2,
uint length2,
uint[] digitsRes,
DivModResultFlags resultFlags,
int cmpResult)
{
// Create some buffers if necessary
if (digitsBuffer1 == null)
{
digitsBuffer1 = new uint[length1 + 1];
}
if (digitsBuffer2 == null)
{
digitsBuffer2 = new uint[length2];
}
fixed (uint* digitsPtr1 = digits1, digitsBufferPtr1 = digitsBuffer1, digitsPtr2 = digits2, digitsBufferPtr2 = digitsBuffer2, digitsResPtr = digitsRes != null ? digitsRes : digits1)
{
return DivMod(
digitsPtr1,
digitsBufferPtr1,
ref length1,
digitsPtr2,
digitsBufferPtr2,
length2,
digitsResPtr == digitsPtr1 ? null : digitsResPtr,
resultFlags,
cmpResult);
}
}