Files
handmadehero/handmade_math.h
T
2026-06-25 17:31:29 -07:00

82 lines
934 B
C

#ifndef HANDMADE_MATH_H
#define HANDMADE_MATH_H
// TODO: Make these static.
typedef struct v2 {
F32 X, Y;
F32 E[2];
} v2;
v2 V2(F32 X, F32 Y)
{
v2 Result;
Result.X = X;
Result.Y = Y;
return Result;
}
v2 V2Multiply(F32 A, v2 B)
{
v2 Result;
Result.X = A * B.X;
Result.Y = A * B.Y;
return Result;
}
v2 V2Unary(v2 A)
{
v2 Result;
Result.X = -A.X;
Result.Y = -A.Y;
return Result;
}
v2 V2Add(v2 A, v2 B)
{
v2 Result;
Result.X = A.X + B.X;
Result.Y = A.Y + B.Y;
return Result;
}
v2 V2Subtract(v2 A, v2 B)
{
v2 Result;
Result.X = A.X - B.X;
Result.Y = A.Y - B.Y;
return Result;
}
F32 Square(F32 A)
{
F32 Result;
Result = A * A;
return Result;
}
F32 InnerProduct(v2 A, v2 B)
{
F32 Result = A.X*B.X + A.Y*B.Y;
return Result;
}
F32 LengthSq(v2 A)
{
F32 Result = InnerProduct(A, A);
return Result;
}
#endif