一.优化方法总结
1.将小数转换成单精度进行运算:通常小数被系统默认为双精度double型数据,将小数转成float型可提高运行速率。如:3.14---->3.14f
2.将int---->替换为unsighed short
3.将浮点型转成整形运算,可能会牺牲一定精度,如:a0.1023=(a1023)/1000=(a<<10)/1000
4.除法运算---->乘法运算
5.乘除法----->移位运算
6.二维数组运算----->一维数组运算
7.使用小的数据类型,能用1字节,不用两字节。能用2,不用4。
8.使用自加、自减。a+=1代替a=a+1;两个指令周期不同。
9.平方运算写成乘法。pow(a,2)----->a*a。
10.对于需要反复多次调用的变量声明为寄存器变量,rigister a。注意寄存器变量只能是局部动态变量,不能是静态变量!
11.采用事先判断变量为0或1,若判断正确,则不进行运算。
12.并行运算,由于32bit的CPU,都有两个ALU运算单元,因此可以让两个ALU同时运行。并行运算的条件是不能有数据依赖。
13.inline函数内联的用法:适用于函数体小,需要频繁被调用的情况;用于定义,不用于声明,因此需要放在定义前加上inline关键字。
14.函数和宏函数(不太建议),有点类似于inline的用法。使用宏函数可以减少函数调用的时间。
15.对于需要多次运算的,可采用查表法,即事先算好存在表里,直接查找!
16.学会优化算法,优化执行算法是最有效的手段。
17.对于支持FPU或DSP的处理器可开启,提高浮点型数据的执行速度。
18.提高编译器的优化等级,以获得更高质量的编译代码,提高程序执行效率。选择-O3优化等级最高,但调试效果变差。
二.AGA8优化算法
采用上述的一些优化原则对AGA8算法进行优化。
//aga8_font.h:存储一些固定的查表数据
#ifndef __AGA8_FONT_H
#define __AGA8_FONT_H
#include "sys.h"
//58种物质的状态方程参数,an,un,bn,cn,kn,gn,qn,fn
double an[58] = { 0.1538326,1.341953,-2.998583,-0.04831228,0.3757965,-1.589575,-0.05358847,0.886594630,-0.71023704,-1.471722,1.32185035,-0.78665925,2.29129e-9,0.1576724,-0.4363864,-0.04408159,-0.003433888,0.03205905,0.02487355,0.07332279,-0.001600573,0.6424706,-0.4162601,-0.06689957,0.2791795,-0.6966051,-0.002860589,-0.008098836,3.150547,0.007224479,-0.7057529,0.5349792,-0.07931491,-1.418465,-5.99905e-17,0.1058402,0.03431729,-0.007022847,0.02495587,0.04296818,0.7465453,-0.2919613,7.294616,-9.936757,-0.005399808,-0.2432567,0.04987016,0.003733797,1.874951,0.002168144,-0.6587164,0.000205518,0.009776195,-0.02048708,0.01557322,0.006862415,-0.001226752,0.002850908 };//an
double un[58] = { 0.0,0.5,1.0,3.5,-0.5,4.5,0.5,7.5,9.5,6.0,12.0,12.5,-6.0,2.0,3.0,2.0,2.0,11.0,-0.5,0.5,0,4,6,21,23,22,-1,-0.5,7,-1,6,4,1,9,-13,21,8,-0.5,0,2,7,9,22,23,1,9,3,8,23,1.5,5,-0.5,4,7,3,0,1,0 };//un
double un_2[10] = { 0.0,0.5,1.0,3.5,-0.5,4.5,2.0,3.0,2.0,11.0 };
u8 bn[58] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9 };//bn
u8 cn[58] = { 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1 };//cn
u8 kn[58] = { 0,0,0,0,0,0,0,0,0,0,0,0,3,2,2,2,4,4,0,0,2,2,2,4,4,4,4,0,1,1,2,2,3,3,4,4,4,0,0,2,2,2,4,4,0,2,2,4,4,0,2,0,2,1,2,2,2,2 };//kn
u8 gn[58] = { 0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0 };//gn
u8 qn[58] = { 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,1 };//qn
u8 fn[58] = { 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };//fn
//21种识别组分的特种参数Gi,Qi
double Gi[21] = { 0,0.027815,0.189065,0.0793,0.141239,0.3325,0.0885,0.034369,0.038953,0.021,0.256692,0.281835,0.332267,0.366911,0.289731,0.337542,0.383381,0.427354,0.469659,0,0 };//Gi
double Qi[21] = { 0,0,0.69,0,0,1.06775,0.633276,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };//Qi
/***********************************B备用查表数据**************************************/
double B_parameter[10][21][21] = {
{
{0.0151622688, 0.0144777187, 0.0148591761, 0.0185250577, 0.0215399907, 0.0114288165, 0.0151573849, 0.0100641873, 0.0147439324, 0.0130843927, 0.0247674883, 0.0243885720, 0.0267152092, 0.0270711962, 0.0293528218, 0.0315269824,0.0335871711, 0.0355517478, 0.0374327846, 0.0103878970, 0.0132233753},
{0.0144777187, 0.0138240747, 0.0141883100, 0.0176886835, 0.0205674974, 0.0109128252, 0.0144730552, 0.0096098067, 0.0140782693, 0.0124936550, 0.0236492791, 0.0232874702, 0.0255090638, 0.0258489785, 0.0280275927, 0.0301035937,0.0320707685, 0.0339466479, 0.0357427591, 0.0099189015, 0.0126263628},
{0.0148591761, 0.0141883100, 0.0145621422, 0.0181547431, 0.0211094077, 0.0112003552, 0.0148543898, 0.0098630049, 0.0144492022, 0.0128228366, 0.0242723879, 0.0239010461, 0.0261811740, 0.0265300448, 0.0287660609, 0.0308967602,0.0329157658, 0.0348410708, 0.0366845057, 0.0101802437, 0.0129590409},
{0.0185250577, 0.0176886835, 0.0181547431, 0.0226336683, 0.0263172732, 0.0139635755, 0.0185190906, 0.0122962898, 0.0180139398, 0.0159863364, 0.0302605867, 0.0297976318, 0.0326402861, 0.0330752262, 0.0358628860, 0.0385192464,0.0410363575, 0.0434366510, 0.0457348766, 0.0126917940, 0.0161561434},
{0.0215399907, 0.0205674974, 0.0211094077, 0.0263172732, 0.0306003807, 0.0162361322, 0.0215330524, 0.0142974975, 0.0209456889, 0.0185880952, 0.0351854642, 0.0346471639, 0.0379524571, 0.0384581832, 0.0416995316, 0.0447882117,0.0477149799, 0.0505059186, 0.0531781779, 0.0147573696, 0.0187855382},
{0.0114288165, 0.0109128252, 0.0112003552, 0.0139635755, 0.0162361322, 0.0086146637, 0.0114251351, 0.0075860514, 0.0111134883, 0.0098625822, 0.0186689131, 0.0183832985, 0.0201370406, 0.0204053718, 0.0221251857, 0.0237639960,0.0253168981, 0.0267977310, 0.0282155942, 0.0078300530, 0.0099673427},
{0.0151573849, 0.0144730552, 0.0148543898, 0.0185190906, 0.0215330524, 0.0114251351, 0.0151525025, 0.0100609455, 0.0147391832, 0.0130801781, 0.0247595104, 0.0243807161, 0.0267066039, 0.0270624762, 0.0293433669, 0.0315168272,0.0335763523, 0.0355402961, 0.0374207270, 0.0103845509, 0.0132191159},
{0.0100641873, 0.0096098067, 0.0098630049, 0.0122962898, 0.0142974975, 0.0075860514, 0.0100609455, 0.0066802579, 0.0097865101, 0.0086849654, 0.0164397984, 0.0161882869, 0.0177326278, 0.0179689196, 0.0194833835, 0.0209265157,0.0222939974, 0.0235980152, 0.0248465820, 0.0068951252, 0.0087772171},
{0.0147439324, 0.0140782693, 0.0144492022, 0.0180139398, 0.0209456889, 0.0111134883, 0.0147391832, 0.0097865101, 0.0143371381, 0.0127233862, 0.0240841378, 0.0237156760, 0.0259781199, 0.0263242849, 0.0285429591, 0.0306571333,0.0326604801, 0.0345708528, 0.0363999906, 0.0101012884, 0.0128585341},
{0.0130843927, 0.0124936550, 0.0128228366, 0.0159863364, 0.0185880952, 0.0098625822, 0.0130801781, 0.0086849654, 0.0127233862, 0.0112912741, 0.0213732884, 0.0210462997, 0.0230540886, 0.0233612902, 0.0253302360, 0.0272064441,0.0289842992, 0.0306796453, 0.0323029000, 0.0089643130, 0.0114112101},
{0.0247674883, 0.0236492791, 0.0242723879, 0.0302605867, 0.0351854642, 0.0186689131, 0.0247595104, 0.0164397984, 0.0240841378, 0.0213732884, 0.0404575650, 0.0398386071, 0.0436391571, 0.0442206599, 0.0479476838, 0.0514991639,0.0548644716, 0.0580735975, 0.0611462614, 0.0169685765, 0.0216003156},
{0.0243885720, 0.0232874702, 0.0239010461, 0.0297976318, 0.0346471639, 0.0183832985, 0.0243807161, 0.0161882869, 0.0237156760, 0.0210462997, 0.0398386071, 0.0392291186, 0.0429715242, 0.0435441307, 0.0472141350, 0.0507112813,0.0540251033, 0.0571851329, 0.0602107884, 0.0167089752, 0.0212698537},
{0.0267152092, 0.0255090638, 0.0261811740, 0.0326402861, 0.0379524571, 0.0201370406, 0.0267066039, 0.0177326278, 0.0259781199, 0.0230540886, 0.0436391571, 0.0429715242, 0.0470709503, 0.0476981827, 0.0517183005, 0.0555490699,0.0591790261, 0.0626405183, 0.0659548173, 0.0183029892, 0.0232989693},
{0.0270711962, 0.0258489785, 0.0265300448, 0.0330752262, 0.0384581832, 0.0204053718, 0.0270624762, 0.0179689196, 0.0263242849, 0.0233612902, 0.0442206599, 0.0435441307, 0.0476981827, 0.0483337730, 0.0524074599, 0.0562892753,0.0599676016, 0.0634752191, 0.0668336819, 0.0185468811, 0.0236094340},
{0.0293528218, 0.0280275927, 0.0287660609, 0.0358628860, 0.0416995316, 0.0221251857, 0.0293433669, 0.0194833835, 0.0285429591, 0.0253302360, 0.0479476838, 0.0472141350, 0.0517183005, 0.0524074599, 0.0568244870, 0.0610334711,0.0650218156, 0.0688250636, 0.0724665857, 0.0201100570, 0.0255992940},
{0.0315269824, 0.0301035937, 0.0308967602, 0.0385192464, 0.0447882117, 0.0237639960, 0.0315168272, 0.0209265157, 0.0306571333, 0.0272064441, 0.0514991639, 0.0507112813, 0.0555490699, 0.0562892753, 0.0610334711, 0.0655542143,0.0698379751, 0.0739229292, 0.0778341786, 0.0215996069, 0.0274954312},
{0.0335871711, 0.0320707685, 0.0329157658, 0.0410363575, 0.0477149799, 0.0253168981, 0.0335763523, 0.0222939974, 0.0326604801, 0.0289842992, 0.0548644716, 0.0540251033, 0.0591790261, 0.0599676016, 0.0650218156, 0.0698379751,0.0744016661, 0.0787535591, 0.0829203962, 0.0230110730, 0.0292921707},
{0.0355517478, 0.0339466479, 0.0348410708, 0.0434366510, 0.0505059186, 0.0267977310, 0.0355402961, 0.0235980152, 0.0345708528, 0.0306796453, 0.0580735975, 0.0571851329, 0.0626405183, 0.0634752191, 0.0688250636, 0.0739229292,0.0787535591, 0.0833600026, 0.0877705658, 0.0243570338, 0.0310055248},
{0.0374327846, 0.0357427591, 0.0366845057, 0.0457348766, 0.0531781779, 0.0282155942, 0.0374207270, 0.0248465820, 0.0363999906, 0.0323029000, 0.0611462614, 0.0602107884, 0.0659548173, 0.0668336819, 0.0724665857, 0.0778341786,0.0829203962, 0.0877705658, 0.0924144911, 0.0256457602, 0.0326460217},
{0.0103878970, 0.0099189015, 0.0101802437, 0.0126917940, 0.0147573696, 0.0078300530, 0.0103845509, 0.0068951252, 0.0101012884, 0.0089643130, 0.0169685765, 0.0167089752, 0.0183029892, 0.0185468811, 0.0201100570, 0.0215996069,0.0230110730, 0.0243570338, 0.0256457602, 0.0071169035, 0.0090595320},
{0.0132233753, 0.0126263628, 0.0129590409, 0.0161561434, 0.0187855382, 0.0099673427, 0.0132191159, 0.0087772171, 0.0128585341, 0.0114112101, 0.0216003156, 0.0212698537, 0.0232989693, 0.0236094340, 0.0255992940, 0.0274954312,0.0292921707, 0.0310055248, 0.0326460217, 0.0090595320, 0.0115324201},
},//0
{
{1.6270423042, 1.3798425670, 1.7574133431, 2.2404897804, 2.7310919832, 1.4011692682, 1.8570638323, 0.7591045528, 1.4386967884, 1.3325561105, 3.2464079944, 3.1823259271, 3.5783398311, 3.6329605892, 4.2331867472, 4.1171162066,4.4432222221, 4.7560428151, 5.0569967858, 0.4039747013, 1.3380244411},
{1.3798425670, 1.2043559055, 1.5601031143, 1.8986009642, 2.2914692047, 1.2380325196, 1.5724818171, 0.6291715339, 1.2474938883, 1.1584475540, 2.6917601782, 2.7150721940, 3.0118695827, 3.0404163349, 3.4611297266, 3.7740943335,4.0728154923, 4.3593254076, 4.6349285621, 0.3475619053, 1.1511768497},
{1.7574133431, 1.5601031143, 1.9759980846, 2.3747621175, 2.9572464148, 1.690604548, 2.0722706615, 0.8754159467, 1.9514773201, 1.4685182302, 3.3741502734, 3.3391732619, 3.3566826989, 3.7136687395, 4.0996879452, 4.4074655945,4.6902884052, 4.9514866744, 5.1932368741, 0.4451926705, 1.4745445004},
{2.2404897804, 1.8986009642, 2.3747621175, 3.0852267598, 3.8132298241, 1.9088442676, 2.5782715842, 1.0426020788, 1.9909858061, 1.8349727845, 4.4273842589, 4.4332577897, 4.9217098553, 5.0178304213, 5.5396713328, 6.0405832310,6.5186979422, 6.9772680884, 7.4183815440, 0.5562862057, 1.8425028523},
{2.7310919832, 2.2914692047, 2.9572464148, 3.8132298241, 4.6090357035, 2.8022878047, 3.2385062967, 1.2012773057, 2.4334905009, 2.2428029506, 5.4113884211, 5.3967004960, 6.0155798922, 6.1168145012, 6.7708858221, 7.3831274273,7.9675050780, 8.5279943047, 9.0671470203, 0.6799230779, 2.2520066066},
{1.4011692682, 1.2380325196, 1.6910604548, 1.9088442676, 2.8022878047, 1.7037873962, 1.9690076806, 0.7179934047, 1.4795591078, 1.3636213215, 3.2901172293, 3.2731775044, 3.6574648699, 3.7190153825, 4.1166899079, 4.4889320197,4.8442328829, 5.1850096149, 5.5128137754, 0.4133923605, 1.3692171325},
{1.8570638323, 1.5724818171, 2.0722706615, 2.5782715842, 3.2385062967, 1.9690076806, 2.2755135148, 0.8297599405, 1.7098748669, 1.5758896101, 3.8022737516, 3.7826971022, 4.2268046100, 4.2979363910, 4.7781463976, 5.2139013808,5.6304120714, 6.0304250457, 6.4156899407, 0.4777431356, 1.5823564938},
{0.7591045528, 0.6291715339, 0.8754159467, 1.0426020788, 1.2012773057, 0.7179934047, 0.8297599405, 0.3025697516, 0.6539336956, 0.5746439477, 1.5808406771, 1.5727014515, 1.5412930395, 1.5672310539, 1.7348151593, 1.8916817858,2.0414091973, 2.1850159915, 2.3231560117, 0.1742077615, 0.5770020796},
{1.4386967884, 1.2474938883, 1.9514773201, 1.9909858061, 2.4334905009, 1.4795591078, 1.7098748669, 0.6539336956, 1.2848405608, 1.1841608585, 2.8571187482, 2.8424083892, 3.1761213119, 3.2295714206, 3.5749096754, 3.8981625696,4.2067037816, 4.5026323221, 4.7872955568, 0.3589875319, 1.1890202284},
{1.3325561105, 1.1584475540, 1.4685182302, 1.8349727845, 2.2428029506, 1.3636213215, 1.5758896101, 0.5746439477, 1.1841608585, 1.0913703861, 2.6332358216, 2.6196781617, 2.9272414448, 2.9765032197, 3.2947808775, 3.5927037766,3.8770677962, 4.1498074694, 4.4121645825, 0.3308573818, 1.0958489773},
{3.2464079944, 2.6917601782, 3.3741502734, 4.4273842589, 5.4113884211, 3.2901172293, 3.8022737516, 1.5808406771, 2.8571187482, 2.6332358216, 6.3534167508, 6.3207051103, 7.0627874178, 7.1816452062, 7.9495789347, 8.6684011236,9.3545087297, 10.0125693538, 10.6455791523, 0.7982858254, 2.6440416735},
{3.1823259271, 2.7150721940, 3.3391732619, 4.4332577897, 5.3967004960, 3.2731775044, 3.7826971022, 1.5727014515, 2.8424083892, 2.6196781617, 6.3207051103, 6.2881618911, 7.0264234624, 7.1446692914, 7.9086491832, 8.6237703946,9.3063454596, 9.9610179473, 10.5907685878, 0.7941757158, 2.6304283778},
{3.5783398311, 3.0118695827, 3.3566826989, 4.9217098553, 6.0155798922, 3.6574648699, 4.2268046100, 1.5412930395, 3.1761213119, 2.9272414448, 7.0627874178, 7.0264234624, 7.8513606245, 7.9834891037, 8.8371640455, 9.6362440541,10.3989568364, 11.1304911396, 11.8341776466, 0.8874159062, 2.9392537899},
{3.6329605892, 3.0404163349, 3.7136687395, 5.0178304213, 6.1168145012, 3.7190153825, 4.2979363910, 1.5672310539, 3.2295714206, 2.9765032197, 7.1816452062, 7.1446692914, 7.9834891037, 8.1178411382, 8.9858823507, 9.7984098662,10.5739581409, 11.3178032422, 12.0333319039, 0.9023499947, 2.9887177175},
{4.2331867472, 3.4611297266, 4.0996879452, 5.5396713328, 6.7708858221, 4.1166899079, 4.7781463976, 1.7348151593, 3.5749096754, 3.2947808775, 7.9495789347, 7.9086491832, 8.8371640455, 8.9858823507, 9.9467432592, 10.8461543879,11.7046320836, 12.5280165836, 13.3200567657, 0.9988383307, 3.3083014722},
{4.1171162066, 3.7740943335, 4.4074655945, 6.0405832310, 7.3831274273, 4.4889320197, 5.2139013808, 1.8916817858, 3.8981625696, 3.5927037766, 8.6684011236, 8.6237703946, 9.6362440541, 9.7984098662, 10.8461543879, 11.8268926764,12.7629962214, 13.6608333501, 14.5244919238, 1.0891559640, 3.6074469396},
{4.4432222221, 4.0728154923, 4.6902884052, 6.5186979422, 7.9675050780, 4.8442328829, 5.6304120714, 2.0414091973, 4.2067037816, 3.8770677962, 9.3545087297, 9.3063454596, 10.3989568364, 10.5739581409, 11.7046320836, 12.7629962214, 13.7731927569, 14.7420940732, 15.6741115873, 1.1753631181, 3.8929778868},
{4.7560428151, 4.3593254076, 4.9514866744, 6.9772680884, 8.5279943047, 5.1850096149, 6.0304250457, 2.1850159915, 4.5026323221, 4.1498074694, 10.0125693538, 9.9610179473, 11.1304911396, 11.3178032422, 12.5280165836, 13.6608333501, 14.7420940732, 15.7791545866, 16.7767366371, 1.2580462615, 4.1668367854},
{5.0569967858, 4.6349285621, 5.1932368741, 7.4183815440, 9.0671470203, 5.5128137754, 6.4156899407, 2.3231560117, 4.7872955568, 4.4121645825, 10.6455791523, 10.5907685878, 11.8341776466, 12.0333319039, 13.3200567657, 14.5244919238, 15.6741115873, 16.7767366371, 17.8373873355, 1.3375818515, 4.4302705177},
{0.4039747013, 0.3475619053, 0.4451926705, 0.5562862057, 0.6799230779, 0.4133923605, 0.4777431356, 0.1742077615, 0.3589875319, 0.3308573818, 0.7982858254, 0.7941757158, 0.8874159062, 0.9023499947, 0.9988383307, 1.0891559640,1.1753631181, 1.2580462615, 1.3375818515, 0.1003019767, 0.3322151013},
{1.3380244411, 1.1511768497, 1.4745445004, 1.8425028523, 2.2520066066, 1.3692171325, 1.5823564938, 0.5770020796, 1.1890202284, 1.0958489773, 2.6440416735, 2.6304283778, 2.9392537899, 2.9887177175, 3.3083014722, 3.6074469396,3.8929778868, 4.1668367854, 4.4302705177, 0.3322151013, 1.1003459470},
},//1
{
{-44.7222186675, -33.6859490738, -53.2406013609, -69.4090672231, -88.6986454272, -44.0017339624, -58.2799578033, -14.6660892452, -35.9596173550, -34.7622023258, -108.9968821144, -106.3635407220, -122.7706144486, -124.8831288829, -156.3777071287, -137.7189457615, -150.5609983073, -162.9747782352, -174.939620630, -4.0241164987, -34.6797225117},
{-33.6859490738, -26.8759277001, -43.9405795965, -52.1989452766, -65.3937801698, -35.9763209805, -43.7623756515, -10.5514785831, -28.3150561357, -27.5139590599, -78.4774105754, -81.0830909693, -91.0893597049, -91.6036065038, -109.4812633818, -121.1984321045, -132.4859880666, -143.3941801364, -153.9528945594, -3.1195403455, -26.8841107307},
{-53.2406013609, -43.9405795965, -68.6811588896, -79.5682782995, -106.1179430580, -65.3997840536, -74.0504981615, -19.9025856140, -67.5107593418, -43.0788816126, -120.1451325288, -119.4953052203, -110.2354570334, -133.1552163328, -149.6618295261, -161.0477877057, -171.1925953100, -180.2476367979, -188.3143588202, -4.9868658096, -42.9766689245},
{-69.4090672231, -52.1989452766, -79.5682782995, -107.7231576679, -141.5255715732, -66.8396555322, -91.9448718875, -22.6439885637, -56.3660321650, -53.9510809155, -165.9231303865, -168.9483934211, -190.0937779507, -194.9929820468, -219.1858964680, -242.6441399267, -265.2422813443, -287.0809209781, -308.2198922950, -6.2454453490, -53.8230719050},
{-88.6986454272, -65.3937801698, -106.1179430580, -141.5255715732, -177.8210454895, -123.8889977820, -124.7595324375, -25.8533221673, -72.4193305992, -69.3165904168, -213.1787811202, -215.3172312750, -244.2333373753, -249.2021015621, -281.6110215552, -311.7502778245, -340.7844711390, -368.8428531597, -396.0022981929, -8.0241761588, -69.1521238668},
{-44.0017339624, -35.9763209805, -65.3997840536, -66.8396555322, -123.8889977820, -86.3142139851, -86.9207207442, -17.4066410811, -50.4549855912, -48.2932877420, -148.5229460251, -149.2813386213, -170.1588431734, -173.6206112314, -196.2001017866, -217.1983038994, -237.4266019686, -256.9750464082, -275.8971960121, -5.5904920568, -48.1787029019},
{-58.2799578033, -43.7623756515, -74.0504981615, -91.9448718875, -124.7595324375, -86.9207207442, -87.5314892632, -17.5289528647, -50.8095192002, -48.6326316818, -149.5665768073, -150.3302984241, -171.3545035837, -174.8405965545, -199.2961015848, -220.9393022106, -241.8447656673, -262.0985688004, -281.7502806894, -5.6297749404, -48.5172416849},
{-14.6660892452, -10.5514785831, -19.9025856140, -22.6439885637, -25.8533221673, -17.4066410811, -17.5289528647, -3.5103274390, -11.1925598673, -9.7391134964, -38.9376342866, -39.1364588747, -34.3152509087, -35.0133717779, -39.5668870073, -43.8015101435, -47.8808698215, -51.8231261469, -55.6390801066,-1.1274120936, -9.7160056316},
{-35.9596173550, -28.3150561357, -67.5107593418, -56.3660321650, -72.4193305992, -50.4549855912, -50.8095192002, -11.1925598673, -29.4934687286, -28.2298479552, -86.8191084142, -87.2624269100, -99.4663750516, -101.4899520434, -114.6887963359, -126.9632982532, -138.7877526564, -150.2147985274, -161.2757436666, -3.2679228965, -28.1628673713},
{-34.7622023258, -27.5139590599, -43.0788816126, -53.9510809155, -69.3165904168, -48.2932877420, -48.6326316818, -9.7391134964, -28.2298479552, -27.0203658616, -83.0994228821, -83.5237478012, -95.2048289131, -97.1417075939, -109.7750594384, -121.5236715137, -132.8415179504, -143.7789824611, -154.3660314919, -3.1279117199, -26.9562549997},
{-108.9968821144, -78.4774105754, -120.1451325288, -165.9231303865, -213.1787811202, -148.5229460251, -149.5665768073, -38.9376342866, -86.8191084142, -83.0994228821, -255.5670089261, -256.8719933247, -292.7964180350, -298.7531656747, -337.6062386759, -373.7383505847, -408.5456700701, -442.1831490475,-474.7429474230, -9.6196942737, -82.9022539892},
{-106.3635407220, -81.0830909693, -119.4953052203, -168.9483934211, -215.3172312750, -149.2813386213, -150.3302984241, -39.1364588747, -87.2624269100, -83.5237478012, -256.8719933247, -258.1836412761, -294.2915044277, -300.2786686019, -339.3301344016, -375.6467452507, -410.6317989792, -444.4410387227,-477.1670949775, -9.6688146629, -83.3255721182},
{-122.7706144486, -91.0893597049, -110.2354570334, -190.0937779507, -244.2333373753, -170.1588431734, -171.3545035837, -34.3152509087, -99.4663750516, -95.2048289131, -292.7964180350, -294.2915044277, -335.4491754407, -342.2736649528, -386.7866114876, -428.1822242757, -468.0600571367, -506.5976344151,-543.9005412980, -11.0210313833, -94.9789376847},
{-124.8831288829, -91.6036065038, -133.1552163328, -194.9929820468, -249.2021015621, -173.6206112314, -174.8405965545, -35.0133717779, -101.4899520434,-97.1417075939, -298.7531656747, -300.2786686019, -342.2736649528, -349.2369941476, -394.6555268607, -436.8933057532, -477.5824264994, -516.9040250579,-554.9658346761, -11.2452469086, -96.9112207593},
{-156.3777071287, -109.4812633818, -149.6618295261, -219.1858964680, -281.6110215552, -196.2001017866, -199.2961015848, -39.5668870073, -114.6887963359,-109.7750594384, -337.6062386759, -339.3301344016, -386.7866114876, -394.6555268607, -445.9807737775, -493.7116074567, -539.6923788374, -584.1277807455, -627.1395572177, -12.7076996933, -109.5145976182},
{-137.7189457615, -121.1984321045, -161.0477877057, -242.6441399267, -311.7502778245, -217.1983038994, -220.9393022106, -43.8015101435, -126.9632982532,-121.5236715137, -373.7383505847, -375.6467452507, -428.1822242757, -436.8933057532, -493.7116074567, -546.5508059301, -597.4526427025, -646.6437177308, -694.2588046365, -14.0677338835, -121.2353339183},
{-150.5609983073, -132.4859880666, -171.1925953100, -265.2422813443, -340.7844711390, -237.4266019686, -241.8447656673, -47.8808698215, -138.7877526564, -132.8415179504, -408.5456700701, -410.6317989792, -468.0600571367, -477.5824264994, -539.6923788374, -597.4526427025, -653.0951128409, -706.8674931103, -758.9171089844, -15.3779020986, -132.5263266516},
{-162.9747782352, -143.3941801364, -180.2476367979, -287.0809209781, -368.8428531597, -256.9750464082, -262.0985688004, -51.8231261469, -150.2147985274, -143.7789824611, -442.1831490475, -444.4410387227, -506.5976344151, -516.9040250579, -584.1277807455, -646.6437177308, -706.8674931103, -765.0672053608, -821.4023099525, -16.6440368210, -143.4378399860},
{-174.9939620630, -153.9528945594, -188.3143588202, -308.2198922950, -396.0022981929, -275.8971960121, -281.7502806894, -55.6390801066, -161.2757436666, -154.3660314919, -474.7429474230, -477.1670949775, -543.9005412980, -554.9658346761, -627.1395572177, -694.2588046365, -758.9171089844, -821.4023099525, -881.8856043858, -17.8696070043, -153.9997692668},
{-4.0241164987, -3.1195403455, -4.9868658096, -6.2454453490, -8.0241761588,-5.5904920568, -5.6297749404, -1.1274120936, -3.2679228965, -3.1279117199,-9.6196942737, -9.6688146629, -11.0210313833, -11.2452469086, -12.7076996933, -14.0677338835, -15.3779020986, -16.6440368210, -17.8696070043, -0.3620910160, -3.1204901655},
{ -34.6797225117, -26.8841107307, -42.9766689245, -53.8230719050, -69.1521238668, -48.1787029019, -48.5172416849, -9.7160056316, -28.1628673713, -26.9562549997, -82.9022539892, -83.3255721182, -94.9789376847, -96.9112207593, -109.5145976182, -121.2353339183, -132.5263266516, -143.4378399860, -153.9997692668, -3.1204901655, -26.8922962528 },
},//2
{
{-202952.0459021931, -84487.5368191307, -392948.5863264250, -572835.6340594675, -926974.7451292673, -388698.9280777847, -513131.6785658543, -11418.9342943008, -101459.2422389524, -121468.5330251136, -1344982.2987839351, -1283160.6866845351, -1688131.5148690087, -1733671.4952175291, -3111426.3229178027, -1668184.6679212388, -1945505.0226617767, -2227107.7486401186, -2511438.8692091927, -114.1563415840, -117322.4340273267},
{-84487.5368191307, -43018.3913841033, -225255.6963581730, -237164.3982414844, -358010.8156779288, -215619.4073303319, -211312.3069415910, -4048.3888378596, -49335.5578349365, -60142.8840691413, -478116.5567254834, -557086.3032307535, -666611.3404391999, -657745.3154734459, -1002760.0649981552, -1197197.6840397031, -1395704.9809394360, -1597130.2009250389, -1800360.7779040532, -52.5569808033, -54014.6331549913},
{-392948.5863264250, -225255.6963581730, -1007721.9204889017, -971822.2046051548, -1826177.4847698216, -1636476.7199713986, -1247909.6100496119, -34964.9049131644, -967537.9976602730, -270668.3170049111, -1989127.3813132350, -2028420.0787634235, -1217934.7050193311, -2282342.9966673739, -2806466.8023199579, -3034111.5272353040, -3207448.7734984369, -3332629.3756818362, -3414739.4284512838, -254.3745617277, -261429.5651247456},
{-572835.6340594675, -237164.3982414844, -971822.2046051548, -1616838.4121954124, -2882651.9841126329, -1017654.4644629715, -1533802.2679036576, -31649.8927716080, -296491.0441593929, -342847.0199667123, -3547750.9709358816, -3927869.7953034891, -4725796.1968021682, -4997831.3840503469, -6147566.7896242943, -7339594.9638572168, -8556572.8915942330, -9791439.5722677782, -11037374.2572262082, -322.2082340805, -331144.5843607410},
{-926974.7451292673, -358010.8156779288, -1826177.4847698216, -2882651.9841126329, -4396389.9713299396, -6051741.4944876432, -3061725.9580332646, -34524.6592078434, -488907.1342069864, -565347.1067855204, -5850162.4054041961, -6296203.4394869115, -7792732.7686252696, -8089678.5694899252, -10137200.8385030981, -12102828.7724278029, -14109598.2946909945, -16145865.9724803772, -18200384.5430468284, -531.3142081199, -546050.0508775471},
{-388698.9280777847, -215619.4073303319, -1636476.7199713986, -1017654.4644629715, -6051741.4944876432, -8330374.5470569916, -4214542.8739968557, -42163.3574379420, -672992.9806787405, -778214.5276542634, -8052895.8552706260, -8519869.6521958783, -10726892.8732172977, -11135646.2450577077, -13954112.2039649282, -16659848.5485635176, -19422217.3254351243, -22225191.0561376847, -25053287.6002964526, -731.3673857092, -751651.6443064967},
{-513131.6785658543, -211312.3069415910, -1247909.6100496119, -1533802.2679036576, -3061725.9580332646, -4214542.8739968557, -2132241.6580936187, -21331.4871534365, -340483.8227797977, -393718.0103294180, -4074159.5291006356, -4310413.1425554929, -5427000.8705571759, -5633799.3285113629, -7276845.8664053166, -8731149.4248291925, -10227438.2200885750, -11756983.0496033430, -13311191.2509203069, -370.0168805499, -380279.1895304552},
{-11418.9342943008, -4048.3888378596, -34964.9049131644, -31649.8927716080, -34524.6592078434, -42163.3574379420, -21331.4871534365, -213.4056158457, -4755.0555002801, -3938.8549827544, -102099.7017324806, -108020.2905790067, -54293.0952092374, -56361.9595110184, -70627.3430157806, -84322.1568546666, -98303.6100842571, -112490.5812257320, -126804.7089743458, -3.7017428602, -3804.4096059172},
{-101459.2422389524, -49335.5578349365, -967537.9976602730, -296491.0441593929, -488907.1342069864, -672992.9806787405, -340483.8227797977, -4755.0555002801, -54369.6504262063, -62870.2721126229, -650576.0760359454, -688301.8812463033, -866602.5239787648, -899624.8267003814, -1127322.6085842280, -1345913.2082260554, -1569079.0198446328, -1795525.2180478296, -2024001.0341289996, -59.0855926224, -60724.3140961312},
{-121468.5330251136, -60142.8840691413, -270668.3170049111, -342847.0199667123, -565347.1067855204, -778214.5276542634, -393718.0103294180, -3938.8549827544, -62870.2721126229, -72699.9545615995, -752292.7701338964, -795916.9542264941, -1002094.6625356548, -1040279.9578542490, -1303577.9815542151, -1556344.9273228969, -1814402.4133046635, -2076253.1698995915, -2340450.8723967392, -68.3235455256, -70218.4788967483},
{-1344982.2987839351, -478116.5567254834, -1989127.3813132350, -3547750.9709358816, -5850162.4054041961, -8052895.8552706260, -4074159.5291006356, -102099.7017324806, -650576.0760359454, -752292.7701338964, -7784659.7760415394, -8236079.0168616148, -10369587.9063662738, -10764726.0019377880, -13489310.9183175433, -16104921.1615053248, -18775277.4520105608, -21484886.1749918684, -24218780.8888624683, -707.0060722706, -726614.6770293263},
{-1283160.6866845351, -557086.3032307535, -2028420.0787634235, -3927869.7953034891, -6296203.4394869115, -8519869.6521958783, -4310413.1425554929, -108020.2905790067, -688301.8812463033, -795916.9542264941, -8236079.0168616148, -8713675.2951945886, -10970902.7531262394, -11388954.2378828526, -14271533.2207839526, -17038818.2736910917, -19864024.0045134276, -22730758.3499159142, -25623186.9897026829, -748.0041574255, -768749.8319763414},
{-1688131.5148690087, -666611.3404391999, -1217934.7050193311, -4725796.1968021682, -7792732.7686252696, -10726892.8732172977, -5427000.8705571759, -54293.0952092374, -866602.5239787648, -1002094.6625356548, -10369587.9063662738,-10970902.7531262394, -13812851.9988493659, -14339197.3158012256, -17968491.8015681915, -21452626.1280293539, -25009685.1508184858, -28619030.5368925072, -32260726.1764991060, -941.7703313520, -967890.0535513054},
{-1733671.4952175291, -657745.3154734459, -2282342.9966673739, -4997831.3840503469, -8089678.5694899252, -11135646.2450577077, -5633799.3285113629, -56361.9595110184, -899624.8267003814, -1040279.9578542490, -10764726.0019377880,-11388954.2378828526, -14339197.3158012256, -14885599.2722291537, -18653189.7562868223, -22270088.6838974617, -25962691.1381895468, -29709572.3525907099,-33490036.5423729382, -977.6569392439, -1004771.9659220059},
{-3111426.3229178027, -1002760.0649981552, -2806466.8023199579, -6147566.7896242943, -10137200.8385030981, -13954112.2039649282, -7276845.8664053166, -70627.3430157806, -1127322.6085842280, -1303577.9815542151, -13489310.9183175433, -14271533.2207839526, -17968491.8015681915, -18653189.7562868223, -23374368.8595171124, -27906715.9146940336, -32533927.2895791903, -37229155.5439687520, -41966466.7270270139, -1225.1048863238, -1259082.8087859603},
{-1668184.6679212388, -1197197.6840397031, -3034111.5272353040, -7339594.9638572168, -12102828.7724278029, -16659848.5485635176, -8731149.4248291925, -84322.1568546666, -1345913.2082260554, -1556344.9273228969, -16104921.1615053248, -17038818.2736910917, -21452626.1280293539, -22270088.6838974617, -27906715.9146940336, -33317896.1033785157, -38842335.0344251618, -44447979.4835819229, -50103866.8437782601, -1462.6557077892, -1503222.0321772876},
{-1945505.0226617767, -1395704.9809394360, -3207448.7734984369, -8556572.8915942330, -14109598.2946909945, -19422217.3254351243, -10227438.2200885750, -98303.6100842571, -1569079.0198446328, -1814402.4133046635, -18775277.4520105608, -19864024.0045134276, -25009685.1508184858, -25962691.1381895468, -32533927.2895791903, -38842335.0344251618, -45282780.9488709942, -51817897.0649193227, -58411586.8669425622, -1705.1785882783, -1752471.2131820025},
{ -2227107.7486401186, -1597130.2009250389, -3332629.3756818362, -9791439.5722677782, -16145865.9724803772, -22225191.0561376847, -11756983.0496033430, -112490.5812257320, -1795525.2180478296, -2076253.1698995915, -21484886.1749918684, -22730758.3499159142, -28619030.5368925072, -29709572.3525907099, -37229155.5439687520, -44447979.4835819229, -51817897.0649193227, -59296147.4530976117, -66841424.7589466050, -1951.2663911802, -2005384.1886705796 },
{ -2511438.8692091927, -1800360.7779040532, -3414739.4284512838, -11037374.2572262082, -18200384.5430468284, -25053287.6002964526, -13311191.2509203069, -126804.7089743458, -2024001.0341289996, -2340450.8723967392, -24218780.8888624683, -25623186.9897026829, -32260726.1764991060, -33490036.5423729382, -41966466.7270270139, -50103866.8437782601, -58411586.8669425622, -66841424.7589466050, -75346818.5659088343, -2199.5598579807, -2260564.0014948975 },
{ -114.1563415840, -52.5569808033, -254.3745617277, -322.2082340805, -531.3142081199, -731.3673857092, -370.0168805499, -3.7017428602, -59.0855926224, -68.3235455256, -707.0060722706, -748.0041574255, -941.7703313520, -977.6569392439, -1225.1048863238, -1462.6557077892, -1705.1785882783, -1951.2663911802, -2199.5598579807, -0.0642105886, -65.9914503190 },
{ -117322.4340273267, -54014.6331549913, -261429.5651247456, -331144.5843607410, -546050.0508775471, -751651.6443064967, -380279.1895304552, -3804.4096059172, -60724.3140961312, -70218.4788967483, -726614.6770293263, -768749.8319763414, -967890.0535513054, -1004771.9659220059, -1259082.8087859603, -1503222.0321772876, -1752471.2131820025, -2005384.1886705796, -2260564.0014948975,-65.9914503190, -67821.7037177830 },
},//3
{
{0.0000000000, 0.0000450208, 0.0002044159, 0.0001294234, 0.0002556658, 0.0003302683, 0.0001166617, 0.0000956413, 0.0000627136, 0.0000287478, 0.0005168166, 0.0005612887, 0.0007061323, 0.0007886389, 0.0006283340, 0.0008682860,0.0010371527, 0.0012101166, 0.0013866202, 0.0000000000, 0.0000000000},
{0.0000450208, 0.0000940567, 0.0002930435, 0.0001880922, 0.0003325352, 0.0003693074, 0.0001650950, 0.0000972528, 0.0001130295, 0.0000700841, 0.0006298769, 0.0006590185, 0.0008289294, 0.0009242995, 0.0007679336, 0.0009347698,0.0011064611, 0.0012820662, 0.0014610557, 0.0000838952, 0.0000410447},
{0.0002044159, 0.0002930435, 0.0004323828, 0.0001469597, 0.0005303245, 0.0006897560, 0.0003149134, 0.0002645554, 0.0002599301, 0.0002506143, 0.0008293198, 0.0008583943, 0.0011343462, 0.0011227734, 0.0010297310, 0.0012153094,0.0014089844, 0.0016102254, 0.0018188378, 0.0004689675, 0.0002294364},
{0.0001294234, 0.0001880922, 0.0001469597, 0.0002806010, 0.0004268128, 0.0004482006, 0.0002378296, 0.0001756446, 0.0002053642, 0.0001488444, 0.0007404567, 0.0007706787, 0.0009492831, 0.0010365571, 0.0009129197, 0.0010909666,0.0012735667, 0.0014598291, 0.0016492597, 0.0002446720, 0.0001197026},
{0.0002556658, 0.0003325352, 0.0005303245, 0.0004268128, 0.0006114930, 0.0004748482, 0.0003504810, 0.0003184083, 0.0003461453, 0.0002663160, 0.0009700384, 0.0010027362, 0.0012080671, 0.0013092043, 0.0011793078, 0.0013860767,0.0015973323, 0.0018121846, 0.0020301505, 0.0004820322, 0.0002358281},
{0.0003302683, 0.0003693074, 0.0006897560, 0.0004482006, 0.0004748482, 0.0003086357, 0.0002973861, 0.0003133180, 0.0003303966, 0.0002686830, 0.0006650385, 0.0006758431, 0.0007853149, 0.0008343664, 0.0007883891, 0.0008981755,0.0010092531, 0.0011213467, 0.0012343230, 0.0005254385, 0.0002570641},
{0.0001166617, 0.0001650950, 0.0003149134, 0.0002378296, 0.0003504810, 0.0002973861, 0.0001902943, 0.0001597095, 0.0001725424, 0.0001266715, 0.0005930137, 0.0006200824, 0.0007565369, 0.0008268788, 0.0007262411, 0.0008648442,0.0010067523, 0.0011512887, 0.0012980825, 0.0002128568, 0.0001041375},
{0.0000956413, 0.0000972528, 0.0002645554, 0.0001756446, 0.0003184083, 0.0003133180, 0.0001597095, 0.0001080242, 0.0001144246, 0.0000774403, 0.0005302152, 0.0005614177, 0.0007970019, 0.0008808900, 0.0007556451, 0.0009173775,0.0010837412, 0.0012538371, 0.0014271607, 0.0000999418, 0.0000488952},
{0.0000627136, 0.0001130295, 0.0002599301, 0.0002053642, 0.0003461453, 0.0003303966, 0.0001725424, 0.0001144246, 0.0001328036, 0.0000873311, 0.0006395400, 0.0006763413, 0.0008404522, 0.0009279233, 0.0007981321, 0.0009672208,0.0011410969, 0.0013188303, 0.0014998996, 0.0001179718, 0.0000577162},
{0.0000287478, 0.0000700841, 0.0002506143, 0.0001488444, 0.0002663160, 0.0002686830, 0.0001266715, 0.0000774403, 0.0000873311, 0.0000522789, 0.0005133098, 0.0005455982, 0.0006834452, 0.0007578490, 0.0006447625, 0.0007870920,0.0009336331, 0.0010835702, 0.0012364438, 0.0000543470, 0.0000265886},
{0.0005168166, 0.0006298769, 0.0008293198, 0.0007404567, 0.0009700384, 0.0006650385, 0.0005930137, 0.0005302152, 0.0006395400, 0.0005133098, 0.0014092815, 0.0014408326, 0.0016920957, 0.0018092475, 0.0016837724, 0.0019372342,0.0021945941, 0.0024550510, 0.0027181933, 0.0009865248, 0.0004826447},
{0.0005612887, 0.0006590185, 0.0008583943, 0.0007706787, 0.0010027362, 0.0006758431, 0.0006200824, 0.0005614177, 0.0006763413, 0.0005455982, 0.0014408326, 0.0014698790, 0.0017196141, 0.0018344889, 0.0017166092, 0.0019680238,0.0022229926, 0.0024807775, 0.0027410057, 0.0010557017, 0.0005164886},
{0.0007061323, 0.0008289294, 0.0011343462, 0.0009492831, 0.0012080671, 0.0007853149, 0.0007565369, 0.0007970019, 0.0008404522, 0.0006834452, 0.0016920957, 0.0017196141, 0.0019982117, 0.0021230585, 0.0020059857, 0.0022853886,0.0025680803, 0.0028533602, 0.0031408886, 0.0013364950, 0.0006538631},
{0.0007886389, 0.0009242995, 0.0011227734, 0.0010365571, 0.0013092043, 0.0008343664, 0.0008268788, 0.0008808900, 0.0009279233, 0.0007578490, 0.0018092475, 0.0018344889, 0.0021230585, 0.0022501675, 0.0021385403, 0.0024272305,0.0027188758, 0.0030128325, 0.0033087995, 0.0014903586, 0.0007291389},
{0.0006283340, 0.0007679336, 0.0010297310, 0.0009129197, 0.0011793078, 0.0007883891, 0.0007262411, 0.0007556451, 0.0007981321, 0.0006447625, 0.0016837724, 0.0017166092, 0.0020059857, 0.0021385403, 0.0020043722, 0.0022955155,0.0025906636, 0.0028889820, 0.0031900514, 0.0012499414, 0.0006115179},
{0.0008682860, 0.0009347698, 0.0012153094, 0.0010909666, 0.0013860767, 0.0008981755, 0.0008648442, 0.0009173775, 0.0009672208, 0.0007870920, 0.0019372342, 0.0019680238, 0.0022853886, 0.0024272305, 0.0022955155, 0.0026136755,0.0029355048, 0.0032602193, 0.0035874406, 0.0015406100, 0.0007537238},
{0.0010371527, 0.0011064611, 0.0014089844, 0.0012735667, 0.0015973323, 0.0010092531, 0.0010067523, 0.0010837412, 0.0011410969, 0.0009336331, 0.0021945941, 0.0022229926, 0.0025680803, 0.0027188758, 0.0025906636, 0.0029355048,0.0032836326, 0.0036343220, 0.0039872409, 0.0018403293, 0.0009003576},
{0.0012101166, 0.0012820662, 0.0016102254, 0.0014598291, 0.0018121846, 0.0011213467, 0.0011512887, 0.0012538371, 0.0013188303, 0.0010835702, 0.0024550510, 0.0024807775, 0.0028533602, 0.0030128325, 0.0028889820, 0.0032602193,0.0036343220, 0.0040106315, 0.0043888660, 0.0021473520, 0.0010505645},
{0.0013866202, 0.0014610557, 0.0018188378, 0.0016492597, 0.0020301505, 0.0012343230, 0.0012980825, 0.0014271607, 0.0014998996, 0.0012364438, 0.0027181933, 0.0027410057, 0.0031408886, 0.0033087995, 0.0031900514, 0.0035874406,0.0039872409, 0.0043888660, 0.0047920886, 0.0024606889, 0.0012038606},
{0.0000000000, 0.0000838952, 0.0004689675, 0.0002446720, 0.0004820322, 0.0005254385, 0.0002128568, 0.0000999418, 0.0001179718, 0.0000543470, 0.0009865248, 0.0010557017, 0.0013364950, 0.0014903586, 0.0012499414, 0.0015406100,0.0018403293, 0.0021473520, 0.0024606889, 0.0000000000, 0.0000000000},
{0.0000000000, 0.0000410447, 0.0002294364, 0.0001197026, 0.0002358281, 0.0002570641, 0.0001041375, 0.0000488952, 0.0000577162, 0.0000265886, 0.0004826447, 0.0005164886, 0.0006538631, 0.0007291389, 0.0006115179, 0.0007537238,0.0009003576, 0.0010505645, 0.0012038606, 0.0000000000, 0.0000000000},
},//4
{
{0.0000000000,-4614728.6396312006,-181445291.4172290862,-143643391.8103487492,-455008817.6693986654,-419951681.2783505321,-147364490.8297181726,-944742.5940752613,-8135046.8277968243,-5719559.6490243291,-1282291639.6957836151,-1331092343.3620364666,-2175480215.2497801781,-2476564632.8229880333,-4053267533.2625484467,-2075912432.4917237759,-2821810215.2474007607,-3682258260.9390988350,-4653738653.4386119843,0.0000000000,0.0000000000},
{-4614728.6396312006,-3926597.7939468529,-125486637.7675454170,-63269121.7505128533,-162406119.9305384159,-216160103.9705956280,-62723023.9261655957,-233284.2093844221,-5591423.2477838332,-5456660.3278803695,-380959929.4593563080,-506905904.4864736795,-723390897.9820325375,-776512559.8052958250,-1049744188.3023114204,-1486235936.1923186779,-2000916162.7792308331,-2591632561.0271186829,-3255783480.0858778954,-388.0273203712,-2699813.1491087088},
{-181445291.4172290862,-125486637.7675454170,-1516770899.0678410530,-357221316.7075282931,-2559147938.7366638184,-7037329611.7093887329,-1457292735.9799566269,-13304778.9421070535,-869945583.4136831760,-161211950.6342855394,-3704079032.1260967255,-4030383065.3408970833,-2256297590.1328597069,-5375055568.2869091034,-5900201959.6567535400,-7028874512.9855213165,-8059369474.4104766846,-8969472879.3949832916,-9745129624.1145610809,-19882.9182422165,-138341197.3714688122},
{-143643391.8103487492,-63269121.7505128533,-357221316.7075282931,-1030029657.6289366484,-2885342977.9316453934,-1692973074.4539268017,-1078437518.4114587307,-5591378.8534323219,-92588767.6918302178,-97944107.7558639050,-5516167603.2828626633,-6787733478.4054384232,-9559942476.4751510620,-11095933125.6388053894,-11701977982.4909706116,-16265274258.1686000824,-21596395424.4406166077,-27671443913.7386398315,-34462329559.7536621094,-10611.4815130344,-73832474.7159820050},
{-455008817.6693986654,-162406119.9305384159,-2559147938.7366638184,-2885342977.9316453934,-6090640538.0713586807,-18462710922.8472023010,-3439497392.9681658745,-9252430.3576115593,-257067715.7499521077,-288667930.2346279621,-11903705832.6853981018,-13971144548.2206172943,-20040387587.9490623474,-22480808851.1300621033,-24900574240.9957809448,-34040248617.5883941650,-44618025206.7205581665,-56583232041.2648315430,-69877815738.5769500732,-34436.8457056478,-239604388.5801729560},
{-419951681.2783505321,-216160103.9705956280,-7037329611.7093887329,-1692973074.4539268017,-18462710922.8472023010,-46844215257.0002441406,-11392534328.2444763184,-29955129.2374527864,-957842040.9538952112,-1136869688.7326874733,-31857320580.1837615967,-35871215404.3799591064,-50854346084.9046478271,-55928149911.0574340820,-64981833164.6499404907,-86106479631.4294586182,-110048551169.2396545410,-136676669612.2826843262,-165847553813.6428527832,-146533.9889620091,-1019552926.8726761341},
{-147364490.8297181726,-62723023.9261655957,-1457292735.9799566269,-1078437518.4114587307,-3439497392.9681658745,-11392534328.2444763184,-1839989919.8690087795,-3853953.1663952046,-126253670.9240283072,-135281782.1603285372,-7169965302.5389404297,-8306910269.4995555878,-12365287570.8670368195,-13989604558.8248481750,-15776656027.9051589966,-22007977000.7097206116,-29337853512.5132598877,-37747839729.0329132080,-47212042826.7887191772,-14982.8323706911,-104247422.0799462646},
{-944742.5940752613,-233284.2093844221,-13304778.9421070535,-5591378.8534323219,-9252430.3576115593,-29955129.2374527864,-3853953.1663952046,-6505.5337233741,-336524.9509193532,-206401.9558477842,-59402861.5103567988,-69691391.6724136174,-32510195.9481189325,-37193869.9896014333,-39232429.6542228758,-55398587.3373311087,-74436477.0956747234,-96265706.3152419478,-120789485.6636129469,-17.5565621275,-122154.8968242446},
{-8135046.8277968243,-5591423.2477838332,-869945583.4136831760,-92588767.6918302178,-257067715.7499521077,-957842040.9538952112,-126253670.9240283072,-336524.9509193532,-7353881.5979816737,-7058101.3625697214,-585165408.0565376282,-685669211.7896302938,-1039550736.3173624277,-1188048657.9436957836,-1256534971.3861305714,-1771122998.9538245201,-2376595338.1820616722,-3070378178.0921549797,-3849381140.6508440971,-628.4103588074,-4372348.1844562255},
{-5719559.6490243291,-5456660.3278803695,-161211950.6342855394,-97944107.7558639050,-288667930.2346279621,-1136869688.7326874733,-135281782.1603285372,-206401.9558477842,-7058101.3625697214,-6166766.5268192580,-685492518.9153730869,-807297944.8862978220,-1233811002.8936073780,-1416175368.8477663994,-1481534755.1335902214,-2103588515.0950922966,-2838057445.1031403542,-3681902036.7262039185,-4631432359.8820667267,-422.5255385117,-2939844.5542881973},
{-1282291639.6957836151,-380959929.4593563080,-3704079032.1260967255,-5516167603.2828626633,-11903705832.6853981018,-31857320580.1837615967,-7169965302.5389404297,-59402861.5103567988,-585165408.0565376282,-685492518.9153730869,-21306534404.3925895691,-24136061137.2098426819,-34582928475.6836166382,-38275799628.2789611816,-43801337058.8777084351,-58615083291.4336776733,-75525060676.8910369873,-94442532287.0996856689,-115269187054.1555786133,-86831.4669381602,-604155233.1207035780},
{-1331092343.3620364666,-506905904.4864736795,-4030383065.3408970833,-6787733478.4054384232,-13971144548.2206172943,-35871215404.3799591064,-8306910269.4995555878,-69691391.6724136174,-685669211.7896302938,-807297944.8862978220,-24136061137.2098426819,-27281752506.7163200378,-38940869474.8426589966,-43001063674.9190216064,-49478122523.2347640991,-65977429659.9876632690,-84764243453.6638946533,-105738400145.2727813721,-128789553541.2907714844,-102955.1696354388,-716340592.9371031523},
{-2175480215.2497801781,-723390897.9820325375,-2256297590.1328597069,-9559942476.4751510620,-20040387587.9490623474,-50854346084.9046478271,-12365287570.8670368195,-32510195.9481189325,-1039550736.3173624277,-1233811002.8936073780,-34582928475.6836166382,-38940869474.8426589966,-55207760100.7117538452,-60716964145.2098617554,-70542947552.0864105225,-93477929782.5092620850,-119472308222.8510131836,-148383460640.1095275879,-180055836424.6035766602,-159022.3738158343,-1106444503.4947462082},
{-2476564632.8229880333,-776512559.8052958250,-5375055568.2869091034,-11095933125.6388053894,-22480808851.1300621033,-55928149911.0574340820,-13989604558.8248481750,-37193869.9896014333,-1188048657.9436957836,-1416175368.8477663994,-38275799628.2789611816,-43001063674.9190216064,-60716964145.2098617554,-66611987938.0166549683,-77845344391.1357879639,-102766011862.8908233643,-130929491490.5818939209,-162178519454.4817810059,-196342613822.0315551758,-183557.0742579783,-1277151831.0091667175},
{-4053267533.2625484467,-1049744188.3023114204,-5900201959.6567535400,-11701977982.4909706116,-24900574240.9957809448,-64981833164.6499404907,-15776656027.9051589966,-39232429.6542228758,-1256534971.3861305714,-1481534755.1335902214,-43801337058.8777084351,-49478122523.2347640991,-70542947552.0864105225,-77845344391.1357879639,-89716282058.4963684082,-119507839191.8403167725,-153404047429.5558471680,-191223324278.8817749023,-232765963589.9654846191,-189298.7210986006,-1317101011.9663808346},
{-2075912432.4917237759,-1486235936.1923186779,-7028874512.9855213165,-16265274258.1686000824,-34040248617.5883941650,-86106479631.4294586182,-22007977000.7097206116,-55398587.3373311087,-1771122998.9538245201,-2103588515.0950922966,-58615083291.4336776733,-65977429659.9876632690,-93477929782.5092620850,-102766011862.8908233643,-119507839191.8403167725,-158267268733.3599548340,-202177051902.7691955566,-250995600202.0557861328,-304459679564.3323974609,-271377.6184531760,-1888188857.3538105488},
{ -2821810215.2474007607,-2000916162.7792308331,-8059369474.4104766846,-21596395424.4406166077,-44618025206.7205581665,-110048551169.2396545410,-29337853512.5132598877,-74436477.0956747234,-2376595338.1820616722,-2838057445.1031403542,-75525060676.8910369873,-84764243453.6638946533,-119472308222.8510131836,-130929491490.5818939209,-153404047429.5558471680,-202177051902.7691955566,-257225041074.4031372070,-318238212624.7896118164,-384881624035.8220214844,-368711.3264581161,-2565416492.9540128708 },
{ -3682258260.9390988350,-2591632561.0271186829,-8969472879.3949832916,-27671443913.7386398315,-56583232041.2648315430,-136676669612.2826843262,-37747839729.0329132080,-96265706.3152419478,-3070378178.0921549797,-3681902036.7262039185,-94442532287.0996856689,-105738400145.2727813721,-148383460640.1095275879,-162178519454.4817810059,-191223324278.8817749023,-250995600202.0557861328,-318238212624.7896118164,-392565305014.1398925781,-473562449187.4775390625,-480910.6634432627,-3346076073.8928589821 },
{ -4653738653.4386119843,-3255783480.0858778954,-9745129624.1145610809,-34462329559.7536621094,-69877815738.5769500732,-165847553813.6428527832,-47212042826.7887191772,-120789485.6636129469,-3849381140.6508440971,-4631432359.8820667267,-115269187054.1555786133,-128789553541.2907714844,-180055836424.6035766602,-196342613822.0315551758,-232765963589.9654846191,-304459679564.3323974609,-384881624035.8220214844,-473562449187.4775390625,-570000900098.9929199219,-607496.3300300046,-4226832735.0801973343 },
{ 0.0000000000,-388.0273203712,-19882.9182422165,-10611.4815130344,-34436.8457056478,-146533.9889620091,-14982.8323706911,-17.5565621275,-628.4103588074,-422.5255385117,-86831.4669381602,-102955.1696354388,-159022.3738158343,-183557.0742579783,-189298.7210986006,-271377.6184531760,-368711.3264581161,-480910.6634432627,-607496.3300300046,0.0000000000,0.0000000000 },
{ 0.0000000000,-2699813.1491087088,-138341197.3714688122,-73832474.7159820050,-239604388.5801729560,-1019552926.8726761341,-104247422.0799462646,-122154.8968242446,-4372348.1844562255,-2939844.5542881973,-604155233.1207035780,-716340592.9371031523,-1106444503.4947462082,-1277151831.0091667175,-1317101011.9663808346,-1888188857.3538105488,-2565416492.9540128708,-3346076073.8928589821,-4226832735.0801973343,0.0000000000,0.0000000000 },
},//5
{
{355.8396988577,211.4313351286,514.5920633740,701.5275892179,985.2816023159,456.9937198038,604.4857788526,57.6529910823,236.5858154939,249.1339446794,1293.9517806714,1251.3278482203,1521.9563213779,1554.0751151475,2247.3552735288,1622.8444102328,1820.6373757139,2015.3558992485,2206.8148778769,4.2051874933,245.3470351521},
{211.4313351286,140.9492486583,367.0902094922,415.5275803932,560.8714642730,319.9397557426,356.9550006855,31.2524378848,153.6234427422,163.4513727069,702.4951531905,761.5706352220,877.4304233900,875.6966112523,1153.6277978586,1316.2778351841,1476.3945755482,1633.9473715343,1788.7907998718,2.6466075536,154.4134042840},
{514.5920633740,367.0902094922,873.8197797159,940.7229164227,1439.0421264673,1030.1316750874,995.8021566102,108.3382113554,850.8911913725,390.4061415915,1604.2489617055,1611.5978754220,1252.0607652930,1802.8113997819,2100.4561225724,2264.4800259307,2401.8058443498,2515.4725069364,2607.6908871845,6.5897524564,384.4718529540},
{701.5275892179,415.5275803932,940.7229164227,1383.0411840324,2053.0562873063,863.0653454811,1231.4230472128,112.4873468219,475.7711793985,491.1603066334,2454.1914049009,2584.0344128465,2986.4397445393,3101.0377186100,3613.6982551766,4123.1937416572,4624.7537650479,5118.2823234010,5603.3238834669,8.2904045104,483.6945249350},
{985.2816023159,560.8714642730,1439.0421264673,2053.0562873063,2787.4776835087,2550.0859079440,1949.9065121445,126.1085682757,675.4392182846,697.2867376799,3484.1478337184,3609.6225659639,4239.7661183592,4355.9867171818,5130.2677217199,5853.5844084160,6565.6353370789,7266.2842163923,7954.8843383682,11.7696585759,686.6877733613},
{456.9937198038,319.9397557426,1030.1316750874,863.0653454811,2550.0859079440,2332.9112826149,1783.8453551919,107.7422595418,617.9163486799,637.9032535663,3187.4250848801,3270.0885482672,3878.6921579215,3985.0149862705,4693.3553938522,5355.0717909508,6006.4818630975,6647.4609260420,7277.4173478092,10.7673114850,628.2069357420},
{604.4857788526,356.9550006855,995.8021566102,1231.4230472128,1949.9065121445,1783.8453551919,1364.0056846366,82.3844141326,472.4856948929,487.7685510015,2437.2437456397,2500.4518223060,2965.8165922076,3047.1156475615,3651.4013575383,4178.0667610217,4699.0685587396,5214.1097304999,5722.5342921279,8.2331543096,480.3543249903},
{57.6529910823,31.2524378848,108.3382113554,112.4873468219,126.1085682757,107.7422595418,82.3844141326,4.9759262505,34.5305035703,29.4606736315,248.7794747354,255.2313826088,179.1319971212,184.0423689183,216.7560844403,247.3165349515,277.4010021939,307.0037277992,336.0973880681,0.4972732899,29.0128626927},
{236.5858154939,153.6234427422,850.8911913725,475.7711793985,675.4392182846,617.9163486799,472.4856948929,34.5305035703,163.6670098907,168.9609254292,844.2507371871,866.1457427306,1027.3460948715,1055.5077375213,1243.1252956930,1418.3935894356,1590.9320551174,1760.7076677206,1927.5637221564,2.8519291957,166.3926694692},
{249.1339446794,163.4513727069,390.4061415915,491.1603066334,697.2867376799,637.9032535663,487.7685510015,29.4606736315,168.9609254292,174.4260760977,871.5585745999,894.1617882921,1060.5762703274,1089.6488195656,1283.3349892867,1464.2724496149,1642.3917838240,1817.6588986806,1989.9120203681,2.9441766944,171.7747482337},
{1293.9517806714,702.4951531905,1604.2489617055,2454.1914049009,3484.1478337184,3187.4250848801,2437.2437456397,248.7794747354,844.2507371871,871.5585745999,4354.9357180592,4467.8776883633,5299.4045563659,5444.6719965384,6412.4679005597,7316.5620506059,8206.5748084750,9082.3358197647,9943.0367457218,14.7112318328,858.3106268984},
{1251.3278482203,761.5706352220,1611.5978754220,2584.0344128465,3609.6225659639,3270.0885482672,2500.4518223060,255.2313826088,866.1457427306,894.1617882921,4467.8776883633,4583.7487234073,5436.8406130114,5585.8754545822,6578.7704147847,7506.3115641110,8419.4061309842,9317.8793429892,10200.9018977173,15.0927565249,880.5702650678},
{1521.9563213779,877.4304233900,1252.0607652930,2986.4397445393,4239.7661183592,3878.6921579215,2965.8165922076,179.1319971212,1027.3460948715,1060.5762703274,5299.4045563659,5436.8406130114,6448.7033724914,6625.4754270476,7803.1603242403,8903.3282643249,9986.3609356722,11052.0510385756,12099.4149272711,17.9017037338,1044.4551978347},
{1554.0751151475,875.6966112523,1802.8113997819,3101.0377186100,4355.9867171818,3985.0149862705,3047.1156475615,184.0423689183,1055.5077375213,1089.6488195656,5444.6719965384,5585.8754545822,6625.4754270476,6807.0931625830,8017.0607942839,9147.3865716720,10260.1073678107,11355.0102004877,12431.0844602110,18.3924257854,1073.0858357395},
{2247.3552735288,1153.6277978586,2100.4561225724,3613.6982551766,5130.2677217199,4693.3553938522,3651.4013575383,216.7560844403,1243.1252956930,1283.3349892867,6412.4679005597,6578.7704147847,7803.1603242403,8017.0607942839,9442.1013851461,10773.3437022747,12083.8517350930,13373.3746435872,14640.7221814153,21.6616979016,1263.8279184861},
{1622.8444102328,1316.2778351841,2264.4800259307,4123.1937416572,5853.5844084160,5355.0717909508,4178.0667610217,247.3165349515,1418.3935894356,1464.2724496149,7316.5620506059,7506.3115641110,8903.3282643249,9147.3865716720,10773.3437022747,12292.2779361307,13787.5545579592,15258.8873618009,16704.9182884263,24.7157817047,1442.0150759873},
{1820.6373757139,1476.3945755482,2401.8058443498,4624.7537650479,6565.6353370789,6006.4818630975,4699.0685587396,277.4010021939,1590.9320551174,1642.3917838240,8206.5748084750,8419.4061309842,9986.3609356722,10260.1073678107,12083.8517350930,13787.5545579592,15464.7219723166,17115.0329570899,18736.9642538711,27.7222977276,1617.4269437185},
{2015.3558992485,1633.9473715343,2515.4725069364,5118.2823234010,7266.2842163923,6647.4609260420,5214.1097304999,307.0037277992,1760.7076677206,1817.6588986806,9082.3358197647,9317.8793429892,11052.0510385756,11355.0102004877,13373.3746435872,15258.8873618009,17115.0329570899,18941.4561507563,20736.4711305431,30.6806705031,1790.0299466736},
{2206.8148778769,1788.7907998718,2607.6908871845,5603.3238834669,7954.8843383682,7277.4173478092,5722.5342921279,336.0973880681,1927.5637221564,1989.9120203681,9943.0367457218,10200.9018977173,12099.4149272711,12431.0844602110,14640.7221814153,16704.9182884263,18736.9642538711,20736.4711305431,22701.5933477045,33.5881694147,1959.6647700458},
{4.2051874933,2.6466075536,6.5897524564,8.2904045104,11.7696585759,10.7673114850,8.2331543096,0.4972732899,2.8519291957,2.9441766944,14.7112318328,15.0927565249,17.9017037338,18.3924257854,21.6616979016,24.7157817047,27.7222977276,30.6806705031,33.5881694147,0.0496954160,2.8994243393},
{245.3470351521,154.4134042840,384.4718529540,483.6945249350,686.6877733613,628.2069357420,480.3543249903,29.0128626927,166.3926694692,171.7747482337,858.3106268984,880.5702650678,1044.4551978347,1073.0858357395,1263.8279184861,1442.0150759873,1617.4269437185,1790.0299466736,1959.6647700458,2.8994243393,169.1637213362},
},//6
{
{-149025.7721131084,-69849.9085811281,-261793.6694868710,-373206.5248236733,-576075.8705524600,-249819.6514496286,-330011.3470524917,-11929.0343569359,-81929.1160914173,-93979.7859124392,-808533.5310913633,-774863.7766708832,-993083.7453312733,-1017925.9047632829,-1699982.8926359355,-1006551.5076866939,-1158804.9661826766,-1311774.0293174253,-1464821.3712670824,-231.3002533154,-91361.2304239775},
{-69849.9085811281,-38907.9179667094,-161419.4070600187,-174106.0680687244,-253201.4403168817,-149759.9180597324,-153250.5269622197,-4872.2594306260,-43870.5910401956,-51109.3059124696,-330992.3261172428,-376500.8919579549,-444870.5465904691,-440626.5793331328,-639834.3465442420,-752443.7865408087,-865985.9741034651,-979987.4819991864,-1093974.4312889138,-118.1855590475,-46682.0850308626},
{-261793.6694868710,-161419.4070600187,-585169.9999969652,-585409.0229141217,-1027150.5838987939,-854053.5330707127,-704845.7181228390,-31040.5742355832,-564483.1569697654,-186227.9178247397,-1127491.5046223318,-1144032.7439234599,-748523.4861927117,-1284749.1291604007,-1551644.0591862630,-1675938.7808539772,-1773645.1835034818,-1847759.7216307358,-1900661.1952534716,-458.3386113199,-181039.0558626673},
{-373206.5248236733,-174106.0680687244,-585409.0229141217,-934624.3149490227,-1567626.9474771973,-586582.4699046832,-868086.4321082981,-29412.3919864860,-211375.5360579286,-235354.3874104787,-1910670.7455672245,-2080263.9602203751,-2469536.9960164465,-2595798.8855773089,-3135935.2821712270,-3687853.0057165022,-4244342.2812856082,-4803082.7627270725,-5361751.8900025040,-579.2472168179,-228796.7163442620},
{-576075.8705524600,-253201.4403168817,-1027150.5838987939,-1567626.9474771973,-2299935.0100962641,-2762821.3807697082,-1604093.8221939949,-32377.9059671512,-331584.3055277649,-369199.8731633204,-2997264.6980656139,-3185082.7842718475,-3873956.8687590356,-4007719.5065056179,-4919334.2905765185,-5785126.3234826885,-6658089.7392805368,-7534584.6164277317,-8410967.5604627449,-908.6637446295,-358912.8700080685},
{-249819.6514496286,-149759.9180597324,-854053.5330707127,-586582.4699046832,-2762821.3807697082,-3318868.5543417814,-1926934.7565315235,-35102.1008246860,-398319.1719845338,-443505.2724861092,-3600496.0815372546,-3770417.3918176848,-4653631.8714236896,-4814315.6620056396,-5909402.6124631781,-6949444.4959567124,-7998101.0793856075,-9050999.8683022708,-10103764.1963780038,-1091.5419829569,-431147.9005879418},
{-330011.3470524917,-153250.5269622197,-704845.7181228390,-868086.4321082981,-1604093.8221939949,-1926934.7565315235,-1118778.1302973605,-20380.2762896032,-231264.0721145034,-257499.1176256326,-2090447.6711478753,-2189103.9671998522,-2701898.2072725035,-2795191.2002952425,-3521245.1928126770,-4158662.7062611720,-4805767.9394671284,-5459735.5691761579,-6117702.8089957107,-633.7491680475,-250324.4287158191},
{-11929.0343569359,-4872.2594306260,-31040.5742355832,-29412.3919864860,-32377.9059671512,-35102.1008246860,-20380.2762896032,-371.2582954497,-5607.2810306032,-4690.7452151791,-83663.3897259805,-87611.7880807625,-49219.2602620515,-50918.7366123642,-62500.9526348912,-73500.9830544529,-84592.1270751573,-95728.1388941227,-106862.7285844565,-11.5447225802,-4560.0471452812},
{-81929.1160914173,-43870.5910401956,-564483.1569697654,-211375.5360579286,-331584.3055277649,-398319.1719845338,-231264.0721145034,-5607.2810306032,-47804.8950034150,-53227.9751412082,-432119.1377270157,-452512.5080896004,-558512.8676823850,-577797.5827495754,-709226.1464950965,-834048.3909074061,-959904.5419324565,-1086269.8278477886,-1212618.9762361448,-131.0031089568,-51744.8859311991},
{-93979.7859124392,-51109.3059124696,-186227.9178247397,-235354.3874104787,-369199.8731633204,-443505.2724861092,-257499.1176256326,-4690.7452151791,-53227.9751412082,-59266.2600227589,-481139.5719900824,-503846.4058954300,-621871.6521586174,-643344.0627585853,-789682.1380412853,-928664.4602945530,-1068797.9775348052,-1209498.3869161557,-1350180.8280981276,-145.8643560764,-57614.9262922503},
{-808533.5310913633,-330992.3261172428,-1127491.5046223318,-1910670.7455672245,-2997264.6980656139,-3600496.0815372546,-2090447.6711478753,-83663.3897259805,-432119.1377270157,-481139.5719900824,-3906021.5314059448,-4090361.7671872033,-5048522.7250287710,-5222841.5776389521,-6410853.7599553801,-7539149.9442843050,-8676791.8417238984,-9819035.9233071804,-10961134.1341748964,-1184.1664013263,-467733.5969208844},
{-774863.7766708832,-376500.8919579549,-1144032.7439234599,-2080263.9602203751,-3185082.7842718475,-3770417.3918176848,-2189103.9671998522,-87611.7880807625,-452512.5080896004,-503846.4058954300,-4090361.7671872033,-4283401.7303649094,-5286782.0029144883,-5469327.6351603959,-6713406.6988389418,-7894951.5360434242,-9086283.1466406360,-10282434.1362186149,-11478432.3708788101,-1240.0517854363,-489807.7511071717},
{-993083.7453312733,-444870.5465904691,-748523.4861927117,-2469536.9960164465,-3873956.8687590356,-4653631.8714236896,-2701898.2072725035,-49219.2602620515,-558512.8676823850,-621871.6521586174,-5048522.7250287710,-5286782.0029144883,-6525202.5623007398,-6750509.2283617072,-8286011.9007898029,-9744331.8002957124,-11214731.0098211505,-12691078.5304471198,-14167237.5135505721,-1530.5320104468,-604544.4640609999},
{-1017925.9047632829,-440626.5793331328,-1284749.1291604007,-2595798.8855773089,-4007719.5065056179,-4814315.6620056396,-2795191.2002952425,-50918.7366123642,-577797.5827495754,-643344.0627585853,-5222841.5776389521,-5469327.6351603959,-6750509.2283617072,-6983595.4374003606,-8572116.9984452240,-10080790.7668879163,-11601960.9280449376,-13129284.7876647953,-14656413.5998093374,-1583.3792686401,-625418.5896352984},
{-1699982.8926359355,-639834.3465442420,-1551644.0591862630,-3135935.2821712270,-4919334.2905765185,-5909402.6124631781,-3521245.1928126770,-62500.9526348912,-709226.1464950965,-789682.1380412853,-6410853.7599553801,-6713406.6988389418,-8286011.9007898029,-8572116.9984452240,-10521971.1671022736,-12373814.9875957053,-14240997.6892379709,-16115733.8386235014,-17990230.5741149187,-1943.5421861648,-767679.2522437507},
{-1006551.5076866939,-752443.7865408087,-1675938.7808539772,-3687853.0057165022,-5785126.3234826885,-6949444.4959567124,-4158662.7062611720,-73500.9830544529,-834048.3909074061,-928664.4602945530,-7539149.9442843050,-7894951.5360434242,-9744331.8002957124,-10080790.7668879163,-12373814.9875957053,-14551579.2540814076,-16747382.0111158863,-18952067.6061100364,-21156471.6508904286,-2285.6013431572,-902789.1149122039},
{-1158804.9661826766,-865985.9741034651,-1773645.1835034818,-4244342.2812856082,-6658089.7392805368,-7998101.0793856075,-4805767.9394671284,-84592.1270751573,-959904.5419324565,-1068797.9775348052,-8676791.8417238984,-9086283.1466406360,-11214731.0098211505,-11601960.9280449376,-14240997.6892379709,-16747382.0111158863,-19274526.7938928865,-21811894.8162273280,-24348938.8030118868,-2630.4937870051,-1039018.0968619760},
{-1311774.0293174253,-979987.4819991864,-1847759.7216307358,-4803082.7627270725,-7534584.6164277317,-9050999.8683022708,-5459735.5691761579,-95728.1388941227,-1086269.8278477886,-1209498.3869161557,-9819035.9233071804,-10282434.1362186149,-12691078.5304471198,-13129284.7876647953,-16115733.8386235014,-18952067.6061100364,-21811894.8162273280,-24683291.0899222791,-27554320.6708622649,-2976.7814489264,-1175798.1756569424},
{ -1464821.3712670824,-1093974.4312889138,-1900661.1952534716,-5361751.8900025040,-8410967.5604627449,-10103764.1963780038,-6117702.8089957107,-106862.7285844565,-1212618.9762361448,-1350180.8280981276,-10961134.1341748964,-11478432.3708788101,-14167237.5135505721,-14656413.5998093374,-17990230.5741149187,-21156471.6508904286,-24348938.8030118868,-27554320.6708622649,-30759293.1942001507,-3323.0248880498,-1312560.7868998419 },
{ -231.3002533154,-118.1855590475,-458.3386113199,-579.2472168179,-908.6637446295,-1091.5419829569,-633.7491680475,-11.5447225802,-131.0031089568,-145.8643560764,-1184.1664013263,-1240.0517854363,-1530.5320104468,-1583.3792686401,-1943.5421861648,-2285.6013431572,-2630.4937870051,-2976.7814489264,-3323.0248880498,-0.3589970139,-141.8001426239 },
{ -91361.2304239775,-46682.0850308626,-181039.0558626673,-228796.7163442620,-358912.8700080685,-431147.9005879418,-250324.4287158191,-4560.0471452812,-51744.8859311991,-57614.9262922503,-467733.5969208844,-489807.7511071717,-604544.4640609999,-625418.5896352984,-767679.2522437507,-902789.1149122039,-1039018.0968619760,-1175798.1756569424,-1312560.7868998419,-141.8001426239,-56009.6036157287 },
},//7
{
{-7.7496991980,-4.6046836639,-11.2071073397,-15.2783059704,-21.4580780835,-9.9526946410,-13.1648688177,-1.2556028464,-5.1525136473,-5.4257946415,-28.1804900048,-27.2521993835,-33.1461152903,-33.8456184405,-48.9443067113,-35.3433190981,-39.6509778301,-43.8916794452,-48.0613926557,-0.0915831995,-5.3433209607},
{-4.6046836639,-3.0696807658,-7.9947198450,-9.0496191596,-12.2150090359,-6.9678478159,-7.7739889378,-0.6806351107,-3.3457072801,-3.5597460768,-15.2993781829,-16.5859609256,-19.1092277514,-19.0714677079,-25.1244266691,-28.6667207635,-32.1538431345,-35.5851263236,-38.9574032119,-0.0576394722,-3.3629115559},
{-11.2071073397,-7.9947198450,-19.0305928985,-20.4876511934,-31.3403581703,-22.4348509790,-21.6872012854,-2.3594572285,-18.5312397817,-8.5025087760,-34.9383358065,-35.0983850391,-27.2681613092,-39.2627525932,-45.7450452573,-49.3172602642,-52.3080277033,-54.7835312705,-56.7919207497,-0.1435157446,-8.3732681319},
{-15.2783059704,-9.0496191596,-20.4876511934,-30.1207346711,-44.7127420418,-18.7963761132,-26.8187001958,-2.4498196920,-10.3616418833,-10.6967959074,-53.4489131579,-56.2767152771,-65.0405499092,-67.5363361595,-78.7013775022,-89.7974884073,-100.7207758413,-111.4691490136,-122.0326870369,-0.1805536071,-10.5342014509},
{-21.4580780835,-12.2150090359,-31.3403581703,-44.7127420418,-60.7074298842,-55.5373635351,-42.4662818171,-2.7464711598,-14.7101371350,-15.1859460570,-75.8799475142,-78.6126145971,-92.3362744313,-94.8673992169,-111.7301745036,-127.4830170470,-142.9905068761,-158.2496757534,-173.2464392684,-0.2563269751,-14.9551151926},
{-9.9526946410,-6.9678478159,-22.4348509790,-18.7963761132,-55.5373635351,-50.8075989104,-38.8496982290,-2.3464782177,-13.4573681553,-13.8926554526,-69.4177341746,-71.2180307069,-84.4725802156,-86.7881451743,-102.2148249579,-116.6260979226,-130.8129133057,-144.7725556559,-158.4921400425,-0.2344972341,-13.6814829873},
{-13.1648688177,-7.7739889378,-21.6872012854,-26.8187001958,-42.4662818171,-38.8496982290,-29.7061676768,-1.7942192234,-10.2900885498,-10.6229281349,-53.0798164500,-54.4564014196,-64.5914060177,-66.3619876197,-79.5224992125,-90.9925472934,-102.3392498309,-113.5561381335,-124.6289257684,-0.1793067765,-10.4614564904},
{-1.2556028464,-0.6806351107,-2.3594572285,-2.4498196920,-2.7464711598,-2.3464782177,-1.7942192234,-0.1083688296,-0.7520268725,-0.6416129497,-5.4180747736,-5.5585884528,-3.9012485085,-4.0081896522,-4.7206493799,-5.3862139574,-6.0414122739,-6.6861189203,-7.3197388238,-0.0108299283,-0.6318602434},
{-5.1525136473,-3.3457072801,-18.5312397817,-10.3616418833,-14.7101371350,-13.4573681553,-10.2900885498,-0.7520268725,-3.5644423581,-3.6797365569,-18.3866198232,-18.8634629283,-22.3741848734,-22.9875067151,-27.0735590717,-30.8906614350,-34.6483118979,-38.3457912209,-41.9796865827,-0.0621110952,-3.6238034747},
{-5.4257946415,-3.5597460768,-8.5025087760,-10.6967959074,-15.1859460570,-13.8926554526,-10.6229281349,-0.6416129497,-3.6797365569,-3.7987600214,-18.9813469613,-19.4736138657,-23.0978923880,-23.7310525223,-27.9492708914,-31.8898399052,-35.7690340083,-39.5861106971,-43.3375467602,-0.0641201188,-3.7410177473},
{-28.1804900048,-15.2993781829,-34.9383358065,-53.4489131579,-75.8799475142,-69.4177341746,-53.0798164500,-5.4180747736,-18.3866198232,-18.9813469613,-94.8445099016,-97.3042306678,-115.4137421213,-118.5774671588,-139.6547307843,-159.3446578274,-178.7279115173,-197.8007817694,-216.5456640775,-0.3203903946,-18.6928248823},
{-27.2521993835,-16.5859609256,-35.0983850391,-56.2767152771,-78.6126145971,-71.2180307069,-54.4564014196,-5.5585884528,-18.8634629283,-19.4736138657,-97.3042306678,-99.8277424351,-118.4069103973,-121.6526842554,-143.2765708018,-163.4771412388,-183.3630849807,-202.9305957247,-222.1616124049,-0.3286994776,-19.1776091844},
{-33.1461152903,-19.1092277514,-27.2681613092,-65.0405499092,-92.3362744313,-84.4725802156,-64.5914060177,-3.9012485085,-22.3741848734,-23.0978923880,-115.4137421213,-118.4069103973,-140.4438895226,-144.2937417280,-169.9420989310,-193.9022434296,-217.4892053440,-240.6984699716,-263.5086148608,-0.3898744843,-22.7467976030},
{-33.8456184405,-19.0714677079,-39.2627525932,-67.5363361595,-94.8673992169,-86.7881451743,-66.3619876197,-4.0081896522,-22.9875067151,-23.7310525223,-118.5774671588,-121.6526842554,-144.2937417280,-148.2491262001,-174.6005569571,-199.2174976713,-223.4510261088,-247.2965038100,-270.7319210902,-0.4005617356,-23.3703335163},
{-48.9443067113,-25.1244266691,-45.7450452573,-78.7013775022,-111.7301745036,-102.2148249579,-79.5224992125,-4.7206493799,-27.0735590717,-27.9492708914,-139.6547307843,-143.2765708018,-169.9420989310,-174.6005569571,-205.6359809405,-234.6286075376,-263.1696699417,-291.2537052022,-318.8547913909,-0.4717619855,-27.5244337205},
{-35.3433190981,-28.6667207635,-49.3172602642,-89.7974884073,-127.4830170470,-116.6260979226,-90.9925472934,-5.3862139574,-30.8906614350,-31.8898399052,-159.3446578274,-163.4771412388,-193.9022434296,-199.2174976713,-234.6286075376,-267.7089059185,-300.2739740495,-332.3175787585,-363.8101433834,-0.5382757300,-31.4051049217},
{-39.6509778301,-32.1538431345,-52.3080277033,-100.7207758413,-142.9905068761,-130.8129133057,-102.3392498309,-6.0414122739,-34.6483118979,-35.7690340083,-178.7279115173,-183.3630849807,-217.4892053440,-223.4510261088,-263.1696699417,-300.2739740495,-336.8003734583,-372.7418767708,-408.0653095139,-0.6037535136,-35.2253341289},
{-43.8916794452,-35.5851263236,-54.7835312705,-111.4691490136,-158.2496757534,-144.7725556559,-113.5561381335,-6.6861189203,-38.3457912209,-39.5861106971,-197.8007817694,-202.9305957247,-240.6984699716,-247.2965038100,-291.2537052022,-332.3175787585,-372.7418767708,-412.5188617577,-451.6118190471,-0.6681828035,-38.9843901249},
{-48.0613926557,-38.9574032119,-56.7919207497,-122.0326870369,-173.2464392684,-158.4921400425,-124.6289257684,-7.3197388238,-41.9796865827,-43.3375467602,-216.5456640775,-222.1616124049,-263.5086148608,-270.7319210902,-318.8547913909,-363.8101433834,-408.0653095139,-451.6118190471,-494.4094779908,-0.7315041307,-42.6788032521},
{-0.0915831995,-0.0576394722,-0.1435157446,-0.1805536071,-0.2563269751,-0.2344972341,-0.1793067765,-0.0108299283,-0.0621110952,-0.0641201188,-0.3203903946,-0.3286994776,-0.3898744843,-0.4005617356,-0.4717619855,-0.5382757300,-0.6037535136,-0.6681828035,-0.7315041307,-0.0010822978,-0.0631454741},
{-5.3433209607,-3.3629115559,-8.3732681319,-10.5342014509,-14.9551151926,-13.6814829873,-10.4614564904,-0.6318602434,-3.6238034747,-3.7410177473,-18.6928248823,-19.1776091844,-22.7467976030,-23.3703335163,-27.5244337205,-31.4051049217,-35.2253341289,-38.9843901249,-42.6788032521,-0.0631454741,-3.6841531729},
},//8
{
{3009348263463984037888.0000000000,211491525337820725248.0000000000,25065871208255559041024.0000000000,51090507649529428312064.0000000000,167876298240479721422848.0000000000,42512117455545689964544.0000000000,55568203932856341233664.0000000000,855121968065981056.0000000000,361568019337616621568.0000000000,822246503149574160384.0000000000,400952372380230865649664.0000000000,357449390432414725046272.0000000000,696322710493608556888064.0000000000,735909922620448050249728.0000000000,3888501769893167759360000.0000000000,470396596320771602644992.0000000000,665979262411841659207680.0000000000,901721567578735343828992.0000000000,1177850013535125851078656.0000000000,413482631709.4283447266,720719303668604469248.0000000000},
{211491525337820725248.0000000000,27989491694253060096.0000000000,4814758671313496178688.0000000000,3529242801803153637376.0000000000,9320602721402756268032.0000000000,7364951337789396353024.0000000000,3774550445599762677760.0000000000,36279195474660120.0000000000,41405366143580577792.0000000000,99665873806213545984.0000000000,17154176584549308301312.0000000000,28666044648569891192832.0000000000,41453058617321076031488.0000000000,38633323887968173162496.0000000000,122246787707884957335552.0000000000,183080127110452799864832.0000000000,258900807159890516639744.0000000000,350134939369782772760576.0000000000,456818131926542555545600.0000000000,39876639519.8259811401,69506822447550070784.0000000000},
{25065871208255559041024.0000000000,4814758671313496178688.0000000000,505031790451148745342976.0000000000,280928710900733360209920.0000000000,1476638556733308542124032.0000000000,4067982922878121827893248.0000000000,947583088180135444086784.0000000000,30079432729330221056.0000000000,451878708482037302427648.0000000000,10651853098322130632704.0000000000,1432189806264071554596864.0000000000,1574156158012398510276608.0000000000,260615859233458822840320.0000000000,1823550656248622992064512.0000000000,2936129627753083213709312.0000000000,3219071400393841643094016.0000000000,3346976982938703120826368.0000000000,3342012515714448469524480.0000000000,3230343509475250271158272.0000000000,5356491313500.0185546875,9336611488643187474432.0000000000},
{51090507649529428312064.0000000000,3529242801803153637376.0000000000,280928710900733360209920.0000000000,867377167201660263464960.0000000000,3864851770996524528435200.0000000000,569859112741507497459712.0000000000,1129701496867931604123648.0000000000,13711940788482502656.0000000000,6846406219544333910016.0000000000,13959498064410341015552.0000000000,5502505052274634715561984.0000000000,7831318205890716330098688.0000000000,11520331751939180756729856.0000000000,13351750072087073328726016.0000000000,21520083049130304049512448.0000000000,32229063960984125735698432.0000000000,45576386717672007331217408.0000000000,61637063148399785127444480.0000000000,80417361647971300674633728.0000000000,7019804857674.2792968750,12235843735433798221824.0000000000},
{167876298240479721422848.0000000000,9320602721402756268032.0000000000,1476638556733308542124032.0000000000,3864851770996524528435200.0000000000,10541540799352530368724992.0000000000,111915951847879894814949376.0000000000,7179807286611461292425216.0000000000,13044795193631365120.0000000000,23867708101357918486528.0000000000,48665126543571078348800.0000000000,19182645639551195648360448.0000000000,24977409088634161389895680.0000000000,40161788048911562522492928.0000000000,43907499014232950056157184.0000000000,75022580323579990475014144.0000000000,112355864717002016062177280.0000000000,158886846559975271819116544.0000000000,214877029535779362328018944.0000000000,280348266308810834423316480.0000000000,24472204525809.5976562500,42656181547842777645056.0000000000},
{42512117455545689964544.0000000000,7364951337789396353024.0000000000,4067982922878121827893248.0000000000,569859112741507497459712.0000000000,111915951847879894814949376.0000000000,1188173580733689412563501056.0000000000,76225570991938789527519232.0000000000,95074611446662234112.0000000000,253395335789516706283520.0000000000,516661089928694391111680.0000000000,203655621751501077891514368.0000000000,251295075036678804085932032.0000000000,426384038439885505164214272.0000000000,466150977259372244593803264.0000000000,796489208438407932630007808.0000000000,1192843985982318631240859648.0000000000,1686847587779564057456017408.0000000000,2281276309457417742485291008.0000000000,2976362153318293105083940864.0000000000,259813068644595.0937500000,452866165486549553119232.0000000000},
{55568203932856341233664.0000000000,3774550445599762677760.0000000000,947583088180135444086784.0000000000,1129701496867931604123648.0000000000,7179807286611461292425216.0000000000,76225570991938789527519232.0000000000,4890142120025302411247616.0000000000,6099375261216877568.0000000000,16256214134405321457664.0000000000,33145650793559590174720.0000000000,13065234158918638080360448.0000000000,16121474919771229067935744.0000000000,27354056106734569660612608.0000000000,29905246999436539983822848.0000000000,56201127882941273185714176.0000000000,85493970482088705339162624.0000000000,122723044387427785904226304.0000000000,168367536586495435363844096.0000000000,222711867121178418480152576.0000000000,16667934576001.0566406250,29052978964425540108288.0000000000},
{855121968065981056.0000000000,36279195474660120.0000000000,30079432729330221056.0000000000,13711940788482502656.0000000000,13044795193631365120.0000000000,95074611446662234112.0000000000,6099375261216877568.0000000000,7607627276270.6542968750,57849927770353552.0000000000,41341899172886408.0000000000,292050494544926146560.0000000000,360367419813812764672.0000000000,34118160375774912512.0000000000,37300209125210398720.0000000000,63733029619275743232.0000000000,95448325331158417408.0000000000,134977230245138137088.0000000000,182541896437564669952.0000000000,238160888139383799808.0000000000,20789577.3401195370,36237192460033200.0000000000},
{361568019337616621568.0000000000,41405366143580577792.0000000000,451878708482037302427648.0000000000,6846406219544333910016.0000000000,23867708101357918486528.0000000000,253395335789516706283520.0000000000,16256214134405321457664.0000000000,57849927770353552.0000000000,54040249035189985280.0000000000,110185508661972910080.0000000000,43432529973674759946240.0000000000,53592337814691136929792.0000000000,90932611486823904968704.0000000000,99413490862430621794304.0000000000,169862933916061431496704.0000000000,254391367788072525627392.0000000000,359744836833687491313664.0000000000,486515426564762895384576.0000000000,634752614854125212925952.0000000000,55408924116.1624145508,96580311102621089792.0000000000},
{822246503149574160384.0000000000,99665873806213545984.0000000000,10651853098322130632704.0000000000,13959498064410341015552.0000000000,48665126543571078348800.0000000000,516661089928694391111680.0000000000,33145650793559590174720.0000000000,41341899172886408.0000000000,110185508661972910080.0000000000,224663034235682783232.0000000000,88556871832870737412096.0000000000,109272238894582851436544.0000000000,185407288632455628587008.0000000000,202699400060246136193024.0000000000,346342478254838084796416.0000000000,518691952005828860444672.0000000000,733502686288997844516864.0000000000,991981915424321276215296.0000000000,1294230522451426071805952.0000000000,112976172337.3327636719,196922680697570426880.0000000000},
{400952372380230865649664.0000000000,17154176584549308301312.0000000000,1432189806264071554596864.0000000000,5502505052274634715561984.0000000000,19182645639551195648360448.0000000000,203655621751501077891514368.0000000000,13065234158918638080360448.0000000000,292050494544926146560.0000000000,43432529973674759946240.0000000000,88556871832870737412096.0000000000,34907031214563395993862144.0000000000,43072540561020586484039680.0000000000,73083182340891979083153408.0000000000,79899325017146020599955456.0000000000,136520040163425928433631232.0000000000,204456139706254368771670016.0000000000,289129467158439512634294272.0000000000,391015885829270659345154048.0000000000,510155161434726759346995200.0000000000,44532543806694.7500000000,77622278426213300043776.0000000000},
{ 357449390432414725046272.0000000000,28666044648569891192832.0000000000,1574156158012398510276608.0000000000,7831318205890716330098688.0000000000,24977409088634161389895680.0000000000,251295075036678804085932032.0000000000,16121474919771229067935744.0000000000,360367419813812764672.0000000000,53592337814691136929792.0000000000,109272238894582851436544.0000000000,43072540561020586484039680.0000000000,53148139094875187940687872.0000000000,90178918864724948540194816.0000000000,98589504688768690790858752.0000000000,168455029337414613761785856.0000000000,252282851449516675274113024.0000000000,356763100964383848585494528.0000000000,482482955908266321571217408.0000000000,629491484057910147675062272.0000000000,54949668667297.9453125000,95779807666858610393088.0000000000 },
{ 696322710493608556888064.0000000000,41453058617321076031488.0000000000,260615859233458822840320.0000000000,11520331751939180756729856.0000000000,40161788048911562522492928.0000000000,426384038439885505164214272.0000000000,27354056106734569660612608.0000000000,34118160375774912512.0000000000,90932611486823904968704.0000000000,185407288632455628587008.0000000000,73083182340891979083153408.0000000000,90178918864724948540194816.0000000000,153010764743686044960948224.0000000000,167281396783639579443855360.0000000000,285825481036237754937114624.0000000000,428060044608808478367023104.0000000000,605336542044555552294436864.0000000000,818651265603007009504886784.0000000000,1068087470862500559205695488.0000000000,93235657857108.2812500000,162514053202315455758336.0000000000 },
{ 735909922620448050249728.0000000000,38633323887968173162496.0000000000,1823550656248622992064512.0000000000,13351750072087073328726016.0000000000,43907499014232950056157184.0000000000,466150977259372244593803264.0000000000,29905246999436539983822848.0000000000,37300209125210398720.0000000000,99413490862430621794304.0000000000,202699400060246136193024.0000000000,79899325017146020599955456.0000000000,98589504688768690790858752.0000000000,167281396783639579443855360.0000000000,182882987068007646710726656.0000000000,312483149693365434164707328.0000000000,467983297053506136738627584.0000000000,661793583262057319920304128.0000000000,895003220316997056360087552.0000000000,1167703228673371568169025536.0000000000,101931332102712.0781250000,177671014599486659887104.0000000000 },
{ 3888501769893167759360000.0000000000,122246787707884957335552.0000000000,2936129627753083213709312.0000000000,21520083049130304049512448.0000000000,75022580323579990475014144.0000000000,796489208438407932630007808.0000000000,56201127882941273185714176.0000000000,63733029619275743232.0000000000,169862933916061431496704.0000000000,346342478254838084796416.0000000000,136520040163425928433631232.0000000000,168455029337414613761785856.0000000000,285825481036237754937114624.0000000000,312483149693365434164707328.0000000000,533924562408723634001543168.0000000000,799620002995604721047175168.0000000000,1130774090362408307045433344.0000000000,1529247907386593844056293376.0000000000,1995196976235296303133753344.0000000000,174165045193905.2187500000,303577709120738887204864.0000000000 },
{ 470396596320771602644992.0000000000,183080127110452799864832.0000000000,3219071400393841643094016.0000000000,32229063960984125735698432.0000000000,112355864717002016062177280.0000000000,1192843985982318631240859648.0000000000,85493970482088705339162624.0000000000,95448325331158417408.0000000000,254391367788072525627392.0000000000,518691952005828860444672.0000000000,204456139706254368771670016.0000000000,252282851449516675274113024.0000000000,428060044608808478367023104.0000000000,467983297053506136738627584.0000000000,799620002995604721047175168.0000000000,1197532749394719120155475968.0000000000,1693478152501207553093402624.0000000000,2290243420847559108898848768.0000000000,2988061468677662382810464256.0000000000,260834327103069.2187500000,454646266096855935877120.0000000000 },
{ 665979262411841659207680.0000000000,258900807159890516639744.0000000000,3346976982938703120826368.0000000000,45576386717672007331217408.0000000000,158886846559975271819116544.0000000000,1686847587779564057456017408.0000000000,122723044387427785904226304.0000000000,134977230245138137088.0000000000,359744836833687491313664.0000000000,733502686288997844516864.0000000000,289129467158439512634294272.0000000000,356763100964383848585494528.0000000000,605336542044555552294436864.0000000000,661793583262057319920304128.0000000000,1130774090362408307045433344.0000000000,1693478152501207553093402624.0000000000,2394814049510075261645750272.0000000000,3238723282578538981616517120.0000000000,4225535224897964528516464640.0000000000,368856078962902.8750000000,642933163323033766592512.0000000000 },
{ 901721567578735343828992.0000000000,350134939369782772760576.0000000000,3342012515714448469524480.0000000000,61637063148399785127444480.0000000000,214877029535779362328018944.0000000000,2281276309457417742485291008.0000000000,168367536586495435363844096.0000000000,182541896437564669952.0000000000,486515426564762895384576.0000000000,991981915424321276215296.0000000000,391015885829270659345154048.0000000000,482482955908266321571217408.0000000000,818651265603007009504886784.0000000000,895003220316997056360087552.0000000000,1529247907386593844056293376.0000000000,2290243420847559108898848768.0000000000,3238723282578538981616517120.0000000000,4380017940542058145735770112.0000000000,5714572835846058752960626688.0000000000,498837382009753.8750000000,869496571402763416633344.0000000000 },
{ 1177850013535125851078656.0000000000,456818131926542555545600.0000000000,3230343509475250271158272.0000000000,80417361647971300674633728.0000000000,280348266308810834423316480.0000000000,2976362153318293105083940864.0000000000,222711867121178418480152576.0000000000,238160888139383799808.0000000000,634752614854125212925952.0000000000,1294230522451426071805952.0000000000,510155161434726759346995200.0000000000,629491484057910147675062272.0000000000,1068087470862500559205695488.0000000000,1167703228673371568169025536.0000000000,1995196976235296303133753344.0000000000,2988061468677662382810464256.0000000000,4225535224897964528516464640.0000000000,5714572835846058752960626688.0000000000,7455755464816249727940034560.0000000000,650828967240421.3750000000,1134424916804015652601856.0000000000 },
{ 413482631709.4283447266,39876639519.8259811401,5356491313500.0185546875,7019804857674.2792968750,24472204525809.5976562500,259813068644595.0937500000,16667934576001.0566406250,20789577.3401195370,55408924116.1624145508,112976172337.3327636719,44532543806694.7500000000,54949668667297.9453125000,93235657857108.2812500000,101931332102712.0781250000,174165045193905.2187500000,260834327103069.2187500000,368856078962902.8750000000,498837382009753.8750000000,650828967240421.3750000000,56.8122635725,99026396520.0410003662 },
{ 720719303668604469248.0000000000,69506822447550070784.0000000000,9336611488643187474432.0000000000,12235843735433798221824.0000000000,42656181547842777645056.0000000000,452866165486549553119232.0000000000,29052978964425540108288.0000000000,36237192460033200.0000000000,96580311102621089792.0000000000,196922680697570426880.0000000000,77622278426213300043776.0000000000,95779807666858610393088.0000000000,162514053202315455758336.0000000000,177671014599486659887104.0000000000,303577709120738887204864.0000000000,454646266096855935877120.0000000000,642933163323033766592512.0000000000,869496571402763416633344.0000000000,1134424916804015652601856.0000000000,99026396520.0410003662,172607577855628050432.0000000000 },
},//9
};
/***********************************Cn备用查表数据**************************************/
double G_parameter[5] = { -0.0363660856,0.0329017874,-0.0037420475,-0.1689905140,0.3510601859 };
double U_parameter[5][21] = {
{0.0000000000,-25391013744.3937149048,-86310240377.6772766113,0.0000000000,-38718085288.1167297363,0.0000000000,-666720964716.5777587891,2269816148.8121738434,0.0000000000,0.0000000000,0.0000000000,-44788032589.9178314209,0.0000000000,27547807216.1404342651,5039087832841.8417968750,2995689555258.2099609375,3754431387809.7421875000,4603091791015.8867187500,5543018312163.9218750000,0.0000000000,0.0000000000},//0
{0.0000000000,0.0000000000,-107470243964.2712249756,-117953505585.1495361328,-108809040722.9046783447,0.0000000000,-9672243220.1675300598,-741151126.5598329306,0.0000000000,0.0000000000,0.0000000000,-13238501176.7329788208,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000},//1
{0.0000000000,0.0000000000,0.0000000000,-240663535988.1365356445,0.0000000000,0.0000000000,682684292859.8858642578,0.0000000000,-85338571267.9475402832,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,2245419311011.2460937500,3123824398310.1816406250,4121292988955.0517578125,5239693675482.9169921875,6471965236487.2861328125,0.0000000000,0.0000000000},//2
{0.0000000000,0.0000000000,0.0000000000,0.0000000000,1061268868686.8830566406,0.0000000000,-373826011696.9307250977,70604653742.1654663086,0.0000000000,0.0000000000,7227124942863.5957031250,8007618369632.9199218750,9769837631954.6894531250,10112925271189.3671875000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000},//3
{0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,1509970906021.8959960938,2065733830868.5844726563,2693191848950.5102539063,3385383929158.1000976563,4136233065586.8261718750,0.0000000000,0.0000000000},//4
};
double E_parameter[21] = { 281662.2432413514,99345.7386737830,910671.2623176961,931571.2651129460,1534516.5971602199,5990192.0896887286,1511926.3891073761,3773.2602105546,114416.6501792414,166994.2259667306,1890572.7222240157,2094745.1412967329,2555731.1757519767,2645480.8531406047,3252986.7725805528,3783603.0895332978,4303434.5005244063,4810446.9788612965,5302872.7649037028,11.0064544942,156530.6357943879};
/***********************************K备用查表数据**************************************/
double KK_parameter[21] = { 0.1450206489,0.1342733250,0.1402213270,0.2024986533,0.2603546712,0.0905367613,0.1449428023,0.0732465842,0.1384134857,0.1134345817,0.3285686580,0.3202335344,0.3727524342,0.3810675184,0.4360864769,0.4912397820,0.5458984993,0.6001471975,0.6539979898,0.0772151018,0.1154498556 };
double K_parameter[5][21] = {
{0.0000000000,0.0007119987,-0.0008203242,0.0000000000,0.0029208611,0.0000000000,0.0000168185,0.0025883829,0.0000000000,0.0000000000,0.0000000000,-0.0011110741,0.0000000000,0.0014046796,-0.0104141249,-0.0113297016,-0.0132248981,-0.0152343279,-0.0173562352,0.0000000000,0.0000000000},//0
{0.0000000000,0.0000000000,-0.0032059559,0.0021990689,0.0000000000,0.0000000000,-0.0099608499,0.0033853274,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000}, //1
{0.0000000000,0.0000000000,0.0000000000,0.0024578613,0.0000000000,0.0000000000,0.0016081051,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,-0.0459030667,-0.0584905665,-0.0717708355,-0.0856080495,-0.0998982694,0.0000000000,0.0000000000}, //2
{0.0000000000,0.0000000000,0.0000000000,0.0000000000,-0.0067314178,0.0000000000,-0.0000090982,0.0031421460,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000}, //3
{0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,-0.0189005387,-0.0245455066,-0.0306699982,-0.0376178477,-0.0441663813,0.0000000000,0.0000000000}, //4
};
#endif
//aga8.h:进行一些函数的声明
#ifndef __AGA8_H
#define __AGA8_H
#include "sys.h"
#include <math.h>
#define NUM 21 //定义当前气体组分数
#define R 8.31451e-3f //定义气体常数
double Calculate_Z(float Temperature,float Pressure,float x[]);//生命压缩因子计算函数,返回Z值
#endif
//aga8.c:AGA8计算函数,经过极度优化
#include "aga8.h"
#include "aga8_font.h"
#include "usart.h"
#include "delay.h"
double XIXI[NUM][NUM] = { 0 }; //定义XIXI计算结果
double XIXJ[NUM][NUM] = { 0 }; //定义XIXJ计算结果
double Cn[58] = { 0 }; //定义Cn计算结果
double A2_parameter[58] = { 0 };
double A3_parameter[58] = { 0 };
double A4_parameter[58] = { 0 };
double Calculate_Z(float Temperature,float Pressure,float x[])//入口参数为:温度,压力,气体组分
{
u8 n, i, j;
double K1 = 0,A1 = 0,B_total = 0;
double G = 0, Q = 0, F = 0, U_5 = 0, U = 0; //计算Cn所用参数
double g_n=0,q_n=0,f_n=0,u_n=0,k_n=0;
double a = 0, b = 0, c = 0, d=0, f_c=0, Z=0;
d = Pressure/(R*Temperature); //计算d
a = 0.833f*d; //计算a
b = 2.5f*d; //计算b
c = 1.6665f*d; //计算c=(a+b)/2
for (i = 0; i < NUM; i++)
{
if(x[i]==0)continue;
if(i<7&&Qi[i]!=0)Q = Q + x[i] * Qi[i]; //求出Q(注意此处取x为0到7)
K1 = K1 + x[i] * KK_parameter[i]; //计算求出K的中间数
G = G + x[i] * Gi[i]; //求出G
U = U + x[i] * E_parameter[i];
for (j = 0; j < NUM; j++)
{
if(x[j]==0)continue;
XIXI[i][j] = x[i] * x[j]; //计算得出XIXI计算结果
for (n = 0; n < 10; n++)
B_total = B_total + (pow(Temperature, -un_2[n]))*XIXI[i][j] * B_parameter[n][i][j];//计算得出B的中间值
}
if(i < NUM - 1)
for (n = i + 1; n < NUM; n++)
{
if(x[n]==0)continue;
XIXJ[i][n] = x[i] * x[n]; //计算得出XIXJ计算结果
}
}
K1 = K1 * K1;
for (i = 0; i < 4; i++)
{
if(x[i]==0)continue;
for (j = i + 1; j < NUM; j++)
{
if(x[j]==0)continue;
if(K_parameter[i][j]!=0)
K1 = K1 + XIXJ[i][j] * K_parameter[i][j];
if(U_parameter[i][j]==0)continue;
U_5 = U_5 + XIXJ[i][j] * U_parameter[i][j];
}
}
K1 = K1 + XIXJ[6][14] * K_parameter[4][14] + XIXJ[6][15] * K_parameter[4][15] + XIXJ[6][16] * K_parameter[4][16] + XIXJ[6][17] * K_parameter[4][17] + XIXJ[6][18] * K_parameter[4][18];
K1 = pow(K1, 0.2);
B_total = B_total + (pow(Temperature, -un[6]))*(XIXI[2][2] * b_parameter[0] + XIXI[2][5] * b_parameter[1] + XIXI[2][6] * b_parameter[2] + XIXI[5][5] * b_parameter[3] + XIXI[5][6] * b_parameter[4] + XIXI[6][6] * b_parameter[5])+(pow(Temperature, -un[7]))*(XIXI[5][5] * b_parameter[6] + XIXI[5][6] * 2*b_parameter[7] + XIXI[6][6] * b_parameter[8])+(pow(Temperature, -un[8]))*(XIXI[5][5] * b_parameter[9] + XIXI[5][6] * 2 *b_parameter[10] + XIXI[6][6] * b_parameter[11])+(pow(Temperature, -un[9]))*(XIXI[5][5] * b_parameter[12])+(pow(Temperature, -un[10]))*(XIXI[5][5] * b_parameter[13])+(pow(Temperature, -un[11]))*(XIXI[5][5] * b_parameter[14])+(pow(Temperature, -un[12]))*(XIXI[7][7] * b_parameter[15])+(pow(Temperature, -un[15]))*(XIXI[2][2] * b_parameter[16] + XIXI[2][5] * b_parameter[17] + XIXI[2][6] * (-243.30260054) + XIXI[5][5] * b_parameter[18] + XIXI[5][6] * b_parameter[19] + XIXI[6][6] * b_parameter[20]);
G = G + XIXJ[0][2] * G_parameter[0] + XIXJ[0][7] * G_parameter[1] + XIXJ[1][2] * G_parameter[2] + XIXJ[2][3] * G_parameter[3] + XIXJ[2][5] * G_parameter[4];
U_5 = U_5 + XIXJ[6][14] * U_parameter[4][14] + XIXJ[6][15] * U_parameter[4][15] + XIXJ[6][16] * U_parameter[4][16] + XIXJ[6][17] * U_parameter[4][17] + XIXJ[6][18] * U_parameter[4][18];
F = x[7]*x[7]; //求出F(注意此处取x=7)
U = pow(U * U + U_5, 0.2); //求出U
for (n = 12; n < 58; n++)
{
if(gn[n]==0)g_n=1;else g_n=pow(G + 1 - gn[n], gn[n]);
if(qn[n]==0)q_n=1;else q_n=pow(Q*Q + 1 - qn[n], qn[n]);
if(fn[n]==0)f_n=1;else f_n=pow(F + 1 - fn[n], fn[n]);
if(un[n]==0)u_n=1;else u_n=pow(U, un[n])* pow(Temperature, -un[n]);
Cn[n] = an[n]*g_n*q_n*f_n*u_n;
if(n<18)A1=A1+Cn[n];
A2_parameter[n] = Cn[n] *pow(K1, 3 * bn[n]);
if(cn[n]==0)
{
f_c = f_c + c * A2_parameter[n]*bn[n]*pow(c, bn[n]);
}
else if(kn[n]==0)
{
A4_parameter[n] = -1;
f_c = f_c+c * A2_parameter[n] * bn[n] * pow(c, bn[n])*exp(-1);
}
else
{
k_n=pow(K1, 3 * kn[n]);
A3_parameter[n] = kn[n] * k_n;
A4_parameter[n] = -k_n;
k_n=pow(c,kn[n]);
f_c = f_c+c * A2_parameter[n]*(bn[n] - A3_parameter[n] * k_n)*pow(c, bn[n])*exp(A4_parameter[n]*k_n);
}
}
A1 = B_total - K1*K1*K1*A1;
f_c = f_c + c + A1 * c*c;
while((f_c - d) < -1e-6 || (f_c - d) > 1e-6) //当在范围外时进行二分法循环
{
if (f_c > d )
b = c;
else a = c;
c = (a + b) / 2;
f_c=c + A1 * c*c;
for (n = 12; n < 58; n++)
{
if(kn[n]==0)k_n=1;else k_n=pow(c,kn[n]);
f_c = f_c + c * A2_parameter[n]*(bn[n] - A3_parameter[n] * k_n)*pow(c, bn[n])*exp(A4_parameter[n]*k_n);
}
}
Z=d / c; //计算出压缩因子Z值
for (i = 0; i < NUM; i++) //清除X存储数组,供下一次调用
for (j = 0; j < NUM; j++)
{
XIXI[i][j] = 0;
XIXJ[i][j] = 0;
}
return Z;
}
//main.c:主函数
float table[6][21] = {
{0.965,0.003,0.006,0.018,0.0045,0,0,0,0,0,0.001,0.001,0.0005,0.0003,0.0007,0,0,0,0,0,0},//1
{0.907,0.031,0.005,0.045,0.0084,0,0,0,0,0,0.001,0.0015,0.0003,0.0004,0.0004,0,0,0,0,0,0},//2
{0.859,0.01,0.015,0.085,0.023,0,0,0,0,0,0.0035,0.0035,0.0005,0.0005,0,0,0,0,0,0,0},//3
{0.735,0.1,0.016,0.033,0.0074,0,0,0.095,0.01,0,0.0012,0.0012,0.0004,0.0004,0.0002,0.0001,0.0001,0,0,0,0},//4
{0.812,0.057,0.076,0.043,0.009,0,0,0,0,0,0.0015,0.0015,0,0,0,0,0,0,0,0,0},//5
{0.826,0.117,0.011,0.035,0.0075,0,0,0,0,0,0.0012,0.0012,0.0004,0.0004,0.0002,0.0001,0,0,0,0,0},//6
}; //定义6种气体组分
int main(void)
{
u8 i=0;
float T=280; //定义绝对温度
float P=12; //定义绝对压力
float x[21] = { 0 };
double Z=0;
for (i = 0; i < 21; i++)
x[i] = table[0][i]; //获得当前气体组分
Z=Calculate_Z(T,P,x); //调用函数计算得出Z
printf("Z=%.6lf\r\n",Z);
while(1)
{
}
}
小结:经过优化,AGA8算法的计算速率大大提高,计算结果精度不变。后期可结合FPU和DSP进一步提高AGA8算法在单片机上的执行速率!
三. 感谢支持
完结撒花!希望看到这里的小伙伴能点个关注,我后续会持续更新,也欢迎大家广泛交流。
码字实属不易,如果本文对你有10分帮助,就赏个10分把,感谢各位大佬支持!