public TextMessageForm(Form backForm, GeneratorMatrix matrix) { InitializeComponent(); _generatorMatrix = matrix; _backForm = backForm; _encoder = new Encoder(_generatorMatrix); _decoder = new Decoder(_generatorMatrix); }
/// <summary> /// Clear old matrixes and calculate generator and identity matrixes before launching next view. /// </summary> private void ContinueBtn_Click(object sender, EventArgs e) { var m = decimal.ToInt32(mValue.Value); GeneratorMatrix.PrepareMatrixes(m); HadamardTransformMatrix.PrepareHadamardTransformMatrixes(m); new MainView(this, m).Show(); Hide(); }
public SingleVectorMessageForm(GeneratorMatrix matrix, Form backForm) { InitializeComponent(); _generatorMatrix = matrix; _backForm = backForm; _encoder = new Encoder(_generatorMatrix); _decoder = new Decoder(_generatorMatrix); labelRequiredSize.Text = $"Required size: {_generatorMatrix.EncodableVectorSize}"; }
/// <summary> /// Encode vector of m+1 length using Reed Muller's code with parameter m. /// Vector is multiplied with Generator matrix G(1,m) /// </summary> /// <param name="vector">Vector to encode</param> /// <param name="m">Code parameter m</param> /// <returns>Encoded vector</returns> public static Vector EncodeSingleVector(Vector vector, int m) { GeneratorMatrix.GeneratorMatrixes.TryGetValue(m, out int[,] generatorMatrix); var encodedVectorLength = GeneratorMatrix.GetMatrixDimensions(m).columns; var resultArray = new int[encodedVectorLength]; for (int i = 0; i < m + 1; i++) { for (int j = 0; j < encodedVectorLength; j++) { resultArray[j] += vector.Data[i] == 0 ? 0 : generatorMatrix[i, j]; } } for (int i = 0; i < encodedVectorLength; i++) { resultArray[i] = resultArray[i] % 2; } return(new Vector(resultArray)); }
public ScenarioChoice(Form previous, int m, int r) { InitializeComponent(); _previous = previous; _generatorMatrix = new GeneratorMatrix(r, m); }