Пример #1
0
 /// <summary>
 /// Normal randomly-distributed N-dimensional array elements.
 /// </summary>
 /// <param name="dimensions">int array or single int paramters specifying 
 /// dimensions for new array to be created.</param>
 /// <returns>N-dimensional array filled with random numbers.</returns>
 /// <remarks>The elements lie within the range 0.0 ... 1.0 and are choosen to be normally 
 /// distributed.</remarks>
 public static ILArray<double> randn(params int[] dimensions) {
     ILDimension dim; 
     if (dimensions.Length == 1) 
         dim = new ILDimension(dimensions[0],dimensions[0]);
     else 
         dim = new ILDimension(dimensions);
     if (m_nrandomGenerator == null)
         m_nrandomGenerator = new ILNRandom(Environment.TickCount); 
     double[] data = ILMemoryPool.Pool.New<double>(dim.NumberOfElements);
     unsafe {
         fixed (double* pRetArray = data) {
             double* pCurIdx = pRetArray;
             double* pLastElement = pCurIdx + dim.NumberOfElements;
             while (pCurIdx < pLastElement)
                 *pCurIdx++ = m_nrandomGenerator.NextDouble();
         }
     }
     return new ILArray<double>(data, dim);
 }
Пример #2
0
 /// <summary>
 /// Set seed to both rand and randn functions
 /// </summary>
 /// <param name="seed">Any ole' number will do</param>
 public static void setseed(int seed)
 {
     m_nrandomGenerator = new ILNRandom(seed);
     m_randomGenerator = new Random(seed);
 }