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.