# Vectors¶

Another data type is vec. vectors and other data types like arrays and matrices are defined using brackets. So in order to specify the data type you want, you use :. For example, to define, respectively, a vector, an array of integers and a matrix, we do:

atlas> set v=vec:[4,6,7]
Identifier v: vec
atlas> v
Value: [ 4, 6, 7 ]

atlas> set w=[4,6,7]
Identifier w: [int]
atlas> w
Value: [4,6,7]

atlas> set A=mat:[[2,4],[1,3]]
Identifier A: mat
atlas> A
Value:
| 2, 1 |
| 4, 3 |

atlas>


We will see more about matrices and arrays later. Most of the time it does not matter if you define a vector as an array. For example, atlas can add v+w above:

atlas> whattype v
type: vec
atlas> whattype w
type: [int]
atlas> v+w
Value: [  8, 12, 14 ]
atlas> whattype(v+w)
type: vec
atlas>


There are some cases where you need to specify the data type.

## Operations and coordinates¶

The commands for standard operations like length, dot product, coordinates of v, adition and scalar multiplication are self explanatory:

atlas> #v
Value: 3
atlas> v*v
Value: 101
atlas> v[0]
Value: 4
atlas> v[1]
Value: 6
atlas> v[2]
Value: 7
atlas> v[3]
Runtime error:
index 3 out of range (0<= . <3) in subscription v[3]
Evaluation aborted.
atlas>

atlas> v+w
Value: [ 8, 12, 14 ]
atlas> v/2
Value: [ 4, 6, 7 ]/2
atlas> whattype $type: ratvec atlas>  Note how atlas converted v/2 to a ratvec. This is a new data type. Here, we again used $ to call the Value on the previous line.