scal#

Computes the product of a vector by a scalar.

Description

The scal routines computes a scalar-vector product:

\[x \leftarrow alpha*x\]

where:

x is a vector of n elements,

alpha is a scalar.

scal supports the following precisions.

T

Ts

half

half

bfloat16

bfloat16

float

float

double

double

std::complex<float>

std::complex<float>

std::complex<double>

std::complex<double>

std::complex<float>

float

std::complex<double>

double

scal (Buffer Version)#

Syntax

namespace oneapi::math::blas::column_major {
    void scal(sycl::queue &queue,
              std::int64_t n,
              Ts alpha,
              sycl::buffer<T,1> &x,
              std::int64_t incx)
}
namespace oneapi::math::blas::row_major {
    void scal(sycl::queue &queue,
              std::int64_t n,
              Ts alpha,
              sycl::buffer<T,1> &x,
              std::int64_t incx)
}

Input Parameters

queue

The queue where the routine should be executed.

n

Number of elements in vector x.

alpha

Specifies the scalar alpha.

x

Buffer holding input vector x. The buffer must be of size at least (1 + (n - 1)*abs(incx)). See Matrix Storage for more details.

incx

Stride of vector x.

Output Parameters

x

Buffer holding updated buffer x.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

oneapi::math::invalid_argument

oneapi::math::unsupported_device

oneapi::math::host_bad_alloc

oneapi::math::device_bad_alloc

oneapi::math::unimplemented

scal (USM Version)#

Syntax

namespace oneapi::math::blas::column_major {
    sycl::event scal(sycl::queue &queue,
                     std::int64_t n,
                     value_or_pointer<Ts> alpha,
                     T *x,
                     std::int64_t incx,
                     const std::vector<sycl::event> &dependencies = {})
}
namespace oneapi::math::blas::row_major {
    sycl::event scal(sycl::queue &queue,
                     std::int64_t n,
                     value_or_pointer<Ts> alpha,
                     T *x,
                     std::int64_t incx,
                     const std::vector<sycl::event> &dependencies = {})
}

Input Parameters

queue

The queue where the routine should be executed.

n

Number of elements in vector x.

alpha

Specifies the scalar alpha. See Scalar Arguments in BLAS for more details.

x

Pointer to the input vector x. The array must be of size at least (1 + (n - 1)*abs(incx)). See Matrix Storage for more details.

incx

Stride of vector x.

Output Parameters

x

Pointer to the updated array x.

Return Values

Output event to wait on to ensure computation is complete.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

oneapi::math::invalid_argument

oneapi::math::unsupported_device

oneapi::math::host_bad_alloc

oneapi::math::device_bad_alloc

oneapi::math::unimplemented

Parent topic: BLAS Level 1 Routines