Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Reference manual of the SageMath package kerrgeodesic_gw

Project: Sagittarius
Views: 7654
License: GPL3
Image: ubuntu2004
1
/*
2
* language_data.js
3
* ~~~~~~~~~~~~~~~~
4
*
5
* This script contains the language-specific data used by searchtools.js,
6
* namely the list of stopwords, stemmer, scorer and splitter.
7
*
8
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
9
* :license: BSD, see LICENSE for details.
10
*
11
*/
12
13
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
14
15
16
/* Non-minified version is copied as a separate JS file, is available */
17
18
/**
19
* Porter Stemmer
20
*/
21
var Stemmer = function() {
22
23
var step2list = {
24
ational: 'ate',
25
tional: 'tion',
26
enci: 'ence',
27
anci: 'ance',
28
izer: 'ize',
29
bli: 'ble',
30
alli: 'al',
31
entli: 'ent',
32
eli: 'e',
33
ousli: 'ous',
34
ization: 'ize',
35
ation: 'ate',
36
ator: 'ate',
37
alism: 'al',
38
iveness: 'ive',
39
fulness: 'ful',
40
ousness: 'ous',
41
aliti: 'al',
42
iviti: 'ive',
43
biliti: 'ble',
44
logi: 'log'
45
};
46
47
var step3list = {
48
icate: 'ic',
49
ative: '',
50
alize: 'al',
51
iciti: 'ic',
52
ical: 'ic',
53
ful: '',
54
ness: ''
55
};
56
57
var c = "[^aeiou]"; // consonant
58
var v = "[aeiouy]"; // vowel
59
var C = c + "[^aeiouy]*"; // consonant sequence
60
var V = v + "[aeiou]*"; // vowel sequence
61
62
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
63
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
64
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
65
var s_v = "^(" + C + ")?" + v; // vowel in stem
66
67
this.stemWord = function (w) {
68
var stem;
69
var suffix;
70
var firstch;
71
var origword = w;
72
73
if (w.length < 3)
74
return w;
75
76
var re;
77
var re2;
78
var re3;
79
var re4;
80
81
firstch = w.substr(0,1);
82
if (firstch == "y")
83
w = firstch.toUpperCase() + w.substr(1);
84
85
// Step 1a
86
re = /^(.+?)(ss|i)es$/;
87
re2 = /^(.+?)([^s])s$/;
88
89
if (re.test(w))
90
w = w.replace(re,"$1$2");
91
else if (re2.test(w))
92
w = w.replace(re2,"$1$2");
93
94
// Step 1b
95
re = /^(.+?)eed$/;
96
re2 = /^(.+?)(ed|ing)$/;
97
if (re.test(w)) {
98
var fp = re.exec(w);
99
re = new RegExp(mgr0);
100
if (re.test(fp[1])) {
101
re = /.$/;
102
w = w.replace(re,"");
103
}
104
}
105
else if (re2.test(w)) {
106
var fp = re2.exec(w);
107
stem = fp[1];
108
re2 = new RegExp(s_v);
109
if (re2.test(stem)) {
110
w = stem;
111
re2 = /(at|bl|iz)$/;
112
re3 = new RegExp("([^aeiouylsz])\\1$");
113
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
114
if (re2.test(w))
115
w = w + "e";
116
else if (re3.test(w)) {
117
re = /.$/;
118
w = w.replace(re,"");
119
}
120
else if (re4.test(w))
121
w = w + "e";
122
}
123
}
124
125
// Step 1c
126
re = /^(.+?)y$/;
127
if (re.test(w)) {
128
var fp = re.exec(w);
129
stem = fp[1];
130
re = new RegExp(s_v);
131
if (re.test(stem))
132
w = stem + "i";
133
}
134
135
// Step 2
136
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
137
if (re.test(w)) {
138
var fp = re.exec(w);
139
stem = fp[1];
140
suffix = fp[2];
141
re = new RegExp(mgr0);
142
if (re.test(stem))
143
w = stem + step2list[suffix];
144
}
145
146
// Step 3
147
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
148
if (re.test(w)) {
149
var fp = re.exec(w);
150
stem = fp[1];
151
suffix = fp[2];
152
re = new RegExp(mgr0);
153
if (re.test(stem))
154
w = stem + step3list[suffix];
155
}
156
157
// Step 4
158
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
159
re2 = /^(.+?)(s|t)(ion)$/;
160
if (re.test(w)) {
161
var fp = re.exec(w);
162
stem = fp[1];
163
re = new RegExp(mgr1);
164
if (re.test(stem))
165
w = stem;
166
}
167
else if (re2.test(w)) {
168
var fp = re2.exec(w);
169
stem = fp[1] + fp[2];
170
re2 = new RegExp(mgr1);
171
if (re2.test(stem))
172
w = stem;
173
}
174
175
// Step 5
176
re = /^(.+?)e$/;
177
if (re.test(w)) {
178
var fp = re.exec(w);
179
stem = fp[1];
180
re = new RegExp(mgr1);
181
re2 = new RegExp(meq1);
182
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
183
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
184
w = stem;
185
}
186
re = /ll$/;
187
re2 = new RegExp(mgr1);
188
if (re.test(w) && re2.test(w)) {
189
re = /.$/;
190
w = w.replace(re,"");
191
}
192
193
// and turn initial Y back to y
194
if (firstch == "y")
195
w = firstch.toLowerCase() + w.substr(1);
196
return w;
197
}
198
}
199
200
201
202
203
var splitChars = (function() {
204
var result = {};
205
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
206
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
207
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
208
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
209
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
210
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
211
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
212
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
213
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
214
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
215
var i, j, start, end;
216
for (i = 0; i < singles.length; i++) {
217
result[singles[i]] = true;
218
}
219
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
220
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
221
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
222
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
223
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
224
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
225
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
226
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
227
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
228
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
229
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
230
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
231
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
232
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
233
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
234
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
235
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
236
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
237
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
238
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
239
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
240
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
241
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
242
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
243
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
244
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
245
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
246
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
247
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
248
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
249
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
250
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
251
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
252
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
253
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
254
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
255
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
256
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
257
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
258
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
259
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
260
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
261
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
262
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
263
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
264
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
265
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
266
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
267
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
268
for (i = 0; i < ranges.length; i++) {
269
start = ranges[i][0];
270
end = ranges[i][1];
271
for (j = start; j <= end; j++) {
272
result[j] = true;
273
}
274
}
275
return result;
276
})();
277
278
function splitQuery(query) {
279
var result = [];
280
var start = -1;
281
for (var i = 0; i < query.length; i++) {
282
if (splitChars[query.charCodeAt(i)]) {
283
if (start !== -1) {
284
result.push(query.slice(start, i));
285
start = -1;
286
}
287
} else if (start === -1) {
288
start = i;
289
}
290
}
291
if (start !== -1) {
292
result.push(query.slice(start));
293
}
294
return result;
295
}
296
297
298
299