Trait zenu_matrix::blas::Blas

source ·
pub trait Blas<T: Num> {
    // Required methods
    fn swap(n: usize, x: *mut T, incx: usize, y: *mut T, incy: usize);
    fn scal(n: usize, alpha: T, x: *mut T, incx: usize);
    fn axpy(
        n: usize,
        alpha: T,
        x: *const T,
        incx: usize,
        y: *mut T,
        incy: usize
    );
    fn copy(n: usize, x: *const T, incx: usize, y: *mut T, incy: usize);
    fn dot(n: usize, x: *const T, incx: usize, y: *const T, incy: usize) -> T;
    fn norm2(n: usize, x: *mut T, incx: usize) -> T;
    fn asum(n: usize, x: *const T, incx: usize) -> T;
    fn amax(n: usize, x: *const T, incx: usize) -> usize;
    fn gemv(
        layout: BlasLayout,
        trans: BlasTrans,
        m: usize,
        n: usize,
        alpha: T,
        a: *const T,
        lda: usize,
        x: *const T,
        incx: usize,
        beta: T,
        y: *mut T,
        incy: usize
    );
    fn ger(
        layout: BlasLayout,
        m: usize,
        n: usize,
        alpha: T,
        x: *mut T,
        incx: usize,
        y: *mut T,
        incy: usize,
        a: *mut T,
        lda: usize
    );
    fn gemm(
        layout: BlasLayout,
        transa: BlasTrans,
        transb: BlasTrans,
        m: usize,
        n: usize,
        k: usize,
        alpha: T,
        a: *const T,
        lda: usize,
        b: *const T,
        ldb: usize,
        beta: T,
        c: *mut T,
        ldc: usize
    );
}

Required Methods§

source

fn swap(n: usize, x: *mut T, incx: usize, y: *mut T, incy: usize)

source

fn scal(n: usize, alpha: T, x: *mut T, incx: usize)

x = alpha * x

source

fn axpy(n: usize, alpha: T, x: *const T, incx: usize, y: *mut T, incy: usize)

source

fn copy(n: usize, x: *const T, incx: usize, y: *mut T, incy: usize)

source

fn dot(n: usize, x: *const T, incx: usize, y: *const T, incy: usize) -> T

source

fn norm2(n: usize, x: *mut T, incx: usize) -> T

source

fn asum(n: usize, x: *const T, incx: usize) -> T

source

fn amax(n: usize, x: *const T, incx: usize) -> usize

source

fn gemv( layout: BlasLayout, trans: BlasTrans, m: usize, n: usize, alpha: T, a: *const T, lda: usize, x: *const T, incx: usize, beta: T, y: *mut T, incy: usize )

source

fn ger( layout: BlasLayout, m: usize, n: usize, alpha: T, x: *mut T, incx: usize, y: *mut T, incy: usize, a: *mut T, lda: usize )

source

fn gemm( layout: BlasLayout, transa: BlasTrans, transb: BlasTrans, m: usize, n: usize, k: usize, alpha: T, a: *const T, lda: usize, b: *const T, ldb: usize, beta: T, c: *mut T, ldc: usize )

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<N: Num> Blas<N> for CpuBlas<N>