ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
kitty::static_truth_table< NumVars, false > Struct Template Reference

#include <kitty_static_tt.hpp>

Public Member Functions

 static_truth_table ()
 
static_truth_table< NumVars > construct () const
 
uint32_t num_vars () const noexcept
 
uint32_t num_blocks () const noexcept
 
uint32_t num_bits () const noexcept
 
std::array< uint64_t, NumBlocks >::iterator begin () noexcept
 Begin iterator to bits.
 
std::array< uint64_t, NumBlocks >::iterator end () noexcept
 End iterator to bits.
 
std::array< uint64_t, NumBlocks >::const_iterator begin () const noexcept
 Begin iterator to bits.
 
std::array< uint64_t, NumBlocks >::const_iterator end () const noexcept
 End iterator to bits.
 
std::array< uint64_t, NumBlocks >::reverse_iterator rbegin () noexcept
 Reverse begin iterator to bits.
 
std::array< uint64_t, NumBlocks >::reverse_iterator rend () noexcept
 Reverse end iterator to bits.
 
std::array< uint64_t, NumBlocks >::const_iterator cbegin () const noexcept
 Constant begin iterator to bits.
 
std::array< uint64_t, NumBlocks >::const_iterator cend () const noexcept
 Constant end iterator to bits.
 
std::array< uint64_t, NumBlocks >::const_reverse_iterator crbegin () const noexcept
 Constant reverse begin iterator to bits.
 
std::array< uint64_t, NumBlocks >::const_reverse_iterator crend () const noexcept
 Constant teverse end iterator to bits.
 
template<class TT>
static_truth_table< NumVars > & operator= (const TT &other)
 Assign other truth table if number of variables match.
 
void mask_bits () noexcept
 

Detailed Description

template<uint32_t NumVars>
struct kitty::static_truth_table< NumVars, false >

Truth table (more than 6 variables) in which number of variables is known at compile time.

Definition at line 124 of file kitty_static_tt.hpp.

Constructor & Destructor Documentation

◆ static_truth_table()

template<uint32_t NumVars>
kitty::static_truth_table< NumVars, false >::static_truth_table ( )
inline

Standard constructor.

The number of variables provided to the truth table must be known at runtime. The number of blocks will be computed as a compile time constant.

Definition at line 144 of file kitty_static_tt.hpp.

145 {
146 _bits.fill( 0 );
147 }
Here is the caller graph for this function:

Member Function Documentation

◆ begin() [1/2]

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::const_iterator kitty::static_truth_table< NumVars, false >::begin ( ) const
inlinenoexcept

Begin iterator to bits.

Definition at line 177 of file kitty_static_tt.hpp.

177{ return _bits.begin(); }

◆ begin() [2/2]

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::iterator kitty::static_truth_table< NumVars, false >::begin ( )
inlinenoexcept

Begin iterator to bits.

Definition at line 169 of file kitty_static_tt.hpp.

169{ return _bits.begin(); }
Here is the caller graph for this function:

◆ cbegin()

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::const_iterator kitty::static_truth_table< NumVars, false >::cbegin ( ) const
inlinenoexcept

Constant begin iterator to bits.

Definition at line 193 of file kitty_static_tt.hpp.

193{ return _bits.cbegin(); }

◆ cend()

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::const_iterator kitty::static_truth_table< NumVars, false >::cend ( ) const
inlinenoexcept

Constant end iterator to bits.

Definition at line 197 of file kitty_static_tt.hpp.

197{ return _bits.cend(); }

◆ construct()

template<uint32_t NumVars>
static_truth_table< NumVars > kitty::static_truth_table< NumVars, false >::construct ( ) const
inline

Constructs a new static truth table instance with the same number of variables.

Definition at line 150 of file kitty_static_tt.hpp.

Here is the call graph for this function:

◆ crbegin()

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::const_reverse_iterator kitty::static_truth_table< NumVars, false >::crbegin ( ) const
inlinenoexcept

Constant reverse begin iterator to bits.

Definition at line 201 of file kitty_static_tt.hpp.

201{ return _bits.crbegin(); }

◆ crend()

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::const_reverse_iterator kitty::static_truth_table< NumVars, false >::crend ( ) const
inlinenoexcept

Constant teverse end iterator to bits.

Definition at line 205 of file kitty_static_tt.hpp.

205{ return _bits.crend(); }

◆ end() [1/2]

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::const_iterator kitty::static_truth_table< NumVars, false >::end ( ) const
inlinenoexcept

End iterator to bits.

Definition at line 181 of file kitty_static_tt.hpp.

181{ return _bits.end(); }

◆ end() [2/2]

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::iterator kitty::static_truth_table< NumVars, false >::end ( )
inlinenoexcept

End iterator to bits.

Definition at line 173 of file kitty_static_tt.hpp.

173{ return _bits.end(); }

◆ mask_bits()

template<uint32_t NumVars>
void kitty::static_truth_table< NumVars, false >::mask_bits ( )
inlinenoexcept

Masks the number of valid truth table bits.

We know that we will have at least 7 variables in this data structure.

Definition at line 231 of file kitty_static_tt.hpp.

231{}

◆ num_bits()

template<uint32_t NumVars>
uint32_t kitty::static_truth_table< NumVars, false >::num_bits ( ) const
inlinenoexcept

Returns number of bits.

Definition at line 165 of file kitty_static_tt.hpp.

165{ return NumBits; }
Here is the caller graph for this function:

◆ num_blocks()

template<uint32_t NumVars>
uint32_t kitty::static_truth_table< NumVars, false >::num_blocks ( ) const
inlinenoexcept

Returns number of blocks.

Definition at line 161 of file kitty_static_tt.hpp.

161{ return NumBlocks; }

◆ num_vars()

template<uint32_t NumVars>
uint32_t kitty::static_truth_table< NumVars, false >::num_vars ( ) const
inlinenoexcept

Returns number of variables.

Definition at line 157 of file kitty_static_tt.hpp.

157{ return NumVars; }

◆ operator=()

template<uint32_t NumVars>
template<class TT>
static_truth_table< NumVars > & kitty::static_truth_table< NumVars, false >::operator= ( const TT & other)
inline

Assign other truth table if number of variables match.

This replaces the current truth table with another truth table, if other has the same number of variables. Otherwise, the truth table is not changed.

Parameters
otherOther truth table

Definition at line 216 of file kitty_static_tt.hpp.

217 {
218 if ( other.num_bits() == num_bits() )
219 {
220 std::copy( other.begin(), other.end(), begin() );
221 }
222
223 return *this;
224 }
std::array< uint64_t, NumBlocks >::iterator begin() noexcept
Begin iterator to bits.
Here is the call graph for this function:

◆ rbegin()

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::reverse_iterator kitty::static_truth_table< NumVars, false >::rbegin ( )
inlinenoexcept

Reverse begin iterator to bits.

Definition at line 185 of file kitty_static_tt.hpp.

185{ return _bits.rbegin(); }

◆ rend()

template<uint32_t NumVars>
std::array< uint64_t, NumBlocks >::reverse_iterator kitty::static_truth_table< NumVars, false >::rend ( )
inlinenoexcept

Reverse end iterator to bits.

Definition at line 189 of file kitty_static_tt.hpp.

189{ return _bits.rend(); }

The documentation for this struct was generated from the following file: