master
parent
778fe2cde0
commit
ce26d5bc5c
|
@ -345,10 +345,15 @@ fn (mut g Gen) gen_array_map(node ast.CallExpr) {
|
||||||
}
|
}
|
||||||
left_type := if node.left_type.has_flag(.shared_f) {
|
left_type := if node.left_type.has_flag(.shared_f) {
|
||||||
node.left_type.clear_flag(.shared_f).deref()
|
node.left_type.clear_flag(.shared_f).deref()
|
||||||
|
} else if node.left_type.is_ptr() {
|
||||||
|
node.left_type.deref()
|
||||||
} else {
|
} else {
|
||||||
node.left_type
|
node.left_type
|
||||||
}
|
}
|
||||||
g.write('${g.typ(left_type)} ${tmp}_orig = ')
|
g.write('${g.typ(left_type)} ${tmp}_orig = ')
|
||||||
|
if !node.left_type.has_flag(.shared_f) && node.left_type.is_ptr() {
|
||||||
|
g.write('*')
|
||||||
|
}
|
||||||
g.expr(node.left)
|
g.expr(node.left)
|
||||||
if node.left_type.has_flag(.shared_f) {
|
if node.left_type.has_flag(.shared_f) {
|
||||||
g.write('->val')
|
g.write('->val')
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[1, 0, 0]
|
||||||
|
[0, 1, 0]
|
||||||
|
[0, 0, 1]
|
|
@ -0,0 +1,18 @@
|
||||||
|
fn (mut a [][]f32) str() string {
|
||||||
|
return a.map(it.str()).join('\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn identity(n int) [][]f32 {
|
||||||
|
mut res := [][]f32{len: n, init: []f32{len: n, init: 0.0}}
|
||||||
|
for i in 0 .. n {
|
||||||
|
res[i][i] = 1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
a := identity(3)
|
||||||
|
|
||||||
|
println(a)
|
||||||
|
}
|
Loading…
Reference in New Issue