KeccakTools

ListOfRowPatterns Class Reference

#include <Keccak-fDCLC.h>

List of all members.

Public Member Functions

 ListOfRowPatterns ()
void add (RowValue aValue, int aWeight)
void display (ostream &fout) const

Public Attributes

vector< RowValuevalues
vector< int > weights
bool minMaxInitialized
int maxWeight
int minWeight

Detailed Description

As a utility class for KeccakFDCLC, this class lists the output row patterns (differences or linear masks) compatible with a given row input pattern through either χ or χ-1. The main attribute is values, which lists all the corresponding output row patterns. Associated with each output value (same index in the vector), its propagation weight is in the vector weights. Note that the values are sorted in increasing weight order, so one can start looking for the outputs with lowest weight first. The maxWeight and minWeight attributes indicate the maximum and minimum propagation weights present, respectively.


Constructor & Destructor Documentation

ListOfRowPatterns::ListOfRowPatterns ( ) [inline]

This constructor initializes the output patterns to the empty set.


Member Function Documentation

void ListOfRowPatterns::add ( RowValue  aValue,
int  aWeight 
)

This function adds a possible output pattern, along with an associated propagation weight, while inserting it at the right place to ensure that they are listed with increasing propagation weights.

Parameters:
aValueAn output pattern.
aWeightIts associated propagation weight.
void ListOfRowPatterns::display ( ostream &  fout) const

This function displays the possible patterns and their weights.

Parameters:
foutThe stream to display to.

Member Data Documentation

The maximum propagation weight in weights.

True iff maxWeight and minWeight are meaningful.

The minimum propagation weight in weights.

The list of output row patterns (differences or selection vectors) compatible with a given row input pattern.

The list of propagation weights, for each row pattern, i.e., weights[i] is the weight of values[i].


The documentation for this class was generated from the following files: