/// <summary> /// Computes a new sequence of batched values of length sequenceBatchLength, and /// writes the computed values to the given view. Afterwards, the target view will /// contain the following values: /// - [0, sequenceBatchLength - 1] = 0,, /// - [sequenceBatchLength, sequenceBatchLength * 2 -1] = 1, /// - ... /// </summary> /// <typeparam name="T">The element type.</typeparam> /// <typeparam name="TSequencer">The type of the sequencer to use.</typeparam> /// <param name="accelerator">The accelerator.</param> /// <param name="stream">The accelerator stream.</param> /// <param name="view">The target view.</param> /// <param name="sequenceBatchLength">The length of a single batch.</param> /// <param name="sequencer">The used sequencer.</param> public static void BatchedSequence <T, TSequencer>( this Accelerator accelerator, AcceleratorStream stream, ArrayView <T> view, LongIndex1D sequenceBatchLength, TSequencer sequencer) where T : unmanaged where TSequencer : struct, ISequencer <T> => accelerator.CreateBatchedSequencer <T, Stride1D.Dense, TSequencer>()( stream, view, sequenceBatchLength, sequencer);
/// <summary> /// Computes a new sequence of batched values of length sequenceBatchLength, and writes /// the computed values to the given view. Afterwards, the target view will contain the following values: /// - [0, sequenceBatchLength - 1] = 0,, /// - [sequenceBatchLength, sequenceBatchLength * 2 -1] = 1, /// - ... /// </summary> /// <typeparam name="T">The element type.</typeparam> /// <typeparam name="TSequencer">The type of the sequencer to use.</typeparam> /// <param name="accelerator">The accelerator.</param> /// <param name="stream">The accelerator stream.</param> /// <param name="view">The target view.</param> /// <param name="sequenceBatchLength">The length of a single batch.</param> /// <param name="sequencer">The used sequencer.</param> public static void BatchedSequence <T, TSequencer>( this Accelerator accelerator, AcceleratorStream stream, ArrayView <T> view, Index sequenceBatchLength, TSequencer sequencer) where T : struct where TSequencer : struct, ISequencer <T> { accelerator.CreateBatchedSequencer <T, TSequencer>()( stream, view, sequenceBatchLength, sequencer); }