예제 #1
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
// Bitwise Operators
template <typename T> T operator&(T lhs, uint128_t rhs){
    T out = lhs & (T) rhs.lower();
    return out;
}
예제 #2
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
template <typename T> T operator*(T lhs, uint128_t rhs){
    return lhs * rhs.lower();
}
예제 #3
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
template <typename T> bool operator<=(T lhs, uint128_t rhs){
    if (rhs.upper())
        return true;
    return ((uint64_t) lhs <= rhs.lower());
}
예제 #4
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
template <typename T> bool operator>=(T lhs, uint128_t rhs){
    if (rhs.upper())
        return false;
    return ((uint64_t) lhs >= rhs.lower());
}
예제 #5
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
template <typename T> bool operator!=(T lhs, uint128_t rhs){
    return (rhs.upper() | ((uint64_t) lhs != rhs.lower()));
}
예제 #6
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
// Comparison Operators
template <typename T> bool operator==(T lhs, uint128_t rhs){
    return (!rhs.upper() && ((uint64_t) lhs == rhs.lower()));
}
예제 #7
0
파일: uint128.cpp 프로젝트: jiffe/focalcoin
template <typename T> T operator^=(T & lhs, uint128_t rhs){
    lhs ^= (T) rhs.lower();
    return lhs;
}