// Copyright (C) 2026 Kiyotsugu Arai // SPDX-License-Identifier: LGPL-3.0-or-later // IntSpecialStates.hpp // 多倍長整数の特殊状態の処理 #ifndef CALX_INT_SPECIAL_STATES_HPP #define CALX_INT_SPECIAL_STATES_HPP #include #include namespace calx { /** * @brief 多倍長整数の特殊状態を処理するユーティリティクラス * * このクラスは、NaNや無限大などの特殊状態の多倍長整数を * 処理するための静的メソッドを提供します。 */ class IntSpecialStates { public: // 特殊状態の文字列変換 static std::string handleToString(const Int& value, int base = 10); // 特殊状態の演算処理 static Int handleAddition(const Int& lhs, const Int& rhs); static Int handleSubtraction(const Int& lhs, const Int& rhs); static Int handleMultiplication(const Int& lhs, const Int& rhs); static Int handleDivision(const Int& lhs, const Int& rhs); static Int handleModulo(const Int& lhs, const Int& rhs); // 特殊状態の比較 static bool compareLessThan(const Int& lhs, const Int& rhs); static bool compareEqual(const Int& lhs, const Int& rhs); }; } // namespace calx #endif // CALX_INT_SPECIAL_STATES_HPP