Skip to content

Commit

Permalink
Make V fmt check pass again (vlang#121)
Browse files Browse the repository at this point in the history
* Make V fmt check pass again

* Updated CI

* Fix docs
  • Loading branch information
ulises-jeremias authored Nov 26, 2022
1 parent 4cb31a4 commit b1d4a2e
Show file tree
Hide file tree
Showing 23 changed files with 190 additions and 191 deletions.
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ on:

jobs:
shellcheck:
if: github.event_name == 'push'
name: Shellcheck
uses: ./.github/workflows/shellcheck.yml

Expand Down
2 changes: 1 addition & 1 deletion examples/opencl_vcl_basic/main_not_ci.v
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ defer {

// VCL has several kinds of device memory object: Bytes, Vector, Image (Soon)
// allocate buffer on the device (16 elems of f32).
mut v := device.vector<f32>(16)?
mut v := device.vector[f32](16)?
defer {
v.release() or { panic(err) }
}
Expand Down
50 changes: 25 additions & 25 deletions la/blas.v
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import vsl.vlas
import math

// TODO: @ulises-jeremias to remove this once https://github.com/vlang/v/issues/14047 is finished
fn arr_to_f64arr<T>(arr []T) []f64 {
fn arr_to_f64arr[T](arr []T) []f64 {
mut ret := []f64{cap: arr.len}
for v in arr {
ret << f64(v)
Expand All @@ -25,7 +25,7 @@ fn arr_to_f64arr<T>(arr []T) []f64 {
*
* scale[i] = a + m*|s[i]|
*/
pub fn vector_rms_error<T>(u []T, v []T, a T, m T, s []T) T {
pub fn vector_rms_error[T](u []T, v []T, a T, m T, s []T) T {
mut rms := T(0)
for i in 0 .. u.len {
scale := a + m * math.abs(s[i])
Expand All @@ -37,7 +37,7 @@ pub fn vector_rms_error<T>(u []T, v []T, a T, m T, s []T) T {

// vector_dot returns the dot product between two vectors:
// s := u・v
pub fn vector_dot<T>(u []T, v []T) T {
pub fn vector_dot[T](u []T, v []T) T {
$if T is f64 {
mut res := T(0)
cutoff := 150
Expand All @@ -47,7 +47,7 @@ pub fn vector_dot<T>(u []T, v []T) T {
}
return res
}
return vlas.ddot(u.len, arr_to_f64arr<T>(u), 1, arr_to_f64arr<T>(v), 1)
return vlas.ddot(u.len, arr_to_f64arr[T](u), 1, arr_to_f64arr[T](v), 1)
} $else {
mut res := T(0)
for i in 0 .. u.len {
Expand All @@ -59,7 +59,7 @@ pub fn vector_dot<T>(u []T, v []T) T {

// vector_add adds the scaled components of two vectors
// res := alpha⋅u + beta⋅v ⇒ result[i] := alpha⋅u[i] + beta⋅v[i]
pub fn vector_add<T>(alpha T, u []T, beta T, v []T) []T {
pub fn vector_add[T](alpha T, u []T, beta T, v []T) []T {
$if T is f64 {
mut res := []f64{len: v.len}
n := u.len
Expand Down Expand Up @@ -99,7 +99,7 @@ pub fn vector_add<T>(alpha T, u []T, beta T, v []T) []T {

// vector_max_diff returns the maximum absolute difference between two vectors
// maxdiff = max(|u - v|)
pub fn vector_max_diff<T>(u []T, v []T) T {
pub fn vector_max_diff[T](u []T, v []T) T {
mut maxdiff := math.abs(u[0] - v[0])
for i := 1; i < u.len; i++ {
diff := math.abs(u[i] - v[i])
Expand All @@ -112,7 +112,7 @@ pub fn vector_max_diff<T>(u []T, v []T) T {

// vector_scale_abs creates a "scale" vector using the absolute value of another vector
// scale := a + m ⋅ |x| ⇒ scale[i] := a + m ⋅ |x[i]|
pub fn vector_scale_abs<T>(a T, m T, x []T) []T {
pub fn vector_scale_abs[T](a T, m T, x []T) []T {
mut scale := []T{len: x.len}
for i in 0 .. x.len {
scale[i] = a + m * math.abs(x[i])
Expand All @@ -124,7 +124,7 @@ pub fn vector_scale_abs<T>(a T, m T, x []T) []T {
//
// v = alpha⋅a⋅u ⇒ vi = alpha * aij * uj
//
pub fn matrix_vector_mul<T>(alpha T, a &Matrix<T>, u []T) []T {
pub fn matrix_vector_mul[T](alpha T, a &Matrix[T], u []T) []T {
$if T is f64 {
mut v := []f64{len: a.m}
if a.m < 9 && a.n < 9 {
Expand All @@ -136,7 +136,7 @@ pub fn matrix_vector_mul<T>(alpha T, a &Matrix<T>, u []T) []T {
}
return v
}
vlas.dgemv(false, a.m, a.n, alpha, arr_to_f64arr<T>(a.data), a.m, arr_to_f64arr<T>(u),
vlas.dgemv(false, a.m, a.n, alpha, arr_to_f64arr[T](a.data), a.m, arr_to_f64arr[T](u),
1, 0.0, mut v, v.len)
return v
} $else {
Expand All @@ -155,7 +155,7 @@ pub fn matrix_vector_mul<T>(alpha T, a &Matrix<T>, u []T) []T {
//
// v = alpha⋅aᵀ⋅u ⇒ vi = alpha * aji * uj = alpha * uj * aji
//
pub fn matrix_tr_vector_mul<T>(alpha T, a &Matrix<T>, u []T) []T {
pub fn matrix_tr_vector_mul[T](alpha T, a &Matrix[T], u []T) []T {
$if T is f64 {
mut v := []f64{len: a.n}
if a.m < 9 && a.n < 9 {
Expand All @@ -167,7 +167,7 @@ pub fn matrix_tr_vector_mul<T>(alpha T, a &Matrix<T>, u []T) []T {
}
return v
}
vlas.dgemv(true, a.m, a.n, alpha, arr_to_f64arr<T>(a.data), a.n, arr_to_f64arr<T>(u),
vlas.dgemv(true, a.m, a.n, alpha, arr_to_f64arr[T](a.data), a.n, arr_to_f64arr[T](u),
1, 0.0, mut v, v.len)
return v
} $else {
Expand All @@ -187,9 +187,9 @@ pub fn matrix_tr_vector_mul<T>(alpha T, a &Matrix<T>, u []T) []T {
//
// a = alpha⋅u⋅vᵀ ⇒ aij = alpha * ui * vj
//
pub fn vector_vector_tr_mul<T>(alpha T, u []T, v []T) &Matrix<T> {
pub fn vector_vector_tr_mul[T](alpha T, u []T, v []T) &Matrix[T] {
$if T is f64 {
mut m := new_matrix<f64>(u.len, v.len)
mut m := new_matrix[f64](u.len, v.len)
if m.m < 9 && m.n < 9 {
for i in 0 .. m.m {
for j in 0 .. m.n {
Expand All @@ -199,11 +199,11 @@ pub fn vector_vector_tr_mul<T>(alpha T, u []T, v []T) &Matrix<T> {
return m
}
mut a := []f64{len: u.len * v.len}
vlas.dger(m.m, m.n, alpha, arr_to_f64arr<T>(u), 1, arr_to_f64arr<T>(v), 1, mut
vlas.dger(m.m, m.n, alpha, arr_to_f64arr[T](u), 1, arr_to_f64arr[T](v), 1, mut
a, int(math.max(m.m, m.n)))
return matrix_raw(u.len, v.len, a)
} $else {
mut m := new_matrix<T>(u.len, v.len)
mut m := new_matrix[T](u.len, v.len)

for i in 0 .. m.m {
for j in 0 .. m.n {
Expand All @@ -218,7 +218,7 @@ pub fn vector_vector_tr_mul<T>(alpha T, u []T, v []T) &Matrix<T> {
//
// v += alpha⋅a⋅u ⇒ vi += alpha * aij * uj
//
pub fn matrix_vector_mul_add(alpha f64, a &Matrix<f64>, u []f64) []f64 {
pub fn matrix_vector_mul_add(alpha f64, a &Matrix[f64], u []f64) []f64 {
mut v := []f64{len: a.m}
vlas.dgemv(false, a.m, a.n, alpha, a.data, a.m, u, 1, 1.0, mut v, v.len)
return v
Expand All @@ -228,7 +228,7 @@ pub fn matrix_vector_mul_add(alpha f64, a &Matrix<f64>, u []f64) []f64 {
//
// c := alpha⋅a⋅b ⇒ cij := alpha * aik * bkj
//
pub fn matrix_matrix_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_matrix_mul(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
if c.m < 6 && c.n < 6 && a.n < 30 {
for i in 0 .. c.m {
for j := 0; j < c.n; j++ {
Expand All @@ -248,7 +248,7 @@ pub fn matrix_matrix_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix
//
// c := alpha⋅aᵀ⋅b ⇒ cij := alpha * aki * bkj
//
pub fn matrix_tr_matrix_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_tr_matrix_mul(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
if c.m < 6 && c.n < 6 && a.m < 30 {
for i in 0 .. c.m {
for j := 0; j < c.n; j++ {
Expand All @@ -268,7 +268,7 @@ pub fn matrix_tr_matrix_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Mat
//
// c := alpha⋅a⋅bᵀ ⇒ cij := alpha * aik * bjk
//
pub fn matrix_matrix_tr_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_matrix_tr_mul(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
vlas.dgemm(false, true, a.m, b.m, a.n, alpha, a.data, a.n, b.data, b.m, 0.0, mut c.data,
c.m)
}
Expand All @@ -277,7 +277,7 @@ pub fn matrix_matrix_tr_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Mat
//
// c := alpha⋅aᵀ⋅bᵀ ⇒ cij := alpha * aki * bjk
//
pub fn matrix_tr_matrix_tr_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_tr_matrix_tr_mul(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
vlas.dgemm(true, true, a.n, b.m, a.m, alpha, a.data, a.n, b.data, b.m, 0.0, mut c.data,
c.m)
}
Expand All @@ -286,7 +286,7 @@ pub fn matrix_tr_matrix_tr_mul(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &
//
// c += alpha⋅a⋅b ⇒ cij += alpha * aik * bkj
//
pub fn matrix_matrix_muladd(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_matrix_muladd(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
vlas.dgemm(false, false, a.m, b.n, a.n, alpha, a.data, a.n, b.data, b.m, 1.0, mut
c.data, c.m)
}
Expand All @@ -295,7 +295,7 @@ pub fn matrix_matrix_muladd(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Mat
//
// c += alpha⋅aᵀ⋅b ⇒ cij += alpha * aki * bkj
//
pub fn matrix_tr_matrix_muladd(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_tr_matrix_muladd(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
vlas.dgemm(true, false, a.n, b.n, a.m, alpha, a.data, a.n, b.data, b.m, 1.0, mut c.data,
c.m)
}
Expand All @@ -304,7 +304,7 @@ pub fn matrix_tr_matrix_muladd(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &
//
// c += alpha⋅a⋅bᵀ ⇒ cij += alpha * aik * bjk
//
pub fn matrix_matrix_tr_muladd(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_matrix_tr_muladd(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
vlas.dgemm(false, true, a.m, b.m, a.n, alpha, a.data, a.n, b.data, b.m, 1.0, mut c.data,
c.m)
}
Expand All @@ -313,14 +313,14 @@ pub fn matrix_matrix_tr_muladd(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &
//
// c += alpha⋅aᵀ⋅bᵀ ⇒ cij += alpha * aki * bjk
//
pub fn matrix_tr_matrix_tr_mul_add(mut c Matrix<f64>, alpha f64, a &Matrix<f64>, b &Matrix<f64>) {
pub fn matrix_tr_matrix_tr_mul_add(mut c Matrix[f64], alpha f64, a &Matrix[f64], b &Matrix[f64]) {
vlas.dgemm(true, true, a.n, b.m, a.m, alpha, a.data, a.n, b.data, b.m, 1.0, mut c.data,
c.m)
}

// matrix_add adds the scaled components of two matrices
// res := alpha⋅a + beta⋅b ⇒ result[i][j] := alpha⋅a[i][j] + beta⋅b[i][j]
pub fn matrix_add(mut res Matrix<f64>, alpha f64, a &Matrix<f64>, beta f64, b &Matrix<f64>) {
pub fn matrix_add(mut res Matrix[f64], alpha f64, a &Matrix[f64], beta f64, b &Matrix[f64]) {
n := a.data.len // treating these matrices as vectors
cutoff := 150
if beta == 1 && n > cutoff {
Expand Down
4 changes: 2 additions & 2 deletions la/densesol.v
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import vsl.vlas
//
// Given: a ⋅ x = b find x such that x = a⁻¹ ⋅ b
//
pub fn den_solve(mut x []f64, a &Matrix<f64>, b []f64, preserve_a bool) {
pub fn den_solve(mut x []f64, a &Matrix[f64], b []f64, preserve_a bool) {
mut a_ := unsafe { a }
if preserve_a {
a_ = new_matrix<f64>(a.m, a.n)
a_ = new_matrix[f64](a.m, a.n)
a_.data = a.data.clone()
}
for i in 0 .. x.len {
Expand Down
Loading

0 comments on commit b1d4a2e

Please sign in to comment.