// Copyright (C) 2026 Kiyotsugu Arai
// SPDX-License-Identifier: LGPL-3.0-or-later

// traits.hpp
//
// 型特性と演算特性
//
// このファイルでは、MKL代数ライブラリで使用される型特性と演算特性を定義します。
// これらの特性は、テンプレートの特殊化や演算の最適化に使用されます。
//
// 主な機能:
// - 数値型特性（浮動小数点、整数など）
// - MKL連携のための型特性
// - 代数的演算の特性
// - ベクトル/行列特性
// - カスタム型のためのトレイト拡張メカニズム
// - 数値状態管理のための型特性

#ifndef CALX_TRAITS_HPP
#define CALX_TRAITS_HPP

// NumericStateの完全な定義が先に必要なので、こちらを最初にインクルード
#include <math/core/numeric_state.hpp>
#include <math/core/common.hpp>
#include <math/core/traits_part1.hpp>
#include <math/core/traits_part2.hpp>
#include <math/core/mp/Int/IntTraits.hpp> // Int特殊化
#include <type_traits>
#include <complex>

#endif // CALX_TRAITS_HPP