public RtTuple Multiply(RtTuple tuple) { var result = new double[RowCount]; var tupleValues = tuple.AsArray(); for (var row = 0; row < this.RowCount; row++) { double rowValue = 0; for (var col = 0; col < this.ColCount; col++) { rowValue += Get(row, col) * tupleValues[col]; } result[row] = rowValue; } return(new RtTuple(result[0], result[1], result[2], result[3])); }