5#include <MRPch/MRBindingMacros.h>
8#if defined _MSC_VER && !defined __clang__
25 constexpr
Int64Mul128( std::int64_t v ) noexcept : v_( v ) { }
26 [[nodiscard]]
constexpr explicit operator std::int64_t() const noexcept {
return v_; }
37#if defined _MSC_VER && !defined __clang__ && defined _M_X64
39 const auto lo = _mul128( a.v_, b.v_, &hi );
40 return FastInt128( std::uint64_t( lo ), std::uint64_t( hi ) );
41#elif defined _MSC_VER && !defined __clang__ && defined _M_ARM64
42 const auto hi = __mulh( a.v_, b.v_ );
43 return FastInt128( std::uint64_t( a.v_ ) * std::uint64_t( b.v_ ), std::uint64_t( hi ) );
58#if !defined MR_PARSING_FOR_ANY_BINDINGS && !defined MR_COMPILING_ANY_BINDINGS
Int64Mul128() noexcept=default
BitSet operator-(const BitSet &a, const BitSet &b)
Definition MRBitSet.h:477
bool operator==(const BitSet &a, const BitSet &b)
compare that two bit sets have the same set bits (they can be equal even if sizes are distinct but la...
__int128_t FastInt128
Definition MRFastInt128.h:25
Color operator/(const Color &b, float a)
Definition MRColor.h:129
Color operator*(float a, const Color &b)
Definition MRColor.h:119
std::array< Vector3f, 3 > MR_BIND_IGNORE
Definition MRMeshBuilderTypes.h:13
Color operator+(const Color &a, const Color &b)
Definition MRColor.h:109
Vector2< Int64Mul128 > Vector2i64mul
no bindings for the same reason as for Vector3i128fast
Definition MRInt64Mul128.h:59
Vector3< Int64Mul128 > Vector3i64mul
Definition MRInt64Mul128.h:60
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRVector2.h:29
Definition MRVector3.h:33