spinny-cube/linalg.c
2026-03-24 22:47:12 +01:00

34 lines
542 B
C

#include "linalg.h"
f2 f2_from_f3(f3 v)
{
return (f2) { v.x, v.y };
}
i2 i2_from_f2(f2 v)
{
return (i2) { (int)v.x, (int)v.y };
}
f3 add_f3(f3 l, f3 r)
{
return (f3) { l.x + r.x, l.y + r.y, l.z + r.z };
}
f2 mul_f2_f2x2(f2 l, f2x2 r)
{
return (f2) {
l.x * r.xx + l.y * r.xy,
l.x * r.yx + l.y * r.yy,
};
}
f3 mul_f3_f3x3(f3 l, f3x3 r)
{
return (f3) {
l.x * r.xx + l.y * r.xy + l.z * r.xz,
l.x * r.yx + l.y * r.yy + l.z * r.yz,
l.x * r.zx + l.y * r.zy + l.z * r.zz,
};
}