ggml_solve_tri function
- @Native<Pointer<
ggml_tensor> Function(Pointer<ggml_context> , Pointer<ggml_tensor> , Pointer<ggml_tensor> , Bool, Bool, Bool)>(ffi.Pointer<ggml_context>, ffi.Pointer<ggml_tensor>, ffi.Pointer<ggml_tensor>, ffi.Bool, ffi.Bool, ffi.Bool)>()
- Pointer<
ggml_context> ctx, - Pointer<
ggml_tensor> a, - Pointer<
ggml_tensor> b, - bool left,
- bool lower,
- bool uni,
Solves a specific equation of the form Ax=B, where A is a triangular matrix
without zeroes on the diagonal (i.e. invertible).
B can have any number of columns, but must have the same number of rows as A
If A is n, n and B is n, m, then the result will be n, m as well
Has O(n^3) complexity (unlike most matrix ops out there), so use on cases
where n > 100 sparingly, pre-chunk if necessary.
If left = false, solves xA=B instead If lower = false, assumes upper triangular instead If uni = true, assumes diagonal of A to be all ones (will override actual values)
TODO: currently only lower, right, non-unitriangular variant is implemented
Implementation
@ffi.Native<
ffi.Pointer<ggml_tensor> Function(
ffi.Pointer<ggml_context>,
ffi.Pointer<ggml_tensor>,
ffi.Pointer<ggml_tensor>,
ffi.Bool,
ffi.Bool,
ffi.Bool,
)
>()
external ffi.Pointer<ggml_tensor> ggml_solve_tri(
ffi.Pointer<ggml_context> ctx,
ffi.Pointer<ggml_tensor> a,
ffi.Pointer<ggml_tensor> b,
bool left,
bool lower,
bool uni,
);