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
| 2, 1 |
| 4, 3 |


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

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> v+w
Value: [ 8, 12, 14 ]
atlas> v/2
Value: [ 4, 6, 7 ]/2
atlas> whattype $
type: ratvec

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.