From 7bb49794297b46aa1c577e89da24d39b4348c6d4 Mon Sep 17 00:00:00 2001 From: batsumaru <> Date: Sun, 9 Aug 2026 12:39:50 +0900 Subject: Added fp_t multiplication --- src/fixed_point.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/fixed_point.cpp b/src/fixed_point.cpp index 9b2d8e2..847a5f7 100644 --- a/src/fixed_point.cpp +++ b/src/fixed_point.cpp @@ -8,6 +8,15 @@ fp_t fp_t::operator-(const fp_t& other) const { return {(int32_t)((uint32_t)raw - (uint32_t)other.raw)}; } +fp_t fp_t::operator*(const fp_t& other) const { + int32_t result; + int64_t temp; + temp = (int64_t)raw * (int64_t)other.raw; + temp += fp_t::K; + result = (int32_t)(temp >> fp_t::Q); + return {result}; +} + bool fp_t::operator==(const fp_t& other) const { return raw == other.raw; } -- cgit v1.3