Lines Matching refs:cUsed

68         Assert(   (a_pBigNum)->cUsed == (a_pBigNum)->cAllocated \
69 || ASMMemIsAllU32(&(a_pBigNum)->pauElements[(a_pBigNum)->cUsed], \
70 ((a_pBigNum)->cAllocated - (a_pBigNum)->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL); \
84 * For calculating the rtBigNumEnsureExtraZeroElements argument from cUsed.
120 RTBIGNUMELEMENT const *pauSubtrahend, uint32_t cUsed);
122 uint32_t cUsed);
123 DECLASM(RTBIGNUMELEMENT) rtBigNumMagnitudeShiftLeftOneAssemblyWorker(RTBIGNUMELEMENT *pauElements, uint32_t cUsed,
353 if (iElement < pBigNum->cUsed)
364 * @param cNewUsed The new cUsed value.
385 if (pBigNum->cUsed > cNewUsed)
386 RT_BZERO((RTBIGNUMELEMENT *)pvNew + cNewUsed, (pBigNum->cUsed - cNewUsed) * RTBIGNUM_ELEMENT_SIZE);
389 pBigNum->cUsed = cNewUsed;
400 * Changes the cUsed member, growing the pauElements array if necessary.
406 * @param cNewUsed The new cUsed value.
412 if (pBigNum->cUsed > cNewUsed)
413 RT_BZERO(&pBigNum->pauElements[cNewUsed], (pBigNum->cUsed - cNewUsed) * RTBIGNUM_ELEMENT_SIZE);
415 else if (pBigNum->cUsed != cNewUsed)
416 Assert(ASMMemIsAllU32(&pBigNum->pauElements[pBigNum->cUsed],
417 (cNewUsed - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL);
419 pBigNum->cUsed = cNewUsed;
432 * @param cNewUsed The new cUsed value.
442 if (pBigNum->cUsed > cNewUsed)
443 RT_BZERO(&pBigNum->pauElements[cNewUsed], (pBigNum->cUsed - cNewUsed) * RTBIGNUM_ELEMENT_SIZE);
445 else if (pBigNum->cUsed != cNewUsed)
446 Assert(ASMMemIsAllU32(&pBigNum->pauElements[pBigNum->cUsed],
447 (cNewUsed - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL);
449 pBigNum->cUsed = cNewUsed;
463 * array array, where those after pBigNum->cUsed must
470 Assert( pBigNum->cAllocated == pBigNum->cUsed
471 || ASMMemIsAllU32(&pBigNum->pauElements[pBigNum->cUsed],
472 (pBigNum->cAllocated - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE, 0) == NULL);
475 return rtBigNumGrow(pBigNum, pBigNum->cUsed, cElements);
489 uint32_t const cOldUsed = pBigNum->cUsed;
516 if (iElement < pBigNum->cUsed)
529 uint32_t i = pBigNum->cUsed;
532 pBigNum->cUsed = i;
639 pBigNum->cUsed = (uint32_t)cbAligned / RTBIGNUM_ELEMENT_SIZE;
640 if (pBigNum->cUsed)
642 pBigNum->cAllocated = RT_ALIGN_32(pBigNum->cUsed, RTBIGNUM_ALIGNMENT);
733 for (i = 1; i < pBigNum->cUsed; i++)
740 if (pBigNum->cUsed != pBigNum->cAllocated)
742 RTBIGNUMELEMENT *puUnused = &pBigNum->pauElements[pBigNum->cUsed];
744 switch (pBigNum->cAllocated - pBigNum->cUsed)
789 pBigNum->cUsed = pSrc->cUsed;
790 if (pSrc->cUsed)
793 pBigNum->cAllocated = RT_ALIGN_32(pBigNum->cUsed, RTBIGNUM_ALIGNMENT);
800 memcpy(pBigNum->pauElements, pSrc->pauElements, pBigNum->cUsed * RTBIGNUM_ELEMENT_SIZE);
801 if (pBigNum->cUsed != pBigNum->cAllocated)
802 RT_BZERO(&pBigNum->pauElements[pBigNum->cUsed], (pBigNum->cAllocated - pBigNum->cUsed) * RTBIGNUM_ELEMENT_SIZE);
863 if (pDst->cAllocated >= pSrc->cUsed)
865 if (pDst->cUsed > pSrc->cUsed)
866 RT_BZERO(&pDst->pauElements[pSrc->cUsed], (pDst->cUsed - pSrc->cUsed) * RTBIGNUM_ELEMENT_SIZE);
867 pDst->cUsed = pSrc->cUsed;
869 memcpy(pDst->pauElements, pSrc->pauElements, pSrc->cUsed * RTBIGNUM_ELEMENT_SIZE);
873 rc = rtBigNumGrow(pDst, pSrc->cUsed, pSrc->cUsed);
877 memcpy(pDst->pauElements, pSrc->pauElements, pSrc->cUsed * RTBIGNUM_ELEMENT_SIZE);
902 uint32_t idxLast = pBigNum->cUsed;
915 uint32_t idxLast = pBigNum->cUsed;
945 if (pBigNum->cUsed != 0)
949 for (uint32_t i = 0; i < pBigNum->cUsed; i++)
989 if ( i + 1 < pBigNum->cUsed
1022 if (pLeft->cUsed == pRight->cUsed)
1025 uint32_t i = pLeft->cUsed;
1037 ? pLeft->cUsed < pRight->cUsed ? -1 : 1
1038 : pLeft->cUsed < pRight->cUsed ? 1 : -1;
1059 if (pLeft->cUsed * RTBIGNUM_ELEMENT_SIZE <= sizeof(uRight))
1061 if (pLeft->cUsed == 0)
1108 if (pLeft->cUsed * RTBIGNUM_ELEMENT_SIZE <= sizeof(iRight))
1159 uint32_t i = pLeft->cUsed;
1160 if (i == pRight->cUsed)
1171 rc = i < pRight->cUsed ? -1 : 1;
1188 int rc = rtBigNumSetUsed(pDst, pSrc->cUsed);
1190 memcpy(pDst->pauElements, pSrc->pauElements, pSrc->cUsed * RTBIGNUM_ELEMENT_SIZE);
1212 uint32_t cElements = RT_MAX(pAugend->cUsed, pAddend->cUsed);
1231 Assert(pResult->cUsed == cElements || RT_FAILURE_NP(rc));
1255 Assert(pMinuend->cUsed >= pSubtrahend->cUsed);
1258 if (pSubtrahend->cUsed)
1265 rc = rtBigNumSetUsedEx(pResult, pMinuend->cUsed, RTBIGNUM_ZERO_ALIGN(pMinuend->cUsed));
1268 rc = rtBigNumEnsureExtraZeroElements((PRTBIGNUM)pMinuend, RTBIGNUM_ZERO_ALIGN(pMinuend->cUsed));
1270 rc = rtBigNumEnsureExtraZeroElements((PRTBIGNUM)pSubtrahend, RTBIGNUM_ZERO_ALIGN(pMinuend->cUsed));
1279 pSubtrahend->pauElements, pMinuend->cUsed);
1282 for (uint32_t i = 0; i < pMinuend->cUsed; i++)
1293 for (uint32_t i = 0; i < pMinuend->cUsed; i++)
1332 Assert(pMinuendResult->cUsed >= pSubtrahend->cUsed);
1338 int rc = rtBigNumEnsureExtraZeroElements(pMinuendResult, RTBIGNUM_ZERO_ALIGN(pMinuendResult->cUsed));
1340 rc = rtBigNumEnsureExtraZeroElements((PRTBIGNUM)pSubtrahend, RTBIGNUM_ZERO_ALIGN(pMinuendResult->cUsed));
1343 rtBigNumMagnitudeSubThisAssemblyWorker(pMinuendResult->pauElements, pSubtrahend->pauElements, pMinuendResult->cUsed);
1349 for (uint32_t i = 0; i < pMinuendResult->cUsed; i++)
1404 if (!pResult->cUsed)
1521 if (!pMultiplicand->cUsed || !pMultiplier->cUsed)
1532 uint32_t cMax = pMultiplicand->cUsed + pMultiplier->cUsed;
1536 RT_BZERO(pResult->pauElements, pResult->cUsed * RTBIGNUM_ELEMENT_SIZE);
1540 pMultiplier->pauElements, pMultiplier->cUsed,
1541 pMultiplicand->pauElements, pMultiplicand->cUsed);
1543 for (uint32_t i = 0; i < pMultiplier->cUsed; i++)
1546 for (uint32_t j = 0; j < pMultiplicand->cUsed; j++)
1630 if (iElement < pBigNum->cUsed)
1634 if (iElement + 1 == pBigNum->cUsed && !pBigNum->pauElements[iElement])
1694 if (iElement < pBigNum->cUsed)
1717 uint32_t cUsed = pBigNum->cUsed;
1719 uCarry = rtBigNumMagnitudeShiftLeftOneAssemblyWorker(pBigNum->pauElements, cUsed, uCarry);
1721 for (uint32_t i = 0; i < cUsed; i++)
1732 int rc = rtBigNumSetUsed(pBigNum, cUsed + 1);
1733 pBigNum->pauElements[cUsed] = uCarry;
1766 uint32_t const cLeft = pValue->cUsed;
1785 pauDst[pValue->cUsed] = uPrev;
1861 RTBIGNUMELEMENT uPrev = &pauSrc[i] == &pValue->pauElements[pValue->cUsed] ? 0 : pauSrc[i];
1898 if (!pResult->cUsed)
2118 Assert(pDivisor->cUsed > 1);
2119 uint32_t const cDivisor = pDivisor->cUsed;
2120 Assert(pDividend->cUsed >= cDivisor);
2129 rc = rtBigNumSetUsedEx(pQuotient, 0, pDividend->cUsed - cDivisor + 1);
2131 rc = rtBigNumSetUsed(pQuotient, pDividend->cUsed - cDivisor + 1);
2139 * we can access element pDividend->cUsed of the normalized dividend.
2159 if (RT_SUCCESS(rc) && pDividend->cUsed == NormDividend.cUsed)
2160 rc = rtBigNumEnsureExtraZeroElements(&NormDividend, NormDividend.cUsed + 1);
2167 uint32_t j = pDividend->cUsed - cDivisor;
2293 if (!pDivisor->cUsed || !pDividend->cUsed)
2294 return pDivisor->cUsed ? VINF_SUCCESS : VERR_BIGNUM_DIV_BY_ZERO;
2299 if (pDivisor->cUsed == 1 && pDivisor->pauElements[0] == 1)
2325 if (pDividend->cUsed <= 2 && !fForceLong)
2327 if (pDividend->cUsed < 2)
2354 if (pDivisor->cUsed == 1)
2372 else if (pDivisor->cUsed < 2 || fForceLong)
2417 if (pQuotient->cUsed == 0)
2419 if (pRemainder->cUsed == 0)
2473 if (!pDivisor->cUsed || !pDividend->cUsed)
2474 return pDivisor->cUsed ? VINF_SUCCESS : VERR_BIGNUM_DIV_BY_ZERO;
2479 if (pDivisor->cUsed == 1 && pDivisor->pauElements[0] == 1)
2498 if (pDivisor->cUsed < 2)
2560 if (pRemainder->cUsed == 0)
2595 if (pExponent->cUsed == 0)
2604 if (pExponent->cUsed == 1 && pExponent->pauElements[0] == 1)
2721 if (pModulus->cUsed == 0)
2725 if (pModulus->cUsed == 1 && pModulus->pauElements[0] == 1)
2732 if (pExponent->cUsed == 0)
2741 if (pExponent->cUsed == 1 && pExponent->pauElements[0] == 1)
2748 rc = rtBigNumSetUsed(pResult, pModulus->cUsed + 1);
2757 if (pBase->cUsed <= pModulus->cUsed + pModulus->cUsed / 2)