/*************************************************************************************************************************************/ /* */ /* A R R A N G E M E N T H A R M O N I E U X D E P O I N T S S U R L A S P H E R E : */ /* */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * ** * * * * * ** * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * ** * * * * * ** */ /* * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* */ /* ATTENTION : */ /* */ /* Les programmes 'v $xtc/PtsSphere.01$c' */ /* et 'v $xtc/PtsSphere.02$c' ne donnent */ /* exactement les memes resultats que s'ils */ /* sont compiles avec l'option '-ffloat-store'. */ /* */ /* */ /* Author of '$xtc/PtsSphere.02$c' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20080310120646). */ /* */ /*************************************************************************************************************************************/ #include "INCLUDES.01.I" extern double drand48(); extern double srand48(); #define NOMBRE_DE_POINTS \ 26 #define NOMBRE_D_ITERATIONS_INITIALES \ 0 #define NOMBRE_D_ITERATIONS \ 1000000 #define RAYON_DE_LA_SPHERE_UNITE \ 1.0 /* Definition de la sphere unite. */ #define PONDERATION_0 \ 0.010 #define PONDERATION_N \ (1.0*(1/(double)NOMBRE_D_ITERATIONS)) /* Definition de l'interpolation... */ #define RANDOM(inf,sup) \ ((((sup)-(inf))*drand48())+(inf)) #define DISTANCE_1(dx,dy,dz) \ sqrt(EXP2(dx)+EXP2(dy)+EXP2(dz)) #define DISTANCE_2(dx,dy,dz) \ (EXP2(dx)+EXP2(dy)+EXP2(dz)) /* On notera que l'usage 'sqrt(...)' n'est utile que pour 'normalisation(...)', par contre */ /* losrqu'il s'agit uniquement de rechercher les distances extremales, on peut s'en passer */ /* et ainsi, aller deux fois plus vite... */ typedef struct { double x,y,z; } points; void normalisation(point) points *point; { double module=DISTANCE_1(point->x,point->y,point->z); point->x = RAYON_DE_LA_SPHERE_UNITE*((point->x)/module); point->y = RAYON_DE_LA_SPHERE_UNITE*((point->y)/module); point->z = RAYON_DE_LA_SPHERE_UNITE*((point->z)/module); } #define TROUVER(chercher_la_distance_extremale,distance_extremale,OPERATEUR,indice_i,indice_j,distance_extremale_trouvee) \ { \ if (chercher_la_distance_extremale == VRAI) \ { \ if (distance OPERATEUR distance_extremale) \ { \ distance_extremale = distance; \ \ indice_i = i; \ indice_j = j; \ \ distance_extremale_trouvee = VRAI; \ /* Recherche de la distance extremale. */ \ } \ else \ { \ } \ } \ else \ { \ } \ } #define AUGMENTATION(distance_extremale_trouvee,indice_i,indice_j) \ { \ if (distance_extremale_trouvee == VRAI) \ { \ double dX=ponderation*(ListePoints[indice_j].x - ListePoints[indice_i].x); \ double dY=ponderation*(ListePoints[indice_j].y - ListePoints[indice_i].y); \ double dZ=ponderation*(ListePoints[indice_j].z - ListePoints[indice_i].z); \ \ ListePoints[indice_j].x = ListePoints[indice_j].x + dX; \ ListePoints[indice_j].y = ListePoints[indice_j].y + dY; \ ListePoints[indice_j].z = ListePoints[indice_j].z + dZ; \ normalisation(&ListePoints[indice_j]); \ /* Augmentation de la distance {indice_i,indice_j}. */ \ \ ListePoints[indice_i].x = ListePoints[indice_i].x - dX; \ ListePoints[indice_i].y = ListePoints[indice_i].y - dY; \ ListePoints[indice_i].z = ListePoints[indice_i].z - dZ; \ normalisation(&ListePoints[indice_i]); \ /* Augmentation de la distance {indice_i,indice_j}. */ \ } \ else \ { \ } \ } main() { int compatibilite_20080319093155=0; int chercher_la_distance_minimale=VRAI; int chercher_la_distance_maximale=VRAI; /* Indicateurs de controle divers... */ int n,p; /* Index divers... */ double aleatoire=0; /* Destine a eviter que l'optimiseur supprime les iterations aveugles qui effectivement */ /* ne servent a rien... */ points ListePoints[NOMBRE_DE_POINTS]; if (compatibilite_20080319093155 == 1) { } else { long int graine=1; /* Il semblerait qu'utiliser une graine nulle soit une mauvaise idee comme cela se voit */ /* avec N=19... */ srand48(graine); /* Introduit le 20080319093155 car, en effet, manquait... */ } for (n=1 ; n<=NOMBRE_D_ITERATIONS_INITIALES ; n++) { aleatoire=aleatoire+RANDOM(0,1); /* Iterations "aveugles" introduites le 20080315101819 et destinees a simuler un */ /* changement de graine du generateur aleatoire... */ } for (p=0 ; p<NOMBRE_DE_POINTS ; p++) { ListePoints[p].x = RANDOM(-RAYON_DE_LA_SPHERE_UNITE,+RAYON_DE_LA_SPHERE_UNITE); ListePoints[p].y = RANDOM(-RAYON_DE_LA_SPHERE_UNITE,+RAYON_DE_LA_SPHERE_UNITE); ListePoints[p].z = RANDOM(-RAYON_DE_LA_SPHERE_UNITE,+RAYON_DE_LA_SPHERE_UNITE); /* Initialisation aleatoire du nuage de points a l'interieur du cube dans lequel la sphere */ /* unite est inscrite. */ normalisation(&ListePoints[p]); /* Mise du nuage de points sur la surface de la sphere unite. */ } for (n=1 ; n<=NOMBRE_D_ITERATIONS ; n++) { int i,j; int distance_minimale_trouvee=FAUX; double distance_minimale=+1000; int min_i,min_j; int distance_maximale_trouvee=FAUX; double distance_maximale=-1000; int max_i,max_j; double ponderation=((double)((PONDERATION_0*(NOMBRE_D_ITERATIONS-n))+(PONDERATION_N*(n-1)))) /((double)(NOMBRE_D_ITERATIONS-1) ); for (i=0 ; i<NOMBRE_DE_POINTS ; i++) { for (j=i+1 ; j<NOMBRE_DE_POINTS ; j++) { double distance=DISTANCE_2(ListePoints[i].x-ListePoints[j].x ,ListePoints[i].y-ListePoints[j].y ,ListePoints[i].z-ListePoints[j].z ); TROUVER(chercher_la_distance_minimale ,distance_minimale ,< ,min_i,min_j ,distance_minimale_trouvee ); TROUVER(chercher_la_distance_maximale ,distance_maximale ,> ,max_i,max_j ,distance_maximale_trouvee ); } } AUGMENTATION(distance_minimale_trouvee,min_i,min_j); /* Augmentation de la distance minimale. */ AUGMENTATION(distance_maximale_trouvee,max_i,max_j); /* Augmentation (et non pas diminution !) de la distance maximale. */ } if (aleatoire >= 0) /* Ce test est en fait toujours vrai, mais il est destine a tromper l'optimiseur et faire */ /* que ne soient pas supprimees les "inutiles" iterations "aveugles"... */ { for (p=0 ; p<NOMBRE_DE_POINTS ; p++) { printf("%+.16f %+.16f %+.16f\n",ListePoints[p].x,ListePoints[p].y,ListePoints[p].z); /* Edition des coordonees {X,Y,Z} resultantes... */ /* */ /* Le 20080315101819, voici le resultat pour 1000000 iterations ("test de base" destine */ /* a valider d'eventuelles modifications du programme...) : */ /* */ /* -0.5926290725028692 -0.6558283547298299 -0.4676322824150973 */ /* -0.6576298120307296 -0.0207937927676291 -0.7530542135269972 */ /* -0.8599285999324184 +0.4366161223486859 -0.2643655891440262 */ /* -0.7276607811935886 -0.3860666965041002 +0.5669764486847294 */ /* +0.7320882098871965 +0.6794792598080606 -0.0485261623750567 */ /* -0.3240880181748360 +0.7218740020768242 -0.6114449129734391 */ /* -0.8630925703292727 +0.2835617131413851 +0.4179281874709246 */ /* +0.1996348055279246 +0.9207566210199832 +0.3351912726633712 */ /* +0.8467895223491042 +0.2336846020808170 +0.4778483144158889 */ /* -0.1075359659528639 -0.6519210773076550 +0.7506230245526786 */ /* +0.8691513235108956 -0.4269092973958843 +0.2496486103230109 */ /* -0.0465769353858765 -0.4887232828521397 -0.8711946636018194 */ /* -0.9719414198843301 -0.2251339197263322 -0.0681512619244131 */ /* -0.0344652662196999 +0.2021046042469423 -0.9787573112710790 */ /* +0.0343456720873525 -0.9389537701955698 -0.3423246883360788 */ /* +0.6651822824266849 -0.6402063682721385 -0.3842763812276589 */ /* -0.2873797008183291 -0.0087237698562038 +0.9577770113116432 */ /* -0.4408463530736902 +0.8958537900609048 +0.0556819523287368 */ /* +0.3496728023770956 -0.8939966453659132 +0.2801766038630676 */ /* +0.4889806252577155 -0.2939549871350459 +0.8212724357124187 */ /* +0.3719039989688735 +0.6649543211391663 -0.6477060802164131 */ /* +0.5766276000861511 -0.0938426447006771 -0.8115997590280989 */ /* -0.4315041360308609 -0.8847103303723797 +0.1763287041881020 */ /* +0.9668138888201001 +0.0523819011078470 -0.2500540757933830 */ /* -0.3285821200291327 +0.6383944005821018 +0.6960505582948552 */ /* +0.2923085444186083 +0.3745044412039826 +0.8799443950491231 */ /* */ /* */ /* Le 20080315102556, voici le resultat pour 100 iterations aveugles et 1000000000 */ /* iterations effectives (duree du calcul sur '$LACT18' : 7177 secondes) : */ /* */ /* */ /* :Debut_listG_xtc__PtsSphere_02_c__N26_100_1000000000: */ /* */ /* +0.1688513760551914 -0.1215213178398409 +0.9781215579439688 */ /* +0.7662954385991599 -0.1737432498805788 +0.6185503891382302 */ /* -0.6947810398331629 -0.6512904637277795 -0.3051229892118960 */ /* -0.1140912801150749 -0.7153602005256656 -0.6893786791782750 */ /* -0.2014325535165511 +0.5530754725251452 +0.8084135377855128 */ /* +0.3949662256245141 -0.8863782760482898 -0.2415268771080916 */ /* -0.9880789871011447 -0.0358363508356590 -0.1497186401486454 */ /* -0.5563669681930346 -0.1872451620449235 -0.8095647262538439 */ /* +0.9107729835362690 +0.3637964767201394 +0.1953066716383650 */ /* +0.4880066989691995 +0.4552173114354653 +0.7447326104922839 */ /* +0.4503577034024528 -0.7733018607231182 +0.4462982984375262 */ /* -0.1851724360521764 -0.6698898594336268 +0.7189984319555212 */ /* +0.5164870047062630 -0.4186886364495051 -0.7469544830025501 */ /* +0.8887697023818768 +0.0926983101794712 -0.4488824338486648 */ /* -0.2150113165945696 -0.9725176230628212 +0.0893286436061266 */ /* +0.3726308486103162 +0.2496760218781303 -0.8937606697338315 */ /* +0.6107194377798514 +0.7221776721405232 -0.3247786602896772 */ /* -0.0564439009657171 +0.9257284384576210 -0.3739531311201806 */ /* -0.4093682070423705 +0.8833657655100380 +0.2282161155303892 */ /* +0.2880209769301166 +0.9208311923097523 +0.2628950971730382 */ /* -0.7381050044867206 +0.5952693577243935 -0.3175773828628962 */ /* +0.8919203778082251 -0.4520704490224135 -0.0105047023330842 */ /* -0.8392904723521479 +0.3613958189340454 +0.4061829207092528 */ /* -0.7731590474255965 -0.5111417751026961 +0.3754452997825505 */ /* -0.5171463317911840 -0.0692481515405688 +0.8530910649064009 */ /* -0.2921287125690812 +0.4595034572585115 -0.8387594339619712 */ /* */ /* :Fin_listG_xtc__PtsSphere_02_c__N26_100_1000000000: */ /* */ /* */ /* soit les distances aux trois plus proches voisins : */ /* */ /* d(00,24)=+0.69925529191752 d(00,01)=+0.69925529207253 d(00,09)=+0.69925529489258 */ /* d(01,08)=+0.69925529176985 d(01,10)=+0.69925529179794 d(01,21)=+0.69925529189231 */ /* d(02,06)=+0.69925529147459 d(02,23)=+0.69925529170849 d(02,07)=+0.6992552919441 */ /* d(03,05)=+0.69925529166592 d(03,12)=+0.69925529201117 d(03,02)=+0.69925529206888 */ /* d(04,18)=+0.69925529131981 d(04,09)=+0.69925529176467 d(04,24)=+0.69925529264523 */ /* d(05,03)=+0.69925529166592 d(05,21)=+0.69925529188297 d(05,12)=+0.69925529210502 */ /* d(06,02)=+0.69925529147459 d(06,22)=+0.69925529256875 d(06,20)=+0.69925529305598 */ /* d(07,25)=+0.69925529191008 d(07,02)=+0.6992552919441 d(07,03)=+0.69925529246907 */ /* d(08,09)=+0.69925529148674 d(08,01)=+0.69925529176985 d(08,13)=+0.69925529237286 */ /* d(09,08)=+0.69925529148674 d(09,04)=+0.69925529176467 d(09,01)=+0.69925529192253 */ /* d(10,11)=+0.69925529171158 d(10,01)=+0.69925529179794 d(10,05)=+0.69925529216987 */ /* d(11,24)=+0.69925529166716 d(11,10)=+0.69925529171158 d(11,23)=+0.69925529247836 */ /* d(12,13)=+0.69925529147654 d(12,03)=+0.69925529201117 d(12,05)=+0.69925529210502 */ /* d(13,12)=+0.69925529147654 d(13,15)=+0.69925529179769 d(13,21)=+0.69925529189757 */ /* d(14,11)=+0.69925529277311 d(14,05)=+0.69925529293871 d(14,02)=+0.69925529376881 */ /* d(15,25)=+0.69925529154534 d(15,13)=+0.69925529179769 d(15,12)=+0.69925529430294 */ /* d(16,19)=+0.69925529166447 d(16,13)=+0.69925529200123 d(16,17)=+0.69925529216151 */ /* d(17,25)=+0.69925529148951 d(17,18)=+0.69925529207198 d(17,16)=+0.69925529216151 */ /* d(18,04)=+0.69925529131981 d(18,22)=+0.69925529178062 d(18,17)=+0.69925529207198 */ /* d(19,16)=+0.69925529166447 d(19,18)=+0.699255292361 d(19,09)=+0.69925529266784 */ /* d(20,25)=+0.69925529177101 d(20,06)=+0.69925529305598 d(20,18)=+0.69925529319508 */ /* d(21,05)=+0.69925529188297 d(21,01)=+0.69925529189231 d(21,13)=+0.69925529189757 */ /* d(22,18)=+0.69925529178062 d(22,06)=+0.69925529256875 d(22,24)=+0.69925529383312 */ /* d(23,24)=+0.69925529104335 d(23,02)=+0.69925529170849 d(23,11)=+0.69925529247836 */ /* d(24,23)=+0.69925529104335 d(24,11)=+0.69925529166716 d(24,00)=+0.69925529191752 */ /* d(25,17)=+0.69925529148951 d(25,15)=+0.69925529154534 d(25,20)=+0.69925529177101 */ /* */ /* */ /* Le 20080315125611, voici le resultat pour 200 iterations aveugles et 1000000000 */ /* iterations effectives (duree du calcul sur '$LACT18' : 7047 secondes) : */ /* */ /* */ /* :Debut_listG_xtc__PtsSphere_02_c__N26_200_1000000000: */ /* */ /* +0.1199678154552358 +0.9830425034338723 -0.1386908782053239 */ /* +0.4768536912038127 -0.7593724059193601 +0.4426783327807469 */ /* +0.1322365538577327 -0.9835633116003877 -0.1229500138166304 */ /* +0.0715891553584919 +0.8364700996806410 +0.5433164503080284 */ /* +0.7202724923201724 -0.0135793051278979 -0.6935583171436492 */ /* +0.4051675846303242 +0.3098650816906962 +0.8601295597255377 */ /* -0.3922859505876224 +0.3982207753421849 +0.8291754621655385 */ /* -0.8494189851177575 -0.2858139798434143 -0.4436189317957330 */ /* -0.4804625324884996 +0.7672516622348330 -0.4248301327267444 */ /* +0.8270736806315412 -0.5481339763733005 -0.1244920509582419 */ /* -0.5492968107168799 -0.8272006512869041 -0.1183727005976729 */ /* -0.9357796174262311 +0.3300753766903628 -0.1239627093618548 */ /* +0.0747285623888147 +0.5839072494060294 -0.8083736549729872 */ /* -0.2155544785192968 -0.8411783152067402 +0.4959388155974725 */ /* +0.6948768195930036 +0.6632888930299057 +0.2778381722792507 */ /* -0.5687825301110706 +0.7773409567777386 +0.2687516890297043 */ /* +0.3943796131037092 -0.6316955092846103 -0.6674020559736280 */ /* -0.3012630281806504 -0.6082036464730016 -0.7343901635155313 */ /* -0.9324480005264869 -0.2606233068736625 +0.2502323285037200 */ /* +0.0924234675897392 -0.0906887880144888 -0.9915812858092632 */ /* +0.1755426103417076 -0.3478024822564293 +0.9209876357968579 */ /* -0.5121796501361416 -0.2903632738830502 +0.8083075993496139 */ /* -0.5232548207097721 +0.1981176619378172 -0.8288267518801966 */ /* +0.6540198812005292 +0.6295675774877350 -0.4194075111042607 */ /* +0.9895205405254199 +0.1293159439719203 -0.0642377343384091 */ /* +0.8200558686550415 -0.1595875534256994 +0.5495818274615938 */ /* */ /* :Fin_listG_xtc__PtsSphere_02_c__N26_200_1000000000: */ /* */ /* */ /* soit les distances aux trois plus proches voisins : */ /* */ /* d(00,23)=+0.69925528970867 d(00,03)=+0.69925528989109 d(00,08)=+0.69925529161766 */ /* d(01,20)=+0.6992552887651 d(01,09)=+0.69925528907723 d(01,13)=+0.69925528909227 */ /* d(02,01)=+0.69925528958827 d(02,16)=+0.69925528959479 d(02,10)=+0.69925528983699 */ /* d(03,14)=+0.6992552887387 d(03,06)=+0.69925528876068 d(03,15)=+0.69925528902353 */ /* d(04,24)=+0.69925528930424 d(04,19)=+0.69925528961765 d(04,16)=+0.69925528997891 */ /* d(05,25)=+0.69925528875582 d(05,20)=+0.69925528879537 d(05,03)=+0.69925528939468 */ /* d(06,03)=+0.69925528876068 d(06,21)=+0.69925528938819 d(06,15)=+0.69925528961246 */ /* d(07,10)=+0.69925528849792 d(07,18)=+0.69925528873477 d(07,11)=+0.69925528875011 */ /* d(08,22)=+0.69925528851251 d(08,11)=+0.69925528880437 d(08,12)=+0.69925528886356 */ /* d(09,01)=+0.69925528907723 d(09,16)=+0.69925528914844 d(09,24)=+0.69925528924453 */ /* d(10,13)=+0.69925528837422 d(10,07)=+0.69925528849792 d(10,17)=+0.69925528958775 */ /* d(11,07)=+0.69925528875011 d(11,08)=+0.69925528880437 d(11,15)=+0.6992552895279 */ /* d(12,23)=+0.69925528863731 d(12,08)=+0.69925528886356 d(12,19)=+0.69925528912564 */ /* d(13,10)=+0.69925528837422 d(13,21)=+0.69925528903823 d(13,01)=+0.69925528909227 */ /* d(14,24)=+0.69925528850261 d(14,03)=+0.6992552887387 d(14,23)=+0.69925528924252 */ /* d(15,03)=+0.69925528902353 d(15,08)=+0.69925528908648 d(15,11)=+0.6992552895279 */ /* d(16,17)=+0.69925528853451 d(16,19)=+0.69925528909686 d(16,09)=+0.69925528914844 */ /* d(17,16)=+0.69925528853451 d(17,19)=+0.69925528890671 d(17,07)=+0.69925528919774 */ /* d(18,07)=+0.69925528873477 d(18,21)=+0.69925528950967 d(18,11)=+0.69925529014707 */ /* d(19,22)=+0.69925528852626 d(19,17)=+0.69925528890671 d(19,16)=+0.69925528909686 */ /* d(20,01)=+0.6992552887651 d(20,05)=+0.69925528879537 d(20,21)=+0.69925529016882 */ /* d(21,13)=+0.69925528903823 d(21,06)=+0.69925528938819 d(21,18)=+0.69925528950967 */ /* d(22,08)=+0.69925528851251 d(22,19)=+0.69925528852626 d(22,07)=+0.69925529008743 */ /* d(23,12)=+0.69925528863731 d(23,14)=+0.69925528924252 d(23,24)=+0.69925528926894 */ /* d(24,14)=+0.69925528850261 d(24,09)=+0.69925528924453 d(24,23)=+0.69925528926894 */ /* d(25,05)=+0.69925528875582 d(25,24)=+0.69925528976838 d(25,01)=+0.69925529033614 */ /* */ /* Le 20080315170820, voici le resultat pour 300 iterations aveugles et 1000000000 */ /* iterations effectives (duree du calcul sur '$LACT18' : 7117 secondes) : */ /* */ /* */ /* :Debut_listG_xtc__PtsSphere_02_c__N26_300_1000000000: */ /* */ /* +0.1574000003026416 +0.8290426806798636 -0.5365756922521500 */ /* -0.0472500723763708 -0.0820243753299661 +0.9955096345652095 */ /* -0.8009899221789006 -0.5560983206527231 -0.2217426488861800 */ /* -0.5545199499402576 -0.4579680846595599 +0.6948185795957882 */ /* +0.9326474817293563 +0.2147776067178920 +0.2898952474195197 */ /* +0.4651891643965293 +0.8283860169110026 +0.3120507143308328 */ /* +0.5534136100176504 -0.7260229009833845 -0.4081961826069695 */ /* -0.1692610224030615 +0.9836096856417070 +0.0621505640110569 */ /* +0.4807962472670277 +0.3370523712387693 +0.8094631972216316 */ /* +0.4740757006932189 +0.2812208282196828 -0.8343662719619418 */ /* -0.3655980340022203 -0.9099591988172632 +0.1957353673242413 */ /* +0.8680229612111332 -0.4695911133999026 +0.1613081678840080 */ /* -0.6190613656846219 +0.2362760686073484 +0.7489570381004148 */ /* -0.1275353078882978 -0.8778823331792358 -0.4615813626367710 */ /* +0.3329745062647833 -0.9149479162052473 +0.2280313329553634 */ /* +0.7599414489481553 +0.5888730117583915 -0.2751682579680658 */ /* -0.9761724871805140 -0.0376672931358788 +0.2137017788873669 */ /* +0.9047188487432282 -0.0801527084489027 -0.4184009417496966 */ /* -0.4742976681997597 -0.3539146990283182 -0.8060931135743349 */ /* -0.8795694660975305 +0.1023993662825481 -0.4646201933771686 */ /* -0.2181772901018631 +0.2842189771454520 -0.9336049716631765 */ /* +0.4802851936512171 -0.4656501684914588 +0.7433007825525874 */ /* +0.2179285293907885 -0.3656872968069959 -0.9048646070167407 */ /* -0.7575520075266395 +0.6260004586872544 +0.1850361629944408 */ /* -0.5280224003188712 +0.7069244644128149 -0.4705848981598885 */ /* -0.1032336159750708 +0.7060181830894763 +0.7006291070743111 */ /* */ /* :Fin_listG_xtc__PtsSphere_02_c__N26_300_1000000000: */ /* */ /* */ /* soit les distances aux trois plus proches voisins : */ /* */ /* d(00,09)=+0.69933647882451 d(00,24)=+0.69933647904491 d(00,07)=+0.69933648032758 */ /* d(01,12)=+0.69933647880622 d(01,21)=+0.69933647918231 d(01,03)=+0.69933647967684 */ /* d(02,16)=+0.69933647913701 d(02,18)=+0.69933647927474 d(02,10)=+0.69933647938916 */ /* d(03,10)=+0.69933647864995 d(03,12)=+0.69933647937229 d(03,01)=+0.69933647967684 */ /* d(04,08)=+0.69933647880354 d(04,11)=+0.69933647892224 d(04,15)=+0.69933647906594 */ /* d(05,15)=+0.69933647860913 d(05,08)=+0.69933647877176 d(05,25)=+0.69933647931926 */ /* d(06,22)=+0.69933647893275 d(06,11)=+0.69933647893542 d(06,14)=+0.69933647938497 */ /* d(07,24)=+0.69933647880332 d(07,25)=+0.69933647884333 d(07,05)=+0.69933647981076 */ /* d(08,05)=+0.69933647877176 d(08,04)=+0.69933647880354 d(08,25)=+0.6993364788508 */ /* d(09,17)=+0.69933647831739 d(09,00)=+0.69933647882451 d(09,22)=+0.69933647898366 */ /* d(10,03)=+0.69933647864995 d(10,14)=+0.69933647889433 d(10,02)=+0.69933647938916 */ /* d(11,04)=+0.69933647892224 d(11,06)=+0.69933647893542 d(11,21)=+0.69933647907705 */ /* d(12,25)=+0.6993364786752 d(12,01)=+0.69933647880622 d(12,16)=+0.69933647913895 */ /* */ /* d(13,06)=+0.69971615201519 d(13,10)=+0.69983431636395 d(13,18)=+0.71657139400101 */ /* */ /* d(14,21)=+0.69933647867616 d(14,10)=+0.69933647889433 d(14,06)=+0.69933647938497 */ /* d(15,05)=+0.69933647860913 d(15,09)=+0.69933647904009 d(15,04)=+0.69933647906594 */ /* d(16,19)=+0.69933647897121 d(16,02)=+0.69933647913701 d(16,12)=+0.69933647913895 */ /* d(17,09)=+0.69933647831739 d(17,11)=+0.69933647924647 d(17,15)=+0.69933647945292 */ /* d(18,22)=+0.69933647881829 d(18,20)=+0.69933647888361 d(18,02)=+0.69933647927474 */ /* d(19,16)=+0.69933647897121 d(19,24)=+0.69933647940754 d(19,18)=+0.69933647952885 */ /* d(20,24)=+0.69933647821225 d(20,18)=+0.69933647888361 d(20,09)=+0.69933647958626 */ /* d(21,14)=+0.69933647867616 d(21,11)=+0.69933647907705 d(21,01)=+0.69933647918231 */ /* d(22,18)=+0.69933647881829 d(22,06)=+0.69933647893275 d(22,09)=+0.69933647898366 */ /* d(23,24)=+0.69933647918348 d(23,12)=+0.69933647944409 d(23,07)=+0.69933648039991 */ /* d(24,20)=+0.69933647821225 d(24,07)=+0.69933647880332 d(24,00)=+0.69933647904491 */ /* d(25,12)=+0.6993364786752 d(25,07)=+0.69933647884333 d(25,08)=+0.6993364788508 */ /* */ } } else { } }