1 | initial version |

If `a`

is a vector:

```
sage: a = vector(QQ, [1,2,3,4]) ; a
(1, 2, 3, 4)
```

The scalar product leads to:

```
sage: 5*a
(5, 10, 15, 20)
```

And the sum is:

```
sage: a+a
(2, 4, 6, 8)
```

For lists; the sum works as you expect (catenation):

```
sage: [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
```

You can easily transform a vector into a list:

```
sage: list(a)
[1, 2, 3, 4]
```

To transform a list into a vector, it is safer to provide the base ring:

```
sage: vector(QQ,[1,2,3,4])
(1, 2, 3, 4)
sage: vector(RDF,[1,2,3,4])
(1.0, 2.0, 3.0, 4.0)
sage: vector(ZZ,[1,2,3,4]).parent()
Ambient free module of rank 4 over the principal ideal domain Integer Ring
sage: vector(QQ,[1,2,3,4]).parent()
Vector space of dimension 4 over Rational Field
```

So, to sum up, you can transform your vectors into litst, sum them and make them vectors again, by keeping the base_ring information:

```
sage: vector(a.base_ring(),list(a)+list(5*a))
(1, 2, 3, 4, 5, 10, 15, 20)
```

2 | No.2 Revision |

If `a`

is a vector:

```
sage: a = vector(QQ, [1,2,3,4]) ; a
(1, 2, 3, 4)
```

The scalar product leads to:

```
sage: 5*a
(5, 10, 15, 20)
```

And the sum is:

```
sage: a+a
(2, 4, 6, 8)
```

For lists; the sum works as you expect (catenation):

```
sage: [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
```

You can easily transform a vector into a list:

```
sage: list(a)
[1, 2, 3, 4]
```

To transform a list into a vector, it is safer to provide the base ring:

```
sage: vector(QQ,[1,2,3,4])
(1, 2, 3, 4)
sage: vector(RDF,[1,2,3,4])
(1.0, 2.0, 3.0, 4.0)
sage: vector(ZZ,[1,2,3,4]).parent()
Ambient free module of rank 4 over the principal ideal domain Integer Ring
sage: vector(QQ,[1,2,3,4]).parent()
Vector space of dimension 4 over Rational Field
```

So, to sum up, you can transform your vectors into litst, sum them and make them vectors again, by keeping the base_ring information:

```
sage: vector(a.base_ring(),list(a)+list(5*a))
(1, 2, 3, 4, 5, 10, 15, 20)
```

**EDIT** For matrices, you can use `block_matrix`

:

```
sage: A = matrix(QQ, 2, 2, [3,9,6,10]) ; A
[ 3 9]
[ 6 10]
sage: block_matrix([[A, -A], [10*A, 100*A]], subdivide=False)
[ 3 9 -3 -9]
[ 6 10 -6 -10]
[ 30 90 300 900]
[ 60 100 600 1000]
```

See `block_matrix?`

for more details.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.