Repository

openblas-wrapper-v

V Wrapper for OpenBLAS

V Project: https://github.com/vlang/v

OpenBLAS Project: https://github.com/xianyi/OpenBLAS

Compile and install OpenBLAS library on your platform. The guidance is available in "thirdparty/README.md".

Install:

v install amoyyy.openblas

Demo:

import amoyyy.openblas
import math.complex as mcp
fn main(){
    // dgemm
    a := [1.0,3.0,1.0,-3.0,4.0,-1.0]                // m * k Matrix
    b := [1.0,4.0,1.0,-3.0,4.0,-1.0]                // k * n Matrix
    c := [0.5,0.5,0.5,1.5,0.5,2.5,0.5,0.5,0.5]      // m * n Matrix 
    m := 3                                          // row of A and C
    n := 3                                          // col of B and C
    k := 2                                          // col of A and row of B
    
    alpha := 1.0
    beta := 0.0
    
    openblas.dgemm(openblas.ORDER.row_major, openblas.TRANSPOSE.no_trans, openblas.TRANSPOSE.no_trans, m, n, k, alpha, a, k, b, n, beta, c, n)
    println(c)

    // ddot
    res := openblas.ddot(6, a, 1, b, 1)
    println(res)
    
    // zdscal, only `z` method (for double Complex) is supported in builtin v language.
    mut e := [mcp.complex(1,2), mcp.complex(3,4), mcp.complex(5,6)]
    println(e)
    openblas.zdscal(3, 10.0, e ,1)
    println(e)
}

About

0
92
1 year ago

Author

amoyyy