@@ -20,13 +20,14 @@ var error_text = "";
2020var m_score = 0 ;
2121
2222var sfb_data = { label : "SFB:" , metric : 0 , score : 0 , weight : 3 , min : 0.39 , desc : "Single finger bigrams" }
23- var effort_data = { label : "Effort:" , metric : 0 , score : 0 , weight : 7 , min : 0 , desc : "Effort based on defined matrix" }
23+ var effort_data = { label : "Effort:" , metric : 0 , score : 0 , weight : 3 , min : 0 , desc : "Effort based on defined matrix" }
2424var psfb_data = { label : "pSFB:" , metric : 0 , score : 0 , weight : 0.7 , min : 0 , desc : "Additional penalty for SFBs on the pinky" }
2525var rsfb_data = { label : "rSFB:" , metric : 0 , score : 0 , weight : 0.3 , min : 0 , desc : "Additional penalty for SFBs on the ring finger" }
2626var scissors_data = { label : "Scissors:" , metric : 0 , score : 0 , weight : 1 , min : 0 , desc : "Two letters on the same hand, two rows between them, on adjacent fingers" }
2727var prscissors_data = { label : "PRScissor:" , metric : 0 , score : 0 , weight : 0.9 , min : 0.2 , desc : "Two letters typed with the ring and pinky with at least one row between them" }
2828var wscissors_data = { label : "WScissors:" , metric : 0 , score : 0 , weight : 1 , min : 0 , desc : "Two letters on the same hand, two rows between them, more than one column between them" }
2929var latstr_data = { label : "LSB:" , metric : 0 , score : 0 , weight : 1 , min : 0.12 , desc : "Lateral stretch bigrams" }
30+ var sfs_data = { label : "SFS:" , metric : 0 , score : 0 , weight : 0.8 , min : 0 , desc : "Single finger skipgrams" }
3031var vowels_data = { label : "Vowels:" , metric : 0 , score : 0 , weight : 3 , min : 0 , desc : "Should vowels be on the same side" }
3132var hbalance_data = { label : "Hand Bal:" , metric : 0 , score : 0 , weight : 0.7 , min : 1 , desc : "Hand balance, how much different from 50/50 usage" }
3233
@@ -134,6 +135,12 @@ function getCharacters() {
134135 bigram_count += 1
135136 }
136137 console . log ( "there are " + bigram_count + " bigrams" )
138+
139+ for ( var tmp in trigram_freq ) {
140+ if ( trigram_freq [ tmp ] <= 30 ) {
141+ Reflect . deleteProperty ( trigram_freq , tmp )
142+ }
143+ }
137144 var trigram_count = 0
138145 for ( var tmp in trigram_freq ) {
139146 trigram_count += 1
@@ -502,6 +509,8 @@ function generateStats() {
502509 y += 35
503510 addStatLine ( x , y , latstr_data )
504511 y += 35
512+ addStatLine ( x , y , sfs_data )
513+ y += 35
505514 addStatLine ( x , y , vowels_data )
506515 y += 35
507516 addStatLine ( x , y , hbalance_data )
@@ -984,7 +993,7 @@ function run() {
984993 myWorker . postMessage ( {
985994 letter_freq : letter_freq ,
986995 bigrams : bigram_freq ,
987- // trigrams: trigram_freq,
996+ trigrams : trigram_freq ,
988997 config : tmp_keys ,
989998 } ) ;
990999 }
@@ -1015,7 +1024,7 @@ function run() {
10151024 myWorker . postMessage ( {
10161025 letter_freq : letter_freq ,
10171026 bigrams : bigram_freq ,
1018- // trigrams: trigram_freq,
1027+ trigrams : trigram_freq ,
10191028 config : tmp_keys ,
10201029 } ) ;
10211030 }
@@ -1037,6 +1046,7 @@ function run() {
10371046 prscissors_data . metric = ( 100 * result . prscissors / input_length ) . toFixed ( 2 ) + "%"
10381047 wscissors_data . metric = ( 100 * result . wide_scissors / input_length ) . toFixed ( 2 ) + "%"
10391048 latstr_data . metric = ( 100 * result . lat_str / input_length ) . toFixed ( 2 ) + "%"
1049+ sfs_data . metric = ( 100 * result . sfs / input_length ) . toFixed ( 2 ) + "%"
10401050 vowels_data . metric = ( result . vowels )
10411051 hbalance_data . metric = ( result . hand_balance ) . toFixed ( 2 )
10421052
@@ -1048,11 +1058,11 @@ function run() {
10481058 prscissors_data . score = calculateScore ( result . prscissors , prscissors_data . weight , prscissors_data . min , input_length , true )
10491059 wscissors_data . score = calculateScore ( result . wide_scissors , wscissors_data . weight , wscissors_data . min , input_length , true )
10501060 latstr_data . score = calculateScore ( result . lat_str , latstr_data . weight , latstr_data . min , input_length , true )
1061+ sfs_data . score = calculateScore ( result . sfs , sfs_data . weight , sfs_data . min , input_length , true )
10511062 vowels_data . score = ( result . vowels - vowels_data . min ) * vowels_data . weight
10521063 hbalance_data . score = ( result . hand_balance - hbalance_data . min ) * hbalance_data . weight
10531064 if ( hbalance_data . score < 0 ) { hbalance_data . score = 0 }
10541065
1055-
10561066 score += sfb_data . score
10571067 score += effort_data . score
10581068 score += psfb_data . score
@@ -1061,6 +1071,7 @@ function run() {
10611071 score += prscissors_data . score
10621072 score += wscissors_data . score
10631073 score += latstr_data . score
1074+ score += sfs_data . score
10641075 score += vowels_data . score
10651076 score += hbalance_data . score
10661077 m_score = score
@@ -1116,6 +1127,7 @@ function run() {
11161127 prscissors_data . metric = ( 100 * best_results [ besti ] . result . prscissors / input_length ) . toFixed ( 2 ) + "%"
11171128 wscissors_data . metric = ( 100 * best_results [ besti ] . result . wide_scissors / input_length ) . toFixed ( 2 ) + "%"
11181129 latstr_data . metric = ( 100 * best_results [ besti ] . result . lat_str / input_length ) . toFixed ( 2 ) + "%"
1130+ sfs_data . metric = ( 100 * best_results [ besti ] . result . sfs / input_length ) . toFixed ( 2 ) + "%"
11191131 vowels_data . metric = ( best_results [ besti ] . result . vowels )
11201132 hbalance_data . metric = ( best_results [ besti ] . result . hand_balance ) . toFixed ( 2 )
11211133
@@ -1127,6 +1139,7 @@ function run() {
11271139 prscissors_data . score = calculateScore ( best_results [ besti ] . result . prscissors , prscissors_data . weight , prscissors_data . min , input_length , true )
11281140 wscissors_data . score = calculateScore ( best_results [ besti ] . result . wide_scissors , wscissors_data . weight , wscissors_data . min , input_length , true )
11291141 latstr_data . score = calculateScore ( best_results [ besti ] . result . lat_str , latstr_data . weight , latstr_data . min , input_length , true )
1142+ sfs_data . score = calculateScore ( best_results [ besti ] . result . sfs , sfs_data . weight , sfs_data . min , input_length , true )
11301143 vowels_data . score = ( best_results [ besti ] . result . vowels - vowels_data . min ) * vowels_data . weight
11311144 hbalance_data . score = ( best_results [ besti ] . result . hand_balance - hbalance_data . min ) * hbalance_data . weight
11321145 if ( hbalance_data . score < 0 ) { hbalance_data . score = 0 }
@@ -1139,8 +1152,10 @@ function run() {
11391152 prscissors_data . score +
11401153 wscissors_data . score +
11411154 latstr_data . score +
1155+ sfs_data . score +
11421156 vowels_data . score +
11431157 hbalance_data . score
1158+
11441159 generateLayout ( ) ;
11451160 generateStats ( ) ;
11461161 }
0 commit comments