>Mathematical vectors are a very general thing, they are just pairs, >triples, tuples of something. In physics they are used that way, >but in many cases vectors are homogeneous in physics. It�s very handy, To follow the weather map example, you could have wind velocity vectors, each with three components: the speed E-W, N-S and up-down. But you might alternatively choose to have vectors with 5 components: the three speed components and also the temperature and humidity at that point. Programming-wise, it just a question of what's more convenient. However, while it makes sense to talk about total wind speed as sqrt(vx**2+vy**2+vz**2), the quantity sqrt(vx**2+vy**2+vz**2+temperature**2+humidity**2) is surely a meaningless, useless number. > It has four real components, but a different metric etc. (the > fourth component behaves a little imaginary). The "different metric" is key. While the space-distance is sqrt(dx**2+dy**2+dz**2), the relativistic "distance" includes not "+t**2" but rather "-(ct)**2". But you can use regular componentwise addition and subtraction. Say baby Fred was born in a hospital. Baby Sam was born 20 feet to the east, 1 floor (10 feet) higher up, and 3 days later. Baby Charles was born 10 feet to the west of Sam, on the same floor, and 2 days earlier. Ordinary, componentwise arithmetic tells us Charles was born 10 feet to the East of Fred, 1 floor up, and 1 day later. But to calculate the relativistic "distance" between the births, you need to treat that time component differently. So if your program was using a generic package that does ordinary arithmetic on vectors with N components, you would have to overide its ordinary "distance" function with the relativistic one.