#
#   Function to estimate the speed of the processor
#
#		Gaston H Gonnet (April 21, 2002)
gigahertz := proc()
  seq1 := 'MIWWFIVGASFFFAFILIAKDTRTTKKNLPPGPPRLPIIGNLHQLGSKPQRSLFKLSEKYGSLMSLKFGNVSAVVASTPETVKDVLKTFDAECCSRPYMTYPARVTYNFNDLAFSPYSKYWREVRKMTVIELYTAKRVKSFQNVRQEEVASFVDFIKQHASLEKTVNMKQKLVKLSGSVICKVGFGISLEWSKLANTYEEVIQGTMEVVGRFAAADYFPIIGRIIDRITGLHSKCEKVFKEMDSFFDQSIKHHLEDTNIKDDIIGLLLKMEKGETGLGEFQLTRNHTKGILLNVLIAGVDTSGHTVTWVMTHLIKNPRVMKKAQAEVREVIKNKDDITEEDIERLEYLKMVIKETLRINPLVPLLIPREASKYIKIGGYDIPKKTWIYVNIWAVQRNPNVWKDPEVFIPERFMHSEIDYKGVDFELLPFGSGRRMCPGMGLGMALVHLTLINLLYRFDWKLPEGMNIEDVDLEESYGLVCPKKVPLQLIPVLTQWT';
  seq2 := 'MGLLTGDALFSVAVAVAIFLLLVDLMHRRQRWAARYPPGPVPVPGLGNLLQVDFENMAYSCDKLRHQFGDVFSLQFVWTPVVVVNGLLAVREALVNNSTDTSDRPTLPTNALLGFGPKAQGVIGAYYGPAWREQRRFSVSSLRNFGLGKKSLEQWVTEEAACLCAAFTNHAGQPFCPKALLNKAVCNVISSLIYARRFDYDDPMVLRLLEFLEETLRENSSLKIQVLNSIPLLLRIPCVAAKVLSAQRSFIALNDKLLAEHNTGWAPDQPPRDLTDAFLTEMHKAQGNSESSFNDENLRLLVSDLFGAGMVTTSVTLSWALLLMILHPDVQRHVQEEIDEVIGQVRCPEMADQAHMPFTNAVIHEVQRFADIVPMGVPHMTSRDTEVQGFLIPKGTMLFTNLSSVLKDETVWEKPLHFHPGHFLDAEGRFVKREAFMPFSAGPRICLGEPLARMELFLFFTSLLQRFSFSVPEGQPRPSDRGAPYLVVLPSPYQLCAVLR';
  DM := CreateDayMatrix(logPAM1,250);
  R30 :=
[[0.3740, 0.2356, 0.04106909, 0.1505, 0.5501, 0.9549, 0.7873, 0.09103562,
0.5165, 0.3044, 0.1471, 0.1756, 0.7773, 0.09268084, 0.5612, 0.5340, 0.1464,
0.08147475, 0.1956, 0.5040, 0.4691, 0.07674076, 0.9972, 0.8563, 0.4684, 0.4093,
0.05372515, 0.4518, 0.9864, 0.9151], [0.6535, 0.2171, 0.7269, 0.4243,
0.06690193, 0.3963, 0.05800019, 0.5947, 0.09240828, 0.8152, 0.5765, 0.4279,
0.4191, 0.4777, 0.8922, 0.1094, 0.6987, 0.4821, 0.6519, 0.9020, 0.5855, 0.1851,
0.3584, 0.5555, 0.1325, 0.8515, 0.9796, 0.6707, 0.8833, 0.7790], [0.5529,
0.6190, 0.8167, 0.8603, 0.6404, 0.4042, 0.4822, 0.8243, 0.1566, 0.8259, 0.8510,
0.2120, 0.8947, 0.2495, 0.2645, 0.4360, 0.8271, 0.6649, 0.06899430, 0.9464,
0.04224557, 0.2985, 0.4030, 0.2555, 0.6953, 0.1384, 0.7771, 0.03738700,
0.00081796, 0.4698], [0.03875665, 0.04857222, 0.2443, 0.2915, 0.6019, 0.8933,
0.9828, 0.6547, 0.6381, 0.4880, 0.1776, 0.4639, 0.9707, 0.8952, 0.1787, 0.5318,
0.4855, 0.7516, 0.8170, 0.4426, 0.7215, 0.01411190, 0.9901, 0.5331, 0.2415,
0.9719, 0.1856, 0.1408, 0.8584, 0.6800], [0.6289, 0.8023, 0.08358220, 0.6568,
0.7262, 0.3678, 0.6947, 0.5351, 0.5427, 0.3307, 0.4994, 0.8387, 0.6140, 0.6882,
0.8942, 0.03284874, 0.02976194, 0.7793, 0.9095, 0.3084, 0.4519, 0.7694, 0.5828,
0.7795, 0.9210, 0.3137, 0.3257, 0.8719, 0.05247172, 0.05977059], [0.8382,
0.5093, 0.4915, 0.03069146, 0.1052, 0.4042, 0.9269, 0.01952010, 0.5235, 0.6790,
0.3493, 0.07755483, 0.01882592, 0.8765, 0.09995130, 0.02302676, 0.9974, 0.4957,
0.4928, 0.2564, 0.7236, 0.2055, 0.8784, 0.4789, 0.6401, 0.1505, 0.2800, 0.6593,
0.3131, 0.3699], [0.8443, 0.1598, 0.1869, 0.05135648, 0.7175, 0.5954, 0.7510,
0.5525, 0.7638, 0.7756, 0.3991, 0.9763, 0.9682, 0.8918, 0.3030, 0.7876, 0.2565,
0.8494, 0.6940, 0.2339, 0.01510700, 0.2386, 0.9081, 0.3973, 0.8873, 0.7045,
0.7528, 0.3906, 0.8668, 0.07517002], [0.6504, 0.2454, 0.2367, 0.8382, 0.9873,
0.2450, 0.1815, 0.6832, 0.5281, 0.5358, 0.8804, 0.3526, 0.3189, 0.2955, 0.5273,
0.7485, 0.1422, 0.2273, 0.5837, 0.2757, 0.8299, 0.4697, 0.00057975, 0.1336,
0.3284, 0.5642, 0.6825, 0.3483, 0.8699, 0.1944], [0.2769, 0.7436, 0.6990,
0.8481, 0.1418, 0.6931, 0.1364, 0.3649, 0.4517, 0.3602, 0.1129, 0.6810,
0.00619069, 0.8822, 0.7534, 0.3802, 0.6932, 0.1697, 0.7275, 0.7062, 0.4146,
0.05907526, 0.03935263, 0.5740, 0.2159, 0.1501, 0.5867, 0.7635, 0.9814, 0.3890],
[0.3771, 0.9846, 0.1584, 0.4298, 0.4961, 0.06017574, 0.4834, 0.3449, 0.4400,
0.7778, 0.3884, 0.2977, 0.4750, 0.3137, 0.7368, 0.7983, 0.9596, 0.09152220,
0.7992, 0.1470, 0.5272, 0.9493, 0.8595, 0.8995, 0.9248, 0.9686, 0.5315, 0.3417,
0.6165, 0.6346], [0.4055, 0.6823, 0.6828, 0.7319, 0.8295, 0.3742, 0.2433,
0.9457, 0.5542, 0.03509193, 0.5715, 0.5561, 0.5061, 0.1913, 0.7481, 0.5648,
0.7013, 0.5030, 0.7111, 0.9537, 0.8098, 0.7466, 0.7261, 0.3356, 0.2317, 0.6419,
0.9629, 0.9726, 0.1385, 0.5276], [0.7064, 0.5956, 0.01049155, 0.6486, 0.8321,
0.8398, 0.9671, 0.8320, 0.1759, 0.1602, 0.1323, 0.07703840, 0.7276, 0.6628,
0.7263, 0.5005, 0.6584, 0.9712, 0.7669, 0.9614, 0.3794, 0.6370, 0.2876, 0.3817,
0.01658175, 0.1798, 0.2100, 0.9099, 0.9650, 0.7091], [0.4728, 0.4230, 0.5444,
0.8105, 0.7014, 0.4205, 0.9534, 0.7373, 0.04543543, 0.8894, 0.08856341,
0.05773659, 0.3588, 0.2256, 0.8990, 0.09023256, 0.5690, 0.2457, 0.8099, 0.8157,
0.5442, 0.3100, 0.6939, 0.8310, 0.1543, 0.6825, 0.3282, 0.1665, 0.8828, 0.8988],
[0.8895, 0.05624135, 0.4409, 0.9259, 0.4817, 0.9736, 0.8490, 0.3116, 0.4831,
0.3992, 0.08323081, 0.6415, 0.09326808, 0.00478934, 0.3313, 0.8478, 0.7694,
0.02764347, 0.1499, 0.7688, 0.2799, 0.4286, 0.3687, 0.2195, 0.1229, 0.2654,
0.7777, 0.6091, 0.3055, 0.6149], [0.3898, 0.8842, 0.07950175, 0.5727, 0.6689,
0.9713, 0.5066, 0.4343, 0.01126181, 0.6443, 0.4047, 0.5371, 0.8558, 0.3157,
0.7426, 0.8339, 0.05241484, 0.8118, 0.2502, 0.03322843, 0.8018, 0.7424,
0.07411461, 0.9743, 0.7842, 0.7201, 0.6138, 0.3183, 0.4293, 0.7011], [0.9189,
0.7221, 0.3400, 0.4091, 0.6494, 0.6568, 0.1221, 0.5402, 0.7702, 0.2555, 0.7742,
0.02399537, 0.01671703, 0.9420, 0.01430208, 0.4771, 0.3651, 0.8977, 0.5711,
0.4832, 0.8346, 0.5465, 0.8243, 0.2869, 0.6762, 0.8801, 0.05788591, 0.6086,
0.5575, 0.4156], [0.05716520, 0.9176, 0.1614, 0.6436, 0.4810, 0.5953, 0.6971,
0.9874, 0.9421, 0.1317, 0.03554566, 0.1926, 0.8905, 0.06341297, 0.1207, 0.5897,
0.5243, 0.7335, 0.3922, 0.8937, 0.7242, 0.3948, 0.5005, 0.4833, 0.6250, 0.5552,
0.4074, 0.9677, 0.7660, 0.4480], [0.8635, 0.3345, 0.1891, 0.5509, 0.2019,
0.9480, 0.3588, 0.4563, 0.4939, 0.2333, 0.07790191, 0.9465, 0.9539, 0.9759,
0.6186, 0.3548, 0.4503, 0.9159, 0.4205, 0.2730, 0.8041, 0.05688131, 0.9642,
0.3106, 0.1110, 0.5145, 0.7551, 0.5793, 0.7484, 0.9279], [0.6576, 0.7482,
0.3596, 0.06163265, 0.1358, 0.02269490, 0.6190, 0.07050448, 0.1340, 0.6163,
0.9047, 0.4310, 0.6116, 0.5292, 0.9796, 0.6038, 0.5510, 0.5946, 0.09932750,
0.5866, 0.7984, 0.8252, 0.7195, 0.1844, 0.7844, 0.6216, 0.5133, 0.3272, 0.5261,
0.6977], [0.8702, 0.5512, 0.7227, 0.06967672, 0.9440, 0.9562, 0.4607, 0.8863,
0.6913, 0.2715, 0.7493, 0.4345, 0.5563, 0.7598, 0.01692768, 0.9696, 0.2411,
0.09282077, 0.1086, 0.8791, 0.6617, 0.07303889, 0.2467, 0.6880, 0.9716, 0.6440,
0.9343, 0.6109, 0.5245, 0.5318], [0.7322, 0.08951550, 0.9946, 0.4277,
0.08984074, 0.3299, 0.5350, 0.8946, 0.1947, 0.09435710, 0.4991, 0.5400, 0.4966,
0.6903, 0.3044, 0.8854, 0.4952, 0.9226, 0.05536328, 0.6269, 0.7592, 0.8968,
0.8122, 0.4689, 0.08629389, 0.8555, 0.02311609, 0.1313, 0.7501, 0.3710], [
0.7813, 0.3816, 0.7206, 0.3004, 0.7423, 0.8191, 0.2934, 0.2265, 0.9273, 0.6337,
0.8869, 0.5474, 0.2152, 0.7130, 0.7426, 0.2014, 0.6973, 0.2414, 0.9544, 0.9524,
0.1712, 0.03373926, 0.2403, 0.1110, 0.6610, 0.3046, 0.6740, 0.9528, 0.08298579,
0.4384], [0.4849, 0.2052, 0.9307, 0.2843, 0.2050, 0.8968, 0.4783, 0.4758,
0.1354, 0.2330, 0.4426, 0.7513, 0.6891, 0.1793, 0.3736, 0.6385, 0.6250, 0.2757,
0.9365, 0.9515, 0.1833, 0.3149, 0.08291530, 0.1664, 0.2550, 0.9002, 0.3283,
0.9237, 0.2628, 0.9959], [0.7643, 0.2356, 0.5293, 0.5785, 0.9469, 0.3329,
0.3526, 0.6723, 0.3216, 0.4222, 0.8016, 0.7288, 0.2755, 0.1172, 0.2689, 0.4006,
0.2558, 0.6889, 0.6231, 0.8946, 0.1017, 0.7046, 0.5306, 0.2764, 0.8967, 0.3825,
0.6309, 0.1717, 0.1738, 0.7255], [0.5681, 0.5105, 0.7236, 0.2545, 0.7618,
0.7984, 0.5713, 0.4748, 0.3614, 0.3509, 0.5451, 0.4071, 0.9406, 0.02889100,
0.7780, 0.08573270, 0.6898, 0.6600, 0.7209, 0.7246, 0.8351, 0.8471, 0.4532,
0.2675, 0.04667022, 0.2099, 0.2551, 0.1935, 0.9917, 0.3416], [0.8410, 0.5706,
0.01783855, 0.7548, 0.7738, 0.2084, 0.8774, 0.4467, 0.9690, 0.1100, 0.8332,
0.8118, 0.3042, 0.3153, 0.01685315, 0.3935, 0.1241, 0.3743, 0.8227, 0.4609,
0.4749, 0.2859, 0.8980, 0.9643, 0.3703, 0.3242, 0.2547, 0.9619, 0.6963, 0.6989],
[0.2210, 0.8524, 0.7525, 0.8488, 0.2673, 0.9256, 0.06656135, 0.7678, 0.2374,
0.4082, 0.08130903, 0.02737245, 0.07018797, 0.7501, 0.8579, 0.6282, 0.9183,
0.5202, 0.8104, 0.8307, 0.9647, 0.2638, 0.5374, 0.1987, 0.2482, 0.4113, 0.5122,
0.5551, 0.2515, 0.9203], [0.9609, 0.4128, 0.2591, 0.3554, 0.4328, 0.3177,
0.9108, 0.9339, 0.3522, 0.1074, 0.9781, 0.7806, 0.3058, 0.2814, 0.5186,
0.07013706, 0.08519625, 0.4772, 0.2582, 0.4807, 0.4873, 0.4093, 0.6443, 0.2518,
0.4237, 0.8403, 0.5107, 0.1679, 0.5411, 0.01105562], [0.5165, 0.06356296,
0.9043, 0.9806, 0.8828, 0.9034, 0.4506, 0.9902, 0.9569, 0.1106, 0.8285, 0.8757,
0.8251, 0.3578, 0.4655, 0.8189, 0.7376, 0.6655, 0.8991, 0.9358, 0.9805, 0.9746,
0.1633, 0.3438, 0.6022, 0.08569320, 0.4137, 0.3516, 0.3777, 0.3645], [0.4784,
0.6717, 0.4985, 0.1090, 0.4657, 0.8003, 0.2955, 0.1210, 0.7913, 0.9483, 0.2070,
0.9845, 0.7788, 0.4875, 0.6269, 0.6890, 0.2195, 0.2041, 0.5043, 0.1244, 0.8018,
0.2705, 0.5070, 0.2979, 0.7359, 0.8314, 0.6986, 0.7873, 0.8226, 0.9147]]:

  gcold := Set(gc=3*10^7);
  gc();

  st := time();
  for iter while time()-st < 2 do

	# a global alignment on sequences with about 500 residues
	al := Align(seq1,seq2,DM,Global);

	# some counting on sequences
	C := CreateArray(1..20,1..20);
	for s in [seq1,seq2] do
	    for k to length(s)-1 do
		i1 := AToInt(s[k]);
		i2 := AToInt(s[k]);
		C[i1,i2] := C[i1,i2]+1
		od
	    od;

	# Some linear algebra
	for i to 30 do for j to 30 do R30[i,j] := R30[i,j]+0.01 od od;
	R30*R30;

	od;
r := iter * 0.01557324 / (time()-st);
Set(gc=gcold);
r
end:
