|
|
uint j = 1; | uint j = 1; |
| |
// Multiply and add | // Multiply and add |
for (; j < m.length; j++) { |
for (; j < m.length && j < A.length; j++) { |
c += (ulong)u_i * (ulong)*(mP++) + *(aSP++); | c += (ulong)u_i * (ulong)*(mP++) + *(aSP++); |
*(aDP++) = (uint)c; | *(aDP++) = (uint)c; |
c >>= 32; | c >>= 32; |
|
|
uint j = 1; | uint j = 1; |
| |
// Multiply and add | // Multiply and add |
for (; j < m.length; j++) { |
for (; j < m.length && j < A.length; j++) { |
c += (ulong)u_i * (ulong)*(mP++) + *(aSP++); | c += (ulong)u_i * (ulong)*(mP++) + *(aSP++); |
*(aDP++) = (uint)c; | *(aDP++) = (uint)c; |
c >>= 32; | c >>= 32; |