/// <summary> /// Return a batch of items. /// </summary> /// <param name="random">Specifies the random number generator.</param> /// <param name="nCount">Specifies the number of items to sample.</param> /// <param name="dfBeta">Not used.</param> /// <returns>The array of items is returned.</returns> public MemoryCollection GetSamples(CryptoRandom random, int nCount, double dfBeta) { if (m_rgWts == null || m_rgWts.Length != nCount) { m_rgWts = new double[nCount]; for (int i = 0; i < m_rgWts.Length; i++) { m_rgWts[i] = 1.0; } } if (m_rgIdx == null || m_rgIdx.Length != nCount) { m_rgIdx = new int[nCount]; } MemoryCollection mem = new MemoryCollection(nCount); if (m_bPreLoaded) { for (int i = 0; i < nCount; i++) { mem.Add(m_mem[m_nSampleIdx]); m_nSampleIdx++; if (m_nSampleIdx == m_mem.Count) { m_nSampleIdx = 0; } } } else { mem = m_mem.GetRandomSamples(random, nCount); } mem.Indexes = m_rgIdx; mem.Priorities = m_rgWts; return(mem); }
/// <summary> /// Return a batch of items. /// </summary> /// <param name="random">Specifies the random number generator.</param> /// <param name="nCount">Specifies the number of items to sample.</param> /// <param name="dfBeta">Not used.</param> /// <returns>The random array of items is returned.</returns> public MemoryCollection GetSamples(CryptoRandom random, int nCount, double dfBeta) { if (m_rgWts == null || m_rgWts.Length != nCount) { m_rgWts = new double[nCount]; for (int i = 0; i < m_rgWts.Length; i++) { m_rgWts[i] = 1.0; } } if (m_rgIdx == null || m_rgIdx.Length != nCount) { m_rgIdx = new int[nCount]; } MemoryCollection mem = m_mem.GetRandomSamples(random, nCount); mem.Indexes = m_rgIdx; mem.Priorities = m_rgWts; return(mem); }