libboloq
A library to replesent binary functions using Binary Decision Diagram.
 全て クラス 名前空間 関数 型定義 ページ
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
boloq::basic_boolean_function< T > クラステンプレート

二分決定図を操作する基本的なクラスです [詳解]

#include <boolean_function.h>

公開型

using node_ptr = typename table_type::node_ptr
 実際に操作されるノードの型
 
using label_type = typename table_type::node_type::label_type
 ラベルの型を表します [詳解]
 

公開メンバ関数

 basic_boolean_function (const label_type &_label)
 コンストラクタ
 
 basic_boolean_function (const node_ptr &r)
 visitor 内で生成するためのコンストラクタ
 
self_type ite (const self_type &then_node, const self_type &else_node) const
 ITE関数を実行します
 
bool operator== (const self_type &o) const
 同じ論理関数を表現しているか比較します [詳解]
 
bool operator!= (const self_type &o) const
 違う論理関数を表現しているか比較します [詳解]
 
self_type operator~ () const
 not演算を行った結果を返します
 
self_type operator& (const self_type &o) const
 and演算を行った結果を返します
 
self_typeoperator&= (const self_type &o)
 and演算を適用します
 
self_type operator| (const self_type &o) const
 
self_typeoperator|= (const self_type &o)
 or演算を適用します
 
self_type operator^ (const self_type &o) const
 
self_typeoperator^= (const self_type &o)
 or演算を適用します
 
template<class V >
void accept (V &visitor) const
 visitorを受理します [詳解]
 
template<class AssignT >
bool execute (const AssignT &assign) const
 論理関数を評価します
 
bool is_wire () const
 f(x) = x かどうかを判定します
 
bool is_negation () const
 論理否定を表すかどうかを判定します
 
bool is_conjunction () const
 論理積を表すかどうかを判定します
 
bool is_disjunction () const
 論理和を表すかどうかを判定します
 
bool is_exclusive_disjunction () const
 排他的論理和を表すかどうかを判定します
 

静的公開メンバ関数

static const self_type one ()
 0 定節点
 
static const self_type zero ()
 1 定節点
 

詳解

template<class T>
class boloq::basic_boolean_function< T >

二分決定図を操作する基本的なクラスです

型定義メンバ詳解

template<class T>
using boloq::basic_boolean_function< T >::label_type = typename table_type::node_type::label_type

ラベルの型を表します

この型は内部で用いられるノードの型に依存します。

関数詳解

template<class T>
template<class V >
void boloq::basic_boolean_function< T >::accept ( V &  visitor) const
inline

visitorを受理します

visitorオブジェクトは、node_ptrを引数にした関数インタフェースをもたなくてはいけません

template<class T>
bool boloq::basic_boolean_function< T >::operator!= ( const self_type o) const
inline

違う論理関数を表現しているか比較します

この判定はO(1)で行う事ができます。

template<class T>
bool boloq::basic_boolean_function< T >::operator== ( const self_type o) const
inline

同じ論理関数を表現しているか比較します

この判定はO(1)で行う事ができます。

template<class T>
self_type boloq::basic_boolean_function< T >::operator^ ( const self_type o) const
inline

xor演算を行った結果を返します

template<class T>
self_type boloq::basic_boolean_function< T >::operator| ( const self_type o) const
inline

or演算を行った結果を返します


このクラス詳解は次のファイルから抽出されました: