Matrix multiplication: Difference between revisions
→{{header|Go}}: added library based solution
m (→{{header|REXX}}: fixed up a comment. -- ~~~~) |
(→{{header|Go}}: added library based solution) |
||
Line 1,120:
<lang go>package main
import
"fmt"▼
)▼
type Value float64
Line 1,174 ⟶ 1,172:
fmt.Printf("Product of A and B:\n%s\n\n", P)
}</lang>
{{out}}
<pre>
Matrix A:
Line 1,285 ⟶ 1,283:
}</lang>
Output is similar to 2D version.
===Library===
<lang go>package main
import (
▲ "fmt"
mat "github.com/skelterjohn/go.matrix"
▲)
func main() {
a := mat.MakeDenseMatrixStacked([][]float64{
{1, 1, 1, 1},
{2, 4, 8, 16},
{3, 9, 27, 81},
{4, 16, 64, 256},
})
b := mat.MakeDenseMatrixStacked([][]float64{
{
4,
-3,
4. / 3,
-1. / 4,
},
{
-13. / 3,
19. / 4,
-7. / 3,
11. / 24,
},
{
3. / 2,
-2,
7. / 6,
-1. / 4,
},
{
-1. / 6,
1. / 4,
-1. / 6,
1. / 24,
},
})
p, err := a.TimesDense(b)
fmt.Printf("Matrix A:\n%v\n", a)
fmt.Printf("Matrix B:\n%v\n", b)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("Product of A and B:\n%v\n", p)
}</lang>
{{out}}
<pre>
Matrix A:
{ 1, 1, 1, 1,
2, 4, 8, 16,
3, 9, 27, 81,
4, 16, 64, 256}
Matrix B:
{ 4, -3, 1.333333, -0.25,
-4.333333, 4.75, -2.333333, 0.458333,
1.5, -2, 1.166667, -0.25,
-0.166667, 0.25, -0.166667, 0.041667}
Product of A and B:
{ 1, 0, -0, -0,
0, 1, -0, -0,
0, 0, 1, 0,
0, 0, 0, 1}
</pre>
=={{header|Groovy}}==
|