| 
    MOTION
    0.01
    
   Framework for mixed-protocol multi-party computation 
   | 
 
#include <bit_matrix.h>
Public Member Functions | |
| BitMatrix ()=default | |
| BitMatrix (std::size_t rows, std::size_t columns, bool value=false) | |
Construct a rows x columns BitMatrix with all bits set to value.  More... | |
| BitMatrix (std::vector< AlignedBitVector > &&vectors) | |
| Construct a BitMatrix by moving a vector of AlignedBitVectors.  More... | |
| BitMatrix (const std::vector< AlignedBitVector > &vectors) | |
| Construct a BitMatrix by copying a vector of AlignedBitVectors.  More... | |
| BitMatrix (const BitMatrix &other) | |
| BitMatrix (BitMatrix &&other) | |
| void | operator= (const BitMatrix &other) | 
| void | operator= (BitMatrix &&other) | 
| const AlignedBitVector & | GetRow (std::size_t i) const | 
Returns a const AlignedBitVector reference to row i of the matrix.  More... | |
| AlignedBitVector & | GetMutableRow (std::size_t i) | 
Returns a mutable AlignedBitVector reference to row i of the matrix.  More... | |
| bool | Get (std::size_t row_i, std::size_t column_i) const | 
| Get Bit at input position.  More... | |
| void | Set (std::size_t row_i, std::size_t column_i, bool value) | 
| Set or unset bit at input position.  More... | |
| void | AppendRow (const AlignedBitVector &bit_vector) | 
| Appends a new row by copying the input bit_vector to the matrix.  More... | |
| void | AppendRow (AlignedBitVector &&bit_vector) | 
| Appends a new row by moving the input bit_vector to the matrix.  More... | |
| void | AppendColumn (const AlignedBitVector &bit_vector) | 
| Appends a new column by copying the input bit_vector to the matrix.  More... | |
| void | AppendColumn (AlignedBitVector &&bit_vector) | 
| Appends a new column by moving the input bit_vector to the matrix.  More... | |
| std::string | AsString () const | 
| Return a string representation of the BitMatrix.  More... | |
| void | ForceSetNumColumns (std::size_t n) | 
Force the number of columns to be equal to n.  More... | |
| void | Transpose () | 
| Transposes the matrix inplace.  More... | |
| void | Transpose128Rows () | 
| Transposes a matrix with exactly 128 rows (faster).  More... | |
| bool | operator== (const BitMatrix &other) const | 
| Compare with another BitMatrix for equality.  More... | |
| bool | operator!= (const BitMatrix &other) const | 
| Compare with another BitMatrix for inequality.  More... | |
| auto | GetNumRows () const noexcept | 
| Get number of rows in the BitMatrix.  More... | |
| auto | GetNumColumns () const noexcept | 
| Get number of columns in the BitMatrix.  More... | |
Static Public Member Functions | |
| static void | Transpose128RowsInplace (std::array< std::byte *, 128 > &matrix, std::size_t number_of_columns) | 
| Transposes a matrix of 128 rows and arbitrary column size inplace.  More... | |
| static void | TransposeUsingBitSlicing (std::array< std::byte *, 128 > &matrix, std::size_t number_of_columns) | 
| Transposes a matrix of 128 rows and arbitrary column size inplace using BitSlicing.  More... | |
| static void | SenderTransposeAndEncrypt (const std::array< const std::byte *, 128 > &matrix, std::vector< BitVector<>> &y0, std::vector< BitVector<>> &y1, const BitVector<> choices, primitives::Prg &prg_fixed_key, const std::size_t number_of_columns, const std::vector< std::size_t > &bitlengths) | 
| Transposes a matrix of 128 rows and arbitrary column size and encrypts it for the sender role.  More... | |
| static void | ReceiverTransposeAndEncrypt (const std::array< const std::byte *, 128 > &matrix, std::vector< BitVector<>> &output, primitives::Prg &prg_fixed_key, const std::size_t number_of_columns, const std::vector< std::size_t > &bitlengths) | 
| Transposes a matrix of 128 rows and arbitrary column size and encrypts it for the recepient role.  More... | |
      
  | 
  default | 
      
  | 
  inline | 
Construct a rows x columns BitMatrix with all bits set to value. 
| rows | |
| columns | |
| value | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
Appends a new column by moving the input bit_vector to the matrix.
| bit_vector | The new column. | 
bit_vector must be equal to the number of rows in the matrix. 

| void encrypto::motion::BitMatrix::AppendColumn | ( | const AlignedBitVector & | bit_vector | ) | 
Appends a new column by copying the input bit_vector to the matrix.
| bit_vector | The new column. | 
bit_vector must be equal to the number of rows in the matrix. 
| void encrypto::motion::BitMatrix::AppendRow | ( | AlignedBitVector && | bit_vector | ) | 
Appends a new row by moving the input bit_vector to the matrix.
| bit_vector | The new row. | 
bit_vector must be equal to the number of columns in the matrix. | void encrypto::motion::BitMatrix::AppendRow | ( | const AlignedBitVector & | bit_vector | ) | 
Appends a new row by copying the input bit_vector to the matrix.
| bit_vector | The new row. | 
bit_vector must be equal to the number of columns in the matrix. 
| std::string encrypto::motion::BitMatrix::AsString | ( | ) | const | 
Return a string representation of the BitMatrix.
      
  | 
  inline | 
Force the number of columns to be equal to n. 
| n | 
      
  | 
  inline | 
Get Bit at input position.
| row_i | |
| column_i | 
      
  | 
  inline | 
      
  | 
  inlinenoexcept | 
Get number of columns in the BitMatrix.
      
  | 
  inlinenoexcept | 
Get number of rows in the BitMatrix.
      
  | 
  inline | 
Returns a const AlignedBitVector reference to row i of the matrix. 
| i | 
      
  | 
  inline | 
Compare with another BitMatrix for inequality.
| other | 
      
  | 
  inline | 
      
  | 
  inline | 
| bool encrypto::motion::BitMatrix::operator== | ( | const BitMatrix & | other | ) | const | 
Compare with another BitMatrix for equality.
| other | 
      
  | 
  static | 
Transposes a matrix of 128 rows and arbitrary column size and encrypts it for the recepient role.
| matrix | 


      
  | 
  static | 
Transposes a matrix of 128 rows and arbitrary column size and encrypts it for the sender role.
| matrix | 


      
  | 
  inline | 
Set or unset bit at input position.
| row_i | |
| column_i | |
| value | 
| void encrypto::motion::BitMatrix::Transpose | ( | ) | 
Transposes the matrix inplace.
| void encrypto::motion::BitMatrix::Transpose128Rows | ( | ) | 
Transposes a matrix with exactly 128 rows (faster).
      
  | 
  static | 
Transposes a matrix of 128 rows and arbitrary column size inplace.
| matrix | |
| number_of_columns | 
      
  | 
  static | 
Transposes a matrix of 128 rows and arbitrary column size inplace using BitSlicing.
| matrix | |
| number_of_columns | 
 1.8.17