fmax¶
Computes the element-wise maximum of each pair of vector a elements and vector b elements.
Description¶
The fmax(a,b) function returns a vector with element values equal to
the larger value from each pair of corresponding elements of the two
vectors a and b: if a < b fmax(a,b) returns b,
otherwise fmax(a,b) returns a.
Argument 1  | 
Argument 2  | 
Result  | 
Error Code  | 
|---|---|---|---|
  | 
NAN  | 
  | 
|
NAN  | 
  | 
  | 
|
NAN  | 
NAN  | 
NAN  | 
The fmax(a,b) function does not generate any errors.
API¶
Syntax¶
Buffer API
namespace oneapi::mkl::vm {
sycl::event fmax(sycl::queue & exec_queue,
      std::int64_t n,
      sycl::buffer<T> & a,
      sycl::buffer<T> & b,
      sycl::buffer<T> & y,
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined);
}
namespace oneapi::mkl::vm {
sycl::event fmax(sycl::queue & exec_queue,
      sycl::buffer<T> & a,
      oneapi::mkl::slice sa,
      sycl::buffer<T> & b,
      oneapi::mkl::slice sb,
      sycl::buffer<T> & y,
      oneapi::mkl::slice sy,
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined);
}
USM API
namespace oneapi::mkl::vm {
sycl::event fmax(sycl::queue & exec_queue,
      std::int64_t n,
      T const * a,
      T const * b,
      T * y,
      std::vector<cl::sycl::event> const & depends = {},
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined);
}
namespace oneapi::mkl::vm {
sycl::event fmax(sycl::queue & exec_queue,
      T const * a,
      oneapi::mkl::slice sa,
      T const * b,
      oneapi::mkl::slice sb,
      T * y,
      oneapi::mkl::slice sy,
      std::vector<cl::sycl::event> const & depends = {},
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined);
}
fmax supports the following precisions and devices:
T  | 
Devices supported  | 
|---|---|
  | 
Host, CPU, and GPU  | 
  | 
Host, CPU, and GPU  | 
Input Parameters¶
Buffer API
- exec_queue
 The queue where the routine should be executed.
- n
 Specifies the number of elements to be calculated.
- a
 The buffer containing the 1st input vector.
- sa
 Slice selector for
a. See Data Types for a description of the oneMKL slice type.- b
 The buffer containing the 2nd input vector.
- sb
 Slice selector for
b. See Data Types for a description of the oneMKL slice type.- sy
 Slice selector for
y. See Data Types for a description of the oneMKL slice type.- mode
 Overrides the global VM mode setting for this function call. See set_mode function for possible values and their description. This is an optional parameter. The default value is
mode::not_defined.
USM API
- exec_queue
 The queue where the routine should be executed.
- n
 Specifies the number of elements to be calculated.
- a
 Pointer to the 1st input vector.
- sa
 Slice selector for
a. See Data Types for a description of the oneMKL slice type.- b
 Pointer to the 2nd input vector.
- sb
 Slice selector for
b. See Data Types for a description of the oneMKL slice type.- sy
 Slice selector for
y. See Data Types for a description of the oneMKL slice type.- depends
 Vector of dependent events (to wait for input data to be ready). This is an optional parameter. The default is an empty vector.
- mode
 Overrides the global VM mode setting for this function call. See the set_mode function for possible values and their description. This is an optional parameter. The default value is
mode::not_defined.
Output Parameters¶
Buffer API
- y
 The buffer containing the output vector.
- return value (event)
 Computation end event.
USM API
- y
 Pointer to the output vector.
- return value (event)
 Computation end event.
Examples¶
An example of how to use fmax can be found in the oneMKL
installation directory, under:
examples/dpcpp/vml/source/vfmax.cpp