PackedVal3

class PackedVal3

PackedVal2つで3値のビットベクタを表すクラス

Public Functions

inline PackedVal3()

空のコンストラクタ

不定値になる.

PackedVal3(const PackedVal3 &src) = default

コピーコンストラクタ

inline PackedVal3(PackedVal val0, PackedVal val1)

コンストラクタ

val0 と val1 の両方のビットが1になったら不正

パラメータ:
  • val0 -- [in] 0を表すビットベクタ

  • val1 -- [in] 1を表すビットベクタ

inline explicit PackedVal3(PackedVal val)

2値の PackedVal からの変換コンストラクタ

パラメータ:

val -- [in] 値

~PackedVal3() = default

デストラクタ

inline PackedVal val0() const

0 のワードを取り出す.

inline PackedVal val1() const

1 のワードを取り出す.

inline PackedVal val01() const

0|1 か X かを区別するワードを取り出す.

1のビットはもとの値が0か1

inline PackedVal3 &operator=(PackedVal val)

2値の代入演算子

パラメータ:

val -- [in] 値

戻り値:

代入後の自身への参照を返す.

PackedVal3 &operator=(const PackedVal3 &val) = default

普通の代入演算子

パラメータ:

val -- [in] 値

戻り値:

代入後の自身への参照を返す.

inline void set(PackedVal val0, PackedVal val1)

値をセットする.

パラメータ:
  • val0 -- [in] 値0

  • val1 -- [in] 値1

inline void set_with_mask(PackedVal3 val, PackedVal mask)

マスク付きで値をセットする.

パラメータ:
  • val -- [in] 値

  • mask -- [in] マスク

inline void set_with_mask(PackedVal val, PackedVal mask)

マスク付きで値をセットする.

パラメータ:
  • val -- [in] 値

  • mask -- [in] マスク

inline PackedVal3 &negate()

自身を否定する演算

戻り値:

演算後の自身の参照を返す.

inline PackedVal3 &operator&=(PackedVal3 right)

AND付き代入

パラメータ:

right -- [in] オペランド

戻り値:

演算後の自身の参照を返す.

inline PackedVal3 &operator|=(PackedVal3 right)

OR付き代入

パラメータ:

right -- [in] オペランド

戻り値:

演算後の自身の参照を返す.

inline PackedVal3 &operator^=(PackedVal3 right)

XOR付き代入

パラメータ:

right -- [in] オペランド

戻り値:

演算後の自身の参照を返す.

inline PackedVal3 &operator^=(PackedVal right)

XOR付き代入

right が2値のバージョン

パラメータ:

right -- [in] オペランド

戻り値:

演算後の自身の参照を返す.

inline bool operator==(PackedVal3 left, PackedVal3 right)

比較演算子 (EQ)

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2

inline bool operator!=(PackedVal3 left, PackedVal3 right)

比較演算子 (NE)

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2

inline PackedVal3 operator~(PackedVal3 right)

否定演算

パラメータ:

right -- [in] オペランド

inline PackedVal3 operator&(PackedVal3 left, PackedVal3 right)

AND演算

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2

inline PackedVal3 operator|(PackedVal3 left, PackedVal3 right)

OR演算

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2

inline PackedVal3 operator^(PackedVal3 left, PackedVal3 right)

XOR演算

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2

inline PackedVal3 operator^(PackedVal3 left, PackedVal right)

XOR演算

right が2値のバージョン

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2

inline PackedVal diff(PackedVal3 left, PackedVal3 right)

DIFF演算

どちらかが 0 で他方が 1 のビットに1を立てたビットベクタを返す.

パラメータ:
  • left -- [in] オペランド1

  • right -- [in] オペランド2