Developer Reference

Contents

Example of Using Pseudorandom Number Generation Functions

Find Pseudorandom Co-primes
void FindCoPrimes(void){ int size;   // define Pseudo Random Generator (default settings) ippsPRNGGetSize(&size); IppsPRNGState* pPrng = (IppsPRNGState*)(new Ipp8u [size] ); ippsPRNGInit(160, pPrng);   // define 256-bits Big Numbers X and Y const int bnBitSize = 256; IppsBigNumState* bnX = New_BN(bnBitSize/32); IppsBigNumState* bnY = New_BN(bnBitSize/32);   // define temporary Big Numbers GCD and 1 IppsBigNumState* bnGCD = New_BN(bnBitSize/32); Ipp32u one = 1; IppsBigNumState* bnOne = New_BN(1, &one);     // generate pseudo random X and Y // while GCD(X,Y) != 1 Ipp32u result; int counter; for(counter=0,result=1; result; counter++) { ippsPRNGen_BN(bnX, bnBitSize, pPrng); ippsPRNGen_BN(bnY, bnBitSize, pPrng); ippsGcd_BN(bnX, bnY, bnGCD); ippsCmp_BN(bnGCD, bnOne, &result); }   cout <<"Coprimes:" <<endl; Type_BN("X: ", bnX); cout <<endl; Type_BN("Y: ", bnY); cout <<endl; cout <<"were fond on " <<counter <<" attempt" <<endl;   delete [] (Ipp8u*)pPrng; delete [] (Ipp8u*)bnX; delete [] (Ipp8u*)bnY; delete [] (Ipp8u*)bnGCD; delete [] (Ipp8u*)bnOne; }

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.