Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?copy_batch
Computes a group of vector copies.
Syntax
call scopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)
call dcopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)
call ccopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)
call zcopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)
Include Files
mkl.fi
Description
The ?copy_batchcblas_?copy_batch routines perform a series of vector copies. They are similar to their ?copycblas_?copy routine counterparts, but the ?copy_batchcblas_?copy_batch routines perform vector operations with a group of vectors. Each group contains vectors with the same parameters (size, increment), while those parameters may vary between groups.
The operation is defined as follows:
idx = 0
for i = 0 … group_count – 1
n, incx, incy and group_size at position i in n_array, incx_array, incy_array and group_size_array
for j = 0 … group_size – 1
x and y are vectors of size n at position idx in x_array and y_array
y := x
idx := idx + 1
end for
end for
The number of entries in x_array and y_array is total_batch_count , which is the sum of all the group_size entries.
Input Parameters
- n_array
-
INTEGER. Array of size group_count . For the group i , ni = n_array[i] is the number of elements in vectors x and y .
- x_array
-
INTEGER*8 for Intel® 64 architecture Array of size total_batch_count of pointers used to store x vectors. The array allocated for the x vectors of the group i must be of size at least (1 + ( ni – 1)*abs( incxi )).
- incx_array
-
INTEGER. Array of size group_count . For the group i , incxi = incx_array[i] is the distance between consecutive entries in a vector x .
- y_array
-
INTEGER*8 for Intel® 64 architecture Array of size total_batch_count of pointers used to store the output vectors y . The array allocated for the y vectors of the group i must be of size at least (1 + ( ni – 1)*abs( incyi )).
- incy_array
-
INTEGER. Array of size group_count . For the group i , incyi = incy_array[i] is the distance between consecutive entries in a vector y .
- group_count
-
INTEGER. Number of groups. Must be at least 0.
- group_size_array
-
INTEGER. Array of size group_count . The element group_size_array[i] is the number of vectors in the group i . Each element in group_size_array must be at least 0.
Output Parameters
- y_array
-
Array of pointers holding the total_batch_count copied vectors y .