/
index.js
69 lines (55 loc) · 2.58 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
var error_probability_txt = $('#error_probability_txt');
var messages_per_run_txt = $('#messages_per_run_txt');
var word_length_txt = $('#word_length_txt');
var repetitions_txt = $('#repetitions_txt');
var rep_dispatched_list = $('#rep_dispatched_list');
var rep_noise_list = $('#rep_noise_list');
var rep_decoded_list = $('#rep_decoded_list');
var result_correct = $('#result_correct');
var result_undetected = $('#result_undetected');
var result_detected = $('#result_detected');
var result_all = $('#result_all');
var result_raw_success = $('#result_raw_success');
var result_recalc_success = $('#result_recalc_success');
var result_time_total = $('#result_time_total');
var result_est = $('#result_est');
var messagesPerRun, wordLength, errorProbability;
var repetition = new Repetition();
function updateVars() {
messagesPerRun = getMessagesPerRun();
wordLength = getWordLength();
errorProbability = getErrorProbability();
}
function repetitionRun() {
updateVars();
var repetitions = getRepetitions();
// var language = {};
var isRepeatWords = getIsRepeatWords();
var dispatchedWords = generateWords(wordLength, messagesPerRun);
if(isRepeatWords)
dispatchedWords = repeatWords(dispatchedWords, repetitions);
else
dispatchedWords = repeatBits(dispatchedWords, repetitions);
rep_dispatched_list.html('');
for(i in dispatchedWords)
rep_dispatched_list.append("<p class='list_item'>"+ dispatchedWords[i].join("<span class='small_space'> </span>") +"</p>");
var noiseComp = addNoise(dispatchedWords, errorProbability*([1, 0.9, 0.9, 0.8, 0.8, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7][repetitions-1]));
var noiseWords = noiseComp[0];
var noiseWordsHTML = noiseComp[1];
rep_noise_list.html('');
for(i in noiseWordsHTML)
rep_noise_list.append("<p class='list_item'>" + noiseWordsHTML[i].join("<span class='small_space'> </span>") + "</p>");
var decodedWords = repetition.decode(noiseWords, repetitions, isRepeatWords, wordLength);
var comparison = compare(dispatchedWords, decodedWords, repetitions);
var comparedWords = comparison[0];
var result = comparison[1];
rep_decoded_list.html('');
for(i in comparedWords)
rep_decoded_list.append("<p class='list_item'>" + comparedWords[i].join("<span class='small_space'> </span>") + "</p>");
result_correct.text(result.correct);
result_undetected.text(result.undetected);
result_detected.text(result.detected);
result_all.text(result.all);
result_raw_success.text(Math.floor(result.correct/result.all*100));
result_recalc_success.text(Math.floor(result.correct/(result.all-result.detected)*100));
}