亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

元素矩陣運算 Google Go?

元素矩陣運算 Google Go?

Go
肥皂起泡泡 2021-06-04 18:46:10
我想知道是否有一個包可以在 Go 中提供高效的逐元素矩陣運算?類似于 GSL 的東西?
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

通過 cgo 調用例如 cblas 很容易:


package main


// #include <cblas.h>

// #cgo LDFLAGS: -L/usr/lib64/atlas -lcblas

import "C"


import "fmt"


type matrix struct {

    rows  int

    cols  int

    elems []float32

}


func (a matrix) cblasmul(b matrix) (c matrix) {

    c = matrix{a.rows, b.cols, make([]float32, a.rows*b.cols)}

    C.cblas_sgemm(

        C.CblasRowMajor, C.CblasNoTrans, C.CblasNoTrans,

        C.int(a.rows), C.int(b.cols), C.int(a.cols),

        1.0,

        (*C.float)(&a.elems[0]), C.int(a.cols),

        (*C.float)(&b.elems[0]), C.int(b.cols),

        0.0,

        (*C.float)(&c.elems[0]), C.int(c.cols))


    return c

}


func main() {

    a := matrix{100, 100, make([]float32, 100*100)}

    b := matrix{100, 100, make([]float32, 100*100)}

    // ...

    c := a.cblasmul(b)

    fmt.Println(c)

}


查看完整回答
反對 回復 2021-06-07
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

GSL 有各種 cgo 綁定,甚至還有一些對純 Go 端口的嘗試。似乎還沒有多少人認可(就明星而言)并且已經有幾個月沒有活動了,但您可能想看看代碼:

http://godoc.org/?q=gsl


查看完整回答
反對 回復 2021-06-07
  • 2 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號