blob: 74f3d9397a8484852914827050c3275834fb057e [file] [log] [blame]
Nanang Izzuddin57b88572009-04-01 12:05:34 +00001/****************************************************************************
2**
3** ITU-T G.722.1 (2005-05) - Fixed point implementation for main body and Annex C
4** > Software Release 2.1 (2008-06)
5** (Simple repackaging; no change from 2005-05 Release 2.0 code)
6**
7** © 2004 Polycom, Inc.
8**
9** All rights reserved.
10**
11****************************************************************************/
12
13/****************************************************************************
14 Filename: dct4_a.h
15
16 Purpose: Contains tables used by dct4_a.c
17
18 Design Notes:
19
20****************************************************************************/
21
22/***************************************************************************
23 Include files
24***************************************************************************/
25#include <stdio.h>
26#include <math.h>
27
28typedef struct
29{
30 Word16 cosine;
31 Word16 minus_sine;
32} cos_msin_t;
33
34cos_msin_t a_cos_msin_2[10] = {
35 { 29805 , -1171 } ,
36 { 29621 , -3506 } ,
37 { 29255 , -5819 } ,
38 { 28708 , -8097 } ,
39 { 27984 , -10324 } ,
40 { 27088 , -12488 } ,
41 { 26025 , -14575 } ,
42 { 24801 , -16572 } ,
43 { 23425 , -18466 } ,
44 { 21903 , -20247 }
45 };
46cos_msin_t a_cos_msin_4[20] = {
47 { 29822 , -586 } ,
48 { 29776 , -1756 } ,
49 { 29684 , -2924 } ,
50 { 29547 , -4087 } ,
51 { 29364 , -5244 } ,
52 { 29135 , -6392 } ,
53 { 28862 , -7531 } ,
54 { 28544 , -8659 } ,
55 { 28182 , -9773 } ,
56 { 27776 , -10871 } ,
57 { 27328 , -11954 } ,
58 { 26838 , -13017 } ,
59 { 26306 , -14061 } ,
60 { 25734 , -15083 } ,
61 { 25122 , -16081 } ,
62 { 24471 , -17055 } ,
63 { 23783 , -18003 } ,
64 { 23057 , -18923 } ,
65 { 22297 , -19813 } ,
66 { 21502 , -20673 }
67 };
68cos_msin_t a_cos_msin_8[40] = {
69 { 29827 , -293 } ,
70 { 29815 , -878 } ,
71 { 29792 , -1464 } ,
72 { 29758 , -2048 } ,
73 { 29712 , -2632 } ,
74 { 29654 , -3215 } ,
75 { 29586 , -3797 } ,
76 { 29505 , -4377 } ,
77 { 29414 , -4955 } ,
78 { 29311 , -5532 } ,
79 { 29196 , -6106 } ,
80 { 29071 , -6678 } ,
81 { 28934 , -7248 } ,
82 { 28786 , -7814 } ,
83 { 28627 , -8378 } ,
84 { 28457 , -8938 } ,
85 { 28276 , -9495 } ,
86 { 28084 , -10049 } ,
87 { 27882 , -10598 } ,
88 { 27668 , -11144 } ,
89 { 27444 , -11685 } ,
90 { 27209 , -12221 } ,
91 { 26964 , -12753 } ,
92 { 26709 , -13280 } ,
93 { 26443 , -13802 } ,
94 { 26167 , -14318 } ,
95 { 25881 , -14829 } ,
96 { 25584 , -15335 } ,
97 { 25278 , -15834 } ,
98 { 24963 , -16327 } ,
99 { 24637 , -16814 } ,
100 { 24302 , -17295 } ,
101 { 23958 , -17769 } ,
102 { 23605 , -18236 } ,
103 { 23242 , -18695 } ,
104 { 22871 , -19148 } ,
105 { 22490 , -19594 } ,
106 { 22101 , -20031 } ,
107 { 21704 , -20461 } ,
108 { 21298 , -20884 }
109 };
110cos_msin_t a_cos_msin_16[80] = {
111 { 29828 , -146 } ,
112 { 29825 , -439 } ,
113 { 29819 , -732 } ,
114 { 29811 , -1025 } ,
115 { 29799 , -1317 } ,
116 { 29785 , -1610 } ,
117 { 29767 , -1902 } ,
118 { 29747 , -2194 } ,
119 { 29724 , -2486 } ,
120 { 29698 , -2778 } ,
121 { 29670 , -3069 } ,
122 { 29638 , -3360 } ,
123 { 29604 , -3651 } ,
124 { 29567 , -3942 } ,
125 { 29526 , -4232 } ,
126 { 29483 , -4521 } ,
127 { 29438 , -4811 } ,
128 { 29389 , -5099 } ,
129 { 29338 , -5388 } ,
130 { 29283 , -5676 } ,
131 { 29226 , -5963 } ,
132 { 29166 , -6249 } ,
133 { 29103 , -6535 } ,
134 { 29038 , -6821 } ,
135 { 28969 , -7106 } ,
136 { 28898 , -7390 } ,
137 { 28824 , -7673 } ,
138 { 28748 , -7956 } ,
139 { 28668 , -8237 } ,
140 { 28586 , -8518 } ,
141 { 28501 , -8799 } ,
142 { 28413 , -9078 } ,
143 { 28323 , -9357 } ,
144 { 28229 , -9634 } ,
145 { 28133 , -9911 } ,
146 { 28035 , -10187 } ,
147 { 27933 , -10461 } ,
148 { 27829 , -10735 } ,
149 { 27723 , -11008 } ,
150 { 27613 , -11279 } ,
151 { 27501 , -11550 } ,
152 { 27387 , -11819 } ,
153 { 27269 , -12088 } ,
154 { 27149 , -12355 } ,
155 { 27027 , -12621 } ,
156 { 26901 , -12885 } ,
157 { 26774 , -13149 } ,
158 { 26643 , -13411 } ,
159 { 26510 , -13672 } ,
160 { 26375 , -13932 } ,
161 { 26237 , -14190 } ,
162 { 26096 , -14447 } ,
163 { 25953 , -14702 } ,
164 { 25807 , -14956 } ,
165 { 25659 , -15209 } ,
166 { 25509 , -15460 } ,
167 { 25356 , -15710 } ,
168 { 25200 , -15958 } ,
169 { 25043 , -16205 } ,
170 { 24882 , -16450 } ,
171 { 24720 , -16693 } ,
172 { 24554 , -16935 } ,
173 { 24387 , -17175 } ,
174 { 24217 , -17414 } ,
175 { 24045 , -17651 } ,
176 { 23871 , -17886 } ,
177 { 23694 , -18119 } ,
178 { 23515 , -18351 } ,
179 { 23334 , -18581 } ,
180 { 23150 , -18809 } ,
181 { 22964 , -19036 } ,
182 { 22776 , -19260 } ,
183 { 22586 , -19483 } ,
184 { 22394 , -19704 } ,
185 { 22199 , -19923 } ,
186 { 22003 , -20140 } ,
187 { 21804 , -20355 } ,
188 { 21603 , -20568 } ,
189 { 21400 , -20779 } ,
190 { 21195 , -20988 }
191 };
192cos_msin_t a_cos_msin_32[160]= {
193 { 29828 , -73 } ,
194 { 29827 , -220 } ,
195 { 29826 , -366 } ,
196 { 29824 , -512 } ,
197 { 29821 , -659 } ,
198 { 29817 , -805 } ,
199 { 29813 , -952 } ,
200 { 29808 , -1098 } ,
201 { 29802 , -1244 } ,
202 { 29796 , -1390 } ,
203 { 29789 , -1537 } ,
204 { 29781 , -1683 } ,
205 { 29772 , -1829 } ,
206 { 29763 , -1975 } ,
207 { 29753 , -2121 } ,
208 { 29742 , -2267 } ,
209 { 29730 , -2413 } ,
210 { 29718 , -2559 } ,
211 { 29705 , -2705 } ,
212 { 29692 , -2851 } ,
213 { 29677 , -2997 } ,
214 { 29662 , -3142 } ,
215 { 29646 , -3288 } ,
216 { 29630 , -3433 } ,
217 { 29613 , -3579 } ,
218 { 29595 , -3724 } ,
219 { 29576 , -3869 } ,
220 { 29557 , -4014 } ,
221 { 29537 , -4159 } ,
222 { 29516 , -4304 } ,
223 { 29494 , -4449 } ,
224 { 29472 , -4594 } ,
225 { 29449 , -4738 } ,
226 { 29426 , -4883 } ,
227 { 29401 , -5027 } ,
228 { 29376 , -5172 } ,
229 { 29351 , -5316 } ,
230 { 29324 , -5460 } ,
231 { 29297 , -5604 } ,
232 { 29269 , -5747 } ,
233 { 29241 , -5891 } ,
234 { 29211 , -6034 } ,
235 { 29181 , -6178 } ,
236 { 29151 , -6321 } ,
237 { 29119 , -6464 } ,
238 { 29087 , -6607 } ,
239 { 29054 , -6749 } ,
240 { 29021 , -6892 } ,
241 { 28987 , -7034 } ,
242 { 28952 , -7177 } ,
243 { 28916 , -7319 } ,
244 { 28880 , -7460 } ,
245 { 28843 , -7602 } ,
246 { 28805 , -7744 } ,
247 { 28767 , -7885 } ,
248 { 28728 , -8026 } ,
249 { 28688 , -8167 } ,
250 { 28648 , -8308 } ,
251 { 28607 , -8448 } ,
252 { 28565 , -8589 } ,
253 { 28522 , -8729 } ,
254 { 28479 , -8869 } ,
255 { 28435 , -9008 } ,
256 { 28391 , -9148 } ,
257 { 28346 , -9287 } ,
258 { 28300 , -9426 } ,
259 { 28253 , -9565 } ,
260 { 28206 , -9703 } ,
261 { 28158 , -9842 } ,
262 { 28109 , -9980 } ,
263 { 28060 , -10118 } ,
264 { 28010 , -10255 } ,
265 { 27959 , -10393 } ,
266 { 27908 , -10530 } ,
267 { 27856 , -10667 } ,
268 { 27803 , -10803 } ,
269 { 27750 , -10940 } ,
270 { 27696 , -11076 } ,
271 { 27641 , -11212 } ,
272 { 27586 , -11347 } ,
273 { 27529 , -11482 } ,
274 { 27473 , -11617 } ,
275 { 27415 , -11752 } ,
276 { 27357 , -11886 } ,
277 { 27299 , -12021 } ,
278 { 27239 , -12154 } ,
279 { 27179 , -12288 } ,
280 { 27119 , -12421 } ,
281 { 27057 , -12554 } ,
282 { 26996 , -12687 } ,
283 { 26933 , -12819 } ,
284 { 26870 , -12951 } ,
285 { 26806 , -13083 } ,
286 { 26741 , -13215 } ,
287 { 26676 , -13346 } ,
288 { 26610 , -13476 } ,
289 { 26544 , -13607 } ,
290 { 26477 , -13737 } ,
291 { 26409 , -13867 } ,
292 { 26340 , -13996 } ,
293 { 26271 , -14125 } ,
294 { 26202 , -14254 } ,
295 { 26132 , -14383 } ,
296 { 26061 , -14511 } ,
297 { 25989 , -14638 } ,
298 { 25917 , -14766 } ,
299 { 25844 , -14893 } ,
300 { 25771 , -15020 } ,
301 { 25697 , -15146 } ,
302 { 25622 , -15272 } ,
303 { 25547 , -15397 } ,
304 { 25471 , -15523 } ,
305 { 25394 , -15648 } ,
306 { 25317 , -15772 } ,
307 { 25239 , -15896 } ,
308 { 25161 , -16020 } ,
309 { 25082 , -16143 } ,
310 { 25003 , -16266 } ,
311 { 24923 , -16389 } ,
312 { 24842 , -16511 } ,
313 { 24760 , -16632 } ,
314 { 24678 , -16754 } ,
315 { 24596 , -16875 } ,
316 { 24513 , -16995 } ,
317 { 24429 , -17115 } ,
318 { 24345 , -17235 } ,
319 { 24260 , -17354 } ,
320 { 24174 , -17473 } ,
321 { 24088 , -17592 } ,
322 { 24002 , -17710 } ,
323 { 23914 , -17827 } ,
324 { 23827 , -17945 } ,
325 { 23738 , -18061 } ,
326 { 23649 , -18178 } ,
327 { 23560 , -18293 } ,
328 { 23470 , -18409 } ,
329 { 23379 , -18524 } ,
330 { 23288 , -18638 } ,
331 { 23196 , -18752 } ,
332 { 23104 , -18866 } ,
333 { 23011 , -18979 } ,
334 { 22917 , -19092 } ,
335 { 22824 , -19204 } ,
336 { 22729 , -19316 } ,
337 { 22634 , -19427 } ,
338 { 22538 , -19538 } ,
339 { 22442 , -19649 } ,
340 { 22345 , -19759 } ,
341 { 22248 , -19868 } ,
342 { 22150 , -19977 } ,
343 { 22052 , -20086 } ,
344 { 21953 , -20194 } ,
345 { 21854 , -20301 } ,
346 { 21754 , -20408 } ,
347 { 21653 , -20515 } ,
348 { 21552 , -20621 } ,
349 { 21451 , -20726 } ,
350 { 21349 , -20831 } ,
351 { 21246 , -20936 } ,
352 { 21143 , -21040 }
353 };
354cos_msin_t a_cos_msin_64[320] = {
355{29827, -34},
356{29827, -106},
357{29827, -177},
358{29827, -249},
359{29826, -320},
360{29825, -392},
361{29824, -463},
362{29823, -535},
363{29821, -606},
364{29819, -678},
365{29818, -750},
366{29816, -821},
367{29814, -893},
368{29812, -964},
369{29809, -1035},
370{29807, -1106},
371{29804, -1177},
372{29801, -1249},
373{29797, -1320},
374{29795, -1392},
375{29791, -1463},
376{29787, -1535},
377{29784, -1606},
378{29780, -1678},
379{29776, -1749},
380{29771, -1820},
381{29767, -1892},
382{29763, -1963},
383{29758, -2035},
384{29753, -2106},
385{29748, -2177},
386{29742, -2249},
387{29737, -2320},
388{29731, -2391},
389{29726, -2462},
390{29719, -2534},
391{29713, -2605},
392{29707, -2676},
393{29701, -2747},
394{29694, -2819},
395{29686, -2890},
396{29680, -2961},
397{29673, -3032},
398{29665, -3103},
399{29658, -3174},
400{29650, -3245},
401{29643, -3316},
402{29635, -3387},
403{29626, -3459},
404{29618, -3529},
405{29610, -3600},
406{29601, -3671},
407{29592, -3742},
408{29583, -3813},
409{29574, -3884},
410{29564, -3955},
411{29554, -4026},
412{29544, -4097},
413{29535, -4167},
414{29525, -4238},
415{29514, -4309},
416{29504, -4380},
417{29493, -4450},
418{29483, -4521},
419{29472, -4591},
420{29461, -4662},
421{29450, -4733},
422{29439, -4803},
423{29427, -4874},
424{29415, -4944},
425{29403, -5015},
426{29391, -5085},
427{29379, -5155},
428{29366, -5226},
429{29353, -5296},
430{29341, -5367},
431{29328, -5438},
432{29314, -5508},
433{29301, -5578},
434{29289, -5648},
435{29274, -5718},
436{29260, -5788},
437{29247, -5858},
438{29232, -5928},
439{29218, -5998},
440{29204, -6068},
441{29188, -6139},
442{29175, -6209},
443{29159, -6279},
444{29145, -6348},
445{29128, -6418},
446{29114, -6488},
447{29097, -6557},
448{29082, -6627},
449{29066, -6697},
450{29050, -6767},
451{29034, -6837},
452{29017, -6906},
453{29001, -6975},
454{28984, -7045},
455{28966, -7114},
456{28950, -7184},
457{28933, -7254},
458{28915, -7323},
459{28897, -7392},
460{28880, -7461},
461{28862, -7530},
462{28843, -7600},
463{28825, -7669},
464{28807, -7738},
465{28788, -7806},
466{28769, -7875},
467{28751, -7944},
468{28732, -8014},
469{28712, -8082},
470{28692, -8151},
471{28672, -8219},
472{28653, -8289},
473{28633, -8357},
474{28613, -8425},
475{28593, -8494},
476{28572, -8563},
477{28551, -8632},
478{28531, -8700},
479{28510, -8768},
480{28488, -8837},
481{28468, -8905},
482{28447, -8973},
483{28425, -9041},
484{28403, -9109},
485{28381, -9177},
486{28359, -9245},
487{28336, -9313},
488{28315, -9381},
489{28292, -9448},
490{28269, -9517},
491{28246, -9584},
492{28223, -9652},
493{28200, -9720},
494{28176, -9787},
495{28153, -9854},
496{28129, -9922},
497{28105, -9990},
498{28082, -10056},
499{28057, -10124},
500{28032, -10191},
501{28009, -10258},
502{27984, -10326},
503{27959, -10392},
504{27934, -10460},
505{27909, -10526},
506{27883, -10593},
507{27858, -10661},
508{27832, -10727},
509{27807, -10794},
510{27780, -10860},
511{27754, -10927},
512{27728, -10993},
513{27701, -11059},
514{27676, -11126},
515{27648, -11192},
516{27622, -11259},
517{27595, -11324},
518{27567, -11391},
519{27540, -11456},
520{27512, -11523},
521{27484, -11588},
522{27456, -11655},
523{27429, -11720},
524{27401, -11786},
525{27372, -11852},
526{27344, -11917},
527{27315, -11982},
528{27286, -12049},
529{27257, -12114},
530{27229, -12179},
531{27199, -12244},
532{27169, -12309},
533{27140, -12375},
534{27110, -12439},
535{27080, -12505},
536{27050, -12570},
537{27019, -12634},
538{26990, -12699},
539{26958, -12764},
540{26928, -12828},
541{26897, -12892},
542{26866, -12956},
543{26835, -13021},
544{26804, -13086},
545{26773, -13149},
546{26741, -13214},
547{26709, -13278},
548{26677, -13342},
549{26645, -13406},
550{26613, -13470},
551{26581, -13534},
552{26549, -13597},
553{26515, -13661},
554{26483, -13725},
555{26450, -13788},
556{26417, -13851},
557{26384, -13915},
558{26350, -13978},
559{26316, -14041},
560{26283, -14103},
561{26248, -14166},
562{26215, -14229},
563{26180, -14292},
564{26146, -14355},
565{26112, -14417},
566{26077, -14480},
567{26042, -14543},
568{26008, -14605},
569{25972, -14667},
570{25937, -14730},
571{25901, -14792},
572{25866, -14854},
573{25830, -14916},
574{25794, -14977},
575{25759, -15039},
576{25723, -15101},
577{25687, -15162},
578{25650, -15224},
579{25613, -15286},
580{25577, -15347},
581{25540, -15408},
582{25503, -15470},
583{25465, -15531},
584{25428, -15592},
585{25391, -15653},
586{25353, -15714},
587{25315, -15774},
588{25277, -15834},
589{25240, -15895},
590{25201, -15956},
591{25162, -16016},
592{25124, -16076},
593{25086, -16136},
594{25047, -16196},
595{25008, -16256},
596{24969, -16316},
597{24930, -16375},
598{24891, -16436},
599{24851, -16496},
600{24811, -16555},
601{24772, -16615},
602{24732, -16674},
603{24692, -16732},
604{24652, -16791},
605{24612, -16852},
606{24572, -16911},
607{24531, -16969},
608{24490, -17027},
609{24449, -17086},
610{24408, -17145},
611{24367, -17203},
612{24325, -17261},
613{24284, -17320},
614{24242, -17379},
615{24200, -17436},
616{24158, -17494},
617{24116, -17552},
618{24075, -17610},
619{24032, -17668},
620{23990, -17725},
621{23947, -17782},
622{23904, -17840},
623{23862, -17897},
624{23819, -17954},
625{23775, -18011},
626{23732, -18068},
627{23689, -18125},
628{23645, -18181},
629{23602, -18238},
630{23558, -18294},
631{23514, -18351},
632{23470, -18407},
633{23426, -18464},
634{23381, -18520},
635{23337, -18576},
636{23293, -18632},
637{23248, -18688},
638{23202, -18743},
639{23158, -18799},
640{23112, -18854},
641{23068, -18910},
642{23022, -18964},
643{22977, -19020},
644{22931, -19074},
645{22885, -19129},
646{22839, -19185},
647{22793, -19239},
648{22747, -19294},
649{22700, -19348},
650{22655, -19403},
651{22607, -19457},
652{22561, -19511},
653{22514, -19565},
654{22467, -19619},
655{22421, -19673},
656{22373, -19726},
657{22326, -19780},
658{22279, -19834},
659{22230, -19887},
660{22183, -19940},
661{22135, -19993},
662{22087, -20047},
663{22039, -20099},
664{21991, -20152},
665{21942, -20205},
666{21894, -20257},
667{21845, -20309},
668{21797, -20362},
669{21748, -20413},
670{21699, -20466},
671{21650, -20518},
672{21601, -20570},
673{21551, -20621},
674{21502, -20674}
675};
676
677cos_msin_t *a_cos_msin_table[] = {a_cos_msin_2, a_cos_msin_4,
678 a_cos_msin_8, a_cos_msin_16,
679 a_cos_msin_32,a_cos_msin_64
680 };
681
682Word16 dct_core_a[10][10] = {
683
684{ 10453, 10196, 9688, 8941, 7973, 6810, 5479, 4013, 2448, 823 },
685{ 10196, 7973, 4013, -823, -5479, -8941, -10453, -9688, -6810, -2448 },
686{ 9688 , 4013, -4013, -9688, -9688, -4013, 4013, 9688, 9688, 4013 },
687{ 8941 , -823, -9688, -7973, 2448, 10196, 6810, -4013, -10453, -5479 },
688{ 7973 , -5479, -9688, 2448, 10453, 823, -10196, -4013, 8941, 6810 },
689{ 6810 , -8941, -4013, 10196, 823, -10453, 2448, 9688, -5479, -7973 },
690{ 5479 , -10453, 4013, 6810, -10196, 2448, 7973, -9688, 823, 8941 },
691{ 4013 , -9688, 9688, -4013, -4013, 9688, -9688, 4013, 4013, -9688 },
692{ 2448 , -6810, 9688, -10453, 8941, -5479, 823, 4013, -7973, 10196 },
693{ 823 , -2448, 4013, -5479, 6810, -7973, 8941, -9688, 10196, -10453 }};
694
695Word16 anal_bias[320] = {
696 1, 1, 3, 1, 4, 1, 3, -2, 4, 3,
697 4, 1, 3, 0, 2, -3, 0, 0, 2, 2,
698 4, 1, 1, -5, 4, 1, 2, -1, 0, -1,
699 1, -2, 0, 2, 2, 2, 4, 1, 3, 0,
700 5, 3, 2, 0, 3, 0, 1, -4, 1, 1,
701 2, 0, 4, 0, 1, -4, 6, 1, 3, -1,
702 1, 0, 0, -4, 1, 1, 3, 1, 3, 2,
703 4, -2, 4, 3, 5, 1, 3, 0, 1, -3,
704 1, 1, 2, 0, 4, 1, 2, -4, 4, 2,
705 2, -1, 1, -1, 1, -4, 0, 0, 3, 0,
706 5, 2, 3, -1, 6, 2, 5, 0, 4, 0,
707 1, -3, 1, 0, 3, 0, 4, 0, 1, -3,
708 4, 1, 3, -1, 1, -2, 1, -4, 0, 1,
709 2, 1, 3, 2, 2, -2, 4, 3, 3, 0,
710 3, 0, 0, -2, 1, 0, 2, 0, 5, -1,
711 1, -3, 4, 2, 2, 0, 2, -3, 1, -4,
712 -1, 1, 2, 2, 4, 1, 3, -1, 5, 2,
713 2, 0, 3, -1, 2, -3, 0, 1, 2, 2,
714 4, 0, 1, -5, 5, 1, 3, 0, 2, -1,
715 0, -2, 1, 2, 2, 2, 4, 1, 0, 0,
716 4, 2, 4, 1, 4, -1, 1, -4, 0, 1,
717 3, 1, 5, 1, 1, -2, 4, 0, 2, 0,
718 2, -1, 0, -2, 0, 1, 1, 1, 4, 2,
719 3, -2, 5, 4, 4, 0, 3, 0, 3, -4,
720 1, 2, 2, 0, 4, 1, 0, -3, 4, 2,
721 3, -1, 1, -1, 1, -4, 0, 2, 3, 1,
722 4, 1, 3, 0, 3, 3, 4, 1, 2, 0,
723 1, -3, 2, 2, 2, 1, 5, 0, 1, -4,
724 4, 1, 3, -2, 3, -1, 0, -2, 0, 2,
725 2, 0, 5, 1, 4, -1, 4, 3, 4, 1,
726 3, 0, 1, -4, 2, 0, 3, 1, 5, 0,
727 1, -5, 5, 2, 2, 0, 0, 0, 0, -4};
728