gemv (small) (Linear Algebra)


Import

#include <archr/algebra/small_gemv.h>
#include <archr/algebra/small_gemv.hpp>

Synopsis

 void archr_algebra_gemv_row_f32(float *c, const float *A, const float *b, float beta, size_t N);
(1)
 void archr_algebra_gemv_row_f64(double *c, const double *A, const double *b, double beta, size_t N);
(2)
 void archr_algebra_gemv_row3_f32(float *c, const float *A, const float *b, float beta);
(3)
 void archr_algebra_gemv_row3_f64(double *c, const double *A, const double *b, double beta);
(4)
 void archr_algebra_gemv_row4_f32(float *c, const float *A, const float *b, float beta);
(5)
 void archr_algebra_gemv_row4_f64(double *c, const double *A, const double *b, double beta);
(6)
 void archr_algebra_gemv_row5_f32(float *c, const float *A, const float *b, float beta);
(7)
 void archr_algebra_gemv_row5_f64(double *c, const double *A, const double *b, double beta);
(8)
 void archr_algebra_gemv_col_f32(float *c, const float *A, const float *b, float beta, size_t N);
(9)
 void archr_algebra_gemv_col_f64(double *c, const double *A, const double *b, double beta, size_t N);
(10)
 void archr_algebra_gemv_col3_f32(float *c, const float *A, const float *b, float beta);
(11)
 void archr_algebra_gemv_col3_f64(double *c, const double *A, const double *b, double beta);
(12)
 void archr_algebra_gemv_col4_f32(float *c, const float *A, const float *b, float beta);
(13)
 void archr_algebra_gemv_col4_f64(double *c, const double *A, const double *b, double beta);
(14)
 void archr_algebra_gemv_col5_f32(float *c, const float *A, const float *b, float beta);
(15)
 void archr_algebra_gemv_col5_f64(double *c, const double *A, const double *b, double beta);
(16)
 void gemv_row(const float *A, const float *b, float *c, float beta, size_t N);
(1)
 void gemv_row(const double *A, const double *b, double *c, double beta, size_t N);
(2)
 void gemv_row3(const float *A, const float *b, float *c, float beta);
(3)
 void gemv_row3(const double *A, const double *b, double *c, double beta);
(4)
 void gemv_row4(const float *A, const float *b, float *c, float beta);
(5)
 void gemv_row4(const double *A, const double *b, double *c, double beta);
(6)
 void gemv_row5(const float *A, const float *b, float *c, float beta);
(7)
 void gemv_row5(const double *A, const double *b, double *c, double beta);
(8)
 void gemv_col(const float *A, const float *b, float *c, float beta, size_t N);
(9)
 void gemv_col(const double *A, const double *b, double *c, double beta, size_t N);
(10)
 void gemv_col3(const float *A, const float *b, float *c, float beta);
(11)
 void gemv_col3(const double *A, const double *b, double *c, double beta);
(12)
 void gemv_col4(const float *A, const float *b, float *c, float beta);
(13)
 void gemv_col4(const double *A, const double *b, double *c, double beta);
(14)
 void gemv_col5(const float *A, const float *b, float *c, float beta);
(15)
 void gemv_col5(const double *A, const double *b, double *c, double beta);
(16)
subroutine archr_algebra_gemv_row_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta, integer(4) :: N)
(1)
subroutine archr_algebra_gemv_row_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta, integer(4) :: N)
(2)
subroutine archr_algebra_gemv_row3_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta)
(3)
subroutine archr_algebra_gemv_row3_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta)
(4)
subroutine archr_algebra_gemv_row4_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta)
(5)
subroutine archr_algebra_gemv_row4_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta)
(6)
subroutine archr_algebra_gemv_row5_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta)
(7)
subroutine archr_algebra_gemv_row5_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta)
(8)
subroutine archr_algebra_gemv_col_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta, integer(4) :: N)
(9)
subroutine archr_algebra_gemv_col_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta, integer(4) :: N)
(10)
subroutine archr_algebra_gemv_col3_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta)
(11)
subroutine archr_algebra_gemv_col3_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta)
(12)
subroutine archr_algebra_gemv_col4_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta)
(13)
subroutine archr_algebra_gemv_col4_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta)
(14)
subroutine archr_algebra_gemv_col5_f32(real(4), dimension(*), parameter :: A, real(4), dimension(*), parameter :: b, real(4), dimension(*) :: c, real(4) :: beta)
(15)
subroutine archr_algebra_gemv_col5_f64(real(8), dimension(*), parameter :: A, real(8), dimension(*), parameter :: b, real(8), dimension(*) :: c, real(8) :: beta)
(16)

Description

Highly optimized GEMV for small matrices (c = beta c + A b) for sizes 3, 4 and 5

Parameters

A

Input matrix

b

Input vector

c

Output vector

beta

Scale