mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Fix typos in package linalg; Fix norm_float64 in package rand
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package linalg
|
package linalg
|
||||||
|
|
||||||
import "core:math"
|
import "core:math"
|
||||||
|
import "intrinsics"
|
||||||
|
|
||||||
// Generic
|
// Generic
|
||||||
|
|
||||||
@@ -78,9 +79,11 @@ transpose :: proc(a: $T/[$N][$M]$E) -> (m: ((M == N) ? T : [M][N]E)) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mul_matrix :: proc(a: $A/[$I][$J]$E, b: $B/[J][$K]E) -> (c: ((I == J && J == K && A == B) ? A : [I][K]E)) {
|
mul_matrix :: proc(a: $A/[$I][$J]$E, b: $B/[J][$K]E) -> (c: ((I == J && J == K && A == B) ? A : [I][K]E))
|
||||||
|
where !intrinsics.type_is_array(E),
|
||||||
|
intrinsics.type_is_numeric(E) {
|
||||||
for i in 0..<I {
|
for i in 0..<I {
|
||||||
for K in 0..<K {
|
for k in 0..<K {
|
||||||
for j in 0..<J {
|
for j in 0..<J {
|
||||||
c[i][k] += a[i][j] * b[j][k];
|
c[i][k] += a[i][j] * b[j][k];
|
||||||
}
|
}
|
||||||
@@ -89,7 +92,9 @@ mul_matrix :: proc(a: $A/[$I][$J]$E, b: $B/[J][$K]E) -> (c: ((I == J && J == K &
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mul_matrix_vector :: proc(a: $A/[$I][$J]$E, b: $B/[I]E) -> (c: B) {
|
mul_matrix_vector :: proc(a: $A/[$I][$J]$E, b: $B/[I]E) -> (c: B)
|
||||||
|
where !intrinsics.type_is_array(E),
|
||||||
|
intrinsics.type_is_numeric(E) {
|
||||||
for i in 0..<I {
|
for i in 0..<I {
|
||||||
for j in 0..<J {
|
for j in 0..<J {
|
||||||
c[i] += a[i][j] * b[i];
|
c[i] += a[i][j] * b[i];
|
||||||
|
|||||||
@@ -128,8 +128,8 @@ norm_float64 :: proc(r: ^Rand = global_rand_ptr) -> f64 {
|
|||||||
|
|
||||||
if i == 0 {
|
if i == 0 {
|
||||||
for {
|
for {
|
||||||
x = -math.log(float64(r)) * (1.0/ rn);
|
x = -math.ln(float64(r)) * (1.0/ rn);
|
||||||
y := -math.log(float64(r));
|
y := -math.ln(float64(r));
|
||||||
if y+y >= x*x {
|
if y+y >= x*x {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user