F64CblasKernels
The level-1 CBLAS routines from the OpenBLAS instance shared with F64Cblas.
Constructors
F64CblasKernels
Properties
config
Policy for this level-1 backend instance.
isAvailable
Whether this backend can do work on this host. koblas's own implementations always can, so the default is true; a binding reports whether the library it calls resolved.
Each half answers for itself, since a host can provide CBLAS without LAPACKE, or OpenBLAS without UMFPACK. Registration does not consult this: koblas registers its UMFPACK binding on a bare library lookup and lets the binding fall back per call, so a registered backend may still report false here. Read it to report what a host offers, or before installing one explicitly.
minDispatchLength
The run length from which this backend replaces the compiled-in kernels, or null for the platform default.
name
priority
Relative preference among the backends offered for one half (F64Blas, F64Decompositions, F64Kernels or a sparse counterpart). registerBackend picks the highest; the portable reference is 0.
Functions
asum
axpy
Adds alpha * x(xOff + i) into y(yOff + i) over the first len entries.
dot
Sum of a(aOff + i) * b(bOff + i) over the first len entries; 0 for an empty run.
nrm2
scale
swap
Exchange the two runs (BLAS dswap). Two loads and two stores an element, so an implementation is bound by memory rather than by issue rate; the default is the plain loop for that reason.
Four dots against a shared right operand. For r in 0..3, out(outOff + r) is the dot of the run at aOff + r * stride with the run at bOff. Defaults to four dot calls, so an implementation that can read the shared operand once for all four should override it.
Adds mult * a(k) into y and returns the dot of the same run with x, in one pass. A symmetric product needs both halves of every column, and one pass reads the column once rather than twice.
Four symvColumn runs at aOff + r * stride, their dots landing in out(r). Defaults to four calls, so an implementation that can read x and y once for all four should override it.