#pragma once typedef struct { double x, y; } vector2d; typedef struct { double x, y, z; } vector3d; typedef struct { double x, y, z, w; } vector4d; typedef struct { vector4d col0, col1, col2, col3; } matrix4d;