numerics
Loading...
Searching...
No Matches
impl.hpp
Go to the documentation of this file.
1/// @file core/backends/seq/impl.hpp
2/// @brief Private declarations for the sequential backend.
3/// Only included by src/core/vector.cpp and src/core/matrix.cpp.
4#pragma once
5#include "core/vector.hpp"
6#include "core/matrix.hpp"
7
9
10void scale(Vector& v, real alpha);
11void add(const Vector& x, const Vector& y, Vector& z);
12void axpy(real alpha, const Vector& x, Vector& y);
13real dot(const Vector& x, const Vector& y);
14real norm(const Vector& x);
15
16void matmul(const Matrix& A, const Matrix& B, Matrix& C);
17void matmul_blocked(const Matrix& A, const Matrix& B, Matrix& C, idx block_size);
18void matmul_register_blocked(const Matrix& A, const Matrix& B, Matrix& C,
20void matvec(const Matrix& A, const Vector& x, Vector& y);
21void matadd(real alpha, const Matrix& A, real beta, const Matrix& B, Matrix& C);
22
23} // namespace num::backends::seq
Dense row-major matrix with optional GPU storage.
Definition matrix.hpp:12
Matrix operations.
void matmul_register_blocked(const Matrix &A, const Matrix &B, Matrix &C, idx block_size, idx reg_size)
Definition matrix.cpp:107
void matmul(const Matrix &A, const Matrix &B, Matrix &C)
Definition matrix.cpp:14
real dot(const Vector &x, const Vector &y)
Definition vector.cpp:21
void scale(Vector &v, real alpha)
Definition vector.cpp:9
real norm(const Vector &x)
Definition vector.cpp:27
void matvec(const Matrix &A, const Vector &x, Vector &y)
Definition matrix.cpp:24
void add(const Vector &x, const Vector &y, Vector &z)
Definition vector.cpp:13
void matmul_blocked(const Matrix &A, const Matrix &B, Matrix &C, idx block_size)
Definition matrix.cpp:73
void matadd(real alpha, const Matrix &A, real beta, const Matrix &B, Matrix &C)
Definition matrix.cpp:32
void axpy(real alpha, const Vector &x, Vector &y)
Definition vector.cpp:17
double real
Definition types.hpp:10
real beta(real a, real b)
B(a, b) – beta function.
Definition math.hpp:242
constexpr T ipow(T x) noexcept
Compute x^N at compile time via repeated squaring.
std::size_t idx
Definition types.hpp:11
Vector operations.