shortcuts/regr/src/utils.go

40 lines
737 B
Go
Raw Normal View History

2024-10-01 01:58:32 +02:00
//go:build js && wasm
// +build js,wasm
package src
import (
"syscall/js"
"gonum.org/v1/gonum/mat"
)
func Array2DToDense(X [][]float64) *mat.Dense {
dense := mat.NewDense(len(X), len(X[0]), nil)
for i, row := range X {
dense.SetRow(i, row)
}
return dense
}
func JSFloatArray2D(arg js.Value) [][]float64 {
arr := make([][]float64, arg.Length())
for i := 0; i < len(arr); i++ {
arr[i] = make([]float64, arg.Index(i).Length())
}
for i := 0; i < len(arr); i++ {
for j := 0; j < arg.Index(i).Length(); j++ {
arr[i][j] = arg.Index(i).Index(j).Float()
}
}
return arr
}
func ToJSArray[T any](arr []T) []interface{} {
jsArr := make([]interface{}, len(arr))
for i, v := range arr {
jsArr[i] = v
}
return jsArr
}